@mayflowergmbh/wasmsh-pyodide 0.5.2 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/pyodide.asm.js +1 -1
- package/assets/pyodide.asm.wasm +0 -0
- package/assets/python_stdlib.zip +0 -0
- package/lib/node-module.mjs +36 -2
- package/node-host.mjs +12 -0
- package/package.json +1 -1
package/assets/pyodide.asm.js
CHANGED
|
@@ -5,7 +5,7 @@ var _createPyodideModule = (() => {
|
|
|
5
5
|
async function(moduleArg = {}) {
|
|
6
6
|
var moduleRtn;
|
|
7
7
|
|
|
8
|
-
var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_SHELL){readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=async f=>readBinary(f);globalThis.clearTimeout??=id=>{};globalThis.setTimeout??=f=>f();arguments_=globalThis.arguments||globalThis.scriptArgs;if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){globalThis.console??={};console.log=print;console.warn=console.error=globalThis.printErr??print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var dynamicLibraries=[];var wasmBinary;var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var runtimeExited=false;var isFileURI=filename=>filename.startsWith("file://");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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function initMemory(){if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||20971520;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536})}updateMemoryViews()}var __RELOC_FUNCS__=[];function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__RELOC_FUNCS__);if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);wasmExports["__wasm_call_ctors"]();callRuntimeCallbacks(onPostCtors);FS.ignorePermissions=false}function preMain(){}function exitRuntime(){___funcs_on_exit();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(onPostRuns)}var runDependencies=0;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(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.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("pyodide.asm.wasm")}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"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_SHELL){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=relocateExports(wasmExports,1024);var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(wasmExports,"main");LDSO.init();loadDylibs();wasmExports=applySignatureConversions(wasmExports);__RELOC_FUNCS__.push(wasmExports["__wasm_apply_data_relocs"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var GOT={};var currentModuleWeakSymbols=new Set([]);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 onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{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 getStringList(){var count=getLEB();var rtn=[];while(count--)rtn.push(getString());return rtn}function failIf(condition,message){if(condition)throw new Error(message)}if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,"dylink.0");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;var name=getString();failIf(name!=="dylink.0")}var customSection={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};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_DYLINK_RUNTIME_PATH=5;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){customSection.neededDynlibs=getStringList()}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 if(subsectionType===WASM_DYLINK_RUNTIME_PATH){customSection.runtimePaths=getStringList()}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":return HEAP64[ptr>>>3>>>0];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=8690352;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 paramType of sigParam){target.push(typeCodes[paramType])}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:5749,element:"anyfunc"});var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){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=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var updateGOT=(exports,replace)=>{for(var symName in exports){if(isInternalSym(symName)){continue}var value=exports[symName];GOT[symName]||=new WebAssembly.Global({value:"i32",mutable:true});if(replace||GOT[symName].value==0){if(typeof value=="function"){GOT[symName].value=addFunction(value)}else if(typeof value=="number"){GOT[symName].value=value}else{err(`unhandled export type for '${symName}': ${typeof value}`)}}}};var relocateExports=(exports,memoryBase,replace)=>{var relocated={};for(var e in exports){var value=exports[e];if(typeof value=="object"){value=value.value}if(typeof value=="number"){value+=memoryBase}relocated[e]=value}updateGOT(relocated,replace);return relocated};var isSymbolDefined=symName=>{var existing=wasmImports[symName];if(!existing||existing.stub){return false}return true};var resolveGlobalSymbol=(symName,direct=false)=>{var sym;if(isSymbolDefined(symName)){sym=wasmImports[symName]}return{sym,name:symName}};var onPostCtors=[];var addOnPostCtor=cb=>onPostCtors.push(cb);var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var loadWebAssemblyModule=(binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);currentModuleWeakSymbols=metadata.weakImports;function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign);var memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0;var tableBase=metadata.tableSize?wasmTable.length:0;if(handle){HEAP8[handle+8>>>0]=1;HEAPU32[handle+12>>>2>>>0]=memoryBase;HEAP32[handle+16>>>2>>>0]=metadata.memorySize;HEAPU32[handle+20>>>2>>>0]=tableBase;HEAP32[handle+24>>>2>>>0]=metadata.tableSize}if(metadata.tableSize){wasmTable.grow(metadata.tableSize)}var moduleExports;function resolveSymbol(sym){var resolved=resolveGlobalSymbol(sym).sym;if(!resolved&&localScope){resolved=localScope[sym]}if(!resolved){resolved=moduleExports[sym]}return resolved}var proxyHandler={get(stubs,prop){switch(prop){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(prop in wasmImports&&!wasmImports[prop].stub){var res=wasmImports[prop];return res}if(!(prop in stubs)){var resolved;stubs[prop]=(...args)=>{resolved||=resolveSymbol(prop);if(!resolved){throw new Error(`Dynamic linking error: cannot resolve symbol ${prop}`)}return resolved(...args)}}return stubs[prop]}};var proxy=new Proxy({},proxyHandler);var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize);moduleExports=relocateExports(instance.exports,memoryBase);if(!flags.allowUndefined){reportUndefinedSymbols()}function addEmAsm(addr,body){var args=[];var arity=0;for(;arity<16;arity++){if(body.indexOf("$"+arity)!=-1){args.push("$"+arity)}else{break}}args=args.join(",");var func=`(${args}) => { ${body} };`;ASM_CONSTS[start]=eval(func)}if("__start_em_asm"in moduleExports){var start=moduleExports["__start_em_asm"];var stop=moduleExports["__stop_em_asm"];while(start<stop){var jsString=UTF8ToString(start);addEmAsm(start,jsString);start=HEAPU8.indexOf(0,start)+1}}function addEmJs(name,cSig,body){var jsArgs=[];cSig=cSig.slice(1,-1);if(cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func=`(${jsArgs}) => ${body};`;moduleExports[name]=eval(func)}for(var name in moduleExports){if(name.startsWith("__em_js__")){var start=moduleExports[name];var jsString=UTF8ToString(start);var parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]);delete moduleExports[name]}}var applyRelocs=moduleExports["__wasm_apply_data_relocs"];if(applyRelocs){if(runtimeInitialized){applyRelocs()}else{__RELOC_FUNCS__.push(applyRelocs)}}var init=moduleExports["__wasm_call_ctors"];if(init){if(runtimeInitialized){init()}else{addOnPostCtor(init)}}return moduleExports}if(flags.loadAsync){return(async()=>{var instance;if(binary instanceof WebAssembly.Module){instance=new WebAssembly.Instance(binary,info)}else{({module:binary,instance}=await WebAssembly.instantiate(binary,info))}return postInstantiation(binary,instance)})()}var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary);var instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}};if(flags.loadAsync){return metadata.neededDynlibs.reduce((chain,needed)=>chain.then(()=>{needed=findLibraryFS(needed,flags.rpath)??needed;return loadDynamicLibrary(needed,flags,localScope)}),Promise.resolve()).then(loadModule)}metadata.neededDynlibs.forEach(needed=>{needed=findLibraryFS(needed,flags.rpath)??needed;return loadDynamicLibrary(needed,flags,localScope)});return loadModule()};var mergeLibSymbols=(exports,libName)=>{for(var[sym,exp]of Object.entries(exports)){const setImport=target=>{if(!isSymbolDefined(target)){wasmImports[target]=exp}};setImport(sym);const main_alias="__main_argc_argv";if(sym=="main"){setImport(main_alias)}if(sym==main_alias){setImport("main")}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var preloadPlugins=[];var registerWasmPlugin=()=>{var wasmPlugin={promiseChainEnd:Promise.resolve(),canHandle:name=>!Module["noWasmDecoding"]&&name.endsWith(".so"),handle:(byteArray,name,onload,onerror)=>{wasmPlugin["promiseChainEnd"]=wasmPlugin["promiseChainEnd"].then(()=>loadWebAssemblyModule(byteArray,{loadAsync:true,nodelete:true},name,{})).then(exports=>{preloadedWasm[name]=exports;onload(byteArray)},error=>{err(`failed to instantiate wasm: ${name}: ${error}`);onerror()})}};preloadPlugins.push(wasmPlugin)};var preloadedWasm={};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var replaceORIGIN=(parentLibName,rpath)=>{if(rpath.startsWith("$ORIGIN")){var origin=PATH.dirname(parentLibName);return rpath.replace("$ORIGIN",origin)}return rpath};var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var base64Decode=b64=>{if(ENVIRONMENT_IS_NODE){var buf=Buffer.from(b64,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var b1,b2,i=0,j=0,bLength=b64.length;var output=new Uint8Array((bLength*3>>2)-(b64[bLength-2]=="=")-(b64[bLength-1]=="="));for(;i<bLength;i+=4,j+=3){b1=base64ReverseLookup[b64.charCodeAt(i+1)];b2=base64ReverseLookup[b64.charCodeAt(i+2)];output[j]=base64ReverseLookup[b64.charCodeAt(i)]<<2|b1>>4;output[j+1]=b1<<4|b2>>2;output[j+2]=b2<<6|base64ReverseLookup[b64.charCodeAt(i+3)]}return output};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}if(ENVIRONMENT_IS_SHELL){return view=>{if(!os.system){throw new Error("randomFill not supported on d8 unless --enable-os-system is passed")}const b64=os.system("sh",["-c",`head -c${view.byteLength} /dev/urandom | base64 --wrap=0`]);view.set(base64Decode(b64))}}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr>>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else mount.idbPersistState=0}function startPersist(){mount.idbPersistState="idb";IDBFS.syncfs(mount,false,onPersistComplete)}if(!mount.idbPersistState){mount.idbPersistState=setTimeout(startPersist,0)}else if(mount.idbPersistState==="idb"){mount.idbPersistState="again"}},mount:mount=>{var mnt=MEMFS.mount(mount);if(mount?.opts?.autoPersist){mnt.idbPersistState=0;var memfs_node_ops=mnt.node_ops;mnt.node_ops={...mnt.node_ops};mnt.node_ops.mknod=(parent,name,mode,dev)=>{var node=memfs_node_ops.mknod(parent,name,mode,dev);node.node_ops=mnt.node_ops;node.idbfs_mount=mnt.mount;node.memfs_stream_ops=node.stream_ops;node.stream_ops={...node.stream_ops};node.stream_ops.write=(stream,buffer,offset,length,position,canOwn)=>{stream.node.isModified=true;return node.memfs_stream_ops.write(stream,buffer,offset,length,position,canOwn)};node.stream_ops.close=stream=>{var n=stream.node;if(n.isModified){IDBFS.queuePersist(n.idbfs_mount);n.isModified=false}if(n.memfs_stream_ops.close)return n.memfs_stream_ops.close(stream)};return node};mnt.node_ops.mkdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.mkdir(...args));mnt.node_ops.rmdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rmdir(...args));mnt.node_ops.symlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.symlink(...args));mnt.node_ops.unlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.unlink(...args));mnt.node_ops.rename=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rename(...args))}return mnt},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push(...FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db,entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(key=>{var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(key=>{if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=transaction.onabort=e=>{done(e.target.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var NODEFS={isWindows:false,staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants")["fs"];NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]}},convertNodeCode(e){var code=e.code;return ERRNO_CODES[code]},tryFSOperation(f){try{return f()}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},mount(mount){return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode(path){return NODEFS.tryFSOperation(()=>{var mode=fs.lstatSync(path).mode;if(NODEFS.isWindows){mode|=(mode&292)>>2}return mode})},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},getattr(func,node){var stat=NODEFS.tryFSOperation(func);if(NODEFS.isWindows){if(!stat.blksize){stat.blksize=4096}if(!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}stat.mode|=(stat.mode&292)>>2}return{dev:stat.dev,ino:node.id,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(arg,node,attr,chmod,utimes,truncate,stat){NODEFS.tryFSOperation(()=>{if(attr.mode!==undefined){var mode=attr.mode;if(NODEFS.isWindows){mode&=384}chmod(arg,mode);node.mode=attr.mode}if(typeof(attr.atime??attr.mtime)==="number"){var atime=new Date(attr.atime??stat(arg).atime);var mtime=new Date(attr.mtime??stat(arg).mtime);utimes(arg,atime,mtime)}if(attr.size!==undefined){truncate(arg,attr.size)}})},node_ops:{getattr(node){var path=NODEFS.realPath(node);return NODEFS.getattr(()=>fs.lstatSync(path),node)},setattr(node,attr){var path=NODEFS.realPath(node);if(attr.mode!=null&&attr.dontFollow){throw new FS.ErrnoError(52)}NODEFS.setattr(path,node,attr,fs.chmodSync,fs.utimesSync,fs.truncateSync,fs.lstatSync)},lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);NODEFS.tryFSOperation(()=>{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}});return node},rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{FS.unlink(newPath)}catch(e){}NODEFS.tryFSOperation(()=>fs.renameSync(oldPath,newPath));oldNode.name=newName},unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.unlinkSync(path))},rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.rmdirSync(path))},readdir(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readdirSync(path))},symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);NODEFS.tryFSOperation(()=>fs.symlinkSync(oldPath,newPath))},readlink(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readlinkSync(path))},statfs(path){var stats=NODEFS.tryFSOperation(()=>fs.statfsSync(path));stats.frsize=stats.bsize;return stats}},stream_ops:{getattr(stream){return NODEFS.getattr(()=>fs.fstatSync(stream.nfd),stream.node)},setattr(stream,attr){NODEFS.setattr(stream.nfd,stream.node,attr,fs.fchmodSync,fs.futimesSync,fs.ftruncateSync,fs.fstatSync)},open(stream){var path=NODEFS.realPath(stream.node);NODEFS.tryFSOperation(()=>{stream.shared.refcount=1;stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))})},close(stream){NODEFS.tryFSOperation(()=>{if(stream.nfd&&--stream.shared.refcount===0){fs.closeSync(stream.nfd)}})},dup(stream){stream.shared.refcount++},read(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.readSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},write(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.writeSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){NODEFS.tryFSOperation(()=>{var stat=fs.fstatSync(stream.nfd);position+=stat.size})}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}},msync(stream,buffer,offset,length,mmapFlags){NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(mount){assert(ENVIRONMENT_IS_WORKER);WORKERFS.reader??=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");createdParents[curr]||=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0);parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)});(mount.opts["blobs"]||[]).forEach(obj=>{WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])});(mount.opts["packages"]||[]).forEach(pack=>{pack["metadata"].files.forEach(file=>{var name=file.filename.slice(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))})});return root},createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.atime=node.mtime=node.ctime=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr(node){return{dev:1,ino:node.id,mode:node.mode,nlink:1,uid:0,gid:0,rdev:0,size:node.size,atime:new Date(node.atime),mtime:new Date(node.mtime),ctime:new Date(node.ctime),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){throw new FS.ErrnoError(63)},rename(oldNode,newDir,newName){throw new FS.ErrnoError(63)},unlink(parent,name){throw new FS.ErrnoError(63)},rmdir(parent,name){throw new FS.ErrnoError(63)},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newName,oldPath){throw new FS.ErrnoError(63)}},stream_ops:{read(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var PROXYFS={mount(mount){return PROXYFS.createNode(null,"/",mount.opts.fs.lstat(mount.opts.root).mode,0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=PROXYFS.node_ops;node.stream_ops=PROXYFS.stream_ops;return node},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},node_ops:{getattr(node){var path=PROXYFS.realPath(node);var stat;try{stat=node.mount.opts.fs.lstat(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(node,attr){var path=PROXYFS.realPath(node);try{if(attr.mode!==undefined){node.mount.opts.fs.chmod(path,attr.mode);node.mode=attr.mode}if(attr.atime||attr.mtime){var atime=new Date(attr.atime||attr.mtime);var mtime=new Date(attr.mtime||attr.atime);node.mount.opts.fs.utime(path,atime,mtime)}if(attr.size!==undefined){node.mount.opts.fs.truncate(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup(parent,name){try{var path=PATH.join2(PROXYFS.realPath(parent),name);var mode=parent.mount.opts.fs.lstat(path).mode;var node=PROXYFS.createNode(parent,name,mode);return node}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod(parent,name,mode,dev){var node=PROXYFS.createNode(parent,name,mode,dev);var path=PROXYFS.realPath(node);try{if(FS.isDir(node.mode)){node.mount.opts.fs.mkdir(path,node.mode)}else{node.mount.opts.fs.writeFile(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename(oldNode,newDir,newName){var oldPath=PROXYFS.realPath(oldNode);var newPath=PATH.join2(PROXYFS.realPath(newDir),newName);try{oldNode.mount.opts.fs.rename(oldPath,newPath);oldNode.name=newName}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.unlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.rmdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink(parent,newName,oldPath){var newPath=PATH.join2(PROXYFS.realPath(parent),newName);try{parent.mount.opts.fs.symlink(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open(stream){var path=PROXYFS.realPath(stream.node);try{stream.nfd=stream.node.mount.opts.fs.open(path,stream.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close(stream){try{stream.node.mount.opts.fs.close(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.read(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.write(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=stream.node.node_ops.getattr(stream.node);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var LZ4={DIR_MODE:16895,FILE_MODE:33279,CHUNK_SIZE:-1,codec:null,init(){if(LZ4.codec)return;LZ4.codec=(()=>{var MiniLZ4=function(){var exports={};exports.uncompress=function(input,output,sIdx,eIdx){sIdx=sIdx||0;eIdx=eIdx||input.length-sIdx;for(var i=sIdx,n=eIdx,j=0;i<n;){var token=input[i++];var literals_length=token>>4;if(literals_length>0){var l=literals_length+240;while(l===255){l=input[i++];literals_length+=l}var end=i+literals_length;while(i<end)output[j++]=input[i++];if(i===n)return j}var offset=input[i++]|input[i++]<<8;if(offset===0)return j;if(offset>j)return-(i-2);var match_length=token&15;var l=match_length+240;while(l===255){l=input[i++];match_length+=l}var pos=j-offset;var end=j+match_length+4;while(j<end)output[j++]=output[pos++]}return j};var maxInputSize=2113929216,minMatch=4,hashLog=16,hashShift=minMatch*8-hashLog,copyLength=8,mfLimit=copyLength+minMatch,skipStrength=6,mlBits=4,mlMask=(1<<mlBits)-1,runBits=8-mlBits,runMask=(1<<runBits)-1,hasher=2654435761;assert(hashShift===16);var hashTable=new Int16Array(1<<16);var empty=new Int16Array(hashTable.length);exports.compressBound=function(isize){return isize>maxInputSize?0:isize+isize/255+16|0};exports.compress=function(src,dst,sIdx,eIdx){hashTable.set(empty);return compressBlock(src,dst,0,sIdx||0,eIdx||dst.length)};function compressBlock(src,dst,pos,sIdx,eIdx){var dpos=sIdx;var dlen=eIdx-sIdx;var anchor=0;if(src.length>=maxInputSize)throw new Error("input too large");if(src.length>mfLimit){var n=exports.compressBound(src.length);if(dlen<n)throw Error("output too small: "+dlen+" < "+n);var step=1,findMatchAttempts=(1<<skipStrength)+3,srcLength=src.length-mfLimit;while(pos+minMatch<srcLength){var sequenceLowBits=src[pos+1]<<8|src[pos];var sequenceHighBits=src[pos+3]<<8|src[pos+2];var hash=Math.imul(sequenceLowBits|sequenceHighBits<<16,hasher)>>>hashShift;var ref=hashTable[hash]-1;hashTable[hash]=pos+1;if(ref<0||pos-ref>>>16>0||((src[ref+3]<<8|src[ref+2])!=sequenceHighBits||(src[ref+1]<<8|src[ref])!=sequenceLowBits)){step=findMatchAttempts++>>skipStrength;pos+=step;continue}findMatchAttempts=(1<<skipStrength)+3;var literals_length=pos-anchor;var offset=pos-ref;pos+=minMatch;ref+=minMatch;var match_length=pos;while(pos<srcLength&&src[pos]==src[ref]){pos++;ref++}match_length=pos-match_length;var token=match_length<mlMask?match_length:mlMask;if(literals_length>=runMask){dst[dpos++]=(runMask<<mlBits)+token;for(var len=literals_length-runMask;len>254;len-=255){dst[dpos++]=255}dst[dpos++]=len}else{dst[dpos++]=(literals_length<<mlBits)+token}for(var i=0;i<literals_length;i++){dst[dpos++]=src[anchor+i]}dst[dpos++]=offset;dst[dpos++]=offset>>8;if(match_length>=mlMask){match_length-=mlMask;while(match_length>=255){match_length-=255;dst[dpos++]=255}dst[dpos++]=match_length}anchor=pos}}if(anchor==0)return 0;literals_length=src.length-anchor;if(literals_length>=runMask){dst[dpos++]=runMask<<mlBits;for(var ln=literals_length-runMask;ln>254;ln-=255){dst[dpos++]=255}dst[dpos++]=ln}else{dst[dpos++]=literals_length<<mlBits}pos=anchor;while(pos<src.length){dst[dpos++]=src[pos++]}return dpos}exports.CHUNK_SIZE=2048;exports.compressPackage=function(data,verify){if(verify){var temp=new Uint8Array(exports.CHUNK_SIZE)}assert(data instanceof ArrayBuffer);data=new Uint8Array(data);console.log("compressing package of size "+data.length);var compressedChunks=[];var successes=[];var offset=0;var total=0;while(offset<data.length){var chunk=data.subarray(offset,offset+exports.CHUNK_SIZE);offset+=exports.CHUNK_SIZE;var bound=exports.compressBound(chunk.length);var compressed=new Uint8Array(bound);var compressedSize=exports.compress(chunk,compressed);if(compressedSize>0){assert(compressedSize<=bound);compressed=compressed.subarray(0,compressedSize);compressedChunks.push(compressed);total+=compressedSize;successes.push(1);if(verify){var back=exports.uncompress(compressed,temp);assert(back===chunk.length,[back,chunk.length]);for(var i=0;i<chunk.length;i++){assert(chunk[i]===temp[i])}}}else{assert(compressedSize===0);compressedChunks.push(chunk);total+=chunk.length;successes.push(0)}}data=null;var compressedData={data:new Uint8Array(total+exports.CHUNK_SIZE*2),cachedOffset:total,cachedIndexes:[-1,-1],cachedChunks:[null,null],offsets:[],sizes:[],successes};offset=0;for(var i=0;i<compressedChunks.length;i++){compressedData["data"].set(compressedChunks[i],offset);compressedData["offsets"][i]=offset;compressedData["sizes"][i]=compressedChunks[i].length;offset+=compressedChunks[i].length}console.log("compressed package into "+[compressedData["data"].length]);assert(offset===total);return compressedData};assert(exports.CHUNK_SIZE<1<<15);return exports}();if(typeof module!="undefined"){module.exports=MiniLZ4}return MiniLZ4})();LZ4.CHUNK_SIZE=LZ4.codec.CHUNK_SIZE},loadPackage(pack,preloadPlugin){LZ4.init();var compressedData=pack["compressedData"]||LZ4.codec.compressPackage(pack["data"]);assert(compressedData["cachedIndexes"].length===compressedData["cachedChunks"].length);for(var i=0;i<compressedData["cachedIndexes"].length;i++){compressedData["cachedIndexes"][i]=-1;compressedData["cachedChunks"][i]=compressedData["data"].subarray(compressedData["cachedOffset"]+i*LZ4.CHUNK_SIZE,compressedData["cachedOffset"]+(i+1)*LZ4.CHUNK_SIZE);assert(compressedData["cachedChunks"][i].length===LZ4.CHUNK_SIZE)}pack["metadata"].files.forEach(file=>{var dir=PATH.dirname(file.filename);var name=PATH.basename(file.filename);FS.createPath("",dir,true,true);var parent=FS.analyzePath(dir).object;LZ4.createNode(parent,name,LZ4.FILE_MODE,0,{compressedData,start:file.start,end:file.end})});if(preloadPlugin){Browser.init();pack["metadata"].files.forEach(file=>{var handled=false;var fullname=file.filename;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){var dep=getUniqueRunDependency("fp "+fullname);addRunDependency(dep);var finish=()=>removeRunDependency(dep);var byteArray=FS.readFile(fullname);plugin["handle"](byteArray,fullname,finish,finish);handled=true}})})}},createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=LZ4.node_ops;node.stream_ops=LZ4.stream_ops;this.atime=this.mtime=this.ctime=(mtime||new Date).getTime();assert(LZ4.FILE_MODE!==LZ4.DIR_MODE);if(mode===LZ4.FILE_MODE){node.size=contents.end-contents.start;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr(node){return{dev:1,ino:node.id,mode:node.mode,nlink:1,uid:0,gid:0,rdev:0,size:node.size,atime:new Date(node.atime),mtime:new Date(node.mtime),ctime:new Date(node.ctime),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]){node[key]=attr[key]}}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){throw new FS.ErrnoError(63)},rename(oldNode,newDir,newName){throw new FS.ErrnoError(63)},unlink(parent,name){throw new FS.ErrnoError(63)},rmdir(parent,name){throw new FS.ErrnoError(63)},readdir(node){throw new FS.ErrnoError(63)},symlink(parent,newName,oldPath){throw new FS.ErrnoError(63)}},stream_ops:{read(stream,buffer,offset,length,position){length=Math.min(length,stream.node.size-position);if(length<=0)return 0;var contents=stream.node.contents;var compressedData=contents.compressedData;var written=0;while(written<length){var start=contents.start+position+written;var desired=length-written;var chunkIndex=Math.floor(start/LZ4.CHUNK_SIZE);var compressedStart=compressedData["offsets"][chunkIndex];var compressedSize=compressedData["sizes"][chunkIndex];var currChunk;if(compressedData["successes"][chunkIndex]){var found=compressedData["cachedIndexes"].indexOf(chunkIndex);if(found>=0){currChunk=compressedData["cachedChunks"][found]}else{compressedData["cachedIndexes"].pop();compressedData["cachedIndexes"].unshift(chunkIndex);currChunk=compressedData["cachedChunks"].pop();compressedData["cachedChunks"].unshift(currChunk);if(compressedData["debug"]){out("decompressing chunk "+chunkIndex);Module["decompressedChunks"]=(Module["decompressedChunks"]||0)+1}var compressed=compressedData["data"].subarray(compressedStart,compressedStart+compressedSize);var originalSize=LZ4.codec.uncompress(compressed,currChunk);if(chunkIndex<compressedData["successes"].length-1)assert(originalSize===LZ4.CHUNK_SIZE)}}else{currChunk=compressedData["data"].subarray(compressedStart,compressedStart+LZ4.CHUNK_SIZE)}var startInChunk=start%LZ4.CHUNK_SIZE;var endInChunk=Math.min(startInChunk+desired,LZ4.CHUNK_SIZE);buffer.set(currChunk.subarray(startInChunk,endInChunk),offset+written);var currWritten=endInChunk-startInChunk;written+=currWritten}return written},write(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;if(FS.trackingDelegate["onMakeDirectory"]){FS.trackingDelegate["onMakeDirectory"](path,mode)}return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}if(FS.trackingDelegate["onMakeSymlink"]){FS.trackingDelegate["onMakeSymlink"](oldpath,newpath)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}if(FS.trackingDelegate["onMovePath"]){FS.trackingDelegate["onMovePath"](old_path,new_path)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);if(FS.trackingDelegate["onDeletePath"]){FS.trackingDelegate["onDeletePath"](path)}},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);if(FS.trackingDelegate["onDeletePath"]){FS.trackingDelegate["onDeletePath"](path)}},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}var trackingFlags=flags;flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1;dbg(`FS.trackingDelegate error on read file: ${path}`)}}if(FS.trackingDelegate["onOpenFile"]){FS.trackingDelegate["onOpenFile"](path,trackingFlags)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null;if(stream.path&&FS.trackingDelegate["onCloseFile"]){FS.trackingDelegate["onCloseFile"](stream.path)}},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];if(stream.path&&FS.trackingDelegate["onSeekFile"]){FS.trackingDelegate["onSeekFile"](stream.path,stream.position,whence)}return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;if(stream.path&&FS.trackingDelegate["onReadFile"]){FS.trackingDelegate["onReadFile"](stream.path,bytesRead)}return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;if(stream.path&&FS.trackingDelegate["onWriteToFile"]){FS.trackingDelegate["onWriteToFile"](stream.path,bytesWritten)}return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,IDBFS,NODEFS,WORKERFS,PROXYFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;_fflush(0);for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;dbg(`forceLoadFile: ${obj.url}`);if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var findLibraryFS=(libName,rpath)=>{if(!runtimeInitialized){return undefined}if(PATH.isAbs(libName)){try{FS.lookupPath(libName);return libName}catch(e){return undefined}}var rpathResolved=(rpath?.paths||[]).map(p=>replaceORIGIN(rpath?.parentLibPath,p));return withStackSave(()=>{var bufSize=2*255+2;var buf=stackAlloc(bufSize);var rpathC=stringToUTF8OnStack(rpathResolved.join(":"));var libNameC=stringToUTF8OnStack(libName);var resLibNameC=__emscripten_find_dylib(buf,rpathC,libNameC,bufSize);return resLibNameC?UTF8ToString(resLibNameC):undefined})};function loadDynamicLibrary(libName,flags={global:true,nodelete:true},localScope,handle){var dso=LDSO.loadedLibsByName[libName];if(dso){if(!flags.global){if(localScope){Object.assign(localScope,dso.exports)}}else if(!dso.global){dso.global=true;mergeLibSymbols(dso.exports,libName)}if(flags.nodelete&&dso.refcount!==Infinity){dso.refcount=Infinity}dso.refcount++;if(handle){LDSO.loadedLibsByHandle[handle]=dso}return flags.loadAsync?Promise.resolve(true):true}dso=newDSO(libName,handle,"loading");dso.refcount=flags.nodelete?Infinity:1;dso.global=flags.global;function loadLibData(){if(handle){var data=HEAPU32[handle+28>>>2>>>0];var dataSize=HEAPU32[handle+32>>>2>>>0];if(data&&dataSize){var libData=HEAP8.slice(data,data+dataSize);return flags.loadAsync?Promise.resolve(libData):libData}}var f=findLibraryFS(libName,flags.rpath);if(f){var libData=FS.readFile(f,{encoding:"binary"});return flags.loadAsync?Promise.resolve(libData):libData}var libFile=locateFile(libName);if(flags.loadAsync){return asyncLoad(libFile)}if(!readBinary){throw new Error(`${libFile}: file not found, and synchronous loading of external files is not available`)}return readBinary(libFile)}function getExports(){var preloaded=preloadedWasm[libName];if(preloaded){return flags.loadAsync?Promise.resolve(preloaded):preloaded}if(flags.loadAsync){return loadLibData().then(libData=>loadWebAssemblyModule(libData,flags,libName,localScope,handle))}return loadWebAssemblyModule(loadLibData(),flags,libName,localScope,handle)}function moduleLoaded(exports){if(dso.global){mergeLibSymbols(exports,libName)}else if(localScope){Object.assign(localScope,exports)}dso.exports=exports}if(flags.loadAsync){return getExports().then(exports=>{moduleLoaded(exports);return true})}moduleLoaded(getExports());return true}var reportUndefinedSymbols=()=>{for(var[symName,entry]of Object.entries(GOT)){if(entry.value==0){var value=resolveGlobalSymbol(symName,true).sym;if(!value&&!entry.required){continue}if(typeof value=="function"){entry.value=addFunction(value,value.sig)}else if(typeof value=="number"){entry.value=value}else{throw new Error(`bad export type for '${symName}': ${typeof value}`)}}}};var loadDylibs=()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");dynamicLibraries.reduce((chain,lib)=>chain.then(()=>loadDynamicLibrary(lib,{loadAsync:true,global:true,nodelete:true,allowUndefined:true})),Promise.resolve()).then(()=>{reportUndefinedSymbols();removeRunDependency("loadDylibs")})};var noExitRuntime=false;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>>0]=value;break;case"i8":HEAP8[ptr>>>0]=value;break;case"i16":HEAP16[ptr>>>1>>>0]=value;break;case"i32":HEAP32[ptr>>>2>>>0]=value;break;case"i64":HEAP64[ptr>>>3>>>0]=BigInt(value);break;case"float":HEAPF32[ptr>>>2>>>0]=value;break;case"double":HEAPF64[ptr>>>3>>>0]=value;break;case"*":HEAPU32[ptr>>>2>>>0]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___assert_fail(condition,filename,line,func){condition>>>=0;filename>>>=0;func>>>=0;return abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}___assert_fail.sig="vppip";function ___call_sighandler(fp,sig){fp>>>=0;return getWasmTableEntry(fp)(sig)}___call_sighandler.sig="vpi";var ___cpp_exception=new WebAssembly.Tag({parameters:["i32"]});var ___memory_base=new WebAssembly.Global({value:"i32",mutable:false},1024);var ___stack_high=8690352;var ___stack_low=3447472;var ___stack_pointer=new WebAssembly.Global({value:"i32",mutable:true},8690352);var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;HEAP64[buf+24>>>3>>>0]=BigInt(stat.size);HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;HEAP64[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAP32[buf+4>>>2>>>0]=stats.bsize;HEAP32[buf+40>>>2>>>0]=stats.bsize;HEAP32[buf+8>>>2>>>0]=stats.blocks;HEAP32[buf+12>>>2>>>0]=stats.bfree;HEAP32[buf+16>>>2>>>0]=stats.bavail;HEAP32[buf+20>>>2>>>0]=stats.files;HEAP32[buf+24>>>2>>>0]=stats.ffree;HEAP32[buf+28>>>2>>>0]=stats.fsid;HEAP32[buf+44>>>2>>>0]=stats.flags;HEAP32[buf+36>>>2>>>0]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var ___syscall__newselect=function(nfds,readfds,writefds,exceptfds,timeout){readfds>>>=0;writefds>>>=0;exceptfds>>>=0;timeout>>>=0;try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>>2>>>0]:0,srcReadHigh=readfds?HEAP32[readfds+4>>>2>>>0]:0;var srcWriteLow=writefds?HEAP32[writefds>>>2>>>0]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>>2>>>0]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>>2>>>0]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>>2>>>0]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>>2>>>0]:0)|(writefds?HEAP32[writefds>>>2>>>0]:0)|(exceptfds?HEAP32[exceptfds>>>2>>>0]:0);var allHigh=(readfds?HEAP32[readfds+4>>>2>>>0]:0)|(writefds?HEAP32[writefds+4>>>2>>>0]:0)|(exceptfds?HEAP32[exceptfds+4>>>2>>>0]:0);var check=(fd,low,high,val)=>fd<32?low&val:high&val;for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=SYSCALLS.getStreamFromFD(fd);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){var timeoutInMillis=-1;if(timeout){var tv_sec=readfds?HEAP32[timeout>>>2>>>0]:0,tv_usec=readfds?HEAP32[timeout+4>>>2>>>0]:0;timeoutInMillis=(tv_sec+tv_usec/1e6)*1e3}flags=stream.stream_ops.poll(stream,timeoutInMillis)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>>2>>>0]=dstReadLow;HEAP32[readfds+4>>>2>>>0]=dstReadHigh}if(writefds){HEAP32[writefds>>>2>>>0]=dstWriteLow;HEAP32[writefds+4>>>2>>>0]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>>2>>>0]=dstExceptLow;HEAP32[exceptfds+4>>>2>>>0]=dstExceptHigh}return total}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}};___syscall__newselect.sig="iipppp";var SOCKFS={websocketArgs:{},callbacks:{},on(event,callback){SOCKFS.callbacks[event]=callback},emit(event,param){SOCKFS.callbacks[event]?.(param)},mount(mount){SOCKFS.websocketArgs=Module["websocket"]||{};(Module["websocket"]??={})["on"]=SOCKFS.on;return FS.createNode(null,"/",16895,0)},createSocket(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family,type,protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return`socket[${SOCKFS.nextname.current++}]`},websocket_sock_ops:{createPeer(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var url="ws://".replace("#","//");var subProtocols="binary";var opts=undefined;if(SOCKFS.websocketArgs["url"]){url=SOCKFS.websocketArgs["url"]}if(SOCKFS.websocketArgs["subprotocol"]){subProtocols=SOCKFS.websocketArgs["subprotocol"]}else if(SOCKFS.websocketArgs["subprotocol"]===null){subProtocols="null"}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr,port,socket:ws,msg_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer(sock,addr,port){return sock.peers[addr+":"+port]},addPeer(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents(sock,peer){var first=true;var handleOpen=function(){sock.connecting=false;SOCKFS.emit("open",sock.stream.fd);try{var queued=peer.msg_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.msg_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}data=new Uint8Array(data)}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data});SOCKFS.emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){SOCKFS.emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){SOCKFS.emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){if(sock.connecting){mask|=4}else{mask|=16}}return mask},ioctl(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>>2>>>0]=bytes;return 0;default:return 28}},close(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}for(var peer of Object.values(sock.peers)){try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind(sock,addr,port){if(typeof sock.saddr!="undefined"||typeof sock.sport!="undefined"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e.name==="ErrnoError"))throw e;if(e.errno!==138)throw e}}},connect(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!="undefined"&&typeof sock.dport!="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else{throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;sock.connecting=true},listen(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}if(sock.server){throw new FS.ErrnoError(28)}var WebSocketServer=require("ws").Server;var host=sock.saddr;sock.server=new WebSocketServer({host,port:sock.sport});SOCKFS.emit("listen",sock.stream.fd);sock.server.on("connection",function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock);SOCKFS.emit("connection",newsock.stream.fd)}else{SOCKFS.websocket_sock_ops.createPeer(sock,ws);SOCKFS.emit("connection",sock.stream.fd)}});sock.server.on("close",function(){SOCKFS.emit("close",sock.stream.fd);sock.server=null});sock.server.on("error",function(error){sock.error=23;SOCKFS.emit("error",[sock.stream.fd,sock.error,"EHOSTUNREACH: Host is unreachable"])})},accept(listensock){if(!listensock.server||!listensock.pending.length){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr,port}},sendmsg(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data=buffer.slice(offset,offset+length);if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(sock.type===2){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}}dest.msg_send_queue.push(data);return length}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}throw new FS.ErrnoError(6)}throw new FS.ErrnoError(6)}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};var getSocketFromFD=fd=>{var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket};var inetPton4=str=>{var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0};var inetPton6=str=>{var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=Number(words[words.length-4])+Number(words[words.length-3])*256;words[words.length-3]=Number(words[words.length-2])+Number(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]=="string"){if(words[w]==="Z"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]};var writeSockaddr=(sa,family,addr,port,addrlen)=>{switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>>2>>>0]=16}HEAP16[sa>>>1>>>0]=family;HEAP32[sa+4>>>2>>>0]=addr;HEAP16[sa+2>>>1>>>0]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>>2>>>0]=28}HEAP32[sa>>>2>>>0]=family;HEAP32[sa+8>>>2>>>0]=addr[0];HEAP32[sa+12>>>2>>>0]=addr[1];HEAP32[sa+16>>>2>>>0]=addr[2];HEAP32[sa+20>>>2>>>0]=addr[3];HEAP16[sa+2>>>1>>>0]=_htons(port);break;default:return 5}return 0};var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___syscall_accept4(fd,addr,addrlen,flags,d1,d2){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_accept4.sig="iippiii";var inetNtop4=addr=>(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255);var inetNtop6=ints=>{var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=":";if(zstart===0)str+=":"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?":":""}return str};var readSockaddr=(sa,salen)=>{var family=HEAP16[sa>>>1>>>0];var port=_ntohs(HEAPU16[sa+2>>>1>>>0]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>>2>>>0];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>>2>>>0],HEAP32[sa+12>>>2>>>0],HEAP32[sa+16>>>2>>>0],HEAP32[sa+20>>>2>>>0]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family,addr,port}};var getSocketAddress=(addrp,addrlen)=>{var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info};function ___syscall_bind(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_bind.sig="iippiii";function ___syscall_chdir(path){path>>>=0;try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_chdir.sig="ip";function ___syscall_chmod(path,mode){path>>>=0;try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_chmod.sig="ipi";function ___syscall_connect(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_connect.sig="iippiii";function ___syscall_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.dupStream(old).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_dup.sig="ii";function ___syscall_dup3(fd,newfd,flags){try{var old=SYSCALLS.getStreamFromFD(fd);if(old.fd===newfd)return-28;if(newfd<0||newfd>=FS.MAX_OPEN_FDS)return-8;var existing=FS.getStream(newfd);if(existing)FS.close(existing);return FS.dupStream(old,newfd).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_dup3.sig="iiii";function ___syscall_faccessat(dirfd,path,amode,flags){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_faccessat.sig="iipii";var ___syscall_fadvise64=(fd,offset,len,advice)=>0;___syscall_fadvise64.sig="iijji";function ___syscall_fchdir(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.chdir(stream.path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchdir.sig="ii";function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchmod.sig="iii";function ___syscall_fchmodat2(dirfd,path,mode,flags){path>>>=0;try{var nofollow=flags&256;path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.chmod(path,mode,nofollow);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchmodat2.sig="iipii";function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchown32.sig="iiii";function ___syscall_fchownat(dirfd,path,owner,group,flags){path>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;flags=flags&~256;path=SYSCALLS.calculateAt(dirfd,path);(nofollow?FS.lchown:FS.chown)(path,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchownat.sig="iipiii";var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fcntl64.sig="iiip";function ___syscall_fdatasync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fdatasync.sig="ii";function ___syscall_fstat64(fd,buf){buf>>>=0;try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fstat64.sig="iip";function ___syscall_fstatfs64(fd,size,buf){size>>>=0;buf>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);SYSCALLS.writeStatFs(buf,FS.statfsStream(stream));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fstatfs64.sig="iipp";function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length);try{if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_ftruncate64.sig="iij";function ___syscall_getcwd(buf,size){buf>>>=0;size>>>=0;try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getcwd.sig="ipp";function ___syscall_getdents64(fd,dirp,count){dirp>>>=0;count>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx<endIdx;idx++){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child;try{child=FS.lookupNode(stream.node,name)}catch(e){if(e?.errno===28){continue}throw e}id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}HEAP64[dirp+pos>>>3>>>0]=BigInt(id);HEAP64[dirp+pos+8>>>3>>>0]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>>1>>>0]=280;HEAP8[dirp+pos+18>>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getdents64.sig="iipp";function ___syscall_getpeername(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getpeername.sig="iippiii";function ___syscall_getsockname(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getsockname.sig="iippiii";function ___syscall_getsockopt(fd,level,optname,optval,optlen,d1){optval>>>=0;optlen>>>=0;try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>>2>>>0]=sock.error;HEAP32[optlen>>>2>>>0]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getsockopt.sig="iiiippi";function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_ioctl.sig="iiip";function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_listen.sig="iiiiiii";function ___syscall_lstat64(path,buf){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_lstat64.sig="ipp";function ___syscall_mkdirat(dirfd,path,mode){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_mkdirat.sig="iipi";function ___syscall_newfstatat(dirfd,path,buf,flags){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_newfstatat.sig="iippi";function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_openat.sig="iipip";var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount(mount){return FS.createNode(null,"/",16384|511,0)},createPipe(){var pipe={buckets:[],refcnt:2,timestamp:new Date};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{getattr(stream){var node=stream.node;var timestamp=node.pipe.timestamp;return{dev:14,ino:node.id,mode:4480,nlink:1,uid:0,gid:0,rdev:0,size:0,atime:timestamp,mtime:timestamp,ctime:timestamp,blksize:4096,blocks:0}},poll(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){return 256|4}for(var bucket of pipe.buckets){if(bucket.offset-bucket.roffset>0){return 64|1}}return 0},dup(stream){stream.node.pipe.refcnt++},ioctl(stream,request,varargs){return 28},fsync(stream){return 28},read(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var bucket of pipe.buckets){currentLength+=bucket.offset-bucket.roffset}var data=buffer.subarray(offset,offset+length);if(length<=0){return 0}if(currentLength==0){throw new FS.ErrnoError(6)}var toRead=Math.min(currentLength,length);var totalRead=toRead;var toRemove=0;for(var bucket of pipe.buckets){var bucketSize=bucket.offset-bucket.roffset;if(toRead<=bucketSize){var tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);if(toRead<bucketSize){tmpSlice=tmpSlice.subarray(0,toRead);bucket.roffset+=toRead}else{toRemove++}data.set(tmpSlice);break}else{var tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);data.set(tmpSlice);data=data.subarray(tmpSlice.byteLength);toRead-=tmpSlice.byteLength;toRemove++}}if(toRemove&&toRemove==pipe.buckets.length){toRemove--;pipe.buckets[toRemove].offset=0;pipe.buckets[toRemove].roffset=0}pipe.buckets.splice(0,toRemove);return totalRead},write(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var data=buffer.subarray(offset,offset+length);var dataLen=data.byteLength;if(dataLen<=0){return 0}var currBucket=null;if(pipe.buckets.length==0){currBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0};pipe.buckets.push(currBucket)}else{currBucket=pipe.buckets[pipe.buckets.length-1]}assert(currBucket.offset<=PIPEFS.BUCKET_BUFFER_SIZE);var freeBytesInCurrBuffer=PIPEFS.BUCKET_BUFFER_SIZE-currBucket.offset;if(freeBytesInCurrBuffer>=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i<numBuckets;i++){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:PIPEFS.BUCKET_BUFFER_SIZE,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data.subarray(0,PIPEFS.BUCKET_BUFFER_SIZE));data=data.subarray(PIPEFS.BUCKET_BUFFER_SIZE,data.byteLength)}if(remElements>0){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}return dataLen},close(stream){var pipe=stream.node.pipe;pipe.refcnt--;if(pipe.refcnt===0){pipe.buckets=null}}},nextname(){if(!PIPEFS.nextname.current){PIPEFS.nextname.current=0}return"pipe["+PIPEFS.nextname.current+++"]"}};function ___syscall_pipe(fdPtr){fdPtr>>>=0;try{if(fdPtr==0){throw new FS.ErrnoError(21)}var res=PIPEFS.createPipe();HEAP32[fdPtr>>>2>>>0]=res.readable_fd;HEAP32[fdPtr+4>>>2>>>0]=res.writable_fd;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_pipe.sig="ip";function ___syscall_poll(fds,nfds,timeout){fds>>>=0;try{var nonzero=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>>2>>>0];var events=HEAP16[pollfd+4>>>1>>>0];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream,-1)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>>1>>>0]=mask}return nonzero}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_poll.sig="ipii";function ___syscall_readlinkat(dirfd,path,buf,bufsize){path>>>=0;buf>>>=0;bufsize>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len>>>0];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len>>>0]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_readlinkat.sig="iippp";function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){buf>>>=0;len>>>=0;addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf>>>0);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_recvfrom.sig="iippipp";function ___syscall_recvmsg(fd,message,flags,d1,d2,d3){message>>>=0;try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>>2>>>0];var num=HEAP32[message+12>>>2>>>0];var total=0;for(var i=0;i<num;i++){total+=HEAP32[iov+(8*i+4)>>>2>>>0]}var msg=sock.sock_ops.recvmsg(sock,total);if(!msg)return 0;var name=HEAPU32[message>>>2>>>0];if(name){var errno=writeSockaddr(name,sock.family,DNS.lookup_name(msg.addr),msg.port)}var bytesRead=0;var bytesRemaining=msg.buffer.byteLength;for(var i=0;bytesRemaining>0&&i<num;i++){var iovbase=HEAPU32[iov+(8*i+0)>>>2>>>0];var iovlen=HEAP32[iov+(8*i+4)>>>2>>>0];if(!iovlen){continue}var length=Math.min(iovlen,bytesRemaining);var buf=msg.buffer.subarray(bytesRead,bytesRead+length);HEAPU8.set(buf,iovbase+bytesRead>>>0);bytesRead+=length;bytesRemaining-=length}return bytesRead}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_recvmsg.sig="iipiiii";function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){oldpath>>>=0;newpath>>>=0;try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_renameat.sig="iipip";function ___syscall_rmdir(path){path>>>=0;try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_rmdir.sig="ip";function ___syscall_sendmsg(fd,message,flags,d1,d2,d3){message>>>=0;d1>>>=0;d2>>>=0;try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>>2>>>0];var num=HEAP32[message+12>>>2>>>0];var addr,port;var name=HEAPU32[message>>>2>>>0];var namelen=HEAP32[message+4>>>2>>>0];if(name){var info=getSocketAddress(name,namelen);port=info.port;addr=info.addr}var total=0;for(var i=0;i<num;i++){total+=HEAP32[iov+(8*i+4)>>>2>>>0]}var view=new Uint8Array(total);var offset=0;for(var i=0;i<num;i++){var iovbase=HEAPU32[iov+(8*i+0)>>>2>>>0];var iovlen=HEAP32[iov+(8*i+4)>>>2>>>0];for(var j=0;j<iovlen;j++){view[offset++]=HEAP8[iovbase+j>>>0]}}return sock.sock_ops.sendmsg(sock,view,0,total,addr,port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_sendmsg.sig="iipippi";function ___syscall_sendto(fd,message,length,flags,addr,addr_len){message>>>=0;length>>>=0;addr>>>=0;addr_len>>>=0;try{var sock=getSocketFromFD(fd);if(!addr){return FS.write(sock.stream,HEAP8,message,length)}var dest=getSocketAddress(addr,addr_len);return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_sendto.sig="iippipp";function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_socket.sig="iiiiiii";function ___syscall_stat64(path,buf){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_stat64.sig="ipp";function ___syscall_statfs64(path,size,buf){path>>>=0;size>>>=0;buf>>>=0;try{SYSCALLS.writeStatFs(buf,FS.statfs(SYSCALLS.getStr(path)));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_statfs64.sig="ippp";function ___syscall_symlinkat(target,dirfd,linkpath){target>>>=0;linkpath>>>=0;try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);linkpath=SYSCALLS.calculateAt(dirfd,linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_symlinkat.sig="ipip";function ___syscall_truncate64(path,length){path>>>=0;length=bigintToI53Checked(length);try{if(isNaN(length))return-61;path=SYSCALLS.getStr(path);FS.truncate(path,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_truncate64.sig="ipj";function ___syscall_unlinkat(dirfd,path,flags){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_unlinkat.sig="iipi";var readI53FromI64=ptr=>HEAPU32[ptr>>>2>>>0]+HEAP32[ptr+4>>>2>>>0]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){path>>>=0;times>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var now=Date.now(),atime,mtime;if(!times){atime=now;mtime=now}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>>2>>>0];if(nanoseconds==1073741823){atime=now}else if(nanoseconds==1073741822){atime=null}else{atime=seconds*1e3+nanoseconds/(1e3*1e3)}times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>>2>>>0];if(nanoseconds==1073741823){mtime=now}else if(nanoseconds==1073741822){mtime=null}else{mtime=seconds*1e3+nanoseconds/(1e3*1e3)}}if((mtime??atime)!==null){FS.utime(path,atime,mtime)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_utimensat.sig="iippi";var ___table_base=new WebAssembly.Global({value:"i32",mutable:false},1);var __abort_js=()=>abort("");__abort_js.sig="v";var dlSetError=msg=>{var sp=stackSave();var cmsg=stringToUTF8OnStack(msg);___dl_seterr(cmsg,0);stackRestore(sp)};var dlopenInternal=(handle,jsflags)=>{var filename=UTF8ToString(handle+36);var flags=HEAP32[handle+4>>>2>>>0];filename=PATH.normalize(filename);var global=Boolean(flags&256);var localScope=global?null:{};var combinedFlags={global,nodelete:Boolean(flags&4096),loadAsync:jsflags.loadAsync};if(jsflags.loadAsync){return loadDynamicLibrary(filename,combinedFlags,localScope,handle)}try{return loadDynamicLibrary(filename,combinedFlags,localScope,handle)}catch(e){dlSetError(`Could not load dynamic lib: ${filename}\n${e}`);return 0}};function __dlopen_js(handle){handle>>>=0;return dlopenInternal(handle,{loadAsync:false})}__dlopen_js.sig="pp";function __dlsym_js(handle,symbol,symbolIndex){handle>>>=0;symbol>>>=0;symbolIndex>>>=0;symbol=UTF8ToString(symbol);var result;var newSymIndex;var lib=LDSO.loadedLibsByHandle[handle];if(!lib.exports.hasOwnProperty(symbol)||lib.exports[symbol].stub){dlSetError(`Tried to lookup unknown symbol "${symbol}" in dynamic lib: ${lib.name}`);return 0}newSymIndex=Object.keys(lib.exports).indexOf(symbol);result=lib.exports[symbol];if(typeof result=="function"){var addr=getFunctionAddress(result);if(addr){result=addr}else{result=addFunction(result,result.sig);HEAPU32[symbolIndex>>>2>>>0]=newSymIndex}}return result}__dlsym_js.sig="pppp";function __emscripten_lookup_name(name){name>>>=0;var nameString=UTF8ToString(name);return inetPton4(DNS.lookup_name(nameString))}__emscripten_lookup_name.sig="ip";var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};__emscripten_runtime_keepalive_clear.sig="v";function __emscripten_system(command){command>>>=0;if(ENVIRONMENT_IS_NODE){if(!command)return 1;var cmdstr=UTF8ToString(command);if(!cmdstr.length)return 0;var cp=require("child_process");var ret=cp.spawnSync(cmdstr,[],{shell:true,stdio:"inherit"});var _W_EXITCODE=(ret,sig)=>ret<<8|sig;if(ret.status===null){var signalToNumber=sig=>{switch(sig){case"SIGHUP":return 1;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15;default:return 2}};return _W_EXITCODE(0,signalToNumber(ret.signal))}return _W_EXITCODE(ret.status,0)}if(!command)return 0;return-52}__emscripten_system.sig="ip";function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getUTCSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getUTCMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getUTCHours();HEAP32[tmPtr+12>>>2>>>0]=date.getUTCDate();HEAP32[tmPtr+16>>>2>>>0]=date.getUTCMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>>2>>>0]=yday}__gmtime_js.sig="vjp";var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr+36>>>2>>>0]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>>2>>>0]=dst}__localtime_js.sig="vjp";var __mktime_js=function(tmPtr){tmPtr>>>=0;var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>>2>>>0]+1900,HEAP32[tmPtr+16>>>2>>>0],HEAP32[tmPtr+12>>>2>>>0],HEAP32[tmPtr+8>>>2>>>0],HEAP32[tmPtr+4>>>2>>>0],HEAP32[tmPtr>>>2>>>0],0);var dst=HEAP32[tmPtr+32>>>2>>>0];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>>2>>>0]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return BigInt(ret)};__mktime_js.sig="jp";function __mmap_js(len,prot,flags,fd,offset,allocated,addr){len>>>=0;offset=bigintToI53Checked(offset);allocated>>>=0;addr>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>>2>>>0]=res.allocated;HEAPU32[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__mmap_js.sig="ipiiijpp";function __msync_js(addr,len,prot,flags,fd,offset){addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{if(isNaN(offset))return-61;SYSCALLS.doMsync(addr,SYSCALLS.getStreamFromFD(fd),len,flags,offset);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__msync_js.sig="ippiiij";function __munmap_js(addr,len,prot,flags,fd,offset){addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__munmap_js.sig="ippiiij";var timers={};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};_proc_exit.sig="vi";var exitJS=(status,implicit)=>{EXITSTATUS=status;if(!keepRuntimeAlive()){exitRuntime()}_proc_exit(status)};var _exit=exitJS;_exit.sig="vi";var maybeExit=()=>{if(runtimeExited){return}if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(runtimeExited||ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now=()=>performance.now();_emscripten_get_now.sig="d";var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};__setitimer_js.sig="iid";var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>>2>>>0]=stdTimezoneOffset*60;HEAP32[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};__tzset_js.sig="vpppp";var _emscripten_get_now_res=()=>{if(ENVIRONMENT_IS_NODE){return 1}return 1e3};_emscripten_get_now_res.sig="d";var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_res_get(clk_id,pres){pres>>>=0;if(!checkWasiClock(clk_id)){return 28}var nsec;if(clk_id===0){nsec=1e3*1e3}else if(nowIsMonotonic){nsec=_emscripten_get_now_res()}else{return 52}HEAP64[pres>>>3>>>0]=BigInt(nsec);return 0}_clock_res_get.sig="iip";var _emscripten_date_now=()=>Date.now();_emscripten_date_now.sig="d";function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>>3>>>0]=BigInt(nsec);return 0}_clock_time_get.sig="iijp";function _create_sentinel(...args){return wasmImports["create_sentinel"](...args)}_create_sentinel.stub=true;var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==106?HEAP64[buf>>>3>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}_emscripten_asm_const_int.sig="ippp";var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}_emscripten_get_heap_max.sig="p";var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}_emscripten_resize_heap.sig="ip";var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};runtimeKeepalivePop.sig="v";var _emscripten_runtime_keepalive_pop=runtimeKeepalivePop;_emscripten_runtime_keepalive_pop.sig="v";var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};runtimeKeepalivePush.sig="v";var _emscripten_runtime_keepalive_push=runtimeKeepalivePush;_emscripten_runtime_keepalive_push.sig="v";var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}_environ_get.sig="ipp";function _environ_sizes_get(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0}_environ_sizes_get.sig="ipp";function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_close.sig="ii";function _fd_fdstat_get(fd,pbuf){pbuf>>>=0;try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf>>>0]=type;HEAP16[pbuf+2>>>1>>>0]=flags;HEAP64[pbuf+8>>>3>>>0]=BigInt(rightsBase);HEAP64[pbuf+16>>>3>>>0]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_fdstat_get.sig="iip";var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_pread(fd,iov,iovcnt,offset,pnum){iov>>>=0;iovcnt>>>=0;offset=bigintToI53Checked(offset);pnum>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt,offset);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_pread.sig="iippjp";var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_pwrite(fd,iov,iovcnt,offset,pnum){iov>>>=0;iovcnt>>>=0;offset=bigintToI53Checked(offset);pnum>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt,offset);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_pwrite.sig="iippjp";function _fd_read(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_read.sig="iippp";function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_seek.sig="iijip";function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_sync.sig="ii";function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_write.sig="iippp";function _getaddrinfo(node,service,hint,out){node>>>=0;service>>>=0;hint>>>=0;out>>>=0;var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>>2>>>0]=family;HEAP32[ai+8>>>2>>>0]=type;HEAP32[ai+12>>>2>>>0]=proto;HEAPU32[ai+24>>>2>>>0]=canon;HEAPU32[ai+20>>>2>>>0]=sa;if(family===10){HEAP32[ai+16>>>2>>>0]=28}else{HEAP32[ai+16>>>2>>>0]=16}HEAP32[ai+28>>>2>>>0]=0;return ai}if(hint){flags=HEAP32[hint>>>2>>>0];family=HEAP32[hint+4>>>2>>>0];type=HEAP32[hint+8>>>2>>>0];proto=HEAP32[hint+12>>>2>>>0]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>>2>>>0]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,_htonl(1)]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}_getaddrinfo.sig="ipppp";function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){sa>>>=0;node>>>=0;serv>>>=0;var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}_getnameinfo.sig="ipipipii";var Protocols={list:[],map:{}};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++>>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0]=0};var _setprotoent=stayopen=>{function allocprotoent(name,proto,aliases){var nameBuf=_malloc(name.length+1);stringToAscii(name,nameBuf);var j=0;var length=aliases.length;var aliasListBuf=_malloc((length+1)*4);for(var i=0;i<length;i++,j+=4){var alias=aliases[i];var aliasBuf=_malloc(alias.length+1);stringToAscii(alias,aliasBuf);HEAPU32[aliasListBuf+j>>>2>>>0]=aliasBuf}HEAPU32[aliasListBuf+j>>>2>>>0]=0;var pe=_malloc(12);HEAPU32[pe>>>2>>>0]=nameBuf;HEAPU32[pe+4>>>2>>>0]=aliasListBuf;HEAP32[pe+8>>>2>>>0]=proto;return pe}var list=Protocols.list;var map=Protocols.map;if(list.length===0){var entry=allocprotoent("tcp",6,["TCP"]);list.push(entry);map["tcp"]=map["6"]=entry;entry=allocprotoent("udp",17,["UDP"]);list.push(entry);map["udp"]=map["17"]=entry}_setprotoent.index=0};_setprotoent.sig="vi";function _getprotobyname(name){name>>>=0;name=UTF8ToString(name);_setprotoent(true);var result=Protocols.map[name];return result}_getprotobyname.sig="pp";function _is_sentinel(...args){return wasmImports["is_sentinel"](...args)}_is_sentinel.stub=true;function _random_get(buffer,size){buffer>>>=0;size>>>=0;try{randomFill(HEAPU8.subarray(buffer>>>0,buffer+size>>>0));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_random_get.sig="ipp";function _wasmsh_js_http_fetch(...args){return wasmImports["wasmsh_js_http_fetch"](...args)}_wasmsh_js_http_fetch.stub=true;var _stackAlloc=stackAlloc;var _stackRestore=stackSave;var _stackSave=stackSave;var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);var getCppExceptionTag=()=>___cpp_exception;var getCppExceptionThrownObjectFromWebAssemblyException=ex=>{var unwind_header=ex.getArg(getCppExceptionTag(),0);return ___thrown_object_from_unwind_exception(unwind_header)};var incrementExceptionRefcount=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);___cxa_increment_exception_refcount(ptr)};var decrementExceptionRefcount=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);___cxa_decrement_exception_refcount(ptr)};var getExceptionMessageCommon=ptr=>{var sp=stackSave();var type_addr_addr=stackAlloc(4);var message_addr_addr=stackAlloc(4);___get_exception_message(ptr,type_addr_addr,message_addr_addr);var type_addr=HEAPU32[type_addr_addr>>>2>>>0];var message_addr=HEAPU32[message_addr_addr>>>2>>>0];var type=UTF8ToString(type_addr);_free(type_addr);var message;if(message_addr){message=UTF8ToString(message_addr);_free(message_addr)}stackRestore(sp);return[type,message]};var getExceptionMessage=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);return getExceptionMessageCommon(ptr)};registerWasmPlugin();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();for(var base64ReverseLookup=new Uint8Array(123),i=25;i>=0;--i){base64ReverseLookup[48+i]=52+i;base64ReverseLookup[65+i]=i;base64ReverseLookup[97+i]=26+i}base64ReverseLookup[43]=62;base64ReverseLookup[47]=63;MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}{initMemory();if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["dynamicLibraries"])dynamicLibraries=Module["dynamicLibraries"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"]}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["callMain"]=callMain;Module["ERRNO_CODES"]=ERRNO_CODES;Module["wasmTable"]=wasmTable;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["LZ4"]=LZ4;Module["ExitStatus"]=ExitStatus;Module["GOTHandler"]=GOTHandler;Module["GOT"]=GOT;Module["currentModuleWeakSymbols"]=currentModuleWeakSymbols;Module["addOnPostRun"]=addOnPostRun;Module["onPostRuns"]=onPostRuns;Module["callRuntimeCallbacks"]=callRuntimeCallbacks;Module["addOnPreRun"]=addOnPreRun;Module["onPreRuns"]=onPreRuns;Module["getDylinkMetadata"]=getDylinkMetadata;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8Decoder"]=UTF8Decoder;Module["getValue"]=getValue;Module["loadDylibs"]=loadDylibs;Module["loadDynamicLibrary"]=loadDynamicLibrary;Module["LDSO"]=LDSO;Module["newDSO"]=newDSO;Module["loadWebAssemblyModule"]=loadWebAssemblyModule;Module["getMemory"]=getMemory;Module["___heap_base"]=___heap_base;Module["alignMemory"]=alignMemory;Module["relocateExports"]=relocateExports;Module["updateGOT"]=updateGOT;Module["isInternalSym"]=isInternalSym;Module["addFunction"]=addFunction;Module["convertJsFunctionToWasm"]=convertJsFunctionToWasm;Module["uleb128Encode"]=uleb128Encode;Module["sigToWasmTypes"]=sigToWasmTypes;Module["generateFuncType"]=generateFuncType;Module["getFunctionAddress"]=getFunctionAddress;Module["updateTableMap"]=updateTableMap;Module["getWasmTableEntry"]=getWasmTableEntry;Module["wasmTableMirror"]=wasmTableMirror;Module["wasmTable"]=wasmTable;Module["functionsInTableMap"]=functionsInTableMap;Module["getEmptyTableSlot"]=getEmptyTableSlot;Module["freeTableIndexes"]=freeTableIndexes;Module["setWasmTableEntry"]=setWasmTableEntry;Module["resolveGlobalSymbol"]=resolveGlobalSymbol;Module["isSymbolDefined"]=isSymbolDefined;Module["addOnPostCtor"]=addOnPostCtor;Module["onPostCtors"]=onPostCtors;Module["UTF8ToString"]=UTF8ToString;Module["mergeLibSymbols"]=mergeLibSymbols;Module["asyncLoad"]=asyncLoad;Module["preloadedWasm"]=preloadedWasm;Module["registerWasmPlugin"]=registerWasmPlugin;Module["preloadPlugins"]=preloadPlugins;Module["findLibraryFS"]=findLibraryFS;Module["replaceORIGIN"]=replaceORIGIN;Module["PATH"]=PATH;Module["withStackSave"]=withStackSave;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["stackAlloc"]=stackAlloc;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["stringToUTF8OnStack"]=stringToUTF8OnStack;Module["stringToUTF8"]=stringToUTF8;Module["stringToUTF8Array"]=stringToUTF8Array;Module["FS"]=FS;Module["randomFill"]=randomFill;Module["initRandomFill"]=initRandomFill;Module["base64Decode"]=base64Decode;Module["PATH_FS"]=PATH_FS;Module["TTY"]=TTY;Module["FS_stdin_getChar"]=FS_stdin_getChar;Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;Module["intArrayFromString"]=intArrayFromString;Module["MEMFS"]=MEMFS;Module["mmapAlloc"]=mmapAlloc;Module["zeroMemory"]=zeroMemory;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;Module["FS_modeStringToFlags"]=FS_modeStringToFlags;Module["FS_getMode"]=FS_getMode;Module["IDBFS"]=IDBFS;Module["NODEFS"]=NODEFS;Module["ERRNO_CODES"]=ERRNO_CODES;Module["WORKERFS"]=WORKERFS;Module["PROXYFS"]=PROXYFS;Module["LZ4"]=LZ4;Module["reportUndefinedSymbols"]=reportUndefinedSymbols;Module["noExitRuntime"]=noExitRuntime;Module["setValue"]=setValue;Module["___assert_fail"]=___assert_fail;Module["bigintToI53Checked"]=bigintToI53Checked;Module["INT53_MAX"]=INT53_MAX;Module["INT53_MIN"]=INT53_MIN;Module["___call_sighandler"]=___call_sighandler;Module["___cpp_exception"]=___cpp_exception;Module["___memory_base"]=___memory_base;Module["___stack_high"]=___stack_high;Module["___stack_low"]=___stack_low;Module["___stack_pointer"]=___stack_pointer;Module["___syscall__newselect"]=___syscall__newselect;Module["SYSCALLS"]=SYSCALLS;Module["___syscall_accept4"]=___syscall_accept4;Module["getSocketFromFD"]=getSocketFromFD;Module["SOCKFS"]=SOCKFS;Module["writeSockaddr"]=writeSockaddr;Module["inetPton4"]=inetPton4;Module["inetPton6"]=inetPton6;Module["DNS"]=DNS;Module["___syscall_bind"]=___syscall_bind;Module["getSocketAddress"]=getSocketAddress;Module["readSockaddr"]=readSockaddr;Module["inetNtop4"]=inetNtop4;Module["inetNtop6"]=inetNtop6;Module["___syscall_chdir"]=___syscall_chdir;Module["___syscall_chmod"]=___syscall_chmod;Module["___syscall_connect"]=___syscall_connect;Module["___syscall_dup"]=___syscall_dup;Module["___syscall_dup3"]=___syscall_dup3;Module["___syscall_faccessat"]=___syscall_faccessat;Module["___syscall_fadvise64"]=___syscall_fadvise64;Module["___syscall_fchdir"]=___syscall_fchdir;Module["___syscall_fchmod"]=___syscall_fchmod;Module["___syscall_fchmodat2"]=___syscall_fchmodat2;Module["___syscall_fchown32"]=___syscall_fchown32;Module["___syscall_fchownat"]=___syscall_fchownat;Module["___syscall_fcntl64"]=___syscall_fcntl64;Module["syscallGetVarargP"]=syscallGetVarargP;Module["syscallGetVarargI"]=syscallGetVarargI;Module["___syscall_fdatasync"]=___syscall_fdatasync;Module["___syscall_fstat64"]=___syscall_fstat64;Module["___syscall_fstatfs64"]=___syscall_fstatfs64;Module["___syscall_ftruncate64"]=___syscall_ftruncate64;Module["___syscall_getcwd"]=___syscall_getcwd;Module["___syscall_getdents64"]=___syscall_getdents64;Module["___syscall_getpeername"]=___syscall_getpeername;Module["___syscall_getsockname"]=___syscall_getsockname;Module["___syscall_getsockopt"]=___syscall_getsockopt;Module["___syscall_ioctl"]=___syscall_ioctl;Module["___syscall_listen"]=___syscall_listen;Module["___syscall_lstat64"]=___syscall_lstat64;Module["___syscall_mkdirat"]=___syscall_mkdirat;Module["___syscall_newfstatat"]=___syscall_newfstatat;Module["___syscall_openat"]=___syscall_openat;Module["___syscall_pipe"]=___syscall_pipe;Module["PIPEFS"]=PIPEFS;Module["___syscall_poll"]=___syscall_poll;Module["___syscall_readlinkat"]=___syscall_readlinkat;Module["___syscall_recvfrom"]=___syscall_recvfrom;Module["___syscall_recvmsg"]=___syscall_recvmsg;Module["___syscall_renameat"]=___syscall_renameat;Module["___syscall_rmdir"]=___syscall_rmdir;Module["___syscall_sendmsg"]=___syscall_sendmsg;Module["___syscall_sendto"]=___syscall_sendto;Module["___syscall_socket"]=___syscall_socket;Module["___syscall_stat64"]=___syscall_stat64;Module["___syscall_statfs64"]=___syscall_statfs64;Module["___syscall_symlinkat"]=___syscall_symlinkat;Module["___syscall_truncate64"]=___syscall_truncate64;Module["___syscall_unlinkat"]=___syscall_unlinkat;Module["___syscall_utimensat"]=___syscall_utimensat;Module["readI53FromI64"]=readI53FromI64;Module["___table_base"]=___table_base;Module["__abort_js"]=__abort_js;Module["__dlopen_js"]=__dlopen_js;Module["dlopenInternal"]=dlopenInternal;Module["dlSetError"]=dlSetError;Module["__dlsym_js"]=__dlsym_js;Module["__emscripten_lookup_name"]=__emscripten_lookup_name;Module["__emscripten_runtime_keepalive_clear"]=__emscripten_runtime_keepalive_clear;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;Module["__emscripten_system"]=__emscripten_system;Module["__gmtime_js"]=__gmtime_js;Module["__localtime_js"]=__localtime_js;Module["ydayFromDate"]=ydayFromDate;Module["isLeapYear"]=isLeapYear;Module["MONTH_DAYS_LEAP_CUMULATIVE"]=MONTH_DAYS_LEAP_CUMULATIVE;Module["MONTH_DAYS_REGULAR_CUMULATIVE"]=MONTH_DAYS_REGULAR_CUMULATIVE;Module["__mktime_js"]=__mktime_js;Module["__mmap_js"]=__mmap_js;Module["__msync_js"]=__msync_js;Module["__munmap_js"]=__munmap_js;Module["__setitimer_js"]=__setitimer_js;Module["timers"]=timers;Module["callUserCallback"]=callUserCallback;Module["handleException"]=handleException;Module["maybeExit"]=maybeExit;Module["_exit"]=_exit;Module["exitJS"]=exitJS;Module["_proc_exit"]=_proc_exit;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["_emscripten_get_now"]=_emscripten_get_now;Module["__tzset_js"]=__tzset_js;Module["_clock_res_get"]=_clock_res_get;Module["_emscripten_get_now_res"]=_emscripten_get_now_res;Module["nowIsMonotonic"]=nowIsMonotonic;Module["checkWasiClock"]=checkWasiClock;Module["_clock_time_get"]=_clock_time_get;Module["_emscripten_date_now"]=_emscripten_date_now;Module["_create_sentinel"]=_create_sentinel;Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;Module["runEmAsmFunction"]=runEmAsmFunction;Module["readEmAsmArgs"]=readEmAsmArgs;Module["readEmAsmArgsArray"]=readEmAsmArgsArray;Module["_emscripten_get_heap_max"]=_emscripten_get_heap_max;Module["getHeapMax"]=getHeapMax;Module["_emscripten_resize_heap"]=_emscripten_resize_heap;Module["growMemory"]=growMemory;Module["_emscripten_runtime_keepalive_pop"]=_emscripten_runtime_keepalive_pop;Module["runtimeKeepalivePop"]=runtimeKeepalivePop;Module["_emscripten_runtime_keepalive_push"]=_emscripten_runtime_keepalive_push;Module["runtimeKeepalivePush"]=runtimeKeepalivePush;Module["_environ_get"]=_environ_get;Module["getEnvStrings"]=getEnvStrings;Module["ENV"]=ENV;Module["getExecutableName"]=getExecutableName;Module["_environ_sizes_get"]=_environ_sizes_get;Module["_fd_close"]=_fd_close;Module["_fd_fdstat_get"]=_fd_fdstat_get;Module["_fd_pread"]=_fd_pread;Module["doReadv"]=doReadv;Module["_fd_pwrite"]=_fd_pwrite;Module["doWritev"]=doWritev;Module["_fd_read"]=_fd_read;Module["_fd_seek"]=_fd_seek;Module["_fd_sync"]=_fd_sync;Module["_fd_write"]=_fd_write;Module["_getaddrinfo"]=_getaddrinfo;Module["_getnameinfo"]=_getnameinfo;Module["_getprotobyname"]=_getprotobyname;Module["_setprotoent"]=_setprotoent;Module["Protocols"]=Protocols;Module["stringToAscii"]=stringToAscii;Module["_is_sentinel"]=_is_sentinel;Module["_random_get"]=_random_get;Module["_wasmsh_js_http_fetch"]=_wasmsh_js_http_fetch;Module["_stackAlloc"]=_stackAlloc;Module["_stackRestore"]=_stackRestore;Module["_stackSave"]=_stackSave;Module["ccall"]=ccall;Module["getCFunc"]=getCFunc;Module["writeArrayToMemory"]=writeArrayToMemory;Module["cwrap"]=cwrap;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPath"]=FS_createPath;Module["FS_unlink"]=FS_unlink;Module["FS_createLazyFile"]=FS_createLazyFile;Module["FS_createDevice"]=FS_createDevice;Module["incrementExceptionRefcount"]=incrementExceptionRefcount;Module["getCppExceptionThrownObjectFromWebAssemblyException"]=getCppExceptionThrownObjectFromWebAssemblyException;Module["getCppExceptionTag"]=getCppExceptionTag;Module["decrementExceptionRefcount"]=decrementExceptionRefcount;Module["getExceptionMessage"]=getExceptionMessage;Module["getExceptionMessageCommon"]=getExceptionMessageCommon;var ASM_CONSTS={3386162:()=>{throw new Error("intentionally triggered fatal error!")},3386219:()=>jspiSupported,3386245:()=>{wasmImports["open64"]=wasmImports["open"]}};function new_error(type,msg,err){return new API.PythonError(UTF8ToString(type),msg,err)}new_error.sig="eiei";function fail_test(){API.fail_test=true}fail_test.sig="v";function capture_stderr(){API.capture_stderr()}capture_stderr.sig="v";function restore_stderr(){return API.restore_stderr()}restore_stderr.sig="e";function raw_call_js(func){func()}raw_call_js.sig="ve";function hiwire_invalid_ref_js(type,ref){API.fail_test=!!1;if(type===1&&!ref){if(_PyErr_Occurred()){const e=_wrap_exception();console.error("Pyodide internal error: Argument to hiwire_get is falsy. This was "+"probably because the Python error indicator was set when get_value was "+"called. The Python error that caused this was:",e);throw e}else{const msg="Pyodide internal error: Argument to hiwire_get is falsy (but error "+"indicator is not set).";console.error(msg);throw new Error(msg)}}const typestr={[1]:"get",[2]:"incref",[3]:"decref"}[type];const msg=`hiwire_${typestr} on invalid reference ${ref}. This is most likely due `+"to use after free. It may also be due to memory corruption.";console.error(msg);throw new Error(msg)}hiwire_invalid_ref_js.sig="vii";function set_pyodide_module(mod){API._pyodide=mod}set_pyodide_module.sig="ve";function js2python_immutable_js(value){try{let result=Module.js2python_convertImmutable(value);if(result!==undefined){return result}return 0}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_immutable_js.sig="ie";function js2python_js(value){try{let result=Module.js2python_convertImmutable(value);if(result!==undefined){return result}return _JsProxy_create(value)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_js.sig="ie";function js2python_convert(v,depth,defaultConverter){try{return Module.js2python_convert(v,{depth,defaultConverter})}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_convert.sig="ieie";function isReservedWord(word){if(!Module.pythonReservedWords){Module.pythonReservedWords=new Set(["False","await","else","import","pass","None","break","except","in","raise","True","class","finally","is","return","and","continue","for","lambda","try","as","def","from","nonlocal","while","assert","del","global","not","with","async","elif","if","or","yield"])}return Module.pythonReservedWords.has(word)}function normalizeReservedWords(word){const noTrailing_=word.replace(/_*$/,"");if(!isReservedWord(noTrailing_)){return word}if(noTrailing_!==word){return word.slice(0,-1)}return word}function JsProxy_GetAttr_js(jsobj,ptrkey){try{const jskey=normalizeReservedWords(UTF8ToString(ptrkey));const result=jsobj[jskey];if(result===undefined&&!(jskey in jsobj)){return Module.error}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetAttr_js.sig="eei";function JsProxy_SetAttr_js(jsobj,ptrkey,jsval){try{let jskey=normalizeReservedWords(UTF8ToString(ptrkey));jsobj[jskey]=jsval}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_SetAttr_js.sig="ieie";function JsProxy_DelAttr_js(jsobj,ptrkey){try{let jskey=normalizeReservedWords(UTF8ToString(ptrkey));delete jsobj[jskey]}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_DelAttr_js.sig="iei";function JsProxy_GetIter_js(obj){try{return obj[Symbol.iterator]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetIter_js.sig="ee";function handle_next_result_js(res,done,msg){try{let errmsg;if(typeof res!=="object"){errmsg=`Result should have type "object" not "${typeof res}"`}else if(typeof res.done==="undefined"){if(typeof res.then==="function"){errmsg=`Result was a promise, use anext() / asend() / athrow() instead.`}else{errmsg=`Result has no "done" field.`}}if(errmsg){HEAPU32[(msg>>2)+0>>>0]=stringToNewUTF8(errmsg);HEAPU32[(done>>2)+0>>>0]=-1}HEAPU32[(done>>2)+0>>>0]=res.done;return res.value}catch(e){Module.handle_js_error(e);return-1}return 0}handle_next_result_js.sig="eeii";function JsException_new_helper(name_ptr,message_ptr,stack_ptr){try{let name=UTF8ToString(name_ptr);let message=UTF8ToString(message_ptr);let stack=UTF8ToString(stack_ptr);return API.deserializeError(name,message,stack)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsException_new_helper.sig="eiii";function JsProxy_GetAsyncIter_js(obj){try{return obj[Symbol.asyncIterator]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetAsyncIter_js.sig="ee";function _agen_handle_result_js(p,msg,set_result,set_exception,closing){try{let errmsg;if(typeof p!=="object"){errmsg=`Result of anext() should be object not ${typeof p}`}else if(typeof p.then!=="function"){if(typeof p.done==="boolean"){errmsg=`Result of anext() was not a promise, use next() instead.`}else{errmsg=`Result of anext() was not a promise.`}}if(errmsg){HEAPU32[(msg>>2)+0>>>0]=stringToNewUTF8(errmsg);return-1}_Py_IncRef(set_result);_Py_IncRef(set_exception);p.then(({done,value})=>{__agen_handle_result_js_c(set_result,set_exception,done,value,closing)},err=>{__agen_handle_result_js_c(set_result,set_exception,-1,err,closing)}).finally(()=>{_Py_DecRef(set_result);_Py_DecRef(set_exception)});return 0}catch(e){Module.handle_js_error(e);return-1}return 0}_agen_handle_result_js.sig="ieiiii";function get_length_helper(val){try{let result;if(typeof val.size==="number"){result=val.size}else if(typeof val.length==="number"){result=val.length}else{return-2}if(result<0){return-3}if(result>2147483647){return-4}return result}catch(e){Module.handle_js_error(e);return-1}return 0}get_length_helper.sig="ie";function get_length_string(val){try{let result;if(typeof val.size==="number"){result=val.size}else if(typeof val.length==="number"){result=val.length}return stringToNewUTF8(" "+result.toString())}catch(e){Module.handle_js_error(e);return 0}errNoRet()}get_length_string.sig="ie";function destroy_jsarray_entries(array){for(let v of array){try{if(typeof v.destroy==="function"){v.destroy()}}catch(e){console.warn("Weird error:",e)}}}destroy_jsarray_entries.sig="ve";function JsArray_repeat_js(o,count){try{return Array.from({length:count},()=>o).flat()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsArray_repeat_js.sig="eei";function JsArray_inplace_repeat_js(o,count){try{o.splice(0,o.length,...Array.from({length:count},()=>o).flat())}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_inplace_repeat_js.sig="iei";function JsArray_reversed_iterator(array){return new ReversedIterator(array)}class ReversedIterator{constructor(array){this._array=array;this._i=array.length-1}__length_hint__(){return this._array.length}[Symbol.toStringTag](){return"ReverseIterator"}next(){const i=this._i;const a=this._array;const done=i<0;const value=done?undefined:a[i];this._i--;return{done,value}}}JsArray_reversed_iterator.sig="ee";function JsArray_index_js(o,v,start,stop){try{for(let i=start;i<stop;i++){if(o[i]===v){return i}}return-2}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_index_js.sig="ieeii";function JsArray_count_js(o,v){try{let result=0;for(let i=0;i<o.length;i++){if(o[i]===v){result++}}return result}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_count_js.sig="iee";function JsArray_reverse_js(array){try{array.reverse()}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_reverse_js.sig="ie";function JsProxy_subscript_js(obj,key){try{let result=obj.get(key);if(result===undefined){if(obj.has&&typeof obj.has==="function"&&!obj.has(key)){return Module.error}}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_subscript_js.sig="eee";function JsMap_GetIter_js(obj){try{let result;if(typeof obj.keys==="function"){result=obj.keys()}else{result=obj[Symbol.iterator]()}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsMap_GetIter_js.sig="ee";function JsMap_clear_js(map){try{if(map&&typeof map.clear==="function"){map.clear();return 1}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}JsMap_clear_js.sig="ie";function JsProxy_Dir_js(jsobj){try{let result=[];do{const names=Object.getOwnPropertyNames(jsobj);result.push(...names.filter(s=>{let c=s.charCodeAt(0);return c<48||c>57}).map(word=>isReservedWord(word.replace(/_*$/,""))?word+"_":word))}while(jsobj=Object.getPrototypeOf(jsobj));return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_Dir_js.sig="ee";function JsProxy_Bool_js(val){try{if(!val){return!!0}if(val.size===0){if(/HTML[A-Za-z]*Element/.test(getTypeTag(val))){return!!1}return!!0}if(val.length===0&&JsvArray_Check(val)){return!!0}if(val.byteLength===0){return!!0}return!!1}catch(e){return!!0}}JsProxy_Bool_js.sig="ie";function JsObjMap_GetIter_js(obj){try{return Module.iterObject(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsObjMap_GetIter_js.sig="ee";function JsObjMap_length_js(obj){try{let length=0;for(let _ of Module.iterObject(obj)){length++}return length}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_length_js.sig="ie";function JsObjMap_subscript_js(obj,key){try{if(!Object.prototype.hasOwnProperty.call(obj,key)){return Module.error}return obj[key]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsObjMap_subscript_js.sig="eee";function JsObjMap_ass_subscript_js(obj,key,value){try{if(value===Module.error){if(!Object.prototype.hasOwnProperty.call(obj,key)){return-1}delete obj[key]}else{obj[key]=value}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_ass_subscript_js.sig="ieee";function JsObjMap_contains_js(obj,key){try{return Object.prototype.hasOwnProperty.call(obj,key)}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_contains_js.sig="iee";function JsModule_GetAll_js(o){try{return Object.getOwnPropertyNames(o)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsModule_GetAll_js.sig="ee";function JsBuffer_DecodeString_js(buffer,encoding){try{let encoding_js;if(encoding){encoding_js=UTF8ToString(encoding)}const decoder=new TextDecoder(encoding_js,{fatal:!!1,ignoreBOM:!!1});let res;try{res=decoder.decode(buffer)}catch(e){if(e instanceof TypeError){return Module.error}throw e}return res}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsBuffer_DecodeString_js.sig="eei";function JsBuffer_get_info(jsobj,byteLength_ptr,format_ptr,size_ptr,checked_ptr){const[format_utf8,size,checked]=Module.get_buffer_datatype(jsobj);HEAPU32[(byteLength_ptr>>2)+0>>>0]=jsobj.byteLength;HEAPU32[(format_ptr>>2)+0>>>0]=format_utf8;HEAPU32[(size_ptr>>2)+0>>>0]=size;HEAPU8[checked_ptr+0>>>0]=checked}JsBuffer_get_info.sig="veiiii";function JsDoubleProxy_unwrap_js(id){try{return Module.PyProxy_getPtr(id)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}JsDoubleProxy_unwrap_js.sig="ie";function JsProxy_to_weakref_js(pyproxy){try{return new WeakRef(pyproxy)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_to_weakref_js.sig="ee";function JsProxy_compute_typeflags(obj,is_py_json){try{let type_flags=0;if(API.isPyProxy(obj)&&!pyproxyIsAlive(obj)){return 0}const typeTag=getTypeTag(obj);function safeBool(cb){try{return cb()}catch(e){return!!0}}const isBufferView=safeBool(()=>ArrayBuffer.isView(obj));const isArray=safeBool(()=>Array.isArray(obj));const constructorName=safeBool(()=>obj.constructor.name)||"";if(typeof obj==="function"){type_flags|=1<<9}if(hasMethod(obj,"then")){type_flags|=1<<7}if(hasMethod(obj,Symbol.iterator)){type_flags|=1<<0}if(hasMethod(obj,Symbol.asyncIterator)){type_flags|=1<<15}if(hasMethod(obj,"next")&&(hasMethod(obj,Symbol.iterator)||!hasMethod(obj,Symbol.asyncIterator))){type_flags|=1<<1}if(hasMethod(obj,"next")&&(!hasMethod(obj,Symbol.iterator)||hasMethod(obj,Symbol.asyncIterator))){type_flags|=1<<18}if(hasProperty(obj,"size")||hasProperty(obj,"length")&&typeof obj!=="function"){type_flags|=1<<2}if(hasMethod(obj,"get")){type_flags|=1<<3}if(hasMethod(obj,"set")){type_flags|=1<<4}if(hasMethod(obj,"has")){type_flags|=1<<5}if(hasMethod(obj,"includes")){type_flags|=1<<6}if((isBufferView||typeTag==="[object ArrayBuffer]")&&!(type_flags&1<<9)){type_flags|=1<<8}if(API.isPyProxy(obj)){type_flags|=1<<13}if(isArray){type_flags|=1<<10}if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){type_flags|=1<<11}if(isBufferView&&typeTag!=="[object DataView]"){type_flags|=1<<12}if(typeTag==="[object Generator]"){type_flags|=1<<16}if(typeTag==="[object AsyncGenerator]"){type_flags|=1<<17}if(hasProperty(obj,"name")&&hasProperty(obj,"message")&&(hasProperty(obj,"stack")||constructorName==="DOMException")&&!(type_flags&(1<<9|1<<8))){type_flags|=1<<19}if(is_py_json&&type_flags&(1<<10|1<<11|1<<1)){type_flags|=1<<21}if(is_py_json&&!(type_flags&(1<<10|1<<12|1<<11|1<<8|1<<13|1<<1|1<<9|1<<19))){type_flags|=1<<20}return type_flags}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_compute_typeflags.sig="iei";function is_comlink_proxy(obj){try{return!!(API.Comlink&&value[API.Comlink.createEndpoint])}catch(e){return!!0}}is_comlink_proxy.sig="ie";function can_run_sync_js(){return!!validSuspender.value}can_run_sync_js.sig="i";function my_dict_converter(){return Object.fromEntries}my_dict_converter.sig="e";function get_async_js_call_done_callback(proxies){try{return function(result){let msg="This borrowed proxy was automatically destroyed "+"at the end of an asynchronous function call. Try "+"using create_proxy or create_once_callable.";for(let px of proxies){Module.pyproxy_destroy(px,msg,!!0)}if(API.isPyProxy(result)){Module.pyproxy_destroy(result,msg,!!0)}}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}get_async_js_call_done_callback.sig="ee";function wrap_generator(gen,proxies){try{proxies=new Set(proxies);const msg="This borrowed proxy was automatically destroyed "+"when a generator completed execution. Try "+"using create_proxy or create_once_callable.";function cleanup(){proxies.forEach(px=>Module.pyproxy_destroy(px,msg))}function wrap(funcname){return function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return{get[Symbol.toStringTag](){return"Generator"},[Symbol.iterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}wrap_generator.sig="eee";function wrap_async_generator(gen,proxies){try{proxies=new Set(proxies);const msg="This borrowed proxy was automatically destroyed "+"when an asynchronous generator completed execution. Try "+"using create_proxy or create_once_callable.";function cleanup(){proxies.forEach(px=>Module.pyproxy_destroy(px,msg))}function wrap(funcname){return async function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=await gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return{get[Symbol.toStringTag](){return"AsyncGenerator"},[Symbol.asyncIterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}wrap_async_generator.sig="eee";function throw_no_gil(){throw new API.NoGilError("Attempted to use PyProxy when Python GIL not held")}throw_no_gil.sig="v";function pyproxy_Check(val){return API.isPyProxy(val)}pyproxy_Check.sig="ie";function pyproxy_AsPyObject(val){if(!API.isPyProxy(val)||!pyproxyIsAlive(val)){return 0}return Module.PyProxy_getPtr(val)}pyproxy_AsPyObject.sig="ie";function destroy_proxies(proxies,msg_ptr){let msg=undefined;if(msg_ptr){msg=_JsvString_FromId(msg_ptr)}for(let px of proxies){Module.pyproxy_destroy(px,msg,false)}}destroy_proxies.sig="vei";function gc_register_proxies(proxies){for(let px of proxies){Module.gc_register_proxy(Module.PyProxy_getAttrs(px).shared)}}gc_register_proxies.sig="ve";function destroy_proxy(px,msg_ptr){const{shared,props}=Module.PyProxy_getAttrsQuiet(px);if(!shared.ptr){return}if(props.roundtrip){return}let msg=undefined;if(msg_ptr){msg=_JsvString_FromId(msg_ptr)}Module.pyproxy_destroy(px,msg,false)}destroy_proxy.sig="vei";function proxy_cache_get(proxyCache,descr){const proxy=proxyCache.get(descr);if(!proxy){return Module.error}if(pyproxyIsAlive(proxy)){return proxy}else{proxyCache.delete(descr);return Module.error}}proxy_cache_get.sig="eei";function proxy_cache_set(proxyCache,descr,proxy){proxyCache.set(descr,proxy)}proxy_cache_set.sig="veie";function _pyproxyGen_make_result(done,value){return{done:!!done,value}}_pyproxyGen_make_result.sig="eie";function array_to_js(array,len){return Array.from(HEAP32.subarray(array/4>>>0,array/4+len>>>0))}array_to_js.sig="eii";function _pyproxy_get_buffer_result(start_ptr,smallest_ptr,largest_ptr,readonly,format,itemsize,shape,strides,view,c_contiguous,f_contiguous,sentinel){format=UTF8ToString(format);return{start_ptr,smallest_ptr,largest_ptr,readonly,format,itemsize,shape,strides,view,c_contiguous,f_contiguous}}_pyproxy_get_buffer_result.sig="eiiiiiieeiiii";function pyproxy_new_ex(ptrobj,capture_this,roundtrip,gcRegister,jsonAdaptor){try{return Module.pyproxy_new(ptrobj,{props:{captureThis:!!capture_this,roundtrip:!!roundtrip},gcRegister,jsonAdaptor})}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}pyproxy_new_ex.sig="eiiiii";function pyproxy_new(ptrobj){try{return Module.pyproxy_new(ptrobj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}pyproxy_new.sig="ei";function create_once_callable(obj,may_syncify){try{_Py_IncRef(obj);let alreadyCalled=!!0;function wrapper(...args){if(alreadyCalled){throw new Error("OnceProxy can only be called once")}try{if(may_syncify){return Module.callPyObjectMaybePromising(obj,args)}else{return Module.callPyObject(obj,args)}}finally{wrapper.destroy()}}wrapper.destroy=function(){if(alreadyCalled){throw new Error("OnceProxy has already been destroyed")}alreadyCalled=!!1;Module.finalizationRegistry.unregister(wrapper);_Py_DecRef(obj)};Module.finalizationRegistry.register(wrapper,[obj,undefined],wrapper);return wrapper}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}create_once_callable.sig="eii";function create_promise_handles(handle_result,handle_exception,done_callback,js2py_converter){try{if(handle_result){_Py_IncRef(handle_result)}if(handle_exception){_Py_IncRef(handle_exception)}if(js2py_converter){_Py_IncRef(js2py_converter)}if(!done_callback){done_callback=x=>{}}let used=!!0;function checkUsed(){if(used){throw new Error("One of the promise handles has already been called.")}}function destroy(){checkUsed();used=!!1;if(handle_result){_Py_DecRef(handle_result)}if(handle_exception){_Py_DecRef(handle_exception)}if(js2py_converter){_Py_DecRef(js2py_converter)}}function onFulfilled(res){checkUsed();try{if(handle_result){return _create_promise_handles_result_helper(handle_result,js2py_converter,res)}}finally{done_callback(res);destroy()}}function onRejected(err){checkUsed();try{if(handle_exception){return Module.callPyObjectMaybePromising(handle_exception,[err])}}finally{done_callback(undefined);destroy()}}onFulfilled.destroy=destroy;onRejected.destroy=destroy;return[onFulfilled,onRejected]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}create_promise_handles.sig="eiiei";function _python2js_buffer_inner(buf,itemsize,ndim,format,shape,strides,suboffsets){try{let converter=Module.get_converter(format,itemsize);return Module._python2js_buffer_recursive(buf,0,{ndim,format,itemsize,shape,strides,suboffsets,converter})}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_buffer_inner.sig="eiiiiiii";function jslib_init_js(){try{HEAP32[_Jsr_undefined/4>>>0]=_hiwire_intern(undefined);HEAP32[_Jsr_true/4>>>0]=_hiwire_intern(true);HEAP32[_Jsr_false/4>>>0]=_hiwire_intern(false);HEAP32[_Jsr_error/4>>>0]=_hiwire_intern(_Jsv_GetNull());HEAP32[_Jsr_novalue/4>>>0]=_hiwire_intern({noValueMarker:1});Module.novalue=_hiwire_get(HEAP32[_Jsr_novalue/4>>>0]);Module.error=_hiwire_get(HEAP32[_Jsr_error/4>>>0]);Hiwire.num_keys=_hiwire_num_refs;return 0}catch(e){Module.handle_js_error(e);return-1}return 0}jslib_init_js.sig="i";function JsvNoValue_Check(v){return v===Module.novalue}JsvNoValue_Check.sig="ie";function JsvNum_fromInt(x){return x}JsvNum_fromInt.sig="ei";function JsvNum_fromDouble(val){return val}JsvNum_fromDouble.sig="ed";function JsvNum_fromDigits(digits,ndigits){let result=BigInt(0);for(let i=0;i<ndigits;i++){result+=BigInt(HEAPU32[(digits>>2)+i>>>0])<<BigInt(32*i)}result+=BigInt(HEAPU32[(digits>>2)+ndigits-1>>>0]&2147483648)<<BigInt(1+32*(ndigits-1));if(-Number.MAX_SAFE_INTEGER<result&&result<Number.MAX_SAFE_INTEGER){result=Number(result)}return result}JsvNum_fromDigits.sig="eii";function Jsv_to_bool(x){return!!x}Jsv_to_bool.sig="ie";function Jsv_typeof(x){return typeof x}Jsv_typeof.sig="ee";function Jsv_constructorName(obj){try{return stringToNewUTF8(obj.constructor.name)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}Jsv_constructorName.sig="ie";function JsvUTF8ToString(ptr){return UTF8ToString(ptr)}JsvUTF8ToString.sig="ei";function JsvArray_New(){return[]}JsvArray_New.sig="e";function JsvArray_Check(obj){try{if(Array.isArray(obj)){return true}let typeTag=getTypeTag(obj);if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){return true}if(ArrayBuffer.isView(obj)&&obj.constructor.name!=="DataView"){return true}return false}catch(e){return false}}JsvArray_Check.sig="ie";function JsvArray_Get(arr,idx){try{const result=arr[idx];if(result===undefined&&!(idx in arr)){return Module.error}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_Get.sig="eei";function JsvArray_Set(arr,idx,val){try{arr[idx]=val}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_Set.sig="ieie";function JsvArray_Delete(arr,idx){try{if(idx<0||idx>=arr.length){return Module.error}return arr.splice(idx,1)[0]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_Delete.sig="eei";function JsvArray_Push(arr,obj){return arr.push(obj)}JsvArray_Push.sig="iee";function JsvArray_Extend(arr,vals){arr.push(...vals)}JsvArray_Extend.sig="vee";function JsvArray_Insert(arr,idx,value){try{arr.splice(idx,0,value)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_Insert.sig="ieie";function JsvArray_ShallowCopy(arr){try{return"slice"in arr?arr.slice():Array.from(arr)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_ShallowCopy.sig="ee";function JsvArray_slice(obj,length,start,stop,step){try{let result;if(step===1){result=obj.slice(start,stop)}else{result=Array.from({length},(_,i)=>obj[start+i*step])}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_slice.sig="eeiiii";function JsvArray_slice_assign(obj,slicelength,start,stop,step,values_length,values){try{let jsvalues=[];for(let i=0;i<values_length;i++){const ref=_python2js(HEAPU32[(values>>2)+i>>>0]);if(ref===Module.error){return-1}jsvalues.push(ref)}if(step===1){obj.splice(start,slicelength,...jsvalues)}else{if(values!==0){for(let i=0;i<slicelength;i++){obj.splice(start+i*step,1,jsvalues[i])}}else{for(let i=slicelength-1;i>=0;i--){obj.splice(start+i*step,1)}}}}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_slice_assign.sig="ieiiiiii";function JsvObject_New(){return{}}JsvObject_New.sig="e";function JsvObject_SetAttr(obj,attr,value){try{obj[attr]=value}catch(e){Module.handle_js_error(e);return-1}return 0}JsvObject_SetAttr.sig="ieee";function JsvObject_Entries(obj){try{return Object.entries(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Entries.sig="ee";function JsvObject_Keys(obj){try{return Object.keys(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Keys.sig="ee";function JsvObject_Values(obj){try{return Object.values(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Values.sig="ee";function JsvObject_toString(obj){try{if(hasMethod(obj,"toString")){return obj.toString()}return Object.prototype.toString.call(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_toString.sig="ee";function JsvObject_CallMethod(obj,meth,args){try{return obj[meth](...args)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod.sig="eeee";function JsvObject_CallMethod_NoArgs(obj,meth){try{return obj[meth]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_NoArgs.sig="eee";function JsvObject_CallMethod_OneArg(obj,meth,arg){try{return obj[meth](arg)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_OneArg.sig="eeee";function JsvObject_CallMethod_TwoArgs(obj,meth,arg1,arg2){try{return obj[meth](arg1,arg2)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_TwoArgs.sig="eeeee";function JsvFunction_Check(obj){try{return typeof obj==="function"}catch(e){return false}}JsvFunction_Check.sig="ie";function JsvFunction_CallBound(func,this_,args){try{return Function.prototype.apply.apply(func,[this_,args])}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_CallBound.sig="eeee";function JsvFunction_Call_OneArg(func,arg){try{return func(arg)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_Call_OneArg.sig="eee";function JsvFunction_Construct(func,args){try{return Reflect.construct(func,args)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_Construct.sig="eee";function JsvPromise_Check(obj){try{return isPromise(obj)}catch(e){return false}}JsvPromise_Check.sig="ie";function JsvPromise_Resolve(obj){try{return Promise.resolve(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvPromise_Resolve.sig="ee";function jslib_init_buffers_js(){try{const dtypes_str=Array.from("bBhHiIqQfd").join(String.fromCharCode(0));const dtypes_ptr=stringToNewUTF8(dtypes_str);const dtypes_map=Object.fromEntries(Object.entries(dtypes_str).map(([idx,val])=>[val,dtypes_ptr+ +idx]));const buffer_datatype_map=new Map([["Int8Array",[dtypes_map["b"],1,true]],["Uint8Array",[dtypes_map["B"],1,true]],["Uint8ClampedArray",[dtypes_map["B"],1,true]],["Int16Array",[dtypes_map["h"],2,true]],["Uint16Array",[dtypes_map["H"],2,true]],["Int32Array",[dtypes_map["i"],4,true]],["Uint32Array",[dtypes_map["I"],4,true]],["Float32Array",[dtypes_map["f"],4,true]],["Float64Array",[dtypes_map["d"],8,true]],["BigInt64Array",[dtypes_map["q"],8,true]],["BigUint64Array",[dtypes_map["Q"],8,true]],["DataView",[dtypes_map["B"],1,false]],["ArrayBuffer",[dtypes_map["B"],1,false]]]);Module.get_buffer_datatype=function(jsobj){return buffer_datatype_map.get(jsobj.constructor.name)||[0,0,false]}}catch(e){Module.handle_js_error(e);return-1}return 0}jslib_init_buffers_js.sig="i";function JsvBuffer_assignToPtr(buf,ptr){try{Module.HEAPU8.set(bufferAsUint8Array(buf),ptr)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_assignToPtr.sig="iei";function JsvBuffer_assignFromPtr(buf,ptr){try{bufferAsUint8Array(buf).set(Module.HEAPU8.subarray(ptr,ptr+buf.byteLength))}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_assignFromPtr.sig="iei";function JsvBuffer_readFromFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.read(stream,uint8_buf,0,uint8_buf.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_readFromFile.sig="iei";function JsvBuffer_writeToFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buf,0,uint8_buf.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_writeToFile.sig="iei";function JsvBuffer_intoFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buf,0,uint8_buf.byteLength,undefined,true)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_intoFile.sig="iei";function JsvGenerator_Check(obj){try{return getTypeTag(obj)==="[object Generator]"}catch(e){return false}}JsvGenerator_Check.sig="ie";function JsvAsyncGenerator_Check(obj){try{return getTypeTag(obj)==="[object AsyncGenerator]"}catch(e){return false}}JsvAsyncGenerator_Check.sig="ie";function JsvError_Throw(e){throw e}JsvError_Throw.sig="ve";function Jsv_less_than(a,b){try{return!!(a<b)}catch(e){return false}}Jsv_less_than.sig="iee";function Jsv_less_than_equal(a,b){try{return!!(a<=b)}catch(e){return false}}Jsv_less_than_equal.sig="iee";function Jsv_equal(a,b){try{return!!(a===b)}catch(e){return false}}Jsv_equal.sig="iee";function Jsv_not_equal(a,b){try{return!!(a!==b)}catch(e){return false}}Jsv_not_equal.sig="iee";function Jsv_greater_than(a,b){try{return!!(a>b)}catch(e){return false}}Jsv_greater_than.sig="iee";function Jsv_greater_than_equal(a,b){try{return!!(a>=b)}catch(e){return false}}Jsv_greater_than_equal.sig="iee";function JsvMap_New(){try{return new Map}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvMap_New.sig="e";function JsvLiteralMap_New(){try{return new API.LiteralMap}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvLiteralMap_New.sig="e";function JsvMap_Set(map,key,val){try{map.set(key,val)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvMap_Set.sig="ieee";function JsvSet_New(){try{return new Set}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvSet_New.sig="e";function JsvSet_Add(set,val){try{set.add(val)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvSet_Add.sig="iee";function _python2js_addto_postprocess_list(list,parent,key,value){list.push([parent,key,value])}_python2js_addto_postprocess_list.sig="veeei";function _python2js_handle_postprocess_list(list,cache){for(const[parent,key,ptr]of list){let val=cache.get(ptr);if(parent.constructor.name==="LiteralMap"){parent.set(key,val)}else{parent[key]=val}}}_python2js_handle_postprocess_list.sig="vee";function _python2js_ucs1(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCharCode(HEAPU8[ptr+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs1.sig="eii";function _python2js_ucs2(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCharCode(HEAPU16[(ptr>>1)+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs2.sig="eii";function _python2js_ucs4(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCodePoint(HEAPU32[(ptr>>2)+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs4.sig="eii";function _python2js_add_to_cache(cache,pyparent,jsparent){try{cache.set(pyparent,jsparent)}catch(e){Module.handle_js_error(e);return-1}return 0}_python2js_add_to_cache.sig="ieie";function _python2js_cache_lookup(cache,pyparent){return cache.get(pyparent)||Module.error}_python2js_cache_lookup.sig="eei";function _JsObject_Set_js(obj,key,value){try{if(key in obj){return-2}obj[key]=value}catch(e){Module.handle_js_error(e);return-1}return 0}_JsObject_Set_js.sig="ieee";function _JsArray_PushEntry_helper(array,key,value){try{array.push([key,value])}catch(e){Module.handle_js_error(e);return-1}return 0}_JsArray_PushEntry_helper.sig="ieee";function _JsArray_PostProcess_helper(jscontext,array){try{return jscontext.dict_converter(array)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_JsArray_PostProcess_helper.sig="eee";function python2js__default_converter_js(jscontext,object){try{let proxy=Module.pyproxy_new(object);try{return jscontext.default_converter(proxy,jscontext.converter,jscontext.cacheConversion)}finally{proxy.destroy()}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js__default_converter_js.sig="eei";function python2js__eager_converter_js(jscontext,object){try{if(jscontext.eager_visited.has(object)){return Module.novalue}jscontext.eager_visited.add(object);const proxy=Module.pyproxy_new(object);try{return jscontext.eager_converter(proxy,jscontext.converter,jscontext.cacheConversion)}finally{proxy.destroy()}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js__eager_converter_js.sig="eei";function python2js_custom__create_jscontext(context,cache,dict_converter,default_converter,eager_converter){try{const jscontext={};if(dict_converter){jscontext.dict_converter=dict_converter}if(default_converter){jscontext.default_converter=default_converter;jscontext.cacheConversion=function(input,output){if(!API.isPyProxy(input)){throw new TypeError("The first argument to cacheConversion must be a PyProxy.")}const input_ptr=Module.PyProxy_getPtr(input);cache.set(input_ptr,output)}}if(eager_converter){jscontext.eager_converter=eager_converter;jscontext.eager_visited=new Set}if(default_converter||eager_converter){jscontext.converter=function(x){if(!API.isPyProxy(x)){return x}const ptr=Module.PyProxy_getPtr(x);let res;try{res=__python2js(context,ptr)}catch(e){API.fatal_error(e)}if(res===Module.error){_pythonexc2js()}return res}}return jscontext}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js_custom__create_jscontext.sig="eieeee";function destroy_proxies_js(proxies_id){try{for(const proxy of proxies_id){proxy.destroy()}}catch(e){Module.handle_js_error(e);return-1}return 0}destroy_proxies_js.sig="ie";function pyodide_js_init(){"use strict";(()=>{var Dr=Object.create;var ze=Object.defineProperty;var Rr=Object.getOwnPropertyDescriptor;var Lr=Object.getOwnPropertyNames;var $r=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var a=(t,e)=>ze(t,"name",{value:e,configurable:!0}),b=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Ur=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Lr(e))!Cr.call(t,o)&&o!==r&&ze(t,o,{get:()=>e[o],enumerable:!(n=Rr(e,o))||n.enumerable});return t};function Br(t){return!isNaN(parseFloat(t))&&isFinite(t)}a(Br,"_isNumber");function D(t){return t.charAt(0).toUpperCase()+t.substring(1)}a(D,"_capitalize");function Ge(t){return function(){return this[t]}}a(Ge,"_getter");var $=["isConstructor","isEval","isNative","isToplevel"],C=["columnNumber","lineNumber"],U=["fileName","functionName","source"],Hr=["args"],jr=["evalOrigin"],se=$.concat(C,U,Hr,jr);function v(t){if(t)for(var e=0;e<se.length;e++)t[se[e]]!==void 0&&this["set"+D(se[e])](t[se[e]])}a(v,"StackFrame");v.prototype={getArgs:a(function(){return this.args},"getArgs"),setArgs:a(function(t){if(Object.prototype.toString.call(t)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=t},"setArgs"),getEvalOrigin:a(function(){return this.evalOrigin},"getEvalOrigin"),setEvalOrigin:a(function(t){if(t instanceof v)this.evalOrigin=t;else if(t instanceof Object)this.evalOrigin=new v(t);else throw new TypeError("Eval Origin must be an Object or StackFrame")},"setEvalOrigin"),toString:a(function(){var t=this.getFileName()||"",e=this.getLineNumber()||"",r=this.getColumnNumber()||"",n=this.getFunctionName()||"";return this.getIsEval()?t?"[eval] ("+t+":"+e+":"+r+")":"[eval]:"+e+":"+r:n?n+" ("+t+":"+e+":"+r+")":t+":"+e+":"+r},"toString")};v.fromString=a(function(e){var r=e.indexOf("("),n=e.lastIndexOf(")"),o=e.substring(0,r),i=e.substring(r+1,n).split(","),s=e.substring(n+1);if(s.indexOf("@")===0)var l=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(s,""),c=l[1],u=l[2],y=l[3];return new v({functionName:o,args:i||void 0,fileName:c,lineNumber:u||void 0,columnNumber:y||void 0})},"StackFrame$$fromString");for(O=0;O<$.length;O++)v.prototype["get"+D($[O])]=Ge($[O]),v.prototype["set"+D($[O])]=function(t){return function(e){this[t]=!!e}}($[O]);var O;for(T=0;T<C.length;T++)v.prototype["get"+D(C[T])]=Ge(C[T]),v.prototype["set"+D(C[T])]=function(t){return function(e){if(!Br(e))throw new TypeError(t+" must be a Number");this[t]=Number(e)}}(C[T]);var T;for(F=0;F<U.length;F++)v.prototype["get"+D(U[F])]=Ge(U[F]),v.prototype["set"+D(U[F])]=function(t){return function(e){this[t]=String(e)}}(U[F]);var F,le=v;function Wr(){var t=/^\s*at .*(\S+:\d+|\(native\))/m,e=/^(eval@)?(\[native code])?$/;return{parse:a(function(n){if(n.stack&&n.stack.match(t))return this.parseV8OrIE(n);if(n.stack)return this.parseFFOrSafari(n);throw new Error("Cannot parse given Error object")},"ErrorStackParser$$parse"),extractLocation:a(function(n){if(n.indexOf(":")===-1)return[n];var o=/(.+?)(?::(\d+))?(?::(\d+))?$/,i=o.exec(n.replace(/[()]/g,""));return[i[1],i[2]||void 0,i[3]||void 0]},"ErrorStackParser$$extractLocation"),parseV8OrIE:a(function(n){var o=n.stack.split(`\n`).filter(function(i){return!!i.match(t)},this);return o.map(function(i){i.indexOf("(eval ")>-1&&(i=i.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var s=i.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),l=s.match(/ (\(.+\)$)/);s=l?s.replace(l[0],""):s;var c=this.extractLocation(l?l[1]:s),u=l&&s||void 0,y=["eval","<anonymous>"].indexOf(c[0])>-1?void 0:c[0];return new le({functionName:u,fileName:y,lineNumber:c[1],columnNumber:c[2],source:i})},this)},"ErrorStackParser$$parseV8OrIE"),parseFFOrSafari:a(function(n){var o=n.stack.split(`\n`).filter(function(i){return!i.match(e)},this);return o.map(function(i){if(i.indexOf(" > eval")>-1&&(i=i.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),i.indexOf("@")===-1&&i.indexOf(":")===-1)return new le({functionName:i});var s=/((.*".+"[^@]*)?[^@]*)(?:@)/,l=i.match(s),c=l&&l[1]?l[1]:void 0,u=this.extractLocation(i.replace(s,""));return new le({functionName:c,fileName:u[0],lineNumber:u[1],columnNumber:u[2],source:i})},this)},"ErrorStackParser$$parseFFOrSafari")}}a(Wr,"ErrorStackParser");var zr=new Wr;var Ve=zr;function Mt(t){if(typeof t=="string")t=new Error(t);else if(t&&typeof t=="object"&&t.name==="ExitStatus"){let e=t.status;t=new z(t.message),t.status=e}else if(typeof t!="object"||t===null||typeof t.stack!="string"||typeof t.message!="string"){let e=API.getTypeTag(t),r=`A value of type ${typeof t} with tag ${e} was thrown as an error!`;try{r+=`\nString interpolation of the thrown value gives """${t}""".`}catch{r+=`\nString interpolation of the thrown value fails.`}try{r+=`\nThe thrown value's toString method returns """${t.toString()}""".`}catch{r+=`\nThe thrown value's toString method fails.`}t=new Error(r)}return t}a(Mt,"ensureCaughtObjectIsError");var Ke=class extends Error{static{a(this,"CppException")}constructor(e,r,n){let o=Module.getCppExceptionThrownObjectFromWebAssemblyException(n);r||(r=`The exception is an object of type ${e} at address ${o} which does not inherit from std::exception`),super(r),this.ty=e}get name(){return`${this.constructor.name} ${this.ty}`}},Gr=WebAssembly.Exception,Vr=a(t=>t instanceof Gr,"isWasmException");function Nt(t){let[e,r]=Module.getExceptionMessage(t);return new Ke(e,r,t)}a(Nt,"convertCppException");Tests.convertCppException=Nt;var Et=!1;API.fatal_error=function(t){if(t&&t.pyodide_fatal_error)return;if(Et){console.error("Recursive call to fatal_error. Inner error was:"),console.error(t);return}if(t instanceof G)throw t;typeof t=="number"||Vr(t)?t=Nt(t):t=Mt(t),t.pyodide_fatal_error=!0,Et=!0;let e=t instanceof z;e||(console.error("Pyodide has suffered a fatal error. Please report this to the Pyodide maintainers."),console.error("The cause of the fatal error was:"),API.inTestHoist?(console.error(t.toString()),console.error(t.stack)):console.error(t));try{e||_dump_traceback();let n=`Pyodide already ${e?"exited":"fatally failed"} and can no longer be used.`;for(let o of Reflect.ownKeys(API.public_api))typeof o=="string"&&o.startsWith("_")||o==="version"||Object.defineProperty(API.public_api,o,{enumerable:!0,configurable:!0,get:a(()=>{throw new Error(n)},"get")});API.on_fatal&&API.on_fatal(t)}catch(r){console.error("Another error occurred while handling the fatal error:"),console.error(r)}throw t};API.maybe_fatal_error=function(t){API._skip_unwind_fatal_error&&t==="unwind"||API.fatal_error(t)};var Je=[];API.capture_stderr=function(){Je=[],Module.FS.createDevice("/dev","capture_stderr",null,t=>Je.push(t)),Module.FS.closeStream(2),Module.FS.open("/dev/capture_stderr",1)};API.restore_stderr=function(){return Module.FS.closeStream(2),Module.FS.unlink("/dev/capture_stderr"),Module.FS.open("/dev/stderr",1),UTF8ArrayToString(new Uint8Array(Je))};API.fatal_loading_error=function(...t){let e=t.join(" ");if(_PyErr_Occurred()){API.capture_stderr(),_PyErr_Print();let r=API.restore_stderr();e+=`\n`+r}throw new ce(e)};function qe(t){if(!t)return!1;let e=t.fileName||"";if(e.includes("wasm-function"))return!0;if(!e.includes("pyodide.asm.js"))return!1;let r=t.functionName||"";return r.startsWith("Object.")&&(r=r.slice(7)),API.public_api&&r in API.public_api&&r!=="PythonError"?(t.functionName=r,!1):!0}a(qe,"isPyodideFrame");function kt(t){return qe(t)&&t.functionName==="new_error"}a(kt,"isErrorStart");Module.handle_js_error=function(t){if(t&&t.pyodide_fatal_error)throw t;if(t instanceof w)return;let e=!1;t instanceof R&&(e=_restore_sys_last_exception(t.__error_address));let r,n;try{r=Ve.parse(t)}catch{n=!0}if(n&&(t=Mt(t)),!e){let o=_JsProxy_create(t);_set_error(o),_Py_DecRef(o)}if(!n){if(kt(r[0])||kt(r[1]))for(;qe(r[0]);)r.shift();for(let o of r){if(qe(o))break;let i=stringToNewUTF8(o.functionName||"???"),s=stringToNewUTF8(o.fileName||"???.js");__PyTraceback_Add(i,s,o.lineNumber),_free(i),_free(s)}}};var R=class extends Error{static{a(this,"PythonError")}constructor(e,r,n){let o=Error.stackTraceLimit;Error.stackTraceLimit=1/0,super(r),Error.stackTraceLimit=o,this.type=e,this.__error_address=n}};API.PythonError=R;var w=class extends Error{static{a(this,"_PropagatePythonError")}constructor(){super("If you are seeing this message, an internal Pyodide error has occurred. Please report it to the Pyodide maintainers.")}};Module._PropagatePythonError=w;function Kr(t){Object.defineProperty(t.prototype,"name",{value:t.name})}a(Kr,"setName");var ce=class extends Error{static{a(this,"FatalPyodideError")}},z=class extends Error{static{a(this,"Exit")}},G=class extends Error{static{a(this,"NoGilError")}};[w,ce,z,R,G].forEach(Kr);API.NoGilError=G;API.errorConstructors=new Map([EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(t=>t).map(t=>[t.constructor.name,t]));API.deserializeError=function(t,e,r){let n=API.errorConstructors.get(t)||Error,o=new n(e);return API.errorConstructors.has(t)||(o.name=t),o.message=e,o.stack=r,o};function Jr(t){let e=0,r=[];for(let s of t){let l=s.codePointAt(0);r.push(l),e=l>e?l:e}let n=r.length,o=_PyUnicode_New(n,e);if(o===0)throw new w;let i=_PyUnicode_Data(o);if(e>65535)for(let s=0;s<n;s++)HEAPU32[(i>>2)+s>>>0]=r[s];else if(e>255)for(let s=0;s<n;s++)HEAPU16[(i>>1)+s>>>0]=r[s];else for(let s=0;s<n;s++)HEAPU8[i+s>>>0]=r[s];return o}a(Jr,"js2python_string");function qr(t){let e=t,r=0;for(t<0&&(t=-t),t<<=BigInt(1);t;)r++,t>>=BigInt(32);let n=stackSave(),o=stackAlloc(r*4);t=e;for(let s=0;s<r;s++)HEAPU32[(o>>2)+s>>>0]=Number(t&BigInt(4294967295)),t>>=BigInt(32);let i=__PyLong_FromByteArray(o,r*4,!0,!0);return stackRestore(n),i}a(qr,"js2python_bigint");function V(t){let e=Yr(t);if(e===0)throw new w;return e}a(V,"js2python_convertImmutable");Module.js2python_convertImmutable=V;function Yr(t){let e=typeof t;if(e==="string")return Jr(t);if(e==="number")return Number.isSafeInteger(t)?_PyLong_FromDouble(t):_PyFloat_FromDouble(t);if(e==="bigint")return qr(t);if(t===void 0)return __js2python_none();if(t===null)return __js2python_null();if(t===!0)return __js2python_true();if(t===!1)return __js2python_false();if(API.isPyProxy(t)){let{props:r,shared:n}=Module.PyProxy_getAttrs(t);return r.roundtrip?_JsProxy_create(t):__js2python_pyproxy(n.ptr)}}a(Yr,"js2python_convertImmutableInner");function Qr(t,e){let r=_PyList_New(t.length);if(r===0)return 0;let n=0;try{e.cache.set(t,r);for(let o=0;o<t.length;o++){if(n=ue(t[o],e),_Py_IncRef(n),_PyList_SetItem(r,o,n)===-1)throw new w;_Py_DecRef(n),n=0}}catch(o){throw _Py_DecRef(n),_Py_DecRef(r),o}return r}a(Qr,"js2python_convertList");function Ot(t,e,r){let n=_PyDict_New();if(n===0)return 0;let o=0,i=0;try{r.cache.set(t,n);for(let[s,l]of e){if(o=V(s),o===void 0){let c=s.constructor&&s.constructor.name||typeof s;throw new Error(`Cannot use key of type ${c} as a key to a Python dict`)}if(i=ue(l,r),_PyDict_SetItem(n,o,i)===-1)throw new w;_Py_DecRef(o),o=0,_Py_DecRef(i),i=0}}catch(s){throw _Py_DecRef(o),_Py_DecRef(i),_Py_DecRef(n),s}return n}a(Ot,"js2python_convertMap");function Xr(t,e){let r=_PySet_New(0);if(r===0)return 0;let n=0;try{e.cache.set(t,r);for(let o of t){if(n=V(o),n===void 0){let s=o.constructor&&o.constructor.name||typeof o;throw new Error(`Cannot use key of type ${s} as a key to a Python set`)}if(_PySet_Add(r,n)===-1)throw new w;_Py_DecRef(n),n=0}}catch(o){throw _Py_DecRef(n),_Py_DecRef(r),o}return r}a(Xr,"js2python_convertSet");function Tt(t,e){if(t.has(1)&&t.has(!0))throw new Error(`Cannot faithfully convert ${e} into Python since it contains both 1 and true as keys.`);if(t.has(0)&&t.has(!1))throw new Error(`Cannot faithfully convert ${e} into Python since it contains both 0 and false as keys.`)}a(Tt,"checkBoolIntCollision");function Zr(t,e){let r=getTypeTag(t);if(Array.isArray(t)||t==="[object HTMLCollection]"||t==="[object NodeList]")return Qr(t,e);if(r==="[object Map]"||t instanceof Map)return Tt(t,"Map"),Ot(t,t.entries(),e);if(r==="[object Set]"||t instanceof Set)return Tt(t,"Set"),Xr(t,e);if(r==="[object Object]"&&(t.constructor===void 0||t.constructor.name==="Object"))return Ot(t,Object.entries(t),e);if(r==="[object ArrayBuffer]"||ArrayBuffer.isView(t)){let[n,o]=Module.get_buffer_datatype(t);return _JsBuffer_CopyIntoMemoryView(t,t.byteLength,n,o)}}a(Zr,"js2python_convertOther");function ue(t,e){let r=V(t);if(r!==void 0)return r;if(e.depth===0)return _JsProxy_create(t);if(r=e.cache.get(t),r!==void 0)return r;e.depth--;try{if(r=Zr(t,e),r!==void 0)return r;if(!e.defaultConverter)return _JsProxy_create(t);let n=e.defaultConverter(t,e.converter,e.cacheConversion);return r=V(n),API.isPyProxy(n)&&Module.pyproxy_destroy(n,"",!1),r!==void 0?r:_JsProxy_create(n)}finally{e.depth++}}a(ue,"js2python_convert_with_context");function en(t,{depth:e,defaultConverter:r}){let n={cache:new Map,depth:e,defaultConverter:r,converter:a(o=>Module.pyproxy_new(ue(o,n)),"converter"),cacheConversion(o,i){if(API.isPyProxy(i))n.cache.set(o,Module.PyProxy_getPtr(i));else throw new Error("Second argument should be a PyProxy!")}};return ue(t,n)}a(en,"js2python_convert");Module.js2python_convert=en;Module.processBufferFormatString=function(t,e=""){if(t.length>2)throw new Error(`Expected format string to have length <= 2, got '${t}'.`+e);let r=t.slice(-1),n=t.slice(0,-1),o;switch(n){case"!":case">":o=!0;break;case"<":case"@":case"=":case"":o=!1;break;default:throw new Error(`Unrecognized alignment character ${n}.`+e)}let i;switch(r){case"b":i=Int8Array;break;case"s":case"p":case"c":case"B":case"?":i=Uint8Array;break;case"h":i=Int16Array;break;case"H":i=Uint16Array;break;case"i":case"l":case"n":i=Int32Array;break;case"I":case"L":case"N":case"P":i=Uint32Array;break;case"q":if(globalThis.BigInt64Array===void 0)throw new Error("BigInt64Array is not supported on this browser."+e);i=BigInt64Array;break;case"Q":if(globalThis.BigUint64Array===void 0)throw new Error("BigUint64Array is not supported on this browser."+e);i=BigUint64Array;break;case"f":i=Float32Array;break;case"d":i=Float64Array;break;case"e":throw new Error("Javascript has no Float16 support.");default:throw new Error(`Unrecognized format character '${r}'.`+e)}return[i,o]};Module.python2js_buffer_1d_contiguous=function(t,e,r){let n=e*r;return HEAP8.slice(t,t+n).buffer};Module.python2js_buffer_1d_noncontiguous=function(t,e,r,n,o){let i=o*n,s=new Uint8Array(i);for(let l=0;l<n;++l){let c=t+l*e;r>=0&&(c=HEAPU32[(c>>2)+0>>>0]+r),s.set(HEAP8.subarray(c>>>0,c+o>>>0),l*o)}return s.buffer};Module._python2js_buffer_recursive=function(t,e,r){let{shape:n,strides:o,ndim:i,converter:s,itemsize:l,suboffsets:c}=r,u=HEAPU32[(n>>2)+e>>>0],y=HEAP32[(o>>2)+e>>>0],_=-1;if(i===0)return s(Module.python2js_buffer_1d_contiguous(t,l,1));if(c!==0&&(_=HEAP32[(c>>2)+e>>>0]),e===i-1){let f;return y===l&&_<0?f=Module.python2js_buffer_1d_contiguous(t,y,u):f=Module.python2js_buffer_1d_noncontiguous(t,y,_,u,l),s(f)}let m=[];for(let f=0;f<u;++f){let I=t+f*y;_>=0&&(curptr=HEAPU32[(curptr>>2)+0>>>0]+_),m.push(Module._python2js_buffer_recursive(I,e+1,r))}return m};Module.get_converter=function(t,e){let r=UTF8ToString(t),[n,o]=Module.processBufferFormatString(r);switch(r.slice(-1)){case"s":let u=new TextDecoder("utf8",{ignoreBOM:!0});return y=>u.decode(y);case"?":return y=>Array.from(new Uint8Array(y),_=>!!_)}if(!o)return u=>new n(u);let s,l;switch(e){case 2:s="getUint16",l="setUint16";break;case 4:s="getUint32",l="setUint32";break;case 8:s="getFloat64",l="setFloat64";break;default:throw new Error(`Unexpected size ${e}`)}function c(u){let y=new DataView(u),_=y[s].bind(y),m=y[l].bind(y);for(let f=0;f<y.byteLength;f+=e)m(f,_(f,!0),!1);return u}return a(c,"swapFunc"),u=>new n(c(u))};function tn(t){try{return t instanceof g}catch{return!1}}a(tn,"isPyProxy");API.isPyProxy=tn;globalThis.FinalizationRegistry?Module.finalizationRegistry=new FinalizationRegistry(({ptr:t,cache:e})=>{e&&(e.leaked=!0,Bt(e));try{_check_gil();let r=validSuspender.value;validSuspender.value=!1,_Py_DecRef(t),validSuspender.value=r}catch(r){API.fatal_error(r)}}):Module.finalizationRegistry={register(){},unregister(){}};var Ye=new Map;Module.pyproxy_alloc_map=Ye;var ct,ut;Module.enable_pyproxy_allocation_tracing=function(){ct=a(function(t){Ye.set(t,Error().stack)},"trace_pyproxy_alloc"),ut=a(function(t){Ye.delete(t)},"trace_pyproxy_dealloc")};Module.disable_pyproxy_allocation_tracing=function(){ct=a(function(t){},"trace_pyproxy_alloc"),ut=a(function(t){},"trace_pyproxy_dealloc")};Module.disable_pyproxy_allocation_tracing();var $t=Symbol("pyproxy.attrs");function rn(t,e){_check_gil();let r=validSuspender.value;validSuspender.value=!1;try{return _pyproxy_getflags(t,e)}finally{validSuspender.value=r}}a(rn,"pyproxy_getflags");function J(t,{flags:e,cache:r,props:n,shared:o,gcRegister:i,jsonAdaptor:s}={}){i===void 0&&(i=!0);let l=e!==void 0?e:rn(t,!!s);l===-1&&_pythonexc2js();let c=l&8192,u=l&32768,y=l&1<<17,_=Module.getPyProxyClass(l),m;l&256?(m=a(function(){},"target"),Object.setPrototypeOf(m,_.prototype),delete m.length,delete m.name,m.prototype=void 0):m=Object.create(_.prototype);let f=!!o;o||(r||(r={map:new Map,json_adaptor_map:new Map,refcnt:0}),r.refcnt++,o={ptr:t,cache:r,flags:l,promise:void 0,destroyed_msg:void 0,gcRegistered:!1},_Py_IncRef(t)),n=Object.assign({isBound:!1,captureThis:!1,boundArgs:[],roundtrip:!1},n);let I;u?I=M:c?I=fn:y?I=_n:I=P;let oe=new Proxy(m,I);!f&&i&&Ct(o),f||ct(oe);let ae={shared:o,props:n};return m[$t]=ae,oe}a(J,"pyproxy_new");Module.pyproxy_new=J;function Ct(t){let e=Object.assign({},t);t.gcRegistered=!0,Module.finalizationRegistry.register(t,e,t)}a(Ct,"gc_register_proxy");Module.gc_register_proxy=Ct;function Oe(t){return t[$t]}a(Oe,"_getAttrsQuiet");Module.PyProxy_getAttrsQuiet=Oe;function S(t){let e=Oe(t);if(!e.shared.ptr)throw new Error(e.shared.destroyed_msg);return e}a(S,"_getAttrs");Module.PyProxy_getAttrs=S;function p(t){return S(t).shared.ptr}a(p,"_getPtr");function h(t){return Object.getPrototypeOf(t).$$flags}a(h,"_getFlags");function Ut(t){return!!(h(t)&98304)}a(Ut,"isJsonAdaptor");function Ft(t,e,r){let{captureThis:n,boundArgs:o,boundThis:i,isBound:s}=S(t).props;return n?s?[i].concat(o,r):[e].concat(r):s?o.concat(r):r}a(Ft,"_adjustArgs");var Dt=new Map;Module.getPyProxyClass=function(t){let e=[[1,Qe],[2,B],[4,L],[8,k],[16,Ze],[32,tt],[2048,rt],[512,et],[1024,nt],[4096,ot],[64,st],[128,lt],[256,ke],[8192,at],[16384,it]],r=Dt.get(t);if(r)return r;let n={};for(let[l,c]of e)t&l&&Object.assign(n,Object.getOwnPropertyDescriptors(c.prototype));(t&8192||t&2)&&Object.assign(n,Object.getOwnPropertyDescriptors(Xe.prototype)),n.constructor=Object.getOwnPropertyDescriptor(g.prototype,"constructor"),Object.assign(n,Object.getOwnPropertyDescriptors({$$flags:t}));let o=t&256?jt:Ht,i=Object.create(o,n);function s(){}return a(s,"NewPyProxyClass"),s.prototype=i,Dt.set(t,s),s};Module.PyProxy_getPtr=p;var Rt="This borrowed attribute proxy was automatically destroyed in the process of destroying the proxy it was borrowed from. Try using the 'copy' method.";function Bt(t){if(t&&(t.refcnt--,!t.leaked&&t.refcnt===0)){for(let e of t.map.values())Module.pyproxy_destroy(e,Rt,!0);for(let e of t.json_adaptor_map.values())Module.pyproxy_destroy(e,Rt,!0)}}a(Bt,"pyproxy_decref_cache");function nn(t,e){if(e=e||"Object has already been destroyed",API.debug_ffi){let r=t.type,n;try{n=t.toString()}catch(o){if(o.pyodide_fatal_error)throw o}e+=`\nThe object was of type "${r}" and `,n?e+=`had repr "${n}"`:e+="an error was raised when trying to generate its repr"}else e+="\nFor more information about the cause of this error, use `pyodide.setDebug(true)`";return e}a(nn,"generateDestroyedMessage");Module.pyproxy_destroy=function(t,e,r){let{shared:n,props:o}=Oe(t);if(!n.ptr||!r&&o.roundtrip)return;n.destroyed_msg=nn(t,e);let i=n.ptr;n.ptr=0,n.gcRegistered&&Module.finalizationRegistry.unregister(n),Bt(n.cache);try{_check_gil();let s=validSuspender.value;validSuspender.value=!1,_Py_DecRef(i),ut(t),validSuspender.value=s}catch(s){API.fatal_error(s)}};function pe(t,e,r){let n=e.length,o=Object.keys(r),i=Object.values(r),s=o.length;e.push(...i);let l;try{_check_gil();let c=validSuspender.value;validSuspender.value=!1,l=__pyproxy_apply(t,e,n,o,s),validSuspender.value=c}catch(c){API.maybe_fatal_error(c);return}if(l===Module.error&&_pythonexc2js(),l&&l.type==="coroutine"&&l._ensure_future){_check_gil();let c=validSuspender.value;validSuspender.value=!1;let u=__iscoroutinefunction(t);validSuspender.value=c,u&&l._ensure_future()}return l}a(pe,"callPyObjectKwargs");async function de(t,e,r){if(!Module.jspiSupported)throw new Error("WebAssembly stack switching not supported in this JavaScript runtime");let n=e.length,o=Object.keys(r),i=Object.values(r),s=o.length;e.push(...i);let l=stackSave(),c=stackAlloc(4),u;try{_check_gil();let y=validSuspender.value;validSuspender.value=!1,u=await Module.promisingApply(t,e,n,o,s,c),validSuspender.value=y}catch(y){API.fatal_error(y)}if(u=u[0],u===Module.error){_PyErr_SetRaisedException(HEAPU32[c/4>>>0]);try{_pythonexc2js()}finally{stackRestore(l)}}if(u&&u.type==="coroutine"&&u._ensure_future){_check_gil();let y=validSuspender.value;validSuspender.value=!1;let _=__iscoroutinefunction(t);validSuspender.value=y,_&&u._ensure_future()}return u}a(de,"callPyObjectKwargsPromising");Module.callPyObjectMaybePromising=async function(t,e){return Module.jspiSupported?await de(t,e,{}):pe(t,e,{})};Module.callPyObject=function(t,e){return pe(t,e,{})};var g=class t{static{a(this,"PyProxy")}static[Symbol.hasInstance](e){return[t,Wt].some(r=>Function.prototype[Symbol.hasInstance].call(r,e))}constructor(){throw new TypeError("PyProxy is not a constructor")}get[Symbol.toStringTag](){return"PyProxy"}get type(){let e=p(this);return __pyproxy_type(e)}toString(){let e=p(this),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxy_repr(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}destroy(e={}){e=Object.assign({message:"",destroyRoundtrip:!0},e);let{message:r,destroyRoundtrip:n}=e;Module.pyproxy_destroy(this,r,n)}copy(){let e=S(this);return J(e.shared.ptr,{flags:h(this),cache:e.shared.cache,props:e.props})}toJs({depth:e=-1,pyproxies:r=void 0,create_pyproxies:n=!0,dict_converter:o=void 0,default_converter:i=void 0,eager_converter:s=void 0}={}){let l=p(this),c,u;n?r?u=r:u=[]:u=Module.error;try{_check_gil();let y=validSuspender.value;validSuspender.value=!1,c=_python2js_custom(l,e,u,o??Module.error,i??Module.error,s??Module.error),validSuspender.value=y}catch(y){API.fatal_error(y)}return c===Module.error&&_pythonexc2js(),c}},Ht=g.prototype;Tests.Function=Function;var jt=Object.create(Function.prototype,Object.getOwnPropertyDescriptors(Ht));function Wt(){}a(Wt,"PyProxyFunction");Wt.prototype=jt;var fe=class extends g{static{a(this,"PyProxyWithLength")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1)}},Qe=class{static{a(this,"PyLengthMethods")}get length(){let e=p(this),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=_PyObject_Size(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===-1&&_pythonexc2js(),r}},ge=class extends g{static{a(this,"PyProxyWithGet")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&2)}},Xe=class{static{a(this,"PyAsJsonAdaptorMethods")}asJsJson(){let{shared:e,props:r}=S(this),n=h(this);return n&8192?n|=65536:n|=32768,J(e.ptr,{shared:e,flags:n,props:r})}},B=class{static{a(this,"PyGetItemMethods")}get(e){let{shared:r}=S(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_getitem(r.ptr,e,r.cache.json_adaptor_map,Ut(this)),validSuspender.value=o}catch(o){API.fatal_error(o)}if(n===Module.error)if(_PyErr_Occurred())_pythonexc2js();else return;return n}asJsJson(){throw new Error("Should not happen")}},_e=class extends g{static{a(this,"PyProxyWithSet")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&4)}},L=class{static{a(this,"PySetItemMethods")}set(e,r){let n=p(this),o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_setitem(n,e,r),validSuspender.value=i}catch(i){API.fatal_error(i)}o===-1&&_pythonexc2js()}delete(e){let r=p(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_delitem(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}n===-1&&_pythonexc2js()}},me=class extends g{static{a(this,"PyProxyWithHas")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8)}},k=class{static{a(this,"PyContainsMethods")}has(e){let r=p(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_contains(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===-1&&_pythonexc2js(),n===1}};function*on(t,e,r,n){let o=[];try{for(;;){_check_gil();let i=validSuspender.value;validSuspender.value=!1;let s=__pyproxy_iter_next(t,r,n);if(validSuspender.value=i,s===Module.error)break;yield s,!n&&API.isPyProxy(s)&&o.push(s)}}catch(i){API.fatal_error(i)}finally{Module.finalizationRegistry.unregister(e),_Py_DecRef(t)}try{o.forEach(i=>Module.pyproxy_destroy(i,"This borrowed proxy was automatically destroyed when an iterator was exhausted."))}catch{}_PyErr_Occurred()&&_pythonexc2js()}a(on,"iter_helper");var he=class extends g{static{a(this,"PyIterable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&48)}},Ze=class{static{a(this,"PyIterableMethods")}[Symbol.iterator](){let{shared:e}=S(this),r={},n;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,n=_PyObject_GetIter(e.ptr),validSuspender.value=i}catch(i){API.fatal_error(i)}n===0&&_pythonexc2js();let o=on(n,r,e.cache.json_adaptor_map,Ut(this));return Module.finalizationRegistry.register(o,[n,void 0],r),o}};async function*an(t,e){try{for(;;){let r;try{_check_gil();let n=validSuspender.value;if(validSuspender.value=!1,r=__pyproxy_aiter_next(t),validSuspender.value=n,r===Module.error)break}catch(n){API.fatal_error(n)}try{yield await r}catch(n){if(n&&typeof n=="object"&&n.type==="StopAsyncIteration")return;throw n}finally{r.destroy()}}}finally{Module.finalizationRegistry.unregister(e),_Py_DecRef(t)}_PyErr_Occurred()&&_pythonexc2js()}a(an,"aiter_helper");var Pe=class extends g{static{a(this,"PyAsyncIterable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1536)}},et=class{static{a(this,"PyAsyncIterableMethods")}[Symbol.asyncIterator](){let e=p(this),r={},n;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,n=_PyObject_GetAIter(e),validSuspender.value=i}catch(i){API.fatal_error(i)}n===0&&_pythonexc2js();let o=an(n,r);return Module.finalizationRegistry.register(o,[n,void 0],r),o}},be=class extends g{static{a(this,"PyIterator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&32)}},tt=class{static{a(this,"PyIteratorMethods")}[Symbol.iterator](){return this}next(e=void 0){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_Send(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}return r===Module.error&&_pythonexc2js(),r}},ve=class extends g{static{a(this,"PyGenerator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&2048)}},rt=class{static{a(this,"PyGeneratorMethods")}throw(e){let r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_throw(p(this),e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}return(e){let r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_return(p(this),e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}},xe=class extends g{static{a(this,"PyAsyncIterator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1024)}},nt=class{static{a(this,"PyAsyncIteratorMethods")}[Symbol.asyncIterator](){return this}async next(e=void 0){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_asend(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"&&o.type==="StopAsyncIteration")return{done:!0,value:n};throw o}finally{r.destroy()}return{done:!1,value:n}}},we=class extends g{static{a(this,"PyAsyncGenerator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&4096)}},ot=class{static{a(this,"PyAsyncGeneratorMethods")}async throw(e){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_athrow(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"){if(o.type==="StopAsyncIteration")return{done:!0,value:n};if(o.type==="GeneratorExit")return{done:!0,value:n}}throw o}finally{r.destroy()}return{done:!1,value:n}}async return(e){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_areturn(p(this)),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"){if(o.type==="StopAsyncIteration")return{done:!0,value:n};if(o.type==="GeneratorExit")return{done:!0,value:e}}throw o}finally{r.destroy()}return{done:!1,value:n}}},Se=class extends g{static{a(this,"PySequence")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8192)}};function sn(t,e){let r=t.toString(),n=e.toString();return r===n?0:r<n?-1:1}a(sn,"defaultCompareFunc");var at=class{static{a(this,"PySequenceMethods")}get[Symbol.isConcatSpreadable](){return!0}join(e){return Array.prototype.join.call(this,e)}slice(e,r){return Array.prototype.slice.call(this,e,r)}lastIndexOf(e,r){return r===void 0&&(r=this.length),Array.prototype.lastIndexOf.call(this,e,r)}indexOf(e,r){return Array.prototype.indexOf.call(this,e,r)}forEach(e,r){Array.prototype.forEach.call(this,e,r)}map(e,r){return Array.prototype.map.call(this,e,r)}filter(e,r){return Array.prototype.filter.call(this,e,r)}some(e,r){return Array.prototype.some.call(this,e,r)}every(e,r){return Array.prototype.every.call(this,e,r)}reduce(...e){return Array.prototype.reduce.apply(this,e)}reduceRight(...e){return Array.prototype.reduceRight.apply(this,e)}at(e){return Array.prototype.at.call(this,e)}concat(...e){return Array.prototype.concat.apply(this,e)}includes(e){return this.has(e)}entries(){return Array.prototype.entries.call(this)}keys(){return Array.prototype.keys.call(this)}values(){return Array.prototype.values.call(this)}find(e,r){return Array.prototype.find.call(this,e,r)}findIndex(e,r){return Array.prototype.findIndex.call(this,e,r)}toJSON(){return Array.from(this)}asJsJson(){throw new Error("Should not happen")}},Ae=class extends g{static{a(this,"PyMutableSequence")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8192)}},it=class{static{a(this,"PyMutableSequenceMethods")}reverse(){return this.$reverse(),this}sort(e){let r=API.public_api.pyimport("functools"),n=r.cmp_to_key,o;e?o=e:o=sn;function i(l,c){return l===void 0&&c===void 0?0:l===void 0?1:c===void 0?-1:o(l,c)}a(i,"wrapper");let s;try{s=n(i),this.$sort.callKwargs({key:s})}finally{s?.destroy(),n.destroy(),r.destroy()}return this}splice(e,r,...n){return r===void 0&&(r=1<<30),dn(this,e,e+r,n)}push(...e){for(let r of e)this.append(r);return this.length}pop(){return Lt(this,!1)}shift(){return Lt(this,!0)}unshift(...e){return e.forEach((r,n)=>{this.insert(n,r)}),this.length}copyWithin(...e){return Array.prototype.copyWithin.apply(this,e),this}fill(...e){return Array.prototype.fill.apply(this,e),this}};function ln(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_hasattr(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===-1&&_pythonexc2js(),n!==0}a(ln,"python_hasattr");function cn(t,e){let{shared:r}=S(t),n=r.cache.map,o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_getattr(r.ptr,e,n),validSuspender.value=i}catch(i){API.fatal_error(i)}if(o===Module.error){_PyErr_Occurred()&&_pythonexc2js();return}return o}a(cn,"python_getattr");function un(t,e,r){let n=p(t),o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_setattr(n,e,r),validSuspender.value=i}catch(i){API.fatal_error(i)}o===-1&&_pythonexc2js()}a(un,"python_setattr");function yn(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_delattr(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}n===-1&&_pythonexc2js()}a(yn,"python_delattr");function dn(t,e,r,n){let o=p(t),i;try{_check_gil();let s=validSuspender.value;validSuspender.value=!1,i=__pyproxy_slice_assign(o,e,r,n),validSuspender.value=s}catch(s){API.fatal_error(s)}return i===Module.error&&_pythonexc2js(),i}a(dn,"python_slice_assign");function Lt(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_pop(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===Module.error&&_pythonexc2js(),n}a(Lt,"python_pop");var pn=new Set(["name","length","caller","arguments"]);function ye(t,e,r){return t instanceof Function?e in t&&!(pn.has(e)||r&&e==="prototype"):e in t}a(ye,"filteredHasKey");var P={isExtensible(){return!0},has(t,e){return ye(t,e,!1)?!0:typeof e=="symbol"?!1:(e.startsWith("$")&&(e=e.slice(1)),ln(t,e))},get(t,e){return typeof e=="symbol"||ye(t,e,!0)?Reflect.get(t,e):(e.startsWith("$")&&(e=e.slice(1)),cn(t,e))},set(t,e,r){let n=Object.getOwnPropertyDescriptor(t,e);return n&&!n.writable&&!n.set?!1:typeof e=="symbol"||ye(t,e,!0)?Reflect.set(t,e,r):(e.startsWith("$")&&(e=e.slice(1)),un(t,e,r),!0)},deleteProperty(t,e){let r=Object.getOwnPropertyDescriptor(t,e);return r&&!r.configurable?!1:typeof e=="symbol"||ye(t,e,!0)?Reflect.deleteProperty(t,e):(e.startsWith("$")&&(e=e.slice(1)),yn(t,e),!0)},ownKeys(t){let e=p(t),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxy_ownKeys(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r.push(...Reflect.ownKeys(t)),r},apply(t,e,r){return t.apply(e,r)}};function K(t){return t&&typeof t=="object"&&t.constructor&&t.constructor.name==="PythonError"}a(K,"isPythonError");var fn={isExtensible(){return!0},has(t,e){return typeof e=="string"&&/^[0-9]+$/.test(e)?Number(e)<t.length:P.has(t,e)},get(t,e){if(e==="length")return t.length;if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return B.prototype.get.call(t,Number(e))}catch(r){if(K(r)&&r.type=="IndexError")return;throw r}return P.get(t,e)},set(t,e,r){if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return L.prototype.set.call(t,Number(e),r),!0}catch(n){if(K(n)&&n.type=="IndexError")return!1;throw n}return P.set(t,e,r)},deleteProperty(t,e){if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return L.prototype.delete.call(t,Number(e)),!0}catch(r){if(K(r)&&r.type=="IndexError")return!1;throw r}return P.deleteProperty(t,e)},ownKeys(t){let e=P.ownKeys(t);return e.push(...Array.from({length:t.length},(r,n)=>n.toString())),e.push("length"),e}},gn=new Set(["copy","constructor","$$flags","toString","destroy"]),M={isExtensible(){return!0},has(t,e){return k.prototype.has.call(t,e)?!0:typeof e=="string"&&/^[0-9]+$/.test(e)?k.prototype.has.call(t,Number(e)):!1},get(t,e){if(typeof e=="symbol"||gn.has(e))return Reflect.get(...arguments);let r=B.prototype.get.call(t,e);return r!==void 0||k.prototype.has.call(t,e)?r:typeof e=="string"&&/^[0-9]+$/.test(e)?B.prototype.get.call(t,Number(e)):Reflect.get(...arguments)},set(t,e,r){if(typeof e=="symbol")return!1;!k.prototype.has.call(t,e)&&typeof e=="string"&&/^[0-9]+$/.test(e)&&(e=Number(e));try{return L.prototype.set.call(t,e,r),!0}catch(n){if(K(n)&&n.type==="KeyError")return!1;throw n}},deleteProperty(t,e){if(typeof e=="symbol")return!1;!k.prototype.has.call(t,e)&&typeof e=="string"&&/^[0-9]+$/.test(e)&&(e=Number(e));try{return L.prototype.delete.call(t,e),!0}catch(r){if(K(r)&&r.type==="KeyError")return!1;throw r}},getOwnPropertyDescriptor(t,e){return M.has(t,e)?{configurable:!0,enumerable:!0,value:M.get(t,e),writable:!0}:void 0},ownKeys(t){let e=new Set;return zt(t,e),Array.from(e)}};function zt(t,e){let r=P.get(t,"keys")();for(let n of r)typeof n=="string"?e.add(n):typeof n=="number"&&e.add(n.toString());r.destroy()}a(zt,"dictOwnKeysHelper");var _n={isExtensible(){return!0},has(t,e){return P.has(t,e)?!0:M.has(t,e)},get(t,e){let r=P.get(t,e);return r!==void 0||P.has(t,e)?r:M.get(t,e)},set(t,e,r){return P.has(t,e)?P.set(t,e,r):M.set(t,e,r)},deleteProperty(t,e){return P.has(t,e)?P.deleteProperty(t,e):M.deleteProperty(t,e)},getOwnPropertyDescriptor(t,e){return Reflect.getOwnPropertyDescriptor(t,e)??M.getOwnPropertyDescriptor(t,e)},ownKeys(t){let e=new Set(P.ownKeys(t));return zt(t,e),Array.from(e)}},Ie=class extends g{static{a(this,"PyAwaitable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&64)}},st=class{static{a(this,"PyAwaitableMethods")}_ensure_future(){let{shared:e}=Oe(this);if(e.promise)return e.promise;let r=e.ptr;r||S(this);let n,o,i=new Promise((l,c)=>{n=l,o=c}),s;try{_check_gil();let l=validSuspender.value;validSuspender.value=!1,s=__pyproxy_ensure_future(r,n,o),validSuspender.value=l}catch(l){API.fatal_error(l)}return s===-1&&_pythonexc2js(),e.promise=i,this.destroy(),i}then(e,r){return this._ensure_future().then(e,r)}catch(e){return this._ensure_future().catch(e)}finally(e){return this._ensure_future().finally(e)}},Ee=class extends g{static{a(this,"PyCallable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&256)}},ke=class{static{a(this,"PyCallableMethods")}apply(e,r){return r=function(...n){return n}.apply(void 0,r),r=Ft(this,e,r),Module.callPyObject(p(this),r)}call(e,...r){return r=Ft(this,e,r),Module.callPyObject(p(this),r)}callWithOptions({relaxed:e,kwargs:r,promising:n},...o){let i={};if(r){if(o.length===0)throw new TypeError("callWithOptions with 'kwargs: true' requires at least one argument (the key word argument object)");if(i=o.pop(),i.constructor!==void 0&&i.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object")}let s=e?API.pyodide_code.relaxed_call:this;return e&&o.unshift(this),(n?de:pe)(p(s),o,i)}callKwargs(...e){if(e.length===0)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let r=e.pop();if(r.constructor!==void 0&&r.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object");return pe(p(this),e,r)}callRelaxed(...e){return API.pyodide_code.relaxed_call(this,...e)}callKwargsRelaxed(...e){return API.pyodide_code.relaxed_call.callKwargs(this,...e)}callPromising(...e){return de(p(this),e,{})}callPromisingKwargs(...e){if(e.length===0)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let r=e.pop();if(r.constructor!==void 0&&r.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object");return de(p(this),e,r)}bind(e,...r){let{shared:n,props:o}=S(this),{boundArgs:i,boundThis:s,isBound:l}=o,c=e;l&&(c=s);let u=i.concat(r);return o=Object.assign({},o,{boundArgs:u,isBound:!0,boundThis:c}),J(n.ptr,{shared:n,flags:h(this),props:o})}captureThis(){let{props:e,shared:r}=S(this);return e=Object.assign({},e,{captureThis:!0}),J(r.ptr,{shared:r,flags:h(this),props:e})}};ke.prototype.prototype=Function.prototype;var mn=new Map([["i8",Int8Array],["u8",Uint8Array],["u8clamped",Uint8ClampedArray],["i16",Int16Array],["u16",Uint16Array],["i32",Int32Array],["u32",Uint32Array],["i32",Int32Array],["u32",Uint32Array],["i64",globalThis.BigInt64Array],["u64",globalThis.BigUint64Array],["f32",Float32Array],["f64",Float64Array],["dataview",DataView]]),Me=class extends g{static{a(this,"PyBuffer")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&128)}},lt=class{static{a(this,"PyBufferMethods")}getBuffer(e){let r;if(e&&(r=mn.get(e),r===void 0))throw new Error(`Unknown type ${e}`);let n=p(this),o;try{_check_gil();let A=validSuspender.value;validSuspender.value=!1,o=__pyproxy_get_buffer(n),validSuspender.value=A}catch(A){API.fatal_error(A)}o===Module.error&&_pythonexc2js();let{start_ptr:i,smallest_ptr:s,largest_ptr:l,readonly:c,format:u,itemsize:y,shape:_,strides:m,view:f,c_contiguous:I,f_contiguous:oe}=o,ae=!1;try{let A=!1;r===void 0&&([r,A]=Module.processBufferFormatString(u," In this case, you can pass an explicit type argument."));let N=parseInt(r.name.replace(/[^0-9]/g,""))/8||1;if(A&&N>1)throw new Error("JavaScript has no native support for big endian buffers. In this case, you can pass an explicit type argument. For instance, `getBuffer('dataview')` will return a `DataView`which has native support for reading big endian data. Alternatively, toJs will automatically convert the buffer to little endian.");let ie=l-s;if(ie!==0&&(i%N!==0||s%N!==0||l%N!==0))throw new Error(`Buffer does not have valid alignment for a ${r.name}`);let Or=ie/N,Tr=(i-s)/N,We;ie===0?We=new r:We=new r(HEAPU32.buffer,s,Or);for(let Fr of m.keys())m[Fr]/=N;return ae=!0,Object.create(q.prototype,Object.getOwnPropertyDescriptors({offset:Tr,readonly:c,format:u,itemsize:y,ndim:_.length,nbytes:ie,shape:_,strides:m,data:We,c_contiguous:I,f_contiguous:oe,_view_ptr:f,_released:!1}))}finally{if(!ae)try{_check_gil();let A=validSuspender.value;validSuspender.value=!1,_PyBuffer_Release(f),_PyMem_Free(f),validSuspender.value=A}catch(A){API.fatal_error(A)}}}},Ne=class extends g{static{a(this,"PyDict")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&e.type==="dict"}},q=class{static{a(this,"PyBufferView")}constructor(){throw new TypeError("PyBufferView is not a constructor")}release(){if(!this._released){try{_check_gil();let e=validSuspender.value;validSuspender.value=!1,_PyBuffer_Release(this._view_ptr),_PyMem_Free(this._view_ptr),validSuspender.value=e}catch(e){API.fatal_error(e)}this._released=!0,this.data=Module.error}}};var Gt={PyProxy:g,PyProxyWithLength:fe,PyProxyWithGet:ge,PyProxyWithSet:_e,PyProxyWithHas:me,PyDict:Ne,PyIterable:he,PyAsyncIterable:Pe,PyIterator:be,PyAsyncIterator:xe,PyGenerator:ve,PyAsyncGenerator:we,PyAwaitable:Ie,PyCallable:Ee,PyBuffer:Me,PyBufferView:q,PythonError:R,PySequence:Se,PyMutableSequence:Ae};function Vt(t){t.id!=="canvas"&&console.warn("If you are using canvas element for SDL library, it should have id 'canvas' to work properly."),Module.canvas=t}a(Vt,"setCanvas2D");function Kt(){return Module.canvas}a(Kt,"getCanvas2D");function hn(t){Vt(t)}a(hn,"setCanvas3D");function Pn(){return Kt()}a(Pn,"getCanvas3D");var Jt={setCanvas2D:Vt,getCanvas2D:Kt,setCanvas3D:hn,getCanvas3D:Pn};var qt=new Map([["INSTALLER","pyodide.unpackArchive"]]);function bn(){if(typeof API<"u"&&API!==globalThis.API)return API.runtimeEnv;let t=typeof Bun<"u",e=typeof Deno<"u",r=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!process.browser,n=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Chrome")===-1&&navigator.userAgent.indexOf("Safari")>-1;return vn({IN_BUN:t,IN_DENO:e,IN_NODE:r,IN_SAFARI:n,IN_SHELL:typeof read=="function"&&typeof load=="function"})}a(bn,"getGlobalRuntimeEnv");var d=bn();function vn(t){let e=t.IN_NODE&&typeof module<"u"&&module.exports&&typeof b=="function"&&typeof __dirname=="string",r=t.IN_NODE&&!e,n=!t.IN_NODE&&!t.IN_DENO&&!t.IN_BUN,o=n&&typeof window<"u"&&typeof window.document<"u"&&typeof document.createElement=="function"&&"sessionStorage"in window&&typeof globalThis.importScripts!="function",i=n&&typeof globalThis.WorkerGlobalScope<"u"&&typeof globalThis.self<"u"&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...t,IN_BROWSER:n,IN_BROWSER_MAIN_THREAD:o,IN_BROWSER_WEB_WORKER:i,IN_NODE_COMMONJS:e,IN_NODE_ESM:r}}a(vn,"calculateDerivedFlags");function yt(){let t=a(()=>{},"_resolve"),e=a(()=>{},"_reject"),r=new Promise((n,o)=>{t=n,e=o});return r.resolve=t,r.reject=e,r}a(yt,"createResolvable");function Te(){let t=Promise.resolve();async function e(){let r=t,n;return t=new Promise(o=>n=o),await r,n}return a(e,"acquireLock"),e}a(Te,"createLock");var xn=/[-_.]+/g;function Yt(t){return t.replace(xn,"-").toLowerCase()}a(Yt,"canonicalizePackageName");var wn=/^.*?([^\/]*)\.whl$/;function Qt(t){let e=wn.exec(t);if(e){let r=e[1].toLowerCase().split("-");return{name:r[0],version:r[1],fileName:r.join("-")+".whl"}}}a(Qt,"uriToPackageData");function Xt(t){return btoa(t.match(/\w{2}/g).map(function(e){return String.fromCharCode(parseInt(e,16))}).join(""))}a(Xt,"base16ToBase64");var Zt,dt,er,Re,H;async function tr(){if(!d.IN_NODE||(Zt=(await import("node:url")).default,Re=await import("node:fs"),H=await import("node:fs/promises"),er=(await import("node:vm")).default,dt=await import("node:path"),nr=dt.sep,typeof b<"u"))return;let t=Re,e=await import("node:crypto"),r=await import("ws"),n=await import("node:child_process"),o={fs:t,crypto:e,ws:r,child_process:n};globalThis.require=function(i){return o[i]}}a(tr,"initNodeModules");function rr(t){return t.includes("://")||t.startsWith("/")}a(rr,"isAbsolute");function Sn(t,e){return dt.resolve(e||".",t)}a(Sn,"node_resolvePath");function An(t,e){return e===void 0&&(e=location),new URL(t,e).toString()}a(An,"browser_resolvePath");var Y;d.IN_NODE?Y=Sn:d.IN_SHELL?Y=a(t=>t,"resolvePath"):Y=An;var nr;d.IN_NODE||(nr="/");function In(t,e){return t.startsWith("file://")&&(t=t.slice(7)),t.includes("://")?{response:fetch(t)}:{binary:H.readFile(t).then(r=>new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}}a(In,"node_getBinaryResponse");function En(t,e){if(t.startsWith("file://")&&(t=t.slice(7)),t.includes("://"))throw new Error("Shell cannot fetch urls");return{binary:Promise.resolve(new Uint8Array(readbuffer(t)))}}a(En,"shell_getBinaryResponse");function kn(t,e){let r=new URL(t,location);return{response:fetch(r,e?{integrity:e}:{})}}a(kn,"browser_getBinaryResponse");var De;d.IN_NODE?De=In:d.IN_SHELL?De=En:De=kn;async function Q(t,e){let{response:r,binary:n}=De(t,e);if(n)return n;let o=await r;if(!o.ok)throw new Error(`Failed to load '${t}': request failed.`);return new Uint8Array(await o.arrayBuffer())}a(Q,"loadBinaryFile");var Fe;if(d.IN_BROWSER_MAIN_THREAD)Fe=a(async t=>await import(t),"loadScript");else if(d.IN_BROWSER_WEB_WORKER)Fe=a(async t=>{try{globalThis.importScripts(t)}catch(e){if(e instanceof TypeError)await import(t);else throw e}},"loadScript");else if(d.IN_NODE)Fe=Mn;else if(d.IN_SHELL)Fe=load;else throw new Error("Cannot determine runtime environment");async function Mn(t){t.startsWith("file://")&&(t=t.slice(7)),t.includes("://")?er.runInThisContext(await(await fetch(t)).text()):await import(Zt.pathToFileURL(t).href)}a(Mn,"nodeLoadScript");async function or(t){if(d.IN_NODE&&t)try{await H.stat(t)}catch{await H.mkdir(t,{recursive:!0})}}a(or,"ensureDirNode");var X=class{constructor(e,r){this._lock=Te();this.#t=e,this.#e=r}static{a(this,"DynlibLoader")}#t;#e;async loadDynlib(e){let r=await this._lock();try{let n=this.#e.stackSave(),o=this.#e.stringToUTF8OnStack(e);try{let i=this.#e._emscripten_dlopen_promise(o,2);this.#e.stackRestore(n);let s=this.#e.getPromise(i);this.#e.promiseMap.free(i),await s}catch(i){let s=this.getDLError();throw new Error(`Failed to load dynamic library ${e}: ${s??i}`)}}catch(n){throw n&&n.message&&n.message.includes("need to see wasm magic number")?new Error(`Failed to load dynamic library ${e} $. We probably just tried to load a linux .so file or something.`):n}finally{r()}}getDLError(){let e=this.#e._dlerror();return e===0?void 0:this.#e.UTF8ToString(e,512).trim()}async loadDynlibsFromPackage(e,r){for(let n of r)await this.loadDynlib(n)}};if(typeof API<"u"&&typeof Module<"u"){let t=new X(API,Module);API.loadDynlib=t.loadDynlib.bind(t)}var Z=class{static{a(this,"Installer")}#t;#e;constructor(e,r){this.#t=e,this.#e=new X(e,r)}async install(e,r,n,o){let i=this.#t.package_loader.unpack_buffer.callKwargs({buffer:e,filename:r,extract_dir:n,metadata:o,calculate_dynlibs:!0});await this.#e.loadDynlibsFromPackage({file_name:r},i)}},ar;if(typeof API<"u"&&typeof Module<"u"){let t=new Z(API,Module);ar=t.install.bind(t),API.install=ar}function Nn(t,e,r){t();let n;try{n=r()}catch(o){throw e(),o}return n instanceof Promise?n.finally(()=>e()):(e(),n)}a(Nn,"withContext");function ir(t,e){return function(r){return function(...n){return Nn(t,e,()=>r.apply(this,n))}}}a(ir,"createContextWrapper");async function On(t){await tr();let e=await t,r=typeof e=="string"?JSON.parse(e):e;if(!r.packages)throw new Error("Loaded pyodide lock file does not contain the expected key 'packages'.");if(r.info.abi_version!==API.abiVersion)throw new Error(`Lock file ABI version doesn't match Pyodide ABI version.\n lockfile version: ${r.info.abi_version}\n pyodide version: ${API.abiVersion}`);API.lockfile=r,API.lockfile_info=r.info,API.lockfile_packages=r.packages,API.lockfile_unvendored_stdlibs_and_test=[],API._import_name_to_package_name=new Map;for(let i of Object.keys(API.lockfile_packages)){let s=API.lockfile_packages[i];for(let l of s.imports)API._import_name_to_package_name.set(l,i);s.package_type==="cpython_module"&&API.lockfile_unvendored_stdlibs_and_test.push(i)}API.lockfile_unvendored_stdlibs=API.lockfile_unvendored_stdlibs_and_test.filter(i=>i!=="test");let n=API.config.packages;API.config.fullStdLib&&(n=[...n,...API.lockfile_unvendored_stdlibs]),await te(n,{messageCallback(){}}),await API.bootstrapFinalizedPromise,API.flushPackageManagerBuffers(),API._pyodide._importhook.register_module_not_found_hook(API._import_name_to_package_name,API.lockfile_unvendored_stdlibs_and_test),API.package_loader.init_loaded_packages()}a(On,"initializePackageIndex");var Tn="default channel",Fn="pyodide.loadPackage",pt=class{constructor(e,r){this.cdnURL="";this.loadedPackages={};this._lock=Te();this.streamReady=!1;this.stdoutBuffer=[];this.stderrBuffer=[];this.defaultChannel=Tn;this.#t=e,this.#e=r,this.#r=new Z(e,r),d.IN_NODE?(this.installBaseUrl=this.#t.config.packageCacheDir??this.#t.config.packageBaseUrl,this.cdnURL=this.#t.config.cdnUrl):this.installBaseUrl=this.#t.config.packageBaseUrl,this.stdout=n=>{if(!this.streamReady){this.stdoutBuffer.push(n);return}let o=this.#e.stackSave();try{let i=this.#e.stringToUTF8OnStack(n);this.#e._print_stdout(i)}finally{this.#e.stackRestore(o)}},this.stderr=n=>{if(!this.streamReady){this.stderrBuffer.push(n);return}let o=this.#e.stackSave();try{let i=this.#e.stringToUTF8OnStack(n);this.#e._print_stderr(i)}finally{this.#e.stackRestore(o)}}}static{a(this,"PackageManager")}#t;#e;#r;async loadPackage(e,r={checkIntegrity:!0}){return this.setCallbacks(r.messageCallback,r.errorCallback)(this.loadPackageInner.bind(this))(e,r)}async loadPackageInner(e,r={checkIntegrity:!0}){let n=new Set,o=Rn(e),i=this.recursiveDependencies(o);for(let[u,{name:y,normalizedName:_,channel:m}]of i){let f=this.getLoadedPackageChannel(y);f&&(i.delete(_),f===m||m===this.defaultChannel?this.logStdout(`${y} already loaded from ${f}`):this.logStderr(`URI mismatch, attempting to load package ${y} from ${m} while it is already loaded from ${f}. To override a dependency, load the custom package first.`))}if(i.size===0)return this.logStdout("No new packages to load"),[];let s=Array.from(i.values(),({name:u})=>u).sort().join(", "),l=new Map,c=await this._lock();try{this.logStdout(`Loading ${s}`);for(let[u,y]of i){if(this.getLoadedPackageChannel(y.name)){i.delete(y.normalizedName);continue}y.installPromise=this.downloadAndInstall(y,i,n,l,r.checkIntegrity)}if(await Promise.all(Array.from(i.values()).map(({installPromise:u})=>u)),n.size>0){let u=Array.from(n,y=>y.name).sort().join(", ");this.logStdout(`Loaded ${u}`)}if(l.size>0){let u=Array.from(l.keys()).sort().join(", ");this.logStdout(`Failed to load ${u}`);for(let[y,_]of l)this.logStderr(`The following error occurred while loading ${y}:`),this.logStderr(_.message)}return await this.#t.bootstrapFinalizedPromise,this.#t.importlib.invalidate_caches(),Array.from(n,Dn)}finally{c()}}addPackageToLoad(e,r){let n=Yt(e);if(r.has(n))return;let o=this.#t.lockfile_packages[n];if(!o)throw new Error(`No known package with name '${e}'`);if(r.set(n,{name:o.name,normalizedName:n,channel:this.defaultChannel,depends:o.depends,installPromise:void 0,done:yt(),packageData:o}),!this.getLoadedPackageChannel(o.name))for(let i of o.depends)this.addPackageToLoad(i,r)}recursiveDependencies(e){let r=new Map;for(let n of e){let o=Qt(n);if(o===void 0){this.addPackageToLoad(n,r);continue}let{name:i,version:s,fileName:l}=o,c=n;if(r.has(i)&&r.get(i).channel!==c){this.logStderr(`Loading same package ${i} from ${c} and ${r.get(i).channel}`);continue}r.set(i,{name:i,normalizedName:i,channel:c,depends:[],installPromise:void 0,done:yt(),packageData:{name:i,version:s,file_name:l,install_dir:"site",sha256:"",package_type:"package",imports:[],depends:[]}})}return r}async downloadPackage(e,r=!0){await or(this.installBaseUrl);let n,o,i;if(e.channel===this.defaultChannel){if(!(e.normalizedName in this.#t.lockfile_packages))throw new Error(`Internal error: no entry for package named ${name}`);let l=this.#t.lockfile_packages[e.normalizedName];if(n=l.file_name,!rr(n)&&!this.installBaseUrl)throw new Error(`Lock file file_name for package "${e.name}" is relative path "${n}" but no packageBaseUrl provided to loadPyodide.`);o=Y(n,this.installBaseUrl),i="sha256-"+Xt(l.sha256)}else o=e.channel,i=void 0;r||(i=void 0);try{return await Q(o,i)}catch(l){if(!d.IN_NODE||e.channel!==this.defaultChannel||!n||n.startsWith("/"))throw l}this.logStdout(`Didn't find package ${n} locally, attempting to load from ${this.cdnURL}`);let s=await Q(this.cdnURL+n);return this.logStdout(`Package ${n} loaded from ${this.cdnURL}, caching the wheel in node_modules for future use.`),await H.writeFile(o,s),s}async installPackage(e,r){let n=this.#t.lockfile_packages[e.normalizedName];n||(n=e.packageData);let o=n.file_name,i=this.#t.package_loader.get_install_dir(n.install_dir);await this.#r.install(r,o,i,new Map([["INSTALLER",Fn],["PYODIDE_SOURCE",e.channel===this.defaultChannel?"pyodide":e.channel]]))}async downloadAndInstall(e,r,n,o,i=!0){if(ee[e.name]===void 0)try{let s=await this.downloadPackage(e,i),l=e.depends.map(c=>r.has(c)?r.get(c).done:Promise.resolve());await this.#t.bootstrapFinalizedPromise,await Promise.all(l),await this.installPackage(e,s),n.add(e.packageData),ee[e.name]=e.channel}catch(s){o.set(e.name,s)}finally{e.done.resolve()}}flushBuffers(){this.streamReady=!0;for(let e of this.stdoutBuffer)this.stdout(e);for(let e of this.stderrBuffer)this.stderr(e);this.stdoutBuffer=[],this.stderrBuffer=[]}getLoadedPackageChannel(e){let r=this.loadedPackages[e];return r===void 0?null:r}setCallbacks(e,r){let n=this.stdout,o=this.stderr;return ir(()=>{this.stdout=e||n,this.stderr=r||o},()=>{this.stdout=n,this.stderr=o})}logStdout(e){this.stdout(e)}logStderr(e){this.stderr(e)}};function Dn({name:t,version:e,file_name:r,package_type:n}){return{name:t,version:e,fileName:r,packageType:n}}a(Dn,"filterPackageData");function Rn(t){return typeof t.toJs=="function"&&(t=t.toJs()),Array.isArray(t)||(t=[t]),t}a(Rn,"toStringArray");var te,ee;if(typeof API<"u"&&typeof Module<"u"){let t=new pt(API,Module);te=t.loadPackage.bind(t),ee=t.loadedPackages,API.flushPackageManagerBuffers=t.flushBuffers.bind(t),API.lockFilePromise&&(API.packageIndexReady=On(API.lockFilePromise)),API.packageManager=t}var sr="0.29.3";var vt=d.IN_NODE?b("node:fs"):void 0,ur=d.IN_NODE?b("node:tty"):void 0;function yr(t){try{vt.fsyncSync(t)}catch(e){if(e?.code==="EINVAL"||(t===0||t===1||t===2)&&(e?.code==="ENOTSUP"||e?.code==="EBADF"||e?.code==="EPERM"))return;throw e}}a(yr,"nodeFsync");var dr=!1,$e={},x={};function gt(t){$e[x.stdin]=t}a(gt,"_setStdinOps");function Ln(t){$e[x.stdout]=t}a(Ln,"_setStdoutOps");function $n(t){$e[x.stderr]=t}a($n,"_setStderrOps");function Cn(t){return t&&typeof t=="object"&&"errno"in t}a(Cn,"isErrnoError");var Un=new Int32Array(new WebAssembly.Memory({shared:!0,initial:1,maximum:1}).buffer);function Bn(t){try{return Atomics.wait(Un,0,0,t),!0}catch{return!1}}a(Bn,"syncSleep");function Hn(t){for(;;)try{return t()}catch(e){if(e&&e.code==="EAGAIN"&&Bn(100))continue;throw e}}a(Hn,"handleEAGAIN");function lr(t,e,r){let n;try{n=Hn(e)}catch(o){throw o&&o.code&&Module.ERRNO_CODES[o.code]?new FS.ErrnoError(Module.ERRNO_CODES[o.code]):Cn(o)?o:(console.error("Error thrown in read:"),console.error(o),new FS.ErrnoError(29))}if(n===void 0)throw console.warn(`${r} returned undefined; a correct implementation must return a number`),new FS.ErrnoError(29);return n!==0&&(t.node.timestamp=Date.now()),n}a(lr,"readWriteHelper");var cr=a((t,e,r)=>API.typedArrayAsUint8Array(t).subarray(e,e+r),"prepareBuffer"),ft={open:a(function(t){let e=$e[t.node.rdev];if(!e)throw new FS.ErrnoError(43);t.devops=e,t.tty=t.devops.isatty?{ops:{}}:void 0,t.seekable=!1},"open"),close:a(function(t){t.stream_ops.fsync(t)},"close"),fsync:a(function(t){let e=t.devops;e.fsync&&e.fsync()},"fsync"),read:a(function(t,e,r,n,o){return e=cr(e,r,n),lr(t,()=>t.devops.read(e),"read")},"read"),write:a(function(t,e,r,n,o){return e=cr(e,r,n),lr(t,()=>t.devops.write(e),"write")},"write")};function Ce(){dr&&(FS.closeStream(0),FS.closeStream(1),FS.closeStream(2),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1))}a(Ce,"refreshStreams");API.initializeStreams=function(t,e,r){let n=FS.createDevice.major++;x.stdin=FS.makedev(n,0),x.stdout=FS.makedev(n,1),x.stderr=FS.makedev(n,2),FS.registerDevice(x.stdin,ft),FS.registerDevice(x.stdout,ft),FS.registerDevice(x.stderr,ft),FS.unlink("/dev/stdin"),FS.unlink("/dev/stdout"),FS.unlink("/dev/stderr"),FS.mkdev("/dev/stdin",x.stdin),FS.mkdev("/dev/stdout",x.stdout),FS.mkdev("/dev/stderr",x.stderr),re({stdin:t}),xt({batched:e}),wt({batched:r}),dr=!0,Ce()};function jn(){d.IN_NODE?re(new mt(process.stdin.fd)):re({stdin:a(()=>prompt(),"stdin")})}a(jn,"setDefaultStdin");function Wn(){gt(new _t),Ce()}a(Wn,"setStdinError");function re(t={}){let{stdin:e,error:r,isatty:n,autoEOF:o,read:i}=t,s=+!!e+ +!!r+ +!!i;if(s>1)throw new TypeError("At most one of stdin, read, and error must be provided.");if(!e&&o!==void 0)throw new TypeError("The 'autoEOF' option can only be used with the 'stdin' option");if(s===0){jn();return}r&&Wn(),e&&(o=o===void 0?!0:o,gt(new ht(e.bind(t),!!n,o))),i&>(t),Ce()}a(re,"setStdin");function pr(t,e,r){let{raw:n,isatty:o,batched:i,write:s}=t,l=+!!n+ +!!i+ +!!s;if(l===0&&(t=r(),({raw:n,isatty:o,batched:i,write:s}=t)),l>1)throw new TypeError("At most one of 'raw', 'batched', and 'write' must be passed");if(!n&&!s&&o)throw new TypeError("Cannot set 'isatty' to true unless 'raw' or 'write' is provided");n&&e(new Pt(n.bind(t),!!o)),i&&e(new bt(i.bind(t))),s&&e(t),Ce()}a(pr,"_setStdwrite");function zn(){return d.IN_NODE?new Le(process.stdout.fd):{batched:a(t=>console.log(t),"batched")}}a(zn,"_getStdoutDefaults");function Gn(){return d.IN_NODE?new Le(process.stderr.fd):{batched:a(t=>console.warn(t),"batched")}}a(Gn,"_getStderrDefaults");function xt(t={}){pr(t,Ln,zn)}a(xt,"setStdout");function wt(t={}){pr(t,$n,Gn)}a(wt,"setStderr");var Vn=globalThis.TextEncoder??function(){},Kn=new Vn,_t=class{static{a(this,"ErrorReader")}read(e){throw new FS.ErrnoError(29)}},mt=class{static{a(this,"NodeReader")}constructor(e){this.fd=e,this.isatty=ur.isatty(e)}read(e){try{return vt.readSync(this.fd,e)}catch(r){if(r.toString().includes("EOF"))return 0;throw r}}fsync(){yr(this.fd)}},ht=class{static{a(this,"LegacyReader")}constructor(e,r,n){this.infunc=e,this.isatty=r,this.autoEOF=n,this.index=0,this.saved=void 0,this.insertEOF=!1}_getInput(){if(this.saved)return this.saved;let e=this.infunc();if(typeof e=="number")return e;if(e!=null){if(ArrayBuffer.isView(e)){if(e.BYTES_PER_ELEMENT!==1)throw console.warn(`Expected BYTES_PER_ELEMENT to be 1, infunc gave ${e.constructor}`),new FS.ErrnoError(29);return e}if(typeof e=="string")return e.endsWith(`\n`)||(e+=`\n`),e;if(Object.prototype.toString.call(e)==="[object ArrayBuffer]")return new Uint8Array(e);throw console.warn("Expected result to be undefined, null, string, array buffer, or array buffer view"),new FS.ErrnoError(29)}}read(e){if(this.insertEOF)return this.insertEOF=!1,0;let r=0;for(;;){let n=this._getInput();if(typeof n=="number"){e[0]=n,e=e.subarray(1),r++;continue}let o;if(n&&n.length>0)if(typeof n=="string"){let{read:i,written:s}=Kn.encodeInto(n,e);this.saved=n.slice(i),r+=s,o=e[s-1],e=e.subarray(s)}else{let i;n.length>e.length?(e.set(n.subarray(0,e.length)),this.saved=n.subarray(e.length),i=e.length):(e.set(n),this.saved=void 0,i=n.length),r+=i,o=e[i-1],e=e.subarray(i)}if(!(n&&n.length>0)||this.autoEOF||e.length===0)return this.insertEOF=r>0&&this.autoEOF&&o!==10,r}}fsync(){}},Pt=class{static{a(this,"CharacterCodeWriter")}constructor(e,r){this.out=e,this.isatty=r}write(e){for(let r of e)this.out(r);return e.length}},bt=class{constructor(e){this.isatty=!1;this.out=e,this.output=[]}static{a(this,"StringWriter")}write(e){for(let r of e)r===10?(this.out(UTF8ArrayToString(new Uint8Array(this.output))),this.output=[]):r!==0&&this.output.push(r);return e.length}fsync(){this.output&&this.output.length>0&&(this.out(UTF8ArrayToString(new Uint8Array(this.output))),this.output=[])}},Le=class{static{a(this,"NodeWriter")}constructor(e){this.fd=e,this.isatty=ur.isatty(e)}write(e){return vt.writeSync(this.fd,e)}fsync(){yr(this.fd)}};var St="sched$"+Math.random().toString(36).slice(2)+"$",W={},fr=0,j=null,At=[],Jn=typeof globalThis.scheduler?.postTask=="function";function qn(){if(!d.IN_BROWSER_MAIN_THREAD)return;let t=a(e=>{if(typeof e.data=="string"&&e.data.indexOf(St)===0){let r=+e.data.slice(St.length),n=W[r];if(!n)return;try{n()}finally{delete W[r]}}},"onGlobalMessage");globalThis.addEventListener("message",t,!1)}a(qn,"installPostMessageHandler");qn();function Yn(){j||d.IN_SAFARI||d.IN_DENO||d.IN_NODE||typeof globalThis.MessageChannel=="function"&&(j=new MessageChannel,j.port1.onmessage=()=>{let t=At.length;for(let e=0;e<t;e++){let r=At.shift(),n=W[r];if(n)try{n()}finally{delete W[r]}}},j.port1.start?.())}a(Yn,"ensureSharedChannel");Yn();function Qn(t){if(d.IN_NODE)setImmediate(t);else if(j){let e=fr++;W[e]=t,At.push(e),j.port2.postMessage(0)}else if(d.IN_BROWSER_MAIN_THREAD&&typeof globalThis.postMessage=="function"){let e=fr++;W[e]=t,globalThis.postMessage(St+e,"*")}else setTimeout(t,0)}a(Qn,"scheduleCallbackImmediate");function Ue(t,e=0){if(Jn){globalThis.scheduler.postTask(t,{delay:e});return}e<=2?Qn(t):setTimeout(t,e)}a(Ue,"scheduleCallback");var{get:Xn,getOwnPropertyDescriptor:Zn,ownKeys:eo}=Reflect,to=a(t=>({value:t,enumerable:!0,writable:!0,configurable:!0}),"getPropertyDescriptor"),_r=Symbol(),gr="prototype",ro={deleteProperty:a((t,e)=>t.has(e)?t.delete(e):delete t[e],"deleteProperty"),get(t,e,r){if(e===_r)return t;let n=t[e];return typeof n=="function"&&e!=="constructor"&&(n=n.bind(t)),n||=t.get(e),n},getOwnPropertyDescriptor(t,e){if(t.has(e))return to(t.get(e));if(e in t)return Zn(t,e)},has:a((t,e)=>t.has(e)||e in t,"has"),ownKeys:a(t=>[...t.keys(),...eo(t)].filter(e=>["string","symbol"].includes(typeof e)),"ownKeys"),set:a((t,e,r)=>(t.set(e,r),!0),"set")},no=new Proxy(class extends Map{static{a(this,"LiteralMap")}constructor(...e){return new Proxy(super(...e),ro)}},{get(t,e,...r){return e!==gr&&e in t[gr]?(n,...o)=>{let i=n[_r],s=i[e];return typeof s=="function"&&(s=s.apply(i,o)),s===i?n:s}:Xn(t,e,...r)}}),mr=no;var Be=new FinalizationRegistry(t=>void t());function oo(t){let e=new AbortController;for(let l of t)if(l.aborted)return e.abort(l.reason),e.signal;let r=new WeakRef(e),n=[],o=t.length;t.forEach(l=>{let c=new WeakRef(l);function u(){r.deref()?.abort(c.deref()?.reason)}a(u,"abort"),l.addEventListener("abort",u),n.push([c,u]),Be.register(l,()=>!--o&&i(),l)});function i(){n.forEach(([l,c])=>{let u=l.deref();u&&(u.removeEventListener("abort",c),Be.unregister(u));let y=r.deref();y&&(Be.unregister(y.signal),delete y.signal.__controller)})}a(i,"clear");let{signal:s}=e;return Be.register(s,i,s),s.addEventListener("abort",i),s.__controller=e,s}a(oo,"abortSignalAny");var hr=oo;API.getExpectedKeys=function(){return[null,API.config.jsglobals,API.public_api,API,Ue,API,{}]};var xr=Symbol("getAccessorList"),Pr=Symbol("getObject");function He(t,e=[]){return new Proxy(t,{get(r,n,o){if(n===xr)return e;if(n===Pr)return r;let i=Reflect.get(...arguments),s=Reflect.getOwnPropertyDescriptor(r,n);return s&&s.writable===!1&&!s.configurable||s&&s.set&&!s.get||!["object","function"].includes(typeof i)?i:He(i,[...e,n])},apply(r,n,o){return n=n?.[Pr]??n,Reflect.apply(r,n,o)},getPrototypeOf(){return He(Reflect.getPrototypeOf(...arguments),[...e,"[getProtoTypeOf]"])}})}a(He,"makeGlobalsProxy");var wr=1886286592,je=48;function ao(t,e){if(e.length!==8)throw new Error("Expected 256 bit buffer");for(let r=0;r<32;r++)e[r]=parseInt(t.slice(r*8,(r+1)*8),16)}a(ao,"encodeBuildId");function io(t){if(t.length!==8)throw new Error("Expected 256 bit buffer");return Array.from(t,e=>e.toString(16).padStart(8,"0")).join("")}a(io,"decodeBuildId");function br(t,e,r){if(e===r)return;if(typeof r=="function"&&typeof e!="function")throw console.warn(r,e),new Error(`Expected function at index ${t}`);let n=!1;try{n=JSON.stringify(e)===JSON.stringify(r)}catch(o){console.warn(o)}if(!n)throw console.warn(r,e),new Error(`Unexpected hiwire entry at index ${t}`)}a(br,"checkEntry");var ne=6;API.serializeHiwireState=function(t,e){e||(e=br);let r=[],n=API.getExpectedKeys();for(let s=0;s<n.length;s++){let l;try{l=Module.__hiwire_get(s)}catch{throw new Error(`Failed to get value at index ${s}`)}br(s,l,n[s])}for(let s=n.length;;s++){let l;try{l=Module.__hiwire_get(s)}catch{break}if(!["object","function"].includes(typeof l))throw new Error(`Unexpected object of type ${typeof l} at index ${s}`);if(l===null){r.push(l);continue}let c;try{c=l[xr]}catch{}if(c){r.push({path:c});continue}if(l===API){r.push({API:!0});continue}if(l===API.abortSignalAny){r.push({abortSignalAny:!0});continue}if(t){let u=t(l);try{JSON.stringify(u)}catch{throw console.warn(`Serializer returned result that cannot be JSON.stringify'd at index ${s}.`),console.warn(" Input: ",l),console.warn(" Output:",u),new Error(`Serializer returned result that cannot be JSON.stringify'd at index ${s}.`)}r.push({serialized:u});continue}throw new Error(`Can't serialize object at index ${s}`)}let o=[];if(Module.__hiwire_immortal_get(ne)?.noValueMarker!==1)throw new Error(`Internal error: expected js_no_value object at index ${ne}`);for(let s=ne+1;;s++){let l;try{l=Module.__hiwire_immortal_get(s)}catch{break}if(typeof l!="string")throw new Error("Expected a string");o.push(l)}return{hiwireKeys:r,immortalKeys:o}};API.makeSnapshot=function(t){if(!API.config._makeSnapshot)throw new Error("makeSnapshot only works if you passed the makeSnapshot option to loadPyodide");let e=API.serializeHiwireState(t),r=JSON.stringify(e),n=je+2*r.length;n=Math.ceil(n/16)*16;let o=new Uint8Array(n+Module.HEAP8.length),i=new TextEncoder,{written:s}=i.encodeInto(r,o.subarray(je)),l=new Uint32Array(o.buffer);return l[0]=wr,l[1]=n,l[2]=s,l[3]=0,ao(API.config.BUILD_ID,l.subarray(4,12)),o.subarray(n).set(Module.HEAP8),o};API.restoreSnapshot=function(t){let e=new Uint32Array(t.buffer,t.byteOffset,t.byteLength/4);if(e[0]!==wr)throw new Error("Snapshot has invalid magic number");let r=e[1],n=e[2],o=io(e.subarray(4,12));if(o!==API.config.BUILD_ID)throw new Error(`Snapshot build id mismatch\nexpected: ${API.config.BUILD_ID}\ngot : ${o}\n`);let i=t.subarray(je,je+n);t=t.subarray(r);let s=(new TextDecoder).decode(i),l=JSON.parse(s);return Module.HEAP8.set(t),l};function Sr(){if(Module._jslib_init(),Module.__hiwire_immortal_get(ne)?.noValueMarker!==1)throw new Error(`Internal error: expected js_no_value object at index ${ne}`);Module._init_pyodide_proxy(),Module.runtimeKeepalivePush()}a(Sr,"syncUpSnapshotLoad1");function vr(t,e){if(Module.__hiwire_set(t,e)<0)throw new Error("table set failed")}a(vr,"tableSet");function Ar(t,e,r){let n=API.getExpectedKeys();n.forEach((o,i)=>vr(i,o)),e.hiwireKeys.forEach((o,i)=>{let s;if(!o)s=o;else if("path"in o)s=o.path.reduce((l,c)=>l[c],t)||null;else if("abortSignalAny"in o)s=API.abortSignalAny;else if("API"in o)s=API;else{if(!r)throw new Error("You must pass an appropriate deserializer as _snapshotDeserializer");s=r(o.serialized)}vr(n.length+i,s)}),e.immortalKeys.forEach(o=>Module.__hiwire_immortal_add(o))}a(Ar,"syncUpSnapshotLoad2");async function Ir(t,e){return new Promise((r,n)=>{t.FS.syncfs(e,o=>{o?n(o):r()})})}a(Ir,"syncfs");async function Er(t){return await Ir(t,!1)}a(Er,"syncLocalToRemote");async function kr(t){return await Ir(t,!0)}a(kr,"syncRemoteToLocal");API.loadBinaryFile=Q;API.rawRun=a(function(e){let r=Module.stringToNewUTF8(e);Module.API.capture_stderr();let n=_PyRun_SimpleString(r);_free(r);let o=Module.API.restore_stderr().trim();return[n,o]},"rawRun");API.runPythonInternal=function(t){return API._pyodide._base.eval_code(t,API.runPythonInternal_dict)};API.setPyProxyToStringMethod=function(t){Module.HEAP8[Module._compat_to_string_repr]=+t};API.setCompatToJsLiteralMap=function(t){Module.HEAP8[Module._compat_dict_to_literalmap]=+t};API.setCompatNullToNone=function(t){Module.HEAP8[Module._compat_null_to_none]=+t};API.saveState=()=>API.pyodide_py._state.save_state();API.restoreState=t=>API.pyodide_py._state.restore_state(t);API.scheduleCallback=Ue;typeof AbortSignal<"u"&&AbortSignal.any?API.abortSignalAny=AbortSignal.any:API.abortSignalAny=hr;API.LiteralMap=mr;function Mr(t){Module.FS.mkdirTree(t);let{node:e}=Module.FS.lookupPath(t,{follow_mount:!1});if(Module.FS.isMountpoint(e))throw new Error(`path '${t}' is already a file system mount point`);if(!Module.FS.isDir(e.mode))throw new Error(`path '${t}' points to a file not a directory`);for(let r in e.contents)throw new Error(`directory '${t}' is not empty`)}a(Mr,"ensureMountPathExists");var It=class{static{a(this,"PyodideAPI_")}static{this.version=sr}static{this.loadPackage=te}static{this.loadedPackages=ee}static{this.ffi=Gt}static{this.setStdin=re}static{this.setStdout=xt}static{this.setStderr=wt}static{this.globals={}}static{this.FS={}}static{this.PATH={}}static{this.canvas=Jt}static{this.ERRNO_CODES={}}static{this.pyodide_py={}}static async loadPackagesFromImports(e,r={checkIntegrity:!0}){let n=API.pyodide_code.find_imports(e),o;try{o=n.toJs()}finally{n.destroy()}if(o.length===0)return[];let i=API._import_name_to_package_name,s=new Set;for(let l of o)i.has(l)&&s.add(i.get(l));return s.size?await te(Array.from(s),r):[]}static runPython(e,r={}){return r.globals||(r.globals=API.globals),API.pyodide_code.eval_code.callKwargs(e,r)}static async runPythonAsync(e,r={}){return r.globals||(r.globals=API.globals),await API.pyodide_code.eval_code_async.callKwargs(e,r)}static registerJsModule(e,r){API.pyodide_ffi.register_js_module(e,r)}static unregisterJsModule(e){API.pyodide_ffi.unregister_js_module(e)}static toPy(e,{depth:r,defaultConverter:n}={depth:-1}){switch(typeof e){case"string":case"number":case"boolean":case"bigint":case"undefined":return e}if(!e||API.isPyProxy(e))return e;let o=0,i=0;try{o=Module.js2python_convert(e,{depth:r,defaultConverter:n})}catch(s){throw s instanceof Module._PropagatePythonError&&_pythonexc2js(),s}try{if(_JsProxy_Check(o))return e;i=_python2js(o),i===null&&_pythonexc2js()}finally{_Py_DecRef(o)}return i}static pyimport(e){return API.pyodide_base.pyimport_impl(e)}static unpackArchive(e,r,n={}){if(!ArrayBuffer.isView(e)&&API.getTypeTag(e)!=="[object ArrayBuffer]")throw new TypeError("Expected argument 'buffer' to be an ArrayBuffer or an ArrayBuffer view");API.typedArrayAsUint8Array(e);let o=n.extractDir;API.package_loader.unpack_buffer.callKwargs({buffer:e,format:r,extract_dir:o,metadata:qt})}static async mountNativeFS(e,r){if(r.constructor.name!=="FileSystemDirectoryHandle")throw new TypeError("Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle");return Mr(e),Module.FS.mount(Module.FS.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:r},e),await kr(Module),{syncfs:a(async()=>await Er(Module),"syncfs")}}static mountNodeFS(e,r){if(!d.IN_NODE)throw new Error("mountNodeFS only works in Node");Mr(e);let n;try{n=Re.lstatSync(r)}catch{throw new Error(`hostPath '${r}' does not exist`)}if(!n.isDirectory())throw new Error(`hostPath '${r}' is not a directory`);Module.FS.mount(Module.FS.filesystems.NODEFS,{root:r},e)}static registerComlink(e){API._Comlink=e}static setInterruptBuffer(e){Module.HEAP8[Module._Py_EMSCRIPTEN_SIGNAL_HANDLING]=+!!e,Module.Py_EmscriptenSignalBuffer=e}static checkInterrupt(){if(_PyGILState_Check()){__PyErr_CheckSignals()&&_pythonexc2js();return}else{let e=Module.Py_EmscriptenSignalBuffer;if(e&&e[0]===2)throw new Module.FS.ErrnoError(27)}}static setDebug(e){let r=!!API.debug_ffi;return API.debug_ffi=e,r}static makeMemorySnapshot({serializer:e}={}){if(!API.config._makeSnapshot)throw new Error("Can only use pyodide.makeMemorySnapshot if the _makeSnapshot option is passed to loadPyodide");return API.makeSnapshot(e)}static get lockfile(){return API.lockfile}static get lockfileBaseUrl(){return API.config.packageCacheDir??API.config.packageBaseUrl}};function so(){let t=Object.getOwnPropertyDescriptors(It);delete t.prototype;let e=Object.create({},t);return API.public_api=e,e.FS=Module.FS,e.PATH=Module.PATH,e.ERRNO_CODES=Module.ERRNO_CODES,e._module=Module,e._api=API,e}a(so,"makePublicAPI");function lo(t,e){return new Proxy(t,{get(r,n){return n==="get"?o=>{let i=r.get(o);return i===void 0&&(i=e.get(o)),i}:n==="has"?o=>r.has(o)||e.has(o):Reflect.get(r,n)}})}a(lo,"wrapPythonGlobals");var Nr;API.bootstrapFinalizedPromise=new Promise(t=>Nr=t);API.finalizeBootstrap=function(t,e){t&&Sr();let[r,n]=API.rawRun("import _pyodide_core");r&&API.fatal_loading_error(`Failed to import _pyodide_core\n`,n),API.runPythonInternal_dict=API._pyodide._base.eval_code("{}"),API.importlib=API.runPythonInternal("import importlib; importlib");let o=API.importlib.import_module;API.sys=o("sys"),API.os=o("os");let i=API.runPythonInternal("import __main__; __main__.__dict__"),s=API.runPythonInternal("import builtins; builtins.__dict__");API.globals=lo(i,s);let l=API._pyodide._importhook,c=so();API.config._makeSnapshot&&(API.config.jsglobals=He(API.config.jsglobals));let u=API.config.jsglobals;return t?Ar(u,t,e):(l.register_js_finder(),l.register_js_module("js",u),l.register_js_module("pyodide_js",c),l.register_windows_finder()),API.pyodide_py=o("pyodide"),API.pyodide_code=o("pyodide.code"),API.pyodide_ffi=o("pyodide.ffi"),API.package_loader=o("pyodide._package_loader"),API.pyodide_base=o("_pyodide._base"),API.sitepackages=API.package_loader.SITE_PACKAGES.__str__(),API.dsodir=API.package_loader.DSO_DIR.__str__(),API.defaultLdLibraryPath=[API.dsodir,API.sitepackages],API.os.environ.__setitem__("LD_LIBRARY_PATH",API.defaultLdLibraryPath.join(":")),c.pyodide_py=API.pyodide_py,c.globals=API.globals,Nr(),c}})()}var StackSwitching=(()=>{var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:true}),mod);var stack_switching_exports={};__export(stack_switching_exports,{StackState:()=>StackState,createPromising:()=>createPromising,jspiSupported:()=>jspiSupported,newJspiSupported:()=>newJspiSupported,oldJspiSupported:()=>oldJspiSupported,promisingApply:()=>promisingApply,promisingRunMain:()=>promisingRunMain,suspenderGlobal:()=>suspenderGlobal,validSuspender:()=>validSuspender});var suspenderGlobal={value:null};var validSuspender={value:false};var promisingApplyHandler;function promisingApply(...args){validSuspender.value=true;Module.stackStop=stackSave();return promisingApplyHandler(...args)}var promisingRunMainHandler;function promisingRunMain(...args){validSuspender.value=true;Module.stackStop=stackSave();return promisingRunMainHandler(...args)}function createPromising(wasm_func){if(Module.newJspiSupported){const promisingFunc=WebAssembly.promising(wasm_func);async function wrapper(...args){const orig=validSuspender.value;validSuspender.value=true;try{return await promisingFunc(null,...args)}finally{validSuspender.value=orig}}return wrapper}const{parameters}=wasmFunctionType(wasm_func);parameters.shift();return new WebAssembly.Function({parameters,results:["externref"]},wasm_func,{promising:"first"})}function initSuspenders(){promisingApplyHandler=createPromising(wasmExports._pyproxy_apply_promising);if(wasmExports.run_main_promising){promisingRunMainHandler=createPromising(wasmExports.run_main_promising)}}var stackStates=[];var StackState=class{constructor(){this.start=stackSave();this.stop=Module.stackStop;this._copy=new Uint8Array(0);if(this.start!==this.stop){stackStates.push(this)}}restore(){let total=0;while(stackStates.length>0&&stackStates[stackStates.length-1].stop<this.stop){total+=stackStates.pop()._save()}const last=stackStates[stackStates.length-1];if(last&&last!==this){total+=last._save_up_to(this.stop)}if(last&&last.stop===this.stop){stackStates.pop()}if(this._copy.length!==0){Module.HEAP8.set(this._copy,this.start);total+=this._copy.length;this._copy=new Uint8Array(0)}Module.stackStop=this.stop;stackRestore(this.start);return total}_save_up_to(stop){let sz1=this._copy.length;let sz2=stop-this.start;if(sz2<=sz1){return 0}const new_segment=HEAP8.subarray(this.start+sz1>>>0,this.start+sz2>>>0);const c=new Uint8Array(sz2);c.set(this._copy);c.set(new_segment,sz1);this._copy=c;return sz2}_save(){return this._save_up_to(this.stop)}};var canConstructWasm=true;try{new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0]))}catch(e){canConstructWasm=false}var newJspiSupported=canConstructWasm&&"Suspending"in WebAssembly;var oldJspiSupported=canConstructWasm&&"Suspender"in WebAssembly;var jspiSupported=newJspiSupported||oldJspiSupported;Module.newJspiSupported=newJspiSupported;Module.oldJspiSupported=oldJspiSupported;Module.jspiSupported=jspiSupported;if(jspiSupported){Module.preRun.push(initSuspenders)}return __toCommonJS(stack_switching_exports)})();const{StackState,createPromising,jspiSupported,newJspiSupported,oldJspiSupported,promisingApply,promisingRunMain,suspenderGlobal,validSuspender}=StackSwitching;Object.assign(Module,StackSwitching);const API=Module.API;const Hiwire={};const Tests={};API.tests=Tests;API.version="0.29.3";API.abiVersion="2025_0";Module.hiwire=Hiwire;function getTypeTag(x){try{return Object.prototype.toString.call(x)}catch(e){return""}}API.getTypeTag=getTypeTag;function hasProperty(obj,prop){try{while(obj){if(Object.hasOwn(obj,prop)){return true}obj=Object.getPrototypeOf(obj)}}catch(e){}return false}function hasMethod(obj,prop){try{return typeof obj[prop]==="function"}catch(e){return false}}const pyproxyIsAlive=px=>!!Module.PyProxy_getAttrsQuiet(px).shared.ptr;API.pyproxyIsAlive=pyproxyIsAlive;const errNoRet=()=>{throw new Error("Assertion error: control reached end of function without return")};function isPromise(obj){try{return typeof obj?.then==="function"}catch(e){return false}}API.isPromise=isPromise;function bufferAsUint8Array(arg){if(ArrayBuffer.isView(arg)){return new Uint8Array(arg.buffer,arg.byteOffset,arg.byteLength)}else{return new Uint8Array(arg)}}API.typedArrayAsUint8Array=bufferAsUint8Array;Module.iterObject=function*(object){for(let k in object){if(Object.hasOwn(object,k)){yield k}}};function wasmFunctionType(wasm_func){if(!WebAssembly.Function){throw new Error("No type reflection")}if(WebAssembly.Function.type){return WebAssembly.Function.type(wasm_func)}return wasm_func.type()}pyodide_js_init();pyodide_js_init.sig="v";function set_suspender(suspender){suspenderGlobal.value=suspender}set_suspender.sig="ve";function get_suspender(){return suspenderGlobal.value}get_suspender.sig="e";function syncifyHandler(x,y){return Module.error}async function inner(x,y){try{return await(x??y)}catch(e){if(e&&e.pyodide_fatal_error){throw e}Module.syncify_error=e;return Module.error}}if(newJspiSupported){syncifyHandler=new WebAssembly.Suspending(inner)}else if(oldJspiSupported){syncifyHandler=new WebAssembly.Function({parameters:["externref","externref"],results:["externref"]},inner,{suspending:"first"})}syncifyHandler.sig="eee";function JsvPromise_Syncify_handleError(){if(!Module.syncify_error){return}Module.handle_js_error(Module.syncify_error);delete Module.syncify_error}JsvPromise_Syncify_handleError.sig="v";function saveState(){if(!validSuspender.value){return Module.error}const stackState=new StackState;const threadState=_captureThreadState();return{threadState,stackState,suspender:suspenderGlobal.value}}saveState.sig="e";function restoreState(state){state.stackState.restore();_restoreThreadState(state.threadState);suspenderGlobal.value=state.suspender;validSuspender.value=true}restoreState.sig="ve";function _Py_emscripten_runtime(){var info;if(typeof navigator=="object"){info=navigator.userAgent}else if(typeof process=="object"){info="Node.js ".concat(process.version)}else{info="UNKNOWN"}var len=lengthBytesUTF8(info)+1;var res=_malloc(len);if(res)stringToUTF8(info,res,len);return res}_Py_emscripten_runtime.sig="i";function _Py_CheckEmscriptenSignals_Helper(){if(!Module.Py_EmscriptenSignalBuffer){return 0}try{let result=Module.Py_EmscriptenSignalBuffer[0];Module.Py_EmscriptenSignalBuffer[0]=0;return result}catch(e){return 0}}_Py_CheckEmscriptenSignals_Helper.sig="i";function _PyEM_GetCountArgsPtr(){return Module._PyEM_CountArgsPtr}_PyEM_GetCountArgsPtr.sig="i";function _PyEM_InitTrampoline_js(){const ptr=getPyEMCountArgsPtr();Module._PyEM_CountArgsPtr=ptr;const offset=HEAP32[__PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET/4>>>0];HEAP32[(__PyRuntime+offset)/4>>>0]=ptr}function getPyEMCountArgsPtr(){let isIOS=globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&typeof navigator.maxTouchPoints!=="undefined"&&navigator.maxTouchPoints>1);if(isIOS){return 0}const code=new Uint8Array([0,97,115,109,1,0,0,0,1,27,5,96,0,1,127,96,1,127,1,127,96,2,127,127,1,127,96,3,127,127,127,1,127,96,1,127,0,2,9,1,1,101,1,116,1,112,0,0,3,2,1,1,7,5,1,1,102,0,0,10,68,1,66,1,1,112,32,0,37,0,34,1,251,20,3,2,4,69,13,0,65,3,15,11,32,1,251,20,2,2,4,69,13,0,65,2,15,11,32,1,251,20,1,2,4,69,13,0,65,1,15,11,32,1,251,20,0,2,4,69,13,0,65,0,15,11,65,127,11]);try{const mod=new WebAssembly.Module(code);const inst=new WebAssembly.Instance(mod,{e:{t:wasmTable}});return addFunction(inst.exports.f)}catch(e){return 0}}_PyEM_InitTrampoline_js.sig="v";function _PyEM_TrampolineCall_JS(func,arg1,arg2,arg3){return wasmTable.get(func)(arg1,arg2,arg3)}_PyEM_TrampolineCall_JS.sig="iiiii";function unbox_small_structs(type_ptr){var type_id=HEAPU16[(type_ptr+6>>1)+0>>>0];while(type_id===13){var elements=HEAPU32[(type_ptr+8>>2)+0>>>0];var first_element=HEAPU32[(elements>>2)+0>>>0];if(first_element===0){type_id=0;break}else if(HEAPU32[(elements>>2)+1>>>0]===0){type_ptr=first_element;type_id=HEAPU16[(first_element+6>>1)+0>>>0]}else{break}}return[type_ptr,type_id]}function ffi_call_js(cif,fn,rvalue,avalue){var abi=HEAPU32[(cif>>2)+0>>>0];var nargs=HEAPU32[(cif>>2)+1>>>0];var nfixedargs=HEAPU32[(cif>>2)+6>>>0];var arg_types_ptr=HEAPU32[(cif>>2)+2>>>0];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3>>>0]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var orig_stack_ptr=stackSave();var cur_stack_ptr=orig_stack_ptr;var args=[];var ret_by_arg=!!0;if(rtype_id===15){throw new Error("complex ret marshalling nyi")}if(rtype_id<0||rtype_id>15){throw new Error("Unexpected rtype "+rtype_id)}if(rtype_id===4||rtype_id===13){args.push(rvalue);ret_by_arg=!!1}for(var i=0;i<nfixedargs;i++){var arg_ptr=HEAPU32[(avalue>>2)+i>>>0];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 1:case 10:case 9:case 14:args.push(HEAPU32[(arg_ptr>>2)+0>>>0]);break;case 2:args.push(HEAPF32[(arg_ptr>>2)+0>>>0]);break;case 3:args.push(HEAPF64[(arg_ptr>>3)+0>>>0]);break;case 5:args.push(HEAPU8[arg_ptr+0>>>0]);break;case 6:args.push(HEAP8[arg_ptr+0>>>0]);break;case 7:args.push(HEAPU16[(arg_ptr>>1)+0>>>0]);break;case 8:args.push(HEAP16[(arg_ptr>>1)+0>>>0]);break;case 11:case 12:args.push(HEAPU64[(arg_ptr>>3)+0>>>0]);break;case 4:args.push(HEAPU64[(arg_ptr>>3)+0>>>0]);args.push(HEAPU64[(arg_ptr>>3)+1>>>0]);break;case 13:var size=HEAPU32[(arg_type_ptr>>2)+0>>>0];var align=HEAPU16[(arg_type_ptr+4>>1)+0>>>0];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr>>>0,cur_stack_ptr+size>>>0).set(HEAP8.subarray(arg_ptr>>>0,arg_ptr+size>>>0));args.push(cur_stack_ptr);break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected type "+arg_type_id)}}if(nfixedargs!=nargs){var struct_arg_info=[];for(var i=nargs-1;i>=nfixedargs;i--){var arg_ptr=HEAPU32[(avalue>>2)+i>>>0];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 5:case 6:cur_stack_ptr-=1,cur_stack_ptr&=~(1-1);HEAPU8[cur_stack_ptr+0>>>0]=HEAPU8[arg_ptr+0>>>0];break;case 7:case 8:cur_stack_ptr-=2,cur_stack_ptr&=~(2-1);HEAPU16[(cur_stack_ptr>>1)+0>>>0]=HEAPU16[(arg_ptr>>1)+0>>>0];break;case 1:case 9:case 10:case 14:case 2:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];break;case 3:case 11:case 12:cur_stack_ptr-=8,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];HEAPU32[(cur_stack_ptr>>2)+1>>>0]=HEAPU32[(arg_ptr>>2)+1>>>0];break;case 4:cur_stack_ptr-=16,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];HEAPU32[(cur_stack_ptr>>2)+1>>>0]=HEAPU32[(arg_ptr>>2)+1>>>0];HEAPU32[(cur_stack_ptr>>2)+2>>>0]=HEAPU32[(arg_ptr>>2)+2>>>0];HEAPU32[(cur_stack_ptr>>2)+3>>>0]=HEAPU32[(arg_ptr>>2)+3>>>0];break;case 13:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);struct_arg_info.push([cur_stack_ptr,arg_ptr,HEAPU32[(arg_type_ptr>>2)+0>>>0],HEAPU16[(arg_type_ptr+4>>1)+0>>>0]]);break;case 15:throw new Error("complex arg marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}args.push(cur_stack_ptr);for(var i=0;i<struct_arg_info.length;i++){var struct_info=struct_arg_info[i];var arg_target=struct_info[0];var arg_ptr=struct_info[1];var size=struct_info[2];var align=struct_info[3];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr>>>0,cur_stack_ptr+size>>>0).set(HEAP8.subarray(arg_ptr>>>0,arg_ptr+size>>>0));HEAPU32[(arg_target>>2)+0>>>0]=cur_stack_ptr}}stackRestore(cur_stack_ptr);stackAlloc(0);var result=(0,getWasmTableEntry(fn).apply(null,args));stackRestore(orig_stack_ptr);if(ret_by_arg){return}switch(rtype_id){case 0:break;case 1:case 9:case 10:case 14:HEAPU32[(rvalue>>2)+0>>>0]=result;break;case 2:HEAPF32[(rvalue>>2)+0>>>0]=result;break;case 3:HEAPF64[(rvalue>>3)+0>>>0]=result;break;case 5:case 6:HEAPU8[rvalue+0>>>0]=result;break;case 7:case 8:HEAPU16[(rvalue>>1)+0>>>0]=result;break;case 11:case 12:HEAPU64[(rvalue>>3)+0>>>0]=result;break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}}ffi_call_js.sig="viiii";function ffi_closure_alloc_js(size,code){var closure=_malloc(size);var index=getEmptyTableSlot();HEAPU32[(code>>2)+0>>>0]=index;HEAPU32[(closure>>2)+0>>>0]=index;return closure}ffi_closure_alloc_js.sig="iii";function ffi_closure_free_js(closure){var index=HEAPU32[(closure>>2)+0>>>0];freeTableIndexes.push(index);_free(closure)}ffi_closure_free_js.sig="vi";function ffi_prep_closure_loc_js(closure,cif,fun,user_data,codeloc){var abi=HEAPU32[(cif>>2)+0>>>0];var nargs=HEAPU32[(cif>>2)+1>>>0];var nfixedargs=HEAPU32[(cif>>2)+6>>>0];var arg_types_ptr=HEAPU32[(cif>>2)+2>>>0];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3>>>0]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var sig;var ret_by_arg=!!0;switch(rtype_id){case 0:sig="v";break;case 13:case 4:sig="vi";ret_by_arg=!!1;break;case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:sig="i";break;case 2:sig="f";break;case 3:sig="d";break;case 11:case 12:sig="j";break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}var unboxed_arg_type_id_list=[];var unboxed_arg_type_info_list=[];for(var i=0;i<nargs;i++){var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];unboxed_arg_type_id_list.push(arg_type_id);unboxed_arg_type_info_list.push([HEAPU32[(arg_type_ptr>>2)+0>>>0],HEAPU16[(arg_type_ptr+4>>1)+0>>>0]])}for(var i=0;i<nfixedargs;i++){switch(unboxed_arg_type_id_list[i]){case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:case 13:sig+="i";break;case 2:sig+="f";break;case 3:sig+="d";break;case 4:sig+="jj";break;case 11:case 12:sig+="j";break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}if(nfixedargs<nargs){sig+="i"}0;function trampoline(){var args=Array.prototype.slice.call(arguments);var orig_stack_ptr=stackSave();var cur_ptr=orig_stack_ptr;var ret_ptr;var jsarg_idx=0;if(ret_by_arg){ret_ptr=args[jsarg_idx++]}else{cur_ptr-=8,cur_ptr&=~(8-1);ret_ptr=cur_ptr}cur_ptr-=4*nargs;var args_ptr=cur_ptr;var carg_idx=0;for(;carg_idx<nfixedargs;carg_idx++){var cur_arg=args[jsarg_idx++];var arg_type_info=unboxed_arg_type_info_list[carg_idx];var arg_size=arg_type_info[0];var arg_align=arg_type_info[1];var arg_type_id=unboxed_arg_type_id_list[carg_idx];switch(arg_type_id){case 5:case 6:cur_ptr-=1,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU8[cur_ptr+0>>>0]=cur_arg;break;case 7:case 8:cur_ptr-=2,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU16[(cur_ptr>>1)+0>>>0]=cur_arg;break;case 1:case 9:case 10:case 14:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU32[(cur_ptr>>2)+0>>>0]=cur_arg;break;case 13:cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr>>>0,cur_ptr+arg_size>>>0).set(HEAP8.subarray(cur_arg>>>0,cur_arg+arg_size>>>0));HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;break;case 2:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPF32[(cur_ptr>>2)+0>>>0]=cur_arg;break;case 3:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPF64[(cur_ptr>>3)+0>>>0]=cur_arg;break;case 11:case 12:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU64[(cur_ptr>>3)+0>>>0]=cur_arg;break;case 4:cur_ptr-=16,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU64[(cur_ptr>>3)+0>>>0]=cur_arg;cur_arg=args[jsarg_idx++];HEAPU64[(cur_ptr>>3)+1>>>0]=cur_arg;break}}var varargs=args[args.length-1];for(;carg_idx<nargs;carg_idx++){var arg_type_id=unboxed_arg_type_id_list[carg_idx];var arg_type_info=unboxed_arg_type_info_list[carg_idx];var arg_size=arg_type_info[0];var arg_align=arg_type_info[1];if(arg_type_id===13){var struct_ptr=HEAPU32[(varargs>>2)+0>>>0];cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr>>>0,cur_ptr+arg_size>>>0).set(HEAP8.subarray(struct_ptr>>>0,struct_ptr+arg_size>>>0));HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr}else{HEAPU32[(args_ptr>>2)+carg_idx>>>0]=varargs}varargs+=4}stackRestore(cur_ptr);stackAlloc(0);0;getWasmTableEntry(HEAPU32[(closure>>2)+2>>>0])(HEAPU32[(closure>>2)+1>>>0],ret_ptr,args_ptr,HEAPU32[(closure>>2)+3>>>0]);stackRestore(orig_stack_ptr);if(!ret_by_arg){switch(sig[0]){case"i":return HEAPU32[(ret_ptr>>2)+0>>>0];case"j":return HEAPU64[(ret_ptr>>3)+0>>>0];case"d":return HEAPF64[(ret_ptr>>3)+0>>>0];case"f":return HEAPF32[(ret_ptr>>2)+0>>>0]}}}try{var wasm_trampoline=convertJsFunctionToWasm(trampoline,sig)}catch(e){return 1}setWasmTableEntry(codeloc,wasm_trampoline);HEAPU32[(closure>>2)+1>>>0]=cif;HEAPU32[(closure>>2)+2>>>0]=fun;HEAPU32[(closure>>2)+3>>>0]=user_data;return 0}ffi_prep_closure_loc_js.sig="iiiiii";function __hiwire_deduplicate_new(){return new Map}__hiwire_deduplicate_new.sig="e";function __hiwire_deduplicate_get(map,value){return map.get(value)}__hiwire_deduplicate_get.sig="iee";function __hiwire_deduplicate_set(map,value,ref){map.set(value,ref)}__hiwire_deduplicate_set.sig="veei";function __hiwire_deduplicate_delete(map,value){map.delete(value)}__hiwire_deduplicate_delete.sig="vee";var wasmImports={JsArray_count_js,JsArray_index_js,JsArray_inplace_repeat_js,JsArray_repeat_js,JsArray_reverse_js,JsArray_reversed_iterator,JsBuffer_DecodeString_js,JsBuffer_get_info,JsDoubleProxy_unwrap_js,JsException_new_helper,JsMap_GetIter_js,JsMap_clear_js,JsModule_GetAll_js,JsObjMap_GetIter_js,JsObjMap_ass_subscript_js,JsObjMap_contains_js,JsObjMap_length_js,JsObjMap_subscript_js,JsProxy_Bool_js,JsProxy_DelAttr_js,JsProxy_Dir_js,JsProxy_GetAsyncIter_js,JsProxy_GetAttr_js,JsProxy_GetIter_js,JsProxy_SetAttr_js,JsProxy_compute_typeflags,JsProxy_subscript_js,JsProxy_to_weakref_js,JsvArray_Check,JsvArray_Delete,JsvArray_Extend,JsvArray_Get,JsvArray_Insert,JsvArray_New,JsvArray_Push,JsvArray_Set,JsvArray_ShallowCopy,JsvArray_slice,JsvArray_slice_assign,JsvAsyncGenerator_Check,JsvBuffer_assignFromPtr,JsvBuffer_assignToPtr,JsvBuffer_intoFile,JsvBuffer_readFromFile,JsvBuffer_writeToFile,JsvError_Throw,JsvFunction_CallBound,JsvFunction_Call_OneArg,JsvFunction_Check,JsvFunction_Construct,JsvGenerator_Check,JsvLiteralMap_New,JsvMap_New,JsvMap_Set,JsvNoValue_Check,JsvNum_fromDigits,JsvNum_fromDouble,JsvNum_fromInt,JsvObject_CallMethod,JsvObject_CallMethod_NoArgs,JsvObject_CallMethod_OneArg,JsvObject_CallMethod_TwoArgs,JsvObject_Entries,JsvObject_Keys,JsvObject_New,JsvObject_SetAttr,JsvObject_Values,JsvObject_toString,JsvPromise_Check,JsvPromise_Resolve,JsvPromise_Syncify_handleError,JsvSet_Add,JsvSet_New,JsvUTF8ToString,Jsv_constructorName,Jsv_equal,Jsv_greater_than,Jsv_greater_than_equal,Jsv_less_than,Jsv_less_than_equal,Jsv_not_equal,Jsv_to_bool,Jsv_typeof,_JsArray_PostProcess_helper,_JsArray_PushEntry_helper,_JsObject_Set_js,_PyEM_GetCountArgsPtr,_PyEM_InitTrampoline_js,_PyEM_TrampolineCall_JS,_Py_CheckEmscriptenSignals_Helper,_Py_emscripten_runtime,__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__cpp_exception:___cpp_exception,__heap_base:___heap_base,__hiwire_deduplicate_delete,__hiwire_deduplicate_get,__hiwire_deduplicate_new,__hiwire_deduplicate_set,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__syscall__newselect:___syscall__newselect,__syscall_accept4:___syscall_accept4,__syscall_bind:___syscall_bind,__syscall_chdir:___syscall_chdir,__syscall_chmod:___syscall_chmod,__syscall_connect:___syscall_connect,__syscall_dup:___syscall_dup,__syscall_dup3:___syscall_dup3,__syscall_faccessat:___syscall_faccessat,__syscall_fadvise64:___syscall_fadvise64,__syscall_fchdir:___syscall_fchdir,__syscall_fchmod:___syscall_fchmod,__syscall_fchmodat2:___syscall_fchmodat2,__syscall_fchown32:___syscall_fchown32,__syscall_fchownat:___syscall_fchownat,__syscall_fcntl64:___syscall_fcntl64,__syscall_fdatasync:___syscall_fdatasync,__syscall_fstat64:___syscall_fstat64,__syscall_fstatfs64:___syscall_fstatfs64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_getpeername:___syscall_getpeername,__syscall_getsockname:___syscall_getsockname,__syscall_getsockopt:___syscall_getsockopt,__syscall_ioctl:___syscall_ioctl,__syscall_listen:___syscall_listen,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_pipe:___syscall_pipe,__syscall_poll:___syscall_poll,__syscall_readlinkat:___syscall_readlinkat,__syscall_recvfrom:___syscall_recvfrom,__syscall_recvmsg:___syscall_recvmsg,__syscall_renameat:___syscall_renameat,__syscall_rmdir:___syscall_rmdir,__syscall_sendmsg:___syscall_sendmsg,__syscall_sendto:___syscall_sendto,__syscall_socket:___syscall_socket,__syscall_stat64:___syscall_stat64,__syscall_statfs64:___syscall_statfs64,__syscall_symlinkat:___syscall_symlinkat,__syscall_truncate64:___syscall_truncate64,__syscall_unlinkat:___syscall_unlinkat,__syscall_utimensat:___syscall_utimensat,__table_base:___table_base,_abort_js:__abort_js,_agen_handle_result_js,_dlopen_js:__dlopen_js,_dlsym_js:__dlsym_js,_emscripten_lookup_name:__emscripten_lookup_name,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_system:__emscripten_system,_gmtime_js:__gmtime_js,_localtime_js:__localtime_js,_mktime_js:__mktime_js,_mmap_js:__mmap_js,_msync_js:__msync_js,_munmap_js:__munmap_js,_pyproxyGen_make_result,_pyproxy_get_buffer_result,_python2js_add_to_cache,_python2js_addto_postprocess_list,_python2js_buffer_inner,_python2js_cache_lookup,_python2js_handle_postprocess_list,_python2js_ucs1,_python2js_ucs2,_python2js_ucs4,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,array_to_js,can_run_sync_js,capture_stderr,clock_res_get:_clock_res_get,clock_time_get:_clock_time_get,create_once_callable,create_promise_handles,create_sentinel:_create_sentinel,destroy_jsarray_entries,destroy_proxies,destroy_proxies_js,destroy_proxy,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_date_now:_emscripten_date_now,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_runtime_keepalive_pop:_emscripten_runtime_keepalive_pop,emscripten_runtime_keepalive_push:_emscripten_runtime_keepalive_push,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fail_test,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_pread:_fd_pread,fd_pwrite:_fd_pwrite,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,ffi_call_js,ffi_closure_alloc_js,ffi_closure_free_js,ffi_prep_closure_loc_js,gc_register_proxies,get_async_js_call_done_callback,get_length_helper,get_length_string,get_suspender,getaddrinfo:_getaddrinfo,getnameinfo:_getnameinfo,getprotobyname:_getprotobyname,handle_next_result_js,hiwire_invalid_ref_js,is_comlink_proxy,is_sentinel:_is_sentinel,js2python_convert,js2python_immutable_js,js2python_js,jslib_init_buffers_js,jslib_init_js,memory:wasmMemory,my_dict_converter,new_error,proc_exit:_proc_exit,proxy_cache_get,proxy_cache_set,pyodide_js_init,pyproxy_AsPyObject,pyproxy_Check,pyproxy_new,pyproxy_new_ex,python2js__default_converter_js,python2js__eager_converter_js,python2js_custom__create_jscontext,random_get:_random_get,raw_call_js,restoreState,restore_stderr,saveState,set_pyodide_module,set_suspender,syncifyHandler,throw_no_gil,wasmsh_js_http_fetch:_wasmsh_js_http_fetch,wrap_async_generator,wrap_generator};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports["__wasm_call_ctors"];var _dump_traceback=Module["_dump_traceback"]=wasmExports["dump_traceback"];var _set_error=Module["_set_error"]=wasmExports["set_error"];var _restore_sys_last_exception=Module["_restore_sys_last_exception"]=wasmExports["restore_sys_last_exception"];var _wrap_exception=Module["_wrap_exception"]=wasmExports["wrap_exception"];var _pythonexc2js=Module["_pythonexc2js"]=wasmExports["pythonexc2js"];var _init_pyodide_proxy=Module["_init_pyodide_proxy"]=wasmExports["init_pyodide_proxy"];var _PyUnicode_Data=Module["_PyUnicode_Data"]=wasmExports["PyUnicode_Data"];var __js2python_none=Module["__js2python_none"]=wasmExports["_js2python_none"];var __js2python_null=Module["__js2python_null"]=wasmExports["_js2python_null"];var __js2python_true=Module["__js2python_true"]=wasmExports["_js2python_true"];var __js2python_false=Module["__js2python_false"]=wasmExports["_js2python_false"];var __js2python_pyproxy=Module["__js2python_pyproxy"]=wasmExports["_js2python_pyproxy"];var _js2python_immutable=Module["_js2python_immutable"]=wasmExports["js2python_immutable"];var _js2python=Module["_js2python"]=wasmExports["js2python"];var _clear_method_call_singleton=Module["_clear_method_call_singleton"]=wasmExports["clear_method_call_singleton"];var __agen_handle_result_js_c=Module["__agen_handle_result_js_c"]=wasmExports["_agen_handle_result_js_c"];var _JsProxy_Check=Module["_JsProxy_Check"]=wasmExports["JsProxy_Check"];var _JsBuffer_CopyIntoMemoryView=Module["_JsBuffer_CopyIntoMemoryView"]=wasmExports["JsBuffer_CopyIntoMemoryView"];var _JsProxy_create=Module["_JsProxy_create"]=wasmExports["JsProxy_create"];var _check_gil=Module["_check_gil"]=wasmExports["check_gil"];var _pyproxy_getflags=Module["_pyproxy_getflags"]=wasmExports["pyproxy_getflags"];var __pyproxy_repr=Module["__pyproxy_repr"]=wasmExports["_pyproxy_repr"];var __pyproxy_type=Module["__pyproxy_type"]=wasmExports["_pyproxy_type"];var __pyproxy_hasattr=Module["__pyproxy_hasattr"]=wasmExports["_pyproxy_hasattr"];var __pyproxy_getattr=Module["__pyproxy_getattr"]=wasmExports["_pyproxy_getattr"];var __pyproxy_setattr=Module["__pyproxy_setattr"]=wasmExports["_pyproxy_setattr"];var __pyproxy_delattr=Module["__pyproxy_delattr"]=wasmExports["_pyproxy_delattr"];var __pyproxy_getitem=Module["__pyproxy_getitem"]=wasmExports["_pyproxy_getitem"];var __pyproxy_setitem=Module["__pyproxy_setitem"]=wasmExports["_pyproxy_setitem"];var __pyproxy_delitem=Module["__pyproxy_delitem"]=wasmExports["_pyproxy_delitem"];var __pyproxy_slice_assign=Module["__pyproxy_slice_assign"]=wasmExports["_pyproxy_slice_assign"];var __pyproxy_pop=Module["__pyproxy_pop"]=wasmExports["_pyproxy_pop"];var __pyproxy_contains=Module["__pyproxy_contains"]=wasmExports["_pyproxy_contains"];var __pyproxy_ownKeys=Module["__pyproxy_ownKeys"]=wasmExports["_pyproxy_ownKeys"];var __pyproxy_apply=Module["__pyproxy_apply"]=wasmExports["_pyproxy_apply"];var __pyproxy_apply_promising=Module["__pyproxy_apply_promising"]=wasmExports["_pyproxy_apply_promising"];var __iscoroutinefunction=Module["__iscoroutinefunction"]=wasmExports["_iscoroutinefunction"];var __pyproxy_iter_next=Module["__pyproxy_iter_next"]=wasmExports["_pyproxy_iter_next"];var __pyproxyGen_Send=Module["__pyproxyGen_Send"]=wasmExports["_pyproxyGen_Send"];var __pyproxyGen_return=Module["__pyproxyGen_return"]=wasmExports["_pyproxyGen_return"];var __pyproxyGen_throw=Module["__pyproxyGen_throw"]=wasmExports["_pyproxyGen_throw"];var __pyproxyGen_asend=Module["__pyproxyGen_asend"]=wasmExports["_pyproxyGen_asend"];var __pyproxyGen_areturn=Module["__pyproxyGen_areturn"]=wasmExports["_pyproxyGen_areturn"];var __pyproxyGen_athrow=Module["__pyproxyGen_athrow"]=wasmExports["_pyproxyGen_athrow"];var __pyproxy_aiter_next=Module["__pyproxy_aiter_next"]=wasmExports["_pyproxy_aiter_next"];var __pyproxy_ensure_future=Module["__pyproxy_ensure_future"]=wasmExports["_pyproxy_ensure_future"];var __pyproxy_get_buffer=Module["__pyproxy_get_buffer"]=wasmExports["_pyproxy_get_buffer"];var _create_promise_handles_result_helper=Module["_create_promise_handles_result_helper"]=wasmExports["create_promise_handles_result_helper"];var _Jsv_GetNull=Module["_Jsv_GetNull"]=wasmExports["Jsv_GetNull"];var _jslib_init=Module["_jslib_init"]=wasmExports["jslib_init"];var _JsrString_FromId=Module["_JsrString_FromId"]=wasmExports["JsrString_FromId"];var _JsvString_FromId=Module["_JsvString_FromId"]=wasmExports["JsvString_FromId"];var __python2js=Module["__python2js"]=wasmExports["_python2js"];var _python2js=Module["_python2js"]=wasmExports["python2js"];var _python2js_with_depth=Module["_python2js_with_depth"]=wasmExports["python2js_with_depth"];var _python2js_custom=Module["_python2js_custom"]=wasmExports["python2js_custom"];var _pyodide_export=Module["_pyodide_export"]=wasmExports["pyodide_export"];var _captureThreadState=Module["_captureThreadState"]=wasmExports["captureThreadState"];var _restoreThreadState=Module["_restoreThreadState"]=wasmExports["restoreThreadState"];var _print_stdout=Module["_print_stdout"]=wasmExports["print_stdout"];var _print_stderr=Module["_print_stderr"]=wasmExports["print_stderr"];var _main=Module["_main"]=wasmExports["__main_argc_argv"];var _hiwire_get=Module["_hiwire_get"]=wasmExports["hiwire_get"];var _PyErr_Occurred=Module["_PyErr_Occurred"]=wasmExports["PyErr_Occurred"];var _hiwire_pop=Module["_hiwire_pop"]=wasmExports["hiwire_pop"];var _hiwire_new=Module["_hiwire_new"]=wasmExports["hiwire_new"];var _hiwire_intern=Module["_hiwire_intern"]=wasmExports["hiwire_intern"];var _PyErr_SetRaisedException=Module["_PyErr_SetRaisedException"]=wasmExports["PyErr_SetRaisedException"];var _PyErr_Print=Module["_PyErr_Print"]=wasmExports["PyErr_Print"];var _PyErr_SetString=Module["_PyErr_SetString"]=wasmExports["PyErr_SetString"];var _hiwire_decref=Module["_hiwire_decref"]=wasmExports["hiwire_decref"];var _hiwire_incref=Module["_hiwire_incref"]=wasmExports["hiwire_incref"];var _free=Module["_free"]=wasmExports["free"];var _PyErr_Clear=Module["_PyErr_Clear"]=wasmExports["PyErr_Clear"];var _PyMem_Free=Module["_PyMem_Free"]=wasmExports["PyMem_Free"];var _PyDict_SetItem=Module["_PyDict_SetItem"]=wasmExports["PyDict_SetItem"];var _malloc=wasmExports["malloc"];var _PyGILState_Check=Module["_PyGILState_Check"]=wasmExports["PyGILState_Check"];var _PyDict_New=Module["_PyDict_New"]=wasmExports["PyDict_New"];var _PySet_New=Module["_PySet_New"]=wasmExports["PySet_New"];var _PyList_New=Module["_PyList_New"]=wasmExports["PyList_New"];var _PyObject_GetIter=Module["_PyObject_GetIter"]=wasmExports["PyObject_GetIter"];var _PyBuffer_Release=Module["_PyBuffer_Release"]=wasmExports["PyBuffer_Release"];var _run_main=Module["_run_main"]=wasmExports["run_main"];var _run_main_promising=Module["_run_main_promising"]=wasmExports["run_main_promising"];var _wasmsh_probe_file_equals=Module["_wasmsh_probe_file_equals"]=wasmExports["wasmsh_probe_file_equals"];var _wasmsh_probe_version=Module["_wasmsh_probe_version"]=wasmExports["wasmsh_probe_version"];var _wasmsh_probe_write_text=Module["_wasmsh_probe_write_text"]=wasmExports["wasmsh_probe_write_text"];var _wasmsh_runtime_free=Module["_wasmsh_runtime_free"]=wasmExports["wasmsh_runtime_free"];var _wasmsh_runtime_free_string=Module["_wasmsh_runtime_free_string"]=wasmExports["wasmsh_runtime_free_string"];var _wasmsh_runtime_handle_json=Module["_wasmsh_runtime_handle_json"]=wasmExports["wasmsh_runtime_handle_json"];var _wasmsh_runtime_new=Module["_wasmsh_runtime_new"]=wasmExports["wasmsh_runtime_new"];var _PyObject_Size=Module["_PyObject_Size"]=wasmExports["PyObject_Size"];var _PyUnicode_New=Module["_PyUnicode_New"]=wasmExports["PyUnicode_New"];var _PyFloat_FromDouble=Module["_PyFloat_FromDouble"]=wasmExports["PyFloat_FromDouble"];var _PyObject_GetAIter=Module["_PyObject_GetAIter"]=wasmExports["PyObject_GetAIter"];var _PyEval_SaveThread=Module["_PyEval_SaveThread"]=wasmExports["PyEval_SaveThread"];var _PyEval_RestoreThread=Module["_PyEval_RestoreThread"]=wasmExports["PyEval_RestoreThread"];var _PySet_Add=Module["_PySet_Add"]=wasmExports["PySet_Add"];var _PyLong_FromDouble=Module["_PyLong_FromDouble"]=wasmExports["PyLong_FromDouble"];var _PyList_SetItem=Module["_PyList_SetItem"]=wasmExports["PyList_SetItem"];var __PyLong_FromByteArray=Module["__PyLong_FromByteArray"]=wasmExports["_PyLong_FromByteArray"];var _PyErr_CheckSignals=Module["_PyErr_CheckSignals"]=wasmExports["PyErr_CheckSignals"];var _fflush=wasmExports["fflush"];var _Py_IncRef=Module["_Py_IncRef"]=wasmExports["Py_IncRef"];var _Py_DecRef=Module["_Py_DecRef"]=wasmExports["Py_DecRef"];var _calloc=wasmExports["calloc"];var _PyRun_SimpleString=Module["_PyRun_SimpleString"]=wasmExports["PyRun_SimpleString"];var __PyTraceback_Add=Module["__PyTraceback_Add"]=wasmExports["_PyTraceback_Add"];var _ntohs=wasmExports["ntohs"];var _htons=wasmExports["htons"];var _htonl=wasmExports["htonl"];var __PyErr_CheckSignals=Module["__PyErr_CheckSignals"]=wasmExports["_PyErr_CheckSignals"];var __hiwire_immortal_add=Module["__hiwire_immortal_add"]=wasmExports["_hiwire_immortal_add"];var __hiwire_immortal_get=Module["__hiwire_immortal_get"]=wasmExports["_hiwire_immortal_get"];var __hiwire_get=Module["__hiwire_get"]=wasmExports["_hiwire_get"];var __hiwire_set=Module["__hiwire_set"]=wasmExports["_hiwire_set"];var _hiwire_num_refs=Module["_hiwire_num_refs"]=wasmExports["hiwire_num_refs"];var ___funcs_on_exit=wasmExports["__funcs_on_exit"];var ___dl_seterr=wasmExports["__dl_seterr"];var __emscripten_find_dylib=wasmExports["_emscripten_find_dylib"];var _emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"];var __emscripten_timeout=wasmExports["_emscripten_timeout"];var ___trap=wasmExports["__trap"];var __emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];var __emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];var _emscripten_stack_get_current=Module["_emscripten_stack_get_current"]=wasmExports["emscripten_stack_get_current"];var ___cxa_decrement_exception_refcount=wasmExports["__cxa_decrement_exception_refcount"];var ___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"];var ___thrown_object_from_unwind_exception=wasmExports["__thrown_object_from_unwind_exception"];var ___get_exception_message=wasmExports["__get_exception_message"];var ___wasm_apply_data_relocs=wasmExports["__wasm_apply_data_relocs"];var _compat_null_to_none=Module["_compat_null_to_none"]=3386432;var _compat_to_string_repr=Module["_compat_to_string_repr"]=3386500;var _Jsr_error=Module["_Jsr_error"]=3386436;var _Jsr_undefined=Module["_Jsr_undefined"]=3386440;var _Jsr_true=Module["_Jsr_true"]=3386444;var _Jsr_false=Module["_Jsr_false"]=3386448;var _Jsr_novalue=Module["_Jsr_novalue"]=3386452;var _compat_dict_to_literalmap=Module["_compat_dict_to_literalmap"]=3386577;var __PyRuntime=Module["__PyRuntime"]=2773680;var _Py_EMSCRIPTEN_SIGNAL_HANDLING=Module["_Py_EMSCRIPTEN_SIGNAL_HANDLING"]=3424384;var _Py_Version=Module["_Py_Version"]=461308;var __PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET=Module["__PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET"]=491544;function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_ppppp=f=>(a0,a1,a2,a3)=>f(a0,a1,a2,a3)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["calloc"]=makeWrapper_ppp(wasmExports["calloc"]);wasmExports["_emscripten_find_dylib"]=makeWrapper_ppppp(wasmExports["_emscripten_find_dylib"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}function callMain(args=[]){var entryFunction=resolveGlobalSymbol("main").sym;if(!entryFunction)return;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>>2>>>0]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>>2>>>0]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}function preInit(){if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}preInit();run();moduleRtn=readyPromise;
|
|
8
|
+
var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&process.versions?.node&&process.type!="renderer"&&typeof Deno=="undefined";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){}var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};if(typeof __filename!="undefined"){_scriptName=__filename}else if(ENVIRONMENT_IS_WORKER){_scriptName=self.location.href}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_SHELL){readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=async f=>readBinary(f);globalThis.clearTimeout??=id=>{};globalThis.setTimeout??=f=>f();arguments_=globalThis.arguments||globalThis.scriptArgs;if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){globalThis.console??={};console.log=print;console.warn=console.error=globalThis.printErr??print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){try{scriptDirectory=new URL(".",_scriptName).href}catch{}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);var dynamicLibraries=[];var wasmBinary;var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;var runtimeExited=false;var isFileURI=filename=>filename.startsWith("file://");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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b)}function initMemory(){if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||20971520;wasmMemory=new WebAssembly.Memory({initial:INITIAL_MEMORY/65536,maximum:65536})}updateMemoryViews()}var __RELOC_FUNCS__=[];function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(onPreRuns)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__RELOC_FUNCS__);if(!Module["noFSInit"]&&!FS.initialized)FS.init();TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);PIPEFS.root=FS.mount(PIPEFS,{},null);wasmExports["__wasm_call_ctors"]();callRuntimeCallbacks(onPostCtors);FS.ignorePermissions=false}function preMain(){}function exitRuntime(){___funcs_on_exit();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(onPostRuns)}var runDependencies=0;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(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.";if(runtimeInitialized){___trap()}var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile;function findWasmBinary(){return locateFile("pyodide.asm.wasm")}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"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_SHELL){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{env:wasmImports,wasi_snapshot_preview1:wasmImports,"GOT.mem":new Proxy(wasmImports,GOTHandler),"GOT.func":new Proxy(wasmImports,GOTHandler)}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=relocateExports(wasmExports,1024);var metadata=getDylinkMetadata(module);if(metadata.neededDynlibs){dynamicLibraries=metadata.neededDynlibs.concat(dynamicLibraries)}mergeLibSymbols(wasmExports,"main");LDSO.init();loadDylibs();wasmExports=applySignatureConversions(wasmExports);__RELOC_FUNCS__.push(wasmExports["__wasm_apply_data_relocs"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"],result["module"])}var info=getWasmImports();if(Module["instantiateWasm"]){return new Promise((resolve,reject)=>{Module["instantiateWasm"](info,(mod,inst)=>{resolve(receiveInstance(mod,inst))})})}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var GOT={};var currentModuleWeakSymbols=new Set([]);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 onPostRuns=[];var addOnPostRun=cb=>onPostRuns.push(cb);var onPreRuns=[];var addOnPreRun=cb=>onPreRuns.push(cb);var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{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 getStringList(){var count=getLEB();var rtn=[];while(count--)rtn.push(getString());return rtn}function failIf(condition,message){if(condition)throw new Error(message)}if(binary instanceof WebAssembly.Module){var dylinkSection=WebAssembly.Module.customSections(binary,"dylink.0");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;var name=getString();failIf(name!=="dylink.0")}var customSection={neededDynlibs:[],tlsExports:new Set,weakImports:new Set,runtimePaths:[]};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_DYLINK_RUNTIME_PATH=5;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){customSection.neededDynlibs=getStringList()}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 if(subsectionType===WASM_DYLINK_RUNTIME_PATH){customSection.runtimePaths=getStringList()}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":return HEAP64[ptr>>>3>>>0];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=8690352;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 paramType of sigParam){target.push(typeCodes[paramType])}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:5749,element:"anyfunc"});var getWasmTableEntry=funcPtr=>{var func=wasmTableMirror[funcPtr];if(!func){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=[];var getEmptyTableSlot=()=>{if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}return wasmTable.length-1};var setWasmTableEntry=(idx,func)=>{wasmTable.set(idx,func);wasmTableMirror[idx]=wasmTable.get(idx)};var addFunction=(func,sig)=>{var rtn=getFunctionAddress(func);if(rtn){return rtn}var ret=getEmptyTableSlot();try{setWasmTableEntry(ret,func)}catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);setWasmTableEntry(ret,wrapped)}functionsInTableMap.set(func,ret);return ret};var updateGOT=(exports,replace)=>{for(var symName in exports){if(isInternalSym(symName)){continue}var value=exports[symName];GOT[symName]||=new WebAssembly.Global({value:"i32",mutable:true});if(replace||GOT[symName].value==0){if(typeof value=="function"){GOT[symName].value=addFunction(value)}else if(typeof value=="number"){GOT[symName].value=value}else{err(`unhandled export type for '${symName}': ${typeof value}`)}}}};var relocateExports=(exports,memoryBase,replace)=>{var relocated={};for(var e in exports){var value=exports[e];if(typeof value=="object"){value=value.value}if(typeof value=="number"){value+=memoryBase}relocated[e]=value}updateGOT(relocated,replace);return relocated};var isSymbolDefined=symName=>{var existing=wasmImports[symName];if(!existing||existing.stub){return false}return true};var resolveGlobalSymbol=(symName,direct=false)=>{var sym;if(isSymbolDefined(symName)){sym=wasmImports[symName]}return{sym,name:symName}};var onPostCtors=[];var addOnPostCtor=cb=>onPostCtors.push(cb);var UTF8ToString=(ptr,maxBytesToRead)=>{ptr>>>=0;return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""};var loadWebAssemblyModule=(binary,flags,libName,localScope,handle)=>{var metadata=getDylinkMetadata(binary);currentModuleWeakSymbols=metadata.weakImports;function loadModule(){var memAlign=Math.pow(2,metadata.memoryAlign);var memoryBase=metadata.memorySize?alignMemory(getMemory(metadata.memorySize+memAlign),memAlign):0;var tableBase=metadata.tableSize?wasmTable.length:0;if(handle){HEAP8[handle+8>>>0]=1;HEAPU32[handle+12>>>2>>>0]=memoryBase;HEAP32[handle+16>>>2>>>0]=metadata.memorySize;HEAPU32[handle+20>>>2>>>0]=tableBase;HEAP32[handle+24>>>2>>>0]=metadata.tableSize}if(metadata.tableSize){wasmTable.grow(metadata.tableSize)}var moduleExports;function resolveSymbol(sym){var resolved=resolveGlobalSymbol(sym).sym;if(!resolved&&localScope){resolved=localScope[sym]}if(!resolved){resolved=moduleExports[sym]}return resolved}var proxyHandler={get(stubs,prop){switch(prop){case"__memory_base":return memoryBase;case"__table_base":return tableBase}if(prop in wasmImports&&!wasmImports[prop].stub){var res=wasmImports[prop];return res}if(!(prop in stubs)){var resolved;stubs[prop]=(...args)=>{resolved||=resolveSymbol(prop);if(!resolved){throw new Error(`Dynamic linking error: cannot resolve symbol ${prop}`)}return resolved(...args)}}return stubs[prop]}};var proxy=new Proxy({},proxyHandler);var info={"GOT.mem":new Proxy({},GOTHandler),"GOT.func":new Proxy({},GOTHandler),env:proxy,wasi_snapshot_preview1:proxy};function postInstantiation(module,instance){updateTableMap(tableBase,metadata.tableSize);moduleExports=relocateExports(instance.exports,memoryBase);if(!flags.allowUndefined){reportUndefinedSymbols()}function addEmAsm(addr,body){var args=[];var arity=0;for(;arity<16;arity++){if(body.indexOf("$"+arity)!=-1){args.push("$"+arity)}else{break}}args=args.join(",");var func=`(${args}) => { ${body} };`;ASM_CONSTS[start]=eval(func)}if("__start_em_asm"in moduleExports){var start=moduleExports["__start_em_asm"];var stop=moduleExports["__stop_em_asm"];while(start<stop){var jsString=UTF8ToString(start);addEmAsm(start,jsString);start=HEAPU8.indexOf(0,start)+1}}function addEmJs(name,cSig,body){var jsArgs=[];cSig=cSig.slice(1,-1);if(cSig!="void"){cSig=cSig.split(",");for(var i in cSig){var jsArg=cSig[i].split(" ").pop();jsArgs.push(jsArg.replace("*",""))}}var func=`(${jsArgs}) => ${body};`;moduleExports[name]=eval(func)}for(var name in moduleExports){if(name.startsWith("__em_js__")){var start=moduleExports[name];var jsString=UTF8ToString(start);var parts=jsString.split("<::>");addEmJs(name.replace("__em_js__",""),parts[0],parts[1]);delete moduleExports[name]}}var applyRelocs=moduleExports["__wasm_apply_data_relocs"];if(applyRelocs){if(runtimeInitialized){applyRelocs()}else{__RELOC_FUNCS__.push(applyRelocs)}}var init=moduleExports["__wasm_call_ctors"];if(init){if(runtimeInitialized){init()}else{addOnPostCtor(init)}}return moduleExports}if(flags.loadAsync){return(async()=>{var instance;if(binary instanceof WebAssembly.Module){instance=new WebAssembly.Instance(binary,info)}else{({module:binary,instance}=await WebAssembly.instantiate(binary,info))}return postInstantiation(binary,instance)})()}var module=binary instanceof WebAssembly.Module?binary:new WebAssembly.Module(binary);var instance=new WebAssembly.Instance(module,info);return postInstantiation(module,instance)}flags={...flags,rpath:{parentLibPath:libName,paths:metadata.runtimePaths}};if(flags.loadAsync){return metadata.neededDynlibs.reduce((chain,needed)=>chain.then(()=>{needed=findLibraryFS(needed,flags.rpath)??needed;return loadDynamicLibrary(needed,flags,localScope)}),Promise.resolve()).then(loadModule)}metadata.neededDynlibs.forEach(needed=>{needed=findLibraryFS(needed,flags.rpath)??needed;return loadDynamicLibrary(needed,flags,localScope)});return loadModule()};var mergeLibSymbols=(exports,libName)=>{for(var[sym,exp]of Object.entries(exports)){const setImport=target=>{if(!isSymbolDefined(target)){wasmImports[target]=exp}};setImport(sym);const main_alias="__main_argc_argv";if(sym=="main"){setImport(main_alias)}if(sym==main_alias){setImport("main")}}};var asyncLoad=async url=>{var arrayBuffer=await readAsync(url);return new Uint8Array(arrayBuffer)};var preloadPlugins=[];var registerWasmPlugin=()=>{var wasmPlugin={promiseChainEnd:Promise.resolve(),canHandle:name=>!Module["noWasmDecoding"]&&name.endsWith(".so"),handle:(byteArray,name,onload,onerror)=>{wasmPlugin["promiseChainEnd"]=wasmPlugin["promiseChainEnd"].then(()=>loadWebAssemblyModule(byteArray,{loadAsync:true,nodelete:true},name,{})).then(exports=>{preloadedWasm[name]=exports;onload(byteArray)},error=>{err(`failed to instantiate wasm: ${name}: ${error}`);onerror()})}};preloadPlugins.push(wasmPlugin)};var preloadedWasm={};var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.slice(0,-1)}return root+dir},basename:path=>path&&path.match(/([^\/]+|\/)\/*$/)[1],join:(...paths)=>PATH.normalize(paths.join("/")),join2:(l,r)=>PATH.normalize(l+"/"+r)};var replaceORIGIN=(parentLibName,rpath)=>{if(rpath.startsWith("$ORIGIN")){var origin=PATH.dirname(parentLibName);return rpath.replace("$ORIGIN",origin)}return rpath};var stackSave=()=>_emscripten_stack_get_current();var stackRestore=val=>__emscripten_stack_restore(val);var withStackSave=f=>{var stack=stackSave();var ret=f();stackRestore(stack);return ret};var stackAlloc=sz=>__emscripten_stack_alloc(sz);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{outIdx>>>=0;if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++>>>0]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++>>>0]=192|u>>6;heap[outIdx++>>>0]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++>>>0]=224|u>>12;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++>>>0]=240|u>>18;heap[outIdx++>>>0]=128|u>>12&63;heap[outIdx++>>>0]=128|u>>6&63;heap[outIdx++>>>0]=128|u&63}}heap[outIdx>>>0]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var base64Decode=b64=>{if(ENVIRONMENT_IS_NODE){var buf=Buffer.from(b64,"base64");return new Uint8Array(buf.buffer,buf.byteOffset,buf.length)}var b1,b2,i=0,j=0,bLength=b64.length;var output=new Uint8Array((bLength*3>>2)-(b64[bLength-2]=="=")-(b64[bLength-1]=="="));for(;i<bLength;i+=4,j+=3){b1=base64ReverseLookup[b64.charCodeAt(i+1)];b2=base64ReverseLookup[b64.charCodeAt(i+2)];output[j]=base64ReverseLookup[b64.charCodeAt(i)]<<2|b1>>4;output[j+1]=b1<<4|b2>>2;output[j+2]=b2<<6|base64ReverseLookup[b64.charCodeAt(i+3)]}return output};var initRandomFill=()=>{if(ENVIRONMENT_IS_NODE){var nodeCrypto=require("crypto");return view=>nodeCrypto.randomFillSync(view)}if(ENVIRONMENT_IS_SHELL){return view=>{if(!os.system){throw new Error("randomFill not supported on d8 unless --enable-os-system is passed")}const b64=os.system("sh",["-c",`head -c${view.byteLength} /dev/urandom | base64 --wrap=0`]);view.set(base64Decode(b64))}}return view=>crypto.getRandomValues(view)};var randomFill=view=>{(randomFill=initRandomFill())(view)};var PATH_FS={resolve:(...args)=>{var resolvedPath="",resolvedAbsolute=false;for(var i=args.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?args[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var FS_stdin_getChar_buffer=[];var intArrayFromString=(stringy,dontAddNull,length)=>{var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array};var FS_stdin_getChar=()=>{if(!FS_stdin_getChar_buffer.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;var fd=process.stdin.fd;try{bytesRead=fs.readSync(fd,buf,0,BUFSIZE)}catch(e){if(e.toString().includes("EOF"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result){result+="\n"}}else{}if(!result){return null}FS_stdin_getChar_buffer=intArrayFromString(result,true)}return FS_stdin_getChar_buffer.shift()};var TTY={ttys:[],init(){},shutdown(){},register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close(stream){stream.tty.ops.fsync(stream.tty)},fsync(stream){stream.tty.ops.fsync(stream.tty)},read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}},default_tty_ops:{get_char(tty){return FS_stdin_getChar()},put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){out(UTF8ArrayToString(tty.output));tty.output=[]}},ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets(tty,optional_actions,data){return 0},ioctl_tiocgwinsz(tty){return[24,80]}},default_tty1_ops:{put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync(tty){if(tty.output?.length>0){err(UTF8ArrayToString(tty.output));tty.output=[]}}}};var zeroMemory=(ptr,size)=>HEAPU8.fill(0,ptr,ptr+size);var mmapAlloc=size=>{size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(ptr)zeroMemory(ptr,size);return ptr};var MEMFS={ops_table:null,mount(mount){return MEMFS.createNode(null,"/",16895,0)},createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}MEMFS.ops_table||={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}};var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime}return node},getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup(parent,name){throw MEMFS.doesNotExistError},mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}FS.hashRemoveNode(new_node)}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now()},unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.ctime=parent.mtime=Date.now()},readdir(node){return[".","..",...Object.keys(node.contents)]},symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}HEAP8.set(contents,ptr>>>0)}}return{ptr,allocated}},msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS_createDataFile=(...args)=>FS.createDataFile(...args);var FS_handledByPreloadPlugin=(byteArray,fullname,finish,onerror)=>{if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled};var FS_createPreloadedFile=(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){preFinish?.();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}onload?.();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{onerror?.();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url).then(processData,onerror)}else{processData(url)}};var FS_modeStringToFlags=str=>{var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags};var FS_getMode=(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode};var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",queuePersist:mount=>{function onPersistComplete(){if(mount.idbPersistState==="again")startPersist();else mount.idbPersistState=0}function startPersist(){mount.idbPersistState="idb";IDBFS.syncfs(mount,false,onPersistComplete)}if(!mount.idbPersistState){mount.idbPersistState=setTimeout(startPersist,0)}else if(mount.idbPersistState==="idb"){mount.idbPersistState="again"}},mount:mount=>{var mnt=MEMFS.mount(mount);if(mount?.opts?.autoPersist){mnt.idbPersistState=0;var memfs_node_ops=mnt.node_ops;mnt.node_ops={...mnt.node_ops};mnt.node_ops.mknod=(parent,name,mode,dev)=>{var node=memfs_node_ops.mknod(parent,name,mode,dev);node.node_ops=mnt.node_ops;node.idbfs_mount=mnt.mount;node.memfs_stream_ops=node.stream_ops;node.stream_ops={...node.stream_ops};node.stream_ops.write=(stream,buffer,offset,length,position,canOwn)=>{stream.node.isModified=true;return node.memfs_stream_ops.write(stream,buffer,offset,length,position,canOwn)};node.stream_ops.close=stream=>{var n=stream.node;if(n.isModified){IDBFS.queuePersist(n.idbfs_mount);n.isModified=false}if(n.memfs_stream_ops.close)return n.memfs_stream_ops.close(stream)};return node};mnt.node_ops.mkdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.mkdir(...args));mnt.node_ops.rmdir=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rmdir(...args));mnt.node_ops.symlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.symlink(...args));mnt.node_ops.unlink=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.unlink(...args));mnt.node_ops.rename=(...args)=>(IDBFS.queuePersist(mnt.mount),memfs_node_ops.rename(...args))}return mnt},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(e.target.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>PATH.join2(root,p)}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push(...FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={timestamp:stat.mtime}}return callback(null,{type:"local",entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(e.target.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db,entries})}entries[cursor.primaryKey]={timestamp:cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{timestamp:stat.mtime,mode:stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{timestamp:stat.mtime,mode:stat.mode,contents:node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>callback(null,event.target.result);req.onerror=e=>{callback(e.target.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=event=>callback();req.onerror=e=>{callback(e.target.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(key=>{var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(key=>{if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=transaction.onabort=e=>{done(e.target.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var NODEFS={isWindows:false,staticInit(){NODEFS.isWindows=!!process.platform.match(/^win/);var flags=process.binding("constants")["fs"];NODEFS.flagsForNodeMap={1024:flags["O_APPEND"],64:flags["O_CREAT"],128:flags["O_EXCL"],256:flags["O_NOCTTY"],0:flags["O_RDONLY"],2:flags["O_RDWR"],4096:flags["O_SYNC"],512:flags["O_TRUNC"],1:flags["O_WRONLY"],131072:flags["O_NOFOLLOW"]}},convertNodeCode(e){var code=e.code;return ERRNO_CODES[code]},tryFSOperation(f){try{return f()}catch(e){if(!e.code)throw e;if(e.code==="UNKNOWN")throw new FS.ErrnoError(28);throw new FS.ErrnoError(NODEFS.convertNodeCode(e))}},mount(mount){return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(28)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node},getMode(path){return NODEFS.tryFSOperation(()=>{var mode=fs.lstatSync(path).mode;if(NODEFS.isWindows){mode|=(mode&292)>>2}return mode})},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},flagsForNode(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;flags&=~65536;var newFlags=0;for(var k in NODEFS.flagsForNodeMap){if(flags&k){newFlags|=NODEFS.flagsForNodeMap[k];flags^=k}}if(flags){throw new FS.ErrnoError(28)}return newFlags},getattr(func,node){var stat=NODEFS.tryFSOperation(func);if(NODEFS.isWindows){if(!stat.blksize){stat.blksize=4096}if(!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}stat.mode|=(stat.mode&292)>>2}return{dev:stat.dev,ino:node.id,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(arg,node,attr,chmod,utimes,truncate,stat){NODEFS.tryFSOperation(()=>{if(attr.mode!==undefined){var mode=attr.mode;if(NODEFS.isWindows){mode&=384}chmod(arg,mode);node.mode=attr.mode}if(typeof(attr.atime??attr.mtime)==="number"){var atime=new Date(attr.atime??stat(arg).atime);var mtime=new Date(attr.mtime??stat(arg).mtime);utimes(arg,atime,mtime)}if(attr.size!==undefined){truncate(arg,attr.size)}})},node_ops:{getattr(node){var path=NODEFS.realPath(node);return NODEFS.getattr(()=>fs.lstatSync(path),node)},setattr(node,attr){var path=NODEFS.realPath(node);if(attr.mode!=null&&attr.dontFollow){throw new FS.ErrnoError(52)}NODEFS.setattr(path,node,attr,fs.chmodSync,fs.utimesSync,fs.truncateSync,fs.lstatSync)},lookup(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)},mknod(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);NODEFS.tryFSOperation(()=>{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}});return node},rename(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{FS.unlink(newPath)}catch(e){}NODEFS.tryFSOperation(()=>fs.renameSync(oldPath,newPath));oldNode.name=newName},unlink(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.unlinkSync(path))},rmdir(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);NODEFS.tryFSOperation(()=>fs.rmdirSync(path))},readdir(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readdirSync(path))},symlink(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);NODEFS.tryFSOperation(()=>fs.symlinkSync(oldPath,newPath))},readlink(node){var path=NODEFS.realPath(node);return NODEFS.tryFSOperation(()=>fs.readlinkSync(path))},statfs(path){var stats=NODEFS.tryFSOperation(()=>fs.statfsSync(path));stats.frsize=stats.bsize;return stats}},stream_ops:{getattr(stream){return NODEFS.getattr(()=>fs.fstatSync(stream.nfd),stream.node)},setattr(stream,attr){NODEFS.setattr(stream.nfd,stream.node,attr,fs.fchmodSync,fs.futimesSync,fs.ftruncateSync,fs.fstatSync)},open(stream){var path=NODEFS.realPath(stream.node);NODEFS.tryFSOperation(()=>{stream.shared.refcount=1;stream.nfd=fs.openSync(path,NODEFS.flagsForNode(stream.flags))})},close(stream){NODEFS.tryFSOperation(()=>{if(stream.nfd&&--stream.shared.refcount===0){fs.closeSync(stream.nfd)}})},dup(stream){stream.shared.refcount++},read(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.readSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},write(stream,buffer,offset,length,position){return NODEFS.tryFSOperation(()=>fs.writeSync(stream.nfd,new Int8Array(buffer.buffer,offset,length),0,length,position))},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){NODEFS.tryFSOperation(()=>{var stat=fs.fstatSync(stream.nfd);position+=stat.size})}}if(position<0){throw new FS.ErrnoError(28)}return position},mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr=mmapAlloc(length);NODEFS.stream_ops.read(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}},msync(stream,buffer,offset,length,mmapFlags){NODEFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var WORKERFS={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount(mount){assert(ENVIRONMENT_IS_WORKER);WORKERFS.reader??=new FileReaderSync;var root=WORKERFS.createNode(null,"/",WORKERFS.DIR_MODE,0);var createdParents={};function ensureParent(path){var parts=path.split("/");var parent=root;for(var i=0;i<parts.length-1;i++){var curr=parts.slice(0,i+1).join("/");createdParents[curr]||=WORKERFS.createNode(parent,parts[i],WORKERFS.DIR_MODE,0);parent=createdParents[curr]}return parent}function base(path){var parts=path.split("/");return parts[parts.length-1]}Array.prototype.forEach.call(mount.opts["files"]||[],function(file){WORKERFS.createNode(ensureParent(file.name),base(file.name),WORKERFS.FILE_MODE,0,file,file.lastModifiedDate)});(mount.opts["blobs"]||[]).forEach(obj=>{WORKERFS.createNode(ensureParent(obj["name"]),base(obj["name"]),WORKERFS.FILE_MODE,0,obj["data"])});(mount.opts["packages"]||[]).forEach(pack=>{pack["metadata"].files.forEach(file=>{var name=file.filename.slice(1);WORKERFS.createNode(ensureParent(name),base(name),WORKERFS.FILE_MODE,0,pack["blob"].slice(file.start,file.end))})});return root},createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=WORKERFS.node_ops;node.stream_ops=WORKERFS.stream_ops;node.atime=node.mtime=node.ctime=(mtime||new Date).getTime();assert(WORKERFS.FILE_MODE!==WORKERFS.DIR_MODE);if(mode===WORKERFS.FILE_MODE){node.size=contents.size;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr(node){return{dev:1,ino:node.id,mode:node.mode,nlink:1,uid:0,gid:0,rdev:0,size:node.size,atime:new Date(node.atime),mtime:new Date(node.mtime),ctime:new Date(node.ctime),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]!=null){node[key]=attr[key]}}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){throw new FS.ErrnoError(63)},rename(oldNode,newDir,newName){throw new FS.ErrnoError(63)},unlink(parent,name){throw new FS.ErrnoError(63)},rmdir(parent,name){throw new FS.ErrnoError(63)},readdir(node){var entries=[".",".."];for(var key of Object.keys(node.contents)){entries.push(key)}return entries},symlink(parent,newName,oldPath){throw new FS.ErrnoError(63)}},stream_ops:{read(stream,buffer,offset,length,position){if(position>=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size},write(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var PROXYFS={mount(mount){return PROXYFS.createNode(null,"/",mount.opts.fs.lstat(mount.opts.root).mode,0)},createNode(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=PROXYFS.node_ops;node.stream_ops=PROXYFS.stream_ops;return node},realPath(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join(...parts)},node_ops:{getattr(node){var path=PROXYFS.realPath(node);var stat;try{stat=node.mount.opts.fs.lstat(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}},setattr(node,attr){var path=PROXYFS.realPath(node);try{if(attr.mode!==undefined){node.mount.opts.fs.chmod(path,attr.mode);node.mode=attr.mode}if(attr.atime||attr.mtime){var atime=new Date(attr.atime||attr.mtime);var mtime=new Date(attr.mtime||attr.atime);node.mount.opts.fs.utime(path,atime,mtime)}if(attr.size!==undefined){node.mount.opts.fs.truncate(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},lookup(parent,name){try{var path=PATH.join2(PROXYFS.realPath(parent),name);var mode=parent.mount.opts.fs.lstat(path).mode;var node=PROXYFS.createNode(parent,name,mode);return node}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},mknod(parent,name,mode,dev){var node=PROXYFS.createNode(parent,name,mode,dev);var path=PROXYFS.realPath(node);try{if(FS.isDir(node.mode)){node.mount.opts.fs.mkdir(path,node.mode)}else{node.mount.opts.fs.writeFile(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node},rename(oldNode,newDir,newName){var oldPath=PROXYFS.realPath(oldNode);var newPath=PATH.join2(PROXYFS.realPath(newDir),newName);try{oldNode.mount.opts.fs.rename(oldPath,newPath);oldNode.name=newName}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},unlink(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.unlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},rmdir(parent,name){var path=PATH.join2(PROXYFS.realPath(parent),name);try{parent.mount.opts.fs.rmdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readdir(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readdir(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},symlink(parent,newName,oldPath){var newPath=PATH.join2(PROXYFS.realPath(parent),newName);try{parent.mount.opts.fs.symlink(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},readlink(node){var path=PROXYFS.realPath(node);try{return node.mount.opts.fs.readlink(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}},stream_ops:{open(stream){var path=PROXYFS.realPath(stream.node);try{stream.nfd=stream.node.mount.opts.fs.open(path,stream.flags)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},close(stream){try{stream.node.mount.opts.fs.close(stream.nfd)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},read(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.read(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},write(stream,buffer,offset,length,position){try{return stream.node.mount.opts.fs.write(stream.nfd,buffer,offset,length,position)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){try{var stat=stream.node.node_ops.getattr(stream.node);position+=stat.size}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position}}};var LZ4={DIR_MODE:16895,FILE_MODE:33279,CHUNK_SIZE:-1,codec:null,init(){if(LZ4.codec)return;LZ4.codec=(()=>{var MiniLZ4=function(){var exports={};exports.uncompress=function(input,output,sIdx,eIdx){sIdx=sIdx||0;eIdx=eIdx||input.length-sIdx;for(var i=sIdx,n=eIdx,j=0;i<n;){var token=input[i++];var literals_length=token>>4;if(literals_length>0){var l=literals_length+240;while(l===255){l=input[i++];literals_length+=l}var end=i+literals_length;while(i<end)output[j++]=input[i++];if(i===n)return j}var offset=input[i++]|input[i++]<<8;if(offset===0)return j;if(offset>j)return-(i-2);var match_length=token&15;var l=match_length+240;while(l===255){l=input[i++];match_length+=l}var pos=j-offset;var end=j+match_length+4;while(j<end)output[j++]=output[pos++]}return j};var maxInputSize=2113929216,minMatch=4,hashLog=16,hashShift=minMatch*8-hashLog,copyLength=8,mfLimit=copyLength+minMatch,skipStrength=6,mlBits=4,mlMask=(1<<mlBits)-1,runBits=8-mlBits,runMask=(1<<runBits)-1,hasher=2654435761;assert(hashShift===16);var hashTable=new Int16Array(1<<16);var empty=new Int16Array(hashTable.length);exports.compressBound=function(isize){return isize>maxInputSize?0:isize+isize/255+16|0};exports.compress=function(src,dst,sIdx,eIdx){hashTable.set(empty);return compressBlock(src,dst,0,sIdx||0,eIdx||dst.length)};function compressBlock(src,dst,pos,sIdx,eIdx){var dpos=sIdx;var dlen=eIdx-sIdx;var anchor=0;if(src.length>=maxInputSize)throw new Error("input too large");if(src.length>mfLimit){var n=exports.compressBound(src.length);if(dlen<n)throw Error("output too small: "+dlen+" < "+n);var step=1,findMatchAttempts=(1<<skipStrength)+3,srcLength=src.length-mfLimit;while(pos+minMatch<srcLength){var sequenceLowBits=src[pos+1]<<8|src[pos];var sequenceHighBits=src[pos+3]<<8|src[pos+2];var hash=Math.imul(sequenceLowBits|sequenceHighBits<<16,hasher)>>>hashShift;var ref=hashTable[hash]-1;hashTable[hash]=pos+1;if(ref<0||pos-ref>>>16>0||((src[ref+3]<<8|src[ref+2])!=sequenceHighBits||(src[ref+1]<<8|src[ref])!=sequenceLowBits)){step=findMatchAttempts++>>skipStrength;pos+=step;continue}findMatchAttempts=(1<<skipStrength)+3;var literals_length=pos-anchor;var offset=pos-ref;pos+=minMatch;ref+=minMatch;var match_length=pos;while(pos<srcLength&&src[pos]==src[ref]){pos++;ref++}match_length=pos-match_length;var token=match_length<mlMask?match_length:mlMask;if(literals_length>=runMask){dst[dpos++]=(runMask<<mlBits)+token;for(var len=literals_length-runMask;len>254;len-=255){dst[dpos++]=255}dst[dpos++]=len}else{dst[dpos++]=(literals_length<<mlBits)+token}for(var i=0;i<literals_length;i++){dst[dpos++]=src[anchor+i]}dst[dpos++]=offset;dst[dpos++]=offset>>8;if(match_length>=mlMask){match_length-=mlMask;while(match_length>=255){match_length-=255;dst[dpos++]=255}dst[dpos++]=match_length}anchor=pos}}if(anchor==0)return 0;literals_length=src.length-anchor;if(literals_length>=runMask){dst[dpos++]=runMask<<mlBits;for(var ln=literals_length-runMask;ln>254;ln-=255){dst[dpos++]=255}dst[dpos++]=ln}else{dst[dpos++]=literals_length<<mlBits}pos=anchor;while(pos<src.length){dst[dpos++]=src[pos++]}return dpos}exports.CHUNK_SIZE=2048;exports.compressPackage=function(data,verify){if(verify){var temp=new Uint8Array(exports.CHUNK_SIZE)}assert(data instanceof ArrayBuffer);data=new Uint8Array(data);console.log("compressing package of size "+data.length);var compressedChunks=[];var successes=[];var offset=0;var total=0;while(offset<data.length){var chunk=data.subarray(offset,offset+exports.CHUNK_SIZE);offset+=exports.CHUNK_SIZE;var bound=exports.compressBound(chunk.length);var compressed=new Uint8Array(bound);var compressedSize=exports.compress(chunk,compressed);if(compressedSize>0){assert(compressedSize<=bound);compressed=compressed.subarray(0,compressedSize);compressedChunks.push(compressed);total+=compressedSize;successes.push(1);if(verify){var back=exports.uncompress(compressed,temp);assert(back===chunk.length,[back,chunk.length]);for(var i=0;i<chunk.length;i++){assert(chunk[i]===temp[i])}}}else{assert(compressedSize===0);compressedChunks.push(chunk);total+=chunk.length;successes.push(0)}}data=null;var compressedData={data:new Uint8Array(total+exports.CHUNK_SIZE*2),cachedOffset:total,cachedIndexes:[-1,-1],cachedChunks:[null,null],offsets:[],sizes:[],successes};offset=0;for(var i=0;i<compressedChunks.length;i++){compressedData["data"].set(compressedChunks[i],offset);compressedData["offsets"][i]=offset;compressedData["sizes"][i]=compressedChunks[i].length;offset+=compressedChunks[i].length}console.log("compressed package into "+[compressedData["data"].length]);assert(offset===total);return compressedData};assert(exports.CHUNK_SIZE<1<<15);return exports}();if(typeof module!="undefined"){module.exports=MiniLZ4}return MiniLZ4})();LZ4.CHUNK_SIZE=LZ4.codec.CHUNK_SIZE},loadPackage(pack,preloadPlugin){LZ4.init();var compressedData=pack["compressedData"]||LZ4.codec.compressPackage(pack["data"]);assert(compressedData["cachedIndexes"].length===compressedData["cachedChunks"].length);for(var i=0;i<compressedData["cachedIndexes"].length;i++){compressedData["cachedIndexes"][i]=-1;compressedData["cachedChunks"][i]=compressedData["data"].subarray(compressedData["cachedOffset"]+i*LZ4.CHUNK_SIZE,compressedData["cachedOffset"]+(i+1)*LZ4.CHUNK_SIZE);assert(compressedData["cachedChunks"][i].length===LZ4.CHUNK_SIZE)}pack["metadata"].files.forEach(file=>{var dir=PATH.dirname(file.filename);var name=PATH.basename(file.filename);FS.createPath("",dir,true,true);var parent=FS.analyzePath(dir).object;LZ4.createNode(parent,name,LZ4.FILE_MODE,0,{compressedData,start:file.start,end:file.end})});if(preloadPlugin){Browser.init();pack["metadata"].files.forEach(file=>{var handled=false;var fullname=file.filename;preloadPlugins.forEach(plugin=>{if(handled)return;if(plugin["canHandle"](fullname)){var dep=getUniqueRunDependency("fp "+fullname);addRunDependency(dep);var finish=()=>removeRunDependency(dep);var byteArray=FS.readFile(fullname);plugin["handle"](byteArray,fullname,finish,finish);handled=true}})})}},createNode(parent,name,mode,dev,contents,mtime){var node=FS.createNode(parent,name,mode);node.mode=mode;node.node_ops=LZ4.node_ops;node.stream_ops=LZ4.stream_ops;this.atime=this.mtime=this.ctime=(mtime||new Date).getTime();assert(LZ4.FILE_MODE!==LZ4.DIR_MODE);if(mode===LZ4.FILE_MODE){node.size=contents.end-contents.start;node.contents=contents}else{node.size=4096;node.contents={}}if(parent){parent.contents[name]=node}return node},node_ops:{getattr(node){return{dev:1,ino:node.id,mode:node.mode,nlink:1,uid:0,gid:0,rdev:0,size:node.size,atime:new Date(node.atime),mtime:new Date(node.mtime),ctime:new Date(node.ctime),blksize:4096,blocks:Math.ceil(node.size/4096)}},setattr(node,attr){for(const key of["mode","atime","mtime","ctime"]){if(attr[key]){node[key]=attr[key]}}},lookup(parent,name){throw new FS.ErrnoError(44)},mknod(parent,name,mode,dev){throw new FS.ErrnoError(63)},rename(oldNode,newDir,newName){throw new FS.ErrnoError(63)},unlink(parent,name){throw new FS.ErrnoError(63)},rmdir(parent,name){throw new FS.ErrnoError(63)},readdir(node){throw new FS.ErrnoError(63)},symlink(parent,newName,oldPath){throw new FS.ErrnoError(63)}},stream_ops:{read(stream,buffer,offset,length,position){length=Math.min(length,stream.node.size-position);if(length<=0)return 0;var contents=stream.node.contents;var compressedData=contents.compressedData;var written=0;while(written<length){var start=contents.start+position+written;var desired=length-written;var chunkIndex=Math.floor(start/LZ4.CHUNK_SIZE);var compressedStart=compressedData["offsets"][chunkIndex];var compressedSize=compressedData["sizes"][chunkIndex];var currChunk;if(compressedData["successes"][chunkIndex]){var found=compressedData["cachedIndexes"].indexOf(chunkIndex);if(found>=0){currChunk=compressedData["cachedChunks"][found]}else{compressedData["cachedIndexes"].pop();compressedData["cachedIndexes"].unshift(chunkIndex);currChunk=compressedData["cachedChunks"].pop();compressedData["cachedChunks"].unshift(currChunk);if(compressedData["debug"]){out("decompressing chunk "+chunkIndex);Module["decompressedChunks"]=(Module["decompressedChunks"]||0)+1}var compressed=compressedData["data"].subarray(compressedStart,compressedStart+compressedSize);var originalSize=LZ4.codec.uncompress(compressed,currChunk);if(chunkIndex<compressedData["successes"].length-1)assert(originalSize===LZ4.CHUNK_SIZE)}}else{currChunk=compressedData["data"].subarray(compressedStart,compressedStart+LZ4.CHUNK_SIZE)}var startInChunk=start%LZ4.CHUNK_SIZE;var endInChunk=Math.min(startInChunk+desired,LZ4.CHUNK_SIZE);buffer.set(currChunk.subarray(startInChunk,endInChunk),offset+written);var currWritten=endInChunk-startInChunk;written+=currWritten}return written},write(stream,buffer,offset,length,position){throw new FS.ErrnoError(29)},llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(28)}return position}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{name="ErrnoError";constructor(errno){this.errno=errno}},FSStream:class{shared={};get object(){return this.node}set object(val){this.node=val}get isRead(){return(this.flags&2097155)!==1}get isWrite(){return(this.flags&2097155)!==0}get isAppend(){return this.flags&1024}get flags(){return this.shared.flags}set flags(val){this.shared.flags=val}get position(){return this.shared.position}set position(val){this.shared.position=val}},FSNode:class{node_ops={};stream_ops={};readMode=292|73;writeMode=146;mounted=null;constructor(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(val){val?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return FS.isDir(this.mode)}get isDevice(){return FS.isChrdev(this.mode)}},lookupPath(path,opts={}){if(!path){throw new FS.ErrnoError(44)}opts.follow_mount??=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}if(parts[i]==="."){continue}if(parts[i]===".."){current_path=PATH.dirname(current_path);if(FS.isRoot(current)){path=current_path+"/"+parts.slice(i+1).join("/");continue linkloop}else{current=current.parent}continue}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i])}catch(e){if(e?.errno===44&&islast&&opts.noent_okay){return{path:current_path}}throw e}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52)}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link}path=link+"/"+parts.slice(i+1).join("/");continue linkloop}}return{path:current_path,node:current}}throw new FS.ErrnoError(32)},getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode(node){FS.hashRemoveNode(node)},isRoot(node){return node===node.parent},isMountpoint(node){return!!node.mounted},isFile(mode){return(mode&61440)===32768},isDir(mode){return(mode&61440)===16384},isLink(mode){return(mode&61440)===40960},isChrdev(mode){return(mode&61440)===8192},isBlkdev(mode){return(mode&61440)===24576},isFIFO(mode){return(mode&61440)===4096},isSocket(mode){return(mode&49152)===49152},flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54}try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},checkOpExists(op,err){if(!op){throw new FS.ErrnoError(err)}return op},MAX_OPEN_FDS:4096,nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}return stream},getStream:fd=>FS.streams[fd],createStream(stream,fd=-1){stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream(fd){FS.streams[fd]=null},dupStream(origStream,fd=-1){var stream=FS.createStream(origStream,fd);stream.stream_ops?.dup?.(stream);return stream},doSetAttr(stream,node,attr){var setattr=stream?.stream_ops.setattr;var arg=setattr?stream:node;setattr??=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr)},chrdev_stream_ops:{open(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;stream.stream_ops.open?.(stream)},llseek(){throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push(...m.mounts)}return mounts},syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type,opts,mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup(parent,name){return parent.node_ops.lookup(parent,name)},mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28)}if(name==="."||name===".."){throw new FS.ErrnoError(20)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node)},statfsStream(stream){return FS.statfsNode(stream.node)},statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root))}return rtn},create(path,mode=438){mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir(path,mode=511){mode&=511|512;mode|=16384;if(FS.trackingDelegate["onMakeDirectory"]){FS.trackingDelegate["onMakeDirectory"](path,mode)}return FS.mknod(path,mode,0)},mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var dir of dirs){if(!dir)continue;if(d||PATH.isAbs(path))d+="/";d+=dir;try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}if(FS.trackingDelegate["onMakeSymlink"]){FS.trackingDelegate["onMakeSymlink"](oldpath,newpath)}return parent.node_ops.symlink(parent,newname,oldpath)},rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir}catch(e){throw e}finally{FS.hashAddNode(old_node)}if(FS.trackingDelegate["onMovePath"]){FS.trackingDelegate["onMovePath"](old_path,new_path)}},rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);if(FS.trackingDelegate["onDeletePath"]){FS.trackingDelegate["onDeletePath"](path)}},readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node)},unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);if(FS.trackingDelegate["onDeletePath"]){FS.trackingDelegate["onDeletePath"](path)}},readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return link.node_ops.readlink(link)},stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node)},fstat(fd){var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;getattr??=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg)},lstat(path){return FS.stat(path,true)},doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow})},chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChmod(null,node,mode,dontFollow)},lchmod(path,mode){FS.chmod(path,mode,true)},fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false)},doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow})},chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}FS.doChown(null,node,dontFollow)},lchown(path,uid,gid){FS.chown(path,uid,gid,true)},fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false)},doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()})},truncate(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}FS.doTruncate(null,node,len)},ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.doTruncate(stream,stream.node,len)},utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime,mtime})},open(path,flags,mode=438){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;var isDirPath;if(typeof path=="object"){node=path}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else if(isDirPath){throw new FS.ErrnoError(31)}else{node=FS.mknod(path,mode|511,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}var trackingFlags=flags;flags&=~(128|512|131072);var stream=FS.createStream({node,path:FS.getPath(node),flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(created){FS.chmod(node,mode&511)}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1;dbg(`FS.trackingDelegate error on read file: ${path}`)}}if(FS.trackingDelegate["onOpenFile"]){FS.trackingDelegate["onOpenFile"](path,trackingFlags)}return stream},close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null;if(stream.path&&FS.trackingDelegate["onCloseFile"]){FS.trackingDelegate["onCloseFile"](stream.path)}},isClosed(stream){return stream.fd===null},llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];if(stream.path&&FS.trackingDelegate["onSeekFile"]){FS.trackingDelegate["onSeekFile"](stream.path,stream.position,whence)}return stream.position},read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;if(stream.path&&FS.trackingDelegate["onReadFile"]){FS.trackingDelegate["onReadFile"](stream.path,bytesRead)}return bytesRead},write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;if(stream.path&&FS.trackingDelegate["onWriteToFile"]){FS.trackingDelegate["onWriteToFile"](stream.path,bytesWritten)}return bytesWritten},mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}if(!length){throw new FS.ErrnoError(28)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile(path,opts={}){opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile(path,data,opts={}){opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length,llseek:()=>0});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomFill(randomBuffer);randomLeft=randomBuffer.byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path},id:fd+1};ret.parent=ret;return ret},readdir(){return Array.from(FS.streams.entries()).filter(([k,v])=>v).map(([k,v])=>k.toString())}};return node}},{},"/proc/self/fd")},createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input)}else{FS.symlink("/dev/tty","/dev/stdin")}if(output){FS.createDevice("/dev","stdout",null,output)}else{FS.symlink("/dev/tty","/dev/stdout")}if(error){FS.createDevice("/dev","stderr",null,error)}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS,IDBFS,NODEFS,WORKERFS,PROXYFS}},init(input,output,error){FS.initialized=true;input??=Module["stdin"];output??=Module["stdout"];error??=Module["stderr"];FS.createStandardStreams(input,output,error)},quit(){FS.initialized=false;_fflush(0);for(var stream of FS.streams){if(stream){FS.close(stream)}}},findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){if(e.errno!=20)throw e}parent=current}return current},createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}},createDevice(parent,name,input,output){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);FS.createDevice.major??=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open(stream){stream.seekable=false},close(stream){if(output?.buffer?.length){output(10)}},read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.atime=Date.now()}return bytesRead},write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.mtime=stream.node.ctime=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;dbg(`forceLoadFile: ${obj.url}`);if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}},createLazyFile(parent,name,url,canRead,canWrite){class LazyUint8Array{lengthKnown=false;chunks=[];get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]}setDataGetter(getter){this.getter=getter}cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true}get length(){if(!this.lengthKnown){this.cacheLength()}return this._length}get chunkSize(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=(...args)=>{FS.forceLoadFile(node);return fn(...args)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var findLibraryFS=(libName,rpath)=>{if(!runtimeInitialized){return undefined}if(PATH.isAbs(libName)){try{FS.lookupPath(libName);return libName}catch(e){return undefined}}var rpathResolved=(rpath?.paths||[]).map(p=>replaceORIGIN(rpath?.parentLibPath,p));return withStackSave(()=>{var bufSize=2*255+2;var buf=stackAlloc(bufSize);var rpathC=stringToUTF8OnStack(rpathResolved.join(":"));var libNameC=stringToUTF8OnStack(libName);var resLibNameC=__emscripten_find_dylib(buf,rpathC,libNameC,bufSize);return resLibNameC?UTF8ToString(resLibNameC):undefined})};function loadDynamicLibrary(libName,flags={global:true,nodelete:true},localScope,handle){var dso=LDSO.loadedLibsByName[libName];if(dso){if(!flags.global){if(localScope){Object.assign(localScope,dso.exports)}}else if(!dso.global){dso.global=true;mergeLibSymbols(dso.exports,libName)}if(flags.nodelete&&dso.refcount!==Infinity){dso.refcount=Infinity}dso.refcount++;if(handle){LDSO.loadedLibsByHandle[handle]=dso}return flags.loadAsync?Promise.resolve(true):true}dso=newDSO(libName,handle,"loading");dso.refcount=flags.nodelete?Infinity:1;dso.global=flags.global;function loadLibData(){if(handle){var data=HEAPU32[handle+28>>>2>>>0];var dataSize=HEAPU32[handle+32>>>2>>>0];if(data&&dataSize){var libData=HEAP8.slice(data,data+dataSize);return flags.loadAsync?Promise.resolve(libData):libData}}var f=findLibraryFS(libName,flags.rpath);if(f){var libData=FS.readFile(f,{encoding:"binary"});return flags.loadAsync?Promise.resolve(libData):libData}var libFile=locateFile(libName);if(flags.loadAsync){return asyncLoad(libFile)}if(!readBinary){throw new Error(`${libFile}: file not found, and synchronous loading of external files is not available`)}return readBinary(libFile)}function getExports(){var preloaded=preloadedWasm[libName];if(preloaded){return flags.loadAsync?Promise.resolve(preloaded):preloaded}if(flags.loadAsync){return loadLibData().then(libData=>loadWebAssemblyModule(libData,flags,libName,localScope,handle))}return loadWebAssemblyModule(loadLibData(),flags,libName,localScope,handle)}function moduleLoaded(exports){if(dso.global){mergeLibSymbols(exports,libName)}else if(localScope){Object.assign(localScope,exports)}dso.exports=exports}if(flags.loadAsync){return getExports().then(exports=>{moduleLoaded(exports);return true})}moduleLoaded(getExports());return true}var reportUndefinedSymbols=()=>{for(var[symName,entry]of Object.entries(GOT)){if(entry.value==0){var value=resolveGlobalSymbol(symName,true).sym;if(!value&&!entry.required){continue}if(typeof value=="function"){entry.value=addFunction(value,value.sig)}else if(typeof value=="number"){entry.value=value}else{throw new Error(`bad export type for '${symName}': ${typeof value}`)}}}};var loadDylibs=()=>{if(!dynamicLibraries.length){reportUndefinedSymbols();return}addRunDependency("loadDylibs");dynamicLibraries.reduce((chain,lib)=>chain.then(()=>loadDynamicLibrary(lib,{loadAsync:true,global:true,nodelete:true,allowUndefined:true})),Promise.resolve()).then(()=>{reportUndefinedSymbols();removeRunDependency("loadDylibs")})};var noExitRuntime=false;function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="*";switch(type){case"i1":HEAP8[ptr>>>0]=value;break;case"i8":HEAP8[ptr>>>0]=value;break;case"i16":HEAP16[ptr>>>1>>>0]=value;break;case"i32":HEAP32[ptr>>>2>>>0]=value;break;case"i64":HEAP64[ptr>>>3>>>0]=BigInt(value);break;case"float":HEAPF32[ptr>>>2>>>0]=value;break;case"double":HEAPF64[ptr>>>3>>>0]=value;break;case"*":HEAPU32[ptr>>>2>>>0]=value;break;default:abort(`invalid type for setValue: ${type}`)}}var INT53_MAX=9007199254740992;var INT53_MIN=-9007199254740992;var bigintToI53Checked=num=>num<INT53_MIN||num>INT53_MAX?NaN:Number(num);function ___assert_fail(condition,filename,line,func){condition>>>=0;filename>>>=0;func>>>=0;return abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}___assert_fail.sig="vppip";function ___call_sighandler(fp,sig){fp>>>=0;return getWasmTableEntry(fp)(sig)}___call_sighandler.sig="vpi";var ___cpp_exception=new WebAssembly.Tag({parameters:["i32"]});var ___memory_base=new WebAssembly.Global({value:"i32",mutable:false},1024);var ___stack_high=8690352;var ___stack_low=3447472;var ___stack_pointer=new WebAssembly.Global({value:"i32",mutable:true},8690352);var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return dir+"/"+path},writeStat(buf,stat){HEAP32[buf>>>2>>>0]=stat.dev;HEAP32[buf+4>>>2>>>0]=stat.mode;HEAPU32[buf+8>>>2>>>0]=stat.nlink;HEAP32[buf+12>>>2>>>0]=stat.uid;HEAP32[buf+16>>>2>>>0]=stat.gid;HEAP32[buf+20>>>2>>>0]=stat.rdev;HEAP64[buf+24>>>3>>>0]=BigInt(stat.size);HEAP32[buf+32>>>2>>>0]=4096;HEAP32[buf+36>>>2>>>0]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>>3>>>0]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>>2>>>0]=atime%1e3*1e3*1e3;HEAP64[buf+56>>>3>>>0]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>>2>>>0]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>>3>>>0]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>>2>>>0]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>>3>>>0]=BigInt(stat.ino);return 0},writeStatFs(buf,stats){HEAP32[buf+4>>>2>>>0]=stats.bsize;HEAP32[buf+40>>>2>>>0]=stats.bsize;HEAP32[buf+8>>>2>>>0]=stats.blocks;HEAP32[buf+12>>>2>>>0]=stats.bfree;HEAP32[buf+16>>>2>>>0]=stats.bavail;HEAP32[buf+20>>>2>>>0]=stats.files;HEAP32[buf+24>>>2>>>0]=stats.ffree;HEAP32[buf+28>>>2>>>0]=stats.fsid;HEAP32[buf+44>>>2>>>0]=stats.flags;HEAP32[buf+36>>>2>>>0]=stats.namelen},doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream},varargs:undefined,getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var ___syscall__newselect=function(nfds,readfds,writefds,exceptfds,timeout){readfds>>>=0;writefds>>>=0;exceptfds>>>=0;timeout>>>=0;try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>>2>>>0]:0,srcReadHigh=readfds?HEAP32[readfds+4>>>2>>>0]:0;var srcWriteLow=writefds?HEAP32[writefds>>>2>>>0]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>>2>>>0]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>>2>>>0]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>>2>>>0]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>>2>>>0]:0)|(writefds?HEAP32[writefds>>>2>>>0]:0)|(exceptfds?HEAP32[exceptfds>>>2>>>0]:0);var allHigh=(readfds?HEAP32[readfds+4>>>2>>>0]:0)|(writefds?HEAP32[writefds+4>>>2>>>0]:0)|(exceptfds?HEAP32[exceptfds+4>>>2>>>0]:0);var check=(fd,low,high,val)=>fd<32?low&val:high&val;for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=SYSCALLS.getStreamFromFD(fd);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){var timeoutInMillis=-1;if(timeout){var tv_sec=readfds?HEAP32[timeout>>>2>>>0]:0,tv_usec=readfds?HEAP32[timeout+4>>>2>>>0]:0;timeoutInMillis=(tv_sec+tv_usec/1e6)*1e3}flags=stream.stream_ops.poll(stream,timeoutInMillis)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>>2>>>0]=dstReadLow;HEAP32[readfds+4>>>2>>>0]=dstReadHigh}if(writefds){HEAP32[writefds>>>2>>>0]=dstWriteLow;HEAP32[writefds+4>>>2>>>0]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>>2>>>0]=dstExceptLow;HEAP32[exceptfds+4>>>2>>>0]=dstExceptHigh}return total}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}};___syscall__newselect.sig="iipppp";var SOCKFS={websocketArgs:{},callbacks:{},on(event,callback){SOCKFS.callbacks[event]=callback},emit(event,param){SOCKFS.callbacks[event]?.(param)},mount(mount){SOCKFS.websocketArgs=Module["websocket"]||{};(Module["websocket"]??={})["on"]=SOCKFS.on;return FS.createNode(null,"/",16895,0)},createSocket(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family,type,protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return`socket[${SOCKFS.nextname.current++}]`},websocket_sock_ops:{createPeer(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var url="ws://".replace("#","//");var subProtocols="binary";var opts=undefined;if(SOCKFS.websocketArgs["url"]){url=SOCKFS.websocketArgs["url"]}if(SOCKFS.websocketArgs["subprotocol"]){subProtocols=SOCKFS.websocketArgs["subprotocol"]}else if(SOCKFS.websocketArgs["subprotocol"]===null){subProtocols="null"}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require("ws")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr,port,socket:ws,msg_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.msg_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer(sock,addr,port){return sock.peers[addr+":"+port]},addPeer(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents(sock,peer){var first=true;var handleOpen=function(){sock.connecting=false;SOCKFS.emit("open",sock.stream.fd);try{var queued=peer.msg_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.msg_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}data=new Uint8Array(data)}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data});SOCKFS.emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){SOCKFS.emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){SOCKFS.emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;SOCKFS.emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){if(sock.connecting){mask|=4}else{mask|=16}}return mask},ioctl(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>>2>>>0]=bytes;return 0;default:return 28}},close(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}for(var peer of Object.values(sock.peers)){try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind(sock,addr,port){if(typeof sock.saddr!="undefined"||typeof sock.sport!="undefined"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e.name==="ErrnoError"))throw e;if(e.errno!==138)throw e}}},connect(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!="undefined"&&typeof sock.dport!="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else{throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;sock.connecting=true},listen(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}if(sock.server){throw new FS.ErrnoError(28)}var WebSocketServer=require("ws").Server;var host=sock.saddr;sock.server=new WebSocketServer({host,port:sock.sport});SOCKFS.emit("listen",sock.stream.fd);sock.server.on("connection",function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock);SOCKFS.emit("connection",newsock.stream.fd)}else{SOCKFS.websocket_sock_ops.createPeer(sock,ws);SOCKFS.emit("connection",sock.stream.fd)}});sock.server.on("close",function(){SOCKFS.emit("close",sock.stream.fd);sock.server=null});sock.server.on("error",function(error){sock.error=23;SOCKFS.emit("error",[sock.stream.fd,sock.error,"EHOSTUNREACH: Host is unreachable"])})},accept(listensock){if(!listensock.server||!listensock.pending.length){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr,port}},sendmsg(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data=buffer.slice(offset,offset+length);if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(sock.type===2){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}}dest.msg_send_queue.push(data);return length}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}throw new FS.ErrnoError(6)}throw new FS.ErrnoError(6)}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};var getSocketFromFD=fd=>{var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket};var inetPton4=str=>{var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0};var inetPton6=str=>{var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=Number(words[words.length-4])+Number(words[words.length-3])*256;words[words.length-3]=Number(words[words.length-2])+Number(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]=="string"){if(words[w]==="Z"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]};var writeSockaddr=(sa,family,addr,port,addrlen)=>{switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>>2>>>0]=16}HEAP16[sa>>>1>>>0]=family;HEAP32[sa+4>>>2>>>0]=addr;HEAP16[sa+2>>>1>>>0]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>>2>>>0]=28}HEAP32[sa>>>2>>>0]=family;HEAP32[sa+8>>>2>>>0]=addr[0];HEAP32[sa+12>>>2>>>0]=addr[1];HEAP32[sa+16>>>2>>>0]=addr[2];HEAP32[sa+20>>>2>>>0]=addr[3];HEAP16[sa+2>>>1>>>0]=_htons(port);break;default:return 5}return 0};var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___syscall_accept4(fd,addr,addrlen,flags,d1,d2){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_accept4.sig="iippiii";var inetNtop4=addr=>(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255);var inetNtop6=ints=>{var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=":";if(zstart===0)str+=":"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?":":""}return str};var readSockaddr=(sa,salen)=>{var family=HEAP16[sa>>>1>>>0];var port=_ntohs(HEAPU16[sa+2>>>1>>>0]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>>2>>>0];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>>2>>>0],HEAP32[sa+12>>>2>>>0],HEAP32[sa+16>>>2>>>0],HEAP32[sa+20>>>2>>>0]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family,addr,port}};var getSocketAddress=(addrp,addrlen)=>{var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info};function ___syscall_bind(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_bind.sig="iippiii";function ___syscall_chdir(path){path>>>=0;try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_chdir.sig="ip";function ___syscall_chmod(path,mode){path>>>=0;try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_chmod.sig="ipi";function ___syscall_connect(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_connect.sig="iippiii";function ___syscall_dup(fd){try{var old=SYSCALLS.getStreamFromFD(fd);return FS.dupStream(old).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_dup.sig="ii";function ___syscall_dup3(fd,newfd,flags){try{var old=SYSCALLS.getStreamFromFD(fd);if(old.fd===newfd)return-28;if(newfd<0||newfd>=FS.MAX_OPEN_FDS)return-8;var existing=FS.getStream(newfd);if(existing)FS.close(existing);return FS.dupStream(old,newfd).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_dup3.sig="iiii";function ___syscall_faccessat(dirfd,path,amode,flags){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_faccessat.sig="iipii";var ___syscall_fadvise64=(fd,offset,len,advice)=>0;___syscall_fadvise64.sig="iijji";function ___syscall_fchdir(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.chdir(stream.path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchdir.sig="ii";function ___syscall_fchmod(fd,mode){try{FS.fchmod(fd,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchmod.sig="iii";function ___syscall_fchmodat2(dirfd,path,mode,flags){path>>>=0;try{var nofollow=flags&256;path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.chmod(path,mode,nofollow);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchmodat2.sig="iipii";function ___syscall_fchown32(fd,owner,group){try{FS.fchown(fd,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchown32.sig="iiii";function ___syscall_fchownat(dirfd,path,owner,group,flags){path>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;flags=flags&~256;path=SYSCALLS.calculateAt(dirfd,path);(nofollow?FS.lchown:FS.chown)(path,owner,group);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fchownat.sig="iipiii";var syscallGetVarargI=()=>{var ret=HEAP32[+SYSCALLS.varargs>>>2>>>0];SYSCALLS.varargs+=4;return ret};var syscallGetVarargP=syscallGetVarargI;function ___syscall_fcntl64(fd,cmd,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28}while(FS.streams[arg]){arg++}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>>1>>>0]=2;return 0}case 13:case 14:return 0}return-28}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fcntl64.sig="iiip";function ___syscall_fdatasync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fdatasync.sig="ii";function ___syscall_fstat64(fd,buf){buf>>>=0;try{return SYSCALLS.writeStat(buf,FS.fstat(fd))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fstat64.sig="iip";function ___syscall_fstatfs64(fd,size,buf){size>>>=0;buf>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);SYSCALLS.writeStatFs(buf,FS.statfsStream(stream));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_fstatfs64.sig="iipp";function ___syscall_ftruncate64(fd,length){length=bigintToI53Checked(length);try{if(isNaN(length))return-61;FS.ftruncate(fd,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_ftruncate64.sig="iij";function ___syscall_getcwd(buf,size){buf>>>=0;size>>>=0;try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getcwd.sig="ipp";function ___syscall_getdents64(fd,dirp,count){dirp>>>=0;count>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);stream.getdents||=FS.readdir(stream.path);var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var startIdx=Math.floor(off/struct_size);var endIdx=Math.min(stream.getdents.length,startIdx+Math.floor(count/struct_size));for(var idx=startIdx;idx<endIdx;idx++){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child;try{child=FS.lookupNode(stream.node,name)}catch(e){if(e?.errno===28){continue}throw e}id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}HEAP64[dirp+pos>>>3>>>0]=BigInt(id);HEAP64[dirp+pos+8>>>3>>>0]=BigInt((idx+1)*struct_size);HEAP16[dirp+pos+16>>>1>>>0]=280;HEAP8[dirp+pos+18>>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getdents64.sig="iipp";function ___syscall_getpeername(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);if(!sock.daddr){return-53}var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.daddr),sock.dport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getpeername.sig="iippiii";function ___syscall_getsockname(fd,addr,addrlen,d1,d2,d3){addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getsockname.sig="iippiii";function ___syscall_getsockopt(fd,level,optname,optval,optlen,d1){optval>>>=0;optlen>>>=0;try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>>2>>>0]=sock.error;HEAP32[optlen>>>2>>>0]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_getsockopt.sig="iiiippi";function ___syscall_ioctl(fd,op,varargs){varargs>>>=0;SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=termios.c_iflag||0;HEAP32[argp+4>>>2>>>0]=termios.c_oflag||0;HEAP32[argp+8>>>2>>>0]=termios.c_cflag||0;HEAP32[argp+12>>>2>>>0]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17>>>0]=termios.c_cc[i]||0}return 0}return 0}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>>2>>>0];var c_oflag=HEAP32[argp+4>>>2>>>0];var c_cflag=HEAP32[argp+8>>>2>>>0];var c_lflag=HEAP32[argp+12>>>2>>>0];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17>>>0])}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag,c_oflag,c_cflag,c_lflag,c_cc})}return 0}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>>2>>>0]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>>1>>>0]=winsize[0];HEAP16[argp+2>>>1>>>0]=winsize[1]}return 0}case 21524:{if(!stream.tty)return-59;return 0}case 21515:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_ioctl.sig="iiip";function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_listen.sig="iiiiiii";function ___syscall_lstat64(path,buf){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.lstat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_lstat64.sig="ipp";function ___syscall_mkdirat(dirfd,path,mode){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_mkdirat.sig="iipi";function ___syscall_newfstatat(dirfd,path,buf,flags){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~6400;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.writeStat(buf,nofollow?FS.lstat(path):FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_newfstatat.sig="iippi";function ___syscall_openat(dirfd,path,flags,varargs){path>>>=0;varargs>>>=0;SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_openat.sig="iipip";var PIPEFS={BUCKET_BUFFER_SIZE:8192,mount(mount){return FS.createNode(null,"/",16384|511,0)},createPipe(){var pipe={buckets:[],refcnt:2,timestamp:new Date};pipe.buckets.push({buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0});var rName=PIPEFS.nextname();var wName=PIPEFS.nextname();var rNode=FS.createNode(PIPEFS.root,rName,4096,0);var wNode=FS.createNode(PIPEFS.root,wName,4096,0);rNode.pipe=pipe;wNode.pipe=pipe;var readableStream=FS.createStream({path:rName,node:rNode,flags:0,seekable:false,stream_ops:PIPEFS.stream_ops});rNode.stream=readableStream;var writableStream=FS.createStream({path:wName,node:wNode,flags:1,seekable:false,stream_ops:PIPEFS.stream_ops});wNode.stream=writableStream;return{readable_fd:readableStream.fd,writable_fd:writableStream.fd}},stream_ops:{getattr(stream){var node=stream.node;var timestamp=node.pipe.timestamp;return{dev:14,ino:node.id,mode:4480,nlink:1,uid:0,gid:0,rdev:0,size:0,atime:timestamp,mtime:timestamp,ctime:timestamp,blksize:4096,blocks:0}},poll(stream){var pipe=stream.node.pipe;if((stream.flags&2097155)===1){return 256|4}for(var bucket of pipe.buckets){if(bucket.offset-bucket.roffset>0){return 64|1}}return 0},dup(stream){stream.node.pipe.refcnt++},ioctl(stream,request,varargs){return 28},fsync(stream){return 28},read(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var currentLength=0;for(var bucket of pipe.buckets){currentLength+=bucket.offset-bucket.roffset}var data=buffer.subarray(offset,offset+length);if(length<=0){return 0}if(currentLength==0){throw new FS.ErrnoError(6)}var toRead=Math.min(currentLength,length);var totalRead=toRead;var toRemove=0;for(var bucket of pipe.buckets){var bucketSize=bucket.offset-bucket.roffset;if(toRead<=bucketSize){var tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);if(toRead<bucketSize){tmpSlice=tmpSlice.subarray(0,toRead);bucket.roffset+=toRead}else{toRemove++}data.set(tmpSlice);break}else{var tmpSlice=bucket.buffer.subarray(bucket.roffset,bucket.offset);data.set(tmpSlice);data=data.subarray(tmpSlice.byteLength);toRead-=tmpSlice.byteLength;toRemove++}}if(toRemove&&toRemove==pipe.buckets.length){toRemove--;pipe.buckets[toRemove].offset=0;pipe.buckets[toRemove].roffset=0}pipe.buckets.splice(0,toRemove);return totalRead},write(stream,buffer,offset,length,position){var pipe=stream.node.pipe;var data=buffer.subarray(offset,offset+length);var dataLen=data.byteLength;if(dataLen<=0){return 0}var currBucket=null;if(pipe.buckets.length==0){currBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:0,roffset:0};pipe.buckets.push(currBucket)}else{currBucket=pipe.buckets[pipe.buckets.length-1]}assert(currBucket.offset<=PIPEFS.BUCKET_BUFFER_SIZE);var freeBytesInCurrBuffer=PIPEFS.BUCKET_BUFFER_SIZE-currBucket.offset;if(freeBytesInCurrBuffer>=dataLen){currBucket.buffer.set(data,currBucket.offset);currBucket.offset+=dataLen;return dataLen}else if(freeBytesInCurrBuffer>0){currBucket.buffer.set(data.subarray(0,freeBytesInCurrBuffer),currBucket.offset);currBucket.offset+=freeBytesInCurrBuffer;data=data.subarray(freeBytesInCurrBuffer,data.byteLength)}var numBuckets=data.byteLength/PIPEFS.BUCKET_BUFFER_SIZE|0;var remElements=data.byteLength%PIPEFS.BUCKET_BUFFER_SIZE;for(var i=0;i<numBuckets;i++){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:PIPEFS.BUCKET_BUFFER_SIZE,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data.subarray(0,PIPEFS.BUCKET_BUFFER_SIZE));data=data.subarray(PIPEFS.BUCKET_BUFFER_SIZE,data.byteLength)}if(remElements>0){var newBucket={buffer:new Uint8Array(PIPEFS.BUCKET_BUFFER_SIZE),offset:data.byteLength,roffset:0};pipe.buckets.push(newBucket);newBucket.buffer.set(data)}return dataLen},close(stream){var pipe=stream.node.pipe;pipe.refcnt--;if(pipe.refcnt===0){pipe.buckets=null}}},nextname(){if(!PIPEFS.nextname.current){PIPEFS.nextname.current=0}return"pipe["+PIPEFS.nextname.current+++"]"}};function ___syscall_pipe(fdPtr){fdPtr>>>=0;try{if(fdPtr==0){throw new FS.ErrnoError(21)}var res=PIPEFS.createPipe();HEAP32[fdPtr>>>2>>>0]=res.readable_fd;HEAP32[fdPtr+4>>>2>>>0]=res.writable_fd;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_pipe.sig="ip";function ___syscall_poll(fds,nfds,timeout){fds>>>=0;try{var nonzero=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>>2>>>0];var events=HEAP16[pollfd+4>>>1>>>0];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream,-1)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>>1>>>0]=mask}return nonzero}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_poll.sig="ipii";function ___syscall_readlinkat(dirfd,path,buf,bufsize){path>>>=0;buf>>>=0;bufsize>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len>>>0];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len>>>0]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_readlinkat.sig="iippp";function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){buf>>>=0;len>>>=0;addr>>>=0;addrlen>>>=0;try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf>>>0);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_recvfrom.sig="iippipp";function ___syscall_recvmsg(fd,message,flags,d1,d2,d3){message>>>=0;try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>>2>>>0];var num=HEAP32[message+12>>>2>>>0];var total=0;for(var i=0;i<num;i++){total+=HEAP32[iov+(8*i+4)>>>2>>>0]}var msg=sock.sock_ops.recvmsg(sock,total);if(!msg)return 0;var name=HEAPU32[message>>>2>>>0];if(name){var errno=writeSockaddr(name,sock.family,DNS.lookup_name(msg.addr),msg.port)}var bytesRead=0;var bytesRemaining=msg.buffer.byteLength;for(var i=0;bytesRemaining>0&&i<num;i++){var iovbase=HEAPU32[iov+(8*i+0)>>>2>>>0];var iovlen=HEAP32[iov+(8*i+4)>>>2>>>0];if(!iovlen){continue}var length=Math.min(iovlen,bytesRemaining);var buf=msg.buffer.subarray(bytesRead,bytesRead+length);HEAPU8.set(buf,iovbase+bytesRead>>>0);bytesRead+=length;bytesRemaining-=length}return bytesRead}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_recvmsg.sig="iipiiii";function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){oldpath>>>=0;newpath>>>=0;try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_renameat.sig="iipip";function ___syscall_rmdir(path){path>>>=0;try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_rmdir.sig="ip";function ___syscall_sendmsg(fd,message,flags,d1,d2,d3){message>>>=0;d1>>>=0;d2>>>=0;try{var sock=getSocketFromFD(fd);var iov=HEAPU32[message+8>>>2>>>0];var num=HEAP32[message+12>>>2>>>0];var addr,port;var name=HEAPU32[message>>>2>>>0];var namelen=HEAP32[message+4>>>2>>>0];if(name){var info=getSocketAddress(name,namelen);port=info.port;addr=info.addr}var total=0;for(var i=0;i<num;i++){total+=HEAP32[iov+(8*i+4)>>>2>>>0]}var view=new Uint8Array(total);var offset=0;for(var i=0;i<num;i++){var iovbase=HEAPU32[iov+(8*i+0)>>>2>>>0];var iovlen=HEAP32[iov+(8*i+4)>>>2>>>0];for(var j=0;j<iovlen;j++){view[offset++]=HEAP8[iovbase+j>>>0]}}return sock.sock_ops.sendmsg(sock,view,0,total,addr,port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_sendmsg.sig="iipippi";function ___syscall_sendto(fd,message,length,flags,addr,addr_len){message>>>=0;length>>>=0;addr>>>=0;addr_len>>>=0;try{var sock=getSocketFromFD(fd);if(!addr){return FS.write(sock.stream,HEAP8,message,length)}var dest=getSocketAddress(addr,addr_len);return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_sendto.sig="iippipp";function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_socket.sig="iiiiiii";function ___syscall_stat64(path,buf){path>>>=0;buf>>>=0;try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path))}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_stat64.sig="ipp";function ___syscall_statfs64(path,size,buf){path>>>=0;size>>>=0;buf>>>=0;try{SYSCALLS.writeStatFs(buf,FS.statfs(SYSCALLS.getStr(path)));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_statfs64.sig="ippp";function ___syscall_symlinkat(target,dirfd,linkpath){target>>>=0;linkpath>>>=0;try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);linkpath=SYSCALLS.calculateAt(dirfd,linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_symlinkat.sig="ipip";function ___syscall_truncate64(path,length){path>>>=0;length=bigintToI53Checked(length);try{if(isNaN(length))return-61;path=SYSCALLS.getStr(path);FS.truncate(path,length);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_truncate64.sig="ipj";function ___syscall_unlinkat(dirfd,path,flags){path>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(!flags){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{return-28}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_unlinkat.sig="iipi";var readI53FromI64=ptr=>HEAPU32[ptr>>>2>>>0]+HEAP32[ptr+4>>>2>>>0]*4294967296;function ___syscall_utimensat(dirfd,path,times,flags){path>>>=0;times>>>=0;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path,true);var now=Date.now(),atime,mtime;if(!times){atime=now;mtime=now}else{var seconds=readI53FromI64(times);var nanoseconds=HEAP32[times+8>>>2>>>0];if(nanoseconds==1073741823){atime=now}else if(nanoseconds==1073741822){atime=null}else{atime=seconds*1e3+nanoseconds/(1e3*1e3)}times+=16;seconds=readI53FromI64(times);nanoseconds=HEAP32[times+8>>>2>>>0];if(nanoseconds==1073741823){mtime=now}else if(nanoseconds==1073741822){mtime=null}else{mtime=seconds*1e3+nanoseconds/(1e3*1e3)}}if((mtime??atime)!==null){FS.utime(path,atime,mtime)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}___syscall_utimensat.sig="iippi";var ___table_base=new WebAssembly.Global({value:"i32",mutable:false},1);var __abort_js=()=>abort("");__abort_js.sig="v";var dlSetError=msg=>{var sp=stackSave();var cmsg=stringToUTF8OnStack(msg);___dl_seterr(cmsg,0);stackRestore(sp)};var dlopenInternal=(handle,jsflags)=>{var filename=UTF8ToString(handle+36);var flags=HEAP32[handle+4>>>2>>>0];filename=PATH.normalize(filename);var global=Boolean(flags&256);var localScope=global?null:{};var combinedFlags={global,nodelete:Boolean(flags&4096),loadAsync:jsflags.loadAsync};if(jsflags.loadAsync){return loadDynamicLibrary(filename,combinedFlags,localScope,handle)}try{return loadDynamicLibrary(filename,combinedFlags,localScope,handle)}catch(e){dlSetError(`Could not load dynamic lib: ${filename}\n${e}`);return 0}};function __dlopen_js(handle){handle>>>=0;return dlopenInternal(handle,{loadAsync:false})}__dlopen_js.sig="pp";function __dlsym_js(handle,symbol,symbolIndex){handle>>>=0;symbol>>>=0;symbolIndex>>>=0;symbol=UTF8ToString(symbol);var result;var newSymIndex;var lib=LDSO.loadedLibsByHandle[handle];if(!lib.exports.hasOwnProperty(symbol)||lib.exports[symbol].stub){dlSetError(`Tried to lookup unknown symbol "${symbol}" in dynamic lib: ${lib.name}`);return 0}newSymIndex=Object.keys(lib.exports).indexOf(symbol);result=lib.exports[symbol];if(typeof result=="function"){var addr=getFunctionAddress(result);if(addr){result=addr}else{result=addFunction(result,result.sig);HEAPU32[symbolIndex>>>2>>>0]=newSymIndex}}return result}__dlsym_js.sig="pppp";function __emscripten_lookup_name(name){name>>>=0;var nameString=UTF8ToString(name);return inetPton4(DNS.lookup_name(nameString))}__emscripten_lookup_name.sig="ip";var runtimeKeepaliveCounter=0;var __emscripten_runtime_keepalive_clear=()=>{noExitRuntime=false;runtimeKeepaliveCounter=0};__emscripten_runtime_keepalive_clear.sig="v";function __emscripten_system(command){command>>>=0;if(ENVIRONMENT_IS_NODE){if(!command)return 1;var cmdstr=UTF8ToString(command);if(!cmdstr.length)return 0;var cp=require("child_process");var ret=cp.spawnSync(cmdstr,[],{shell:true,stdio:"inherit"});var _W_EXITCODE=(ret,sig)=>ret<<8|sig;if(ret.status===null){var signalToNumber=sig=>{switch(sig){case"SIGHUP":return 1;case"SIGQUIT":return 3;case"SIGFPE":return 8;case"SIGKILL":return 9;case"SIGALRM":return 14;case"SIGTERM":return 15;default:return 2}};return _W_EXITCODE(0,signalToNumber(ret.signal))}return _W_EXITCODE(ret.status,0)}if(!command)return 0;return-52}__emscripten_system.sig="ip";function __gmtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getUTCSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getUTCMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getUTCHours();HEAP32[tmPtr+12>>>2>>>0]=date.getUTCDate();HEAP32[tmPtr+16>>>2>>>0]=date.getUTCMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>>2>>>0]=yday}__gmtime_js.sig="vjp";var isLeapYear=year=>year%4===0&&(year%100!==0||year%400===0);var MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];var MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];var ydayFromDate=date=>{var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday};function __localtime_js(time,tmPtr){time=bigintToI53Checked(time);tmPtr>>>=0;var date=new Date(time*1e3);HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getFullYear()-1900;HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr+36>>>2>>>0]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>>2>>>0]=dst}__localtime_js.sig="vjp";var __mktime_js=function(tmPtr){tmPtr>>>=0;var ret=(()=>{var date=new Date(HEAP32[tmPtr+20>>>2>>>0]+1900,HEAP32[tmPtr+16>>>2>>>0],HEAP32[tmPtr+12>>>2>>>0],HEAP32[tmPtr+8>>>2>>>0],HEAP32[tmPtr+4>>>2>>>0],HEAP32[tmPtr>>>2>>>0],0);var dst=HEAP32[tmPtr+32>>>2>>>0];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>>2>>>0]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>>2>>>0]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>>2>>>0]=yday;HEAP32[tmPtr>>>2>>>0]=date.getSeconds();HEAP32[tmPtr+4>>>2>>>0]=date.getMinutes();HEAP32[tmPtr+8>>>2>>>0]=date.getHours();HEAP32[tmPtr+12>>>2>>>0]=date.getDate();HEAP32[tmPtr+16>>>2>>>0]=date.getMonth();HEAP32[tmPtr+20>>>2>>>0]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1}return timeMs/1e3})();return BigInt(ret)};__mktime_js.sig="jp";function __mmap_js(len,prot,flags,fd,offset,allocated,addr){len>>>=0;offset=bigintToI53Checked(offset);allocated>>>=0;addr>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var res=FS.mmap(stream,len,offset,prot,flags);var ptr=res.ptr;HEAP32[allocated>>>2>>>0]=res.allocated;HEAPU32[addr>>>2>>>0]=ptr;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__mmap_js.sig="ipiiijpp";function __msync_js(addr,len,prot,flags,fd,offset){addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{if(isNaN(offset))return-61;SYSCALLS.doMsync(addr,SYSCALLS.getStreamFromFD(fd),len,flags,offset);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__msync_js.sig="ippiiij";function __munmap_js(addr,len,prot,flags,fd,offset){addr>>>=0;len>>>=0;offset=bigintToI53Checked(offset);try{var stream=SYSCALLS.getStreamFromFD(fd);if(prot&2){SYSCALLS.doMsync(addr,stream,len,flags,offset)}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}__munmap_js.sig="ippiiij";var timers={};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var keepRuntimeAlive=()=>noExitRuntime||runtimeKeepaliveCounter>0;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){Module["onExit"]?.(code);ABORT=true}quit_(code,new ExitStatus(code))};_proc_exit.sig="vi";var exitJS=(status,implicit)=>{EXITSTATUS=status;if(!keepRuntimeAlive()){exitRuntime()}_proc_exit(status)};var _exit=exitJS;_exit.sig="vi";var maybeExit=()=>{if(runtimeExited){return}if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}};var callUserCallback=func=>{if(runtimeExited||ABORT){return}try{func();maybeExit()}catch(e){handleException(e)}};var _emscripten_get_now=()=>performance.now();_emscripten_get_now.sig="d";var __setitimer_js=(which,timeout_ms)=>{if(timers[which]){clearTimeout(timers[which].id);delete timers[which]}if(!timeout_ms)return 0;var id=setTimeout(()=>{delete timers[which];callUserCallback(()=>__emscripten_timeout(which,_emscripten_get_now()))},timeout_ms);timers[which]={id,timeout_ms};return 0};__setitimer_js.sig="iid";var __tzset_js=function(timezone,daylight,std_name,dst_name){timezone>>>=0;daylight>>>=0;std_name>>>=0;dst_name>>>=0;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>>2>>>0]=stdTimezoneOffset*60;HEAP32[daylight>>>2>>>0]=Number(winterOffset!=summerOffset);var extractZone=timezoneOffset=>{var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return`UTC${sign}${hours}${minutes}`};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17)}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17)}};__tzset_js.sig="vpppp";var _emscripten_get_now_res=()=>{if(ENVIRONMENT_IS_NODE){return 1}return 1e3};_emscripten_get_now_res.sig="d";var nowIsMonotonic=1;var checkWasiClock=clock_id=>clock_id>=0&&clock_id<=3;function _clock_res_get(clk_id,pres){pres>>>=0;if(!checkWasiClock(clk_id)){return 28}var nsec;if(clk_id===0){nsec=1e3*1e3}else if(nowIsMonotonic){nsec=_emscripten_get_now_res()}else{return 52}HEAP64[pres>>>3>>>0]=BigInt(nsec);return 0}_clock_res_get.sig="iip";var _emscripten_date_now=()=>Date.now();_emscripten_date_now.sig="d";function _clock_time_get(clk_id,ignored_precision,ptime){ignored_precision=bigintToI53Checked(ignored_precision);ptime>>>=0;if(!checkWasiClock(clk_id)){return 28}var now;if(clk_id===0){now=_emscripten_date_now()}else if(nowIsMonotonic){now=_emscripten_get_now()}else{return 52}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>>3>>>0]=BigInt(nsec);return 0}_clock_time_get.sig="iijp";function _create_sentinel(...args){return wasmImports["create_sentinel"](...args)}_create_sentinel.stub=true;var readEmAsmArgsArray=[];var readEmAsmArgs=(sigPtr,buf)=>{readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++>>>0]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>>2>>>0]:ch==106?HEAP64[buf>>>3>>>0]:ch==105?HEAP32[buf>>>2>>>0]:HEAPF64[buf>>>3>>>0]);buf+=wide?8:4}return readEmAsmArgsArray};var runEmAsmFunction=(code,sigPtr,argbuf)=>{var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code](...args)};function _emscripten_asm_const_int(code,sigPtr,argbuf){code>>>=0;sigPtr>>>=0;argbuf>>>=0;return runEmAsmFunction(code,sigPtr,argbuf)}_emscripten_asm_const_int.sig="ippp";var getHeapMax=()=>4294901760;function _emscripten_get_heap_max(){return getHeapMax()}_emscripten_get_heap_max.sig="p";var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};function _emscripten_resize_heap(requestedSize){requestedSize>>>=0;var oldSize=HEAPU8.length;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false}_emscripten_resize_heap.sig="ip";var runtimeKeepalivePop=()=>{runtimeKeepaliveCounter-=1};runtimeKeepalivePop.sig="v";var _emscripten_runtime_keepalive_pop=runtimeKeepalivePop;_emscripten_runtime_keepalive_pop.sig="v";var runtimeKeepalivePush=()=>{runtimeKeepaliveCounter+=1};runtimeKeepalivePush.sig="v";var _emscripten_runtime_keepalive_push=runtimeKeepalivePush;_emscripten_runtime_keepalive_push.sig="v";var ENV={};var getExecutableName=()=>thisProgram||"./this.program";var getEnvStrings=()=>{if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(`${x}=${env[x]}`)}getEnvStrings.strings=strings}return getEnvStrings.strings};function _environ_get(__environ,environ_buf){__environ>>>=0;environ_buf>>>=0;var bufSize=0;var envp=0;for(var string of getEnvStrings()){var ptr=environ_buf+bufSize;HEAPU32[__environ+envp>>>2>>>0]=ptr;bufSize+=stringToUTF8(string,ptr,Infinity)+1;envp+=4}return 0}_environ_get.sig="ipp";function _environ_sizes_get(penviron_count,penviron_buf_size){penviron_count>>>=0;penviron_buf_size>>>=0;var strings=getEnvStrings();HEAPU32[penviron_count>>>2>>>0]=strings.length;var bufSize=0;for(var string of strings){bufSize+=lengthBytesUTF8(string)+1}HEAPU32[penviron_buf_size>>>2>>>0]=bufSize;return 0}_environ_sizes_get.sig="ipp";function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_close.sig="ii";function _fd_fdstat_get(fd,pbuf){pbuf>>>=0;try{var rightsBase=0;var rightsInheriting=0;var flags=0;{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4}HEAP8[pbuf>>>0]=type;HEAP16[pbuf+2>>>1>>>0]=flags;HEAP64[pbuf+8>>>3>>>0]=BigInt(rightsBase);HEAP64[pbuf+16>>>3>>>0]=BigInt(rightsInheriting);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_fdstat_get.sig="iip";var doReadv=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_pread(fd,iov,iovcnt,offset,pnum){iov>>>=0;iovcnt>>>=0;offset=bigintToI53Checked(offset);pnum>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt,offset);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_pread.sig="iippjp";var doWritev=(stream,iov,iovcnt,offset)=>{var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>>2>>>0];var len=HEAPU32[iov+4>>>2>>>0];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break}if(typeof offset!="undefined"){offset+=curr}}return ret};function _fd_pwrite(fd,iov,iovcnt,offset,pnum){iov>>>=0;iovcnt>>>=0;offset=bigintToI53Checked(offset);pnum>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt,offset);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_pwrite.sig="iippjp";function _fd_read(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_read.sig="iippp";function _fd_seek(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);newOffset>>>=0;try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>>3>>>0]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_seek.sig="iijip";function _fd_sync(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);if(stream.stream_ops?.fsync){return stream.stream_ops.fsync(stream)}return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_sync.sig="ii";function _fd_write(fd,iov,iovcnt,pnum){iov>>>=0;iovcnt>>>=0;pnum>>>=0;try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>>2>>>0]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_fd_write.sig="iippp";function _getaddrinfo(node,service,hint,out){node>>>=0;service>>>=0;hint>>>=0;out>>>=0;var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>>2>>>0]=family;HEAP32[ai+8>>>2>>>0]=type;HEAP32[ai+12>>>2>>>0]=proto;HEAPU32[ai+24>>>2>>>0]=canon;HEAPU32[ai+20>>>2>>>0]=sa;if(family===10){HEAP32[ai+16>>>2>>>0]=28}else{HEAP32[ai+16>>>2>>>0]=16}HEAP32[ai+28>>>2>>>0]=0;return ai}if(hint){flags=HEAP32[hint>>>2>>>0];family=HEAP32[hint+4>>>2>>>0];type=HEAP32[hint+8>>>2>>>0];proto=HEAP32[hint+12>>>2>>>0]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>>2>>>0]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,_htonl(1)]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>>2>>>0]=ai;return 0}_getaddrinfo.sig="ipppp";function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){sa>>>=0;node>>>=0;serv>>>=0;var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}_getnameinfo.sig="ipipipii";var Protocols={list:[],map:{}};var stringToAscii=(str,buffer)=>{for(var i=0;i<str.length;++i){HEAP8[buffer++>>>0]=str.charCodeAt(i)}HEAP8[buffer>>>0]=0};var _setprotoent=stayopen=>{function allocprotoent(name,proto,aliases){var nameBuf=_malloc(name.length+1);stringToAscii(name,nameBuf);var j=0;var length=aliases.length;var aliasListBuf=_malloc((length+1)*4);for(var i=0;i<length;i++,j+=4){var alias=aliases[i];var aliasBuf=_malloc(alias.length+1);stringToAscii(alias,aliasBuf);HEAPU32[aliasListBuf+j>>>2>>>0]=aliasBuf}HEAPU32[aliasListBuf+j>>>2>>>0]=0;var pe=_malloc(12);HEAPU32[pe>>>2>>>0]=nameBuf;HEAPU32[pe+4>>>2>>>0]=aliasListBuf;HEAP32[pe+8>>>2>>>0]=proto;return pe}var list=Protocols.list;var map=Protocols.map;if(list.length===0){var entry=allocprotoent("tcp",6,["TCP"]);list.push(entry);map["tcp"]=map["6"]=entry;entry=allocprotoent("udp",17,["UDP"]);list.push(entry);map["udp"]=map["17"]=entry}_setprotoent.index=0};_setprotoent.sig="vi";function _getprotobyname(name){name>>>=0;name=UTF8ToString(name);_setprotoent(true);var result=Protocols.map[name];return result}_getprotobyname.sig="pp";function _is_sentinel(...args){return wasmImports["is_sentinel"](...args)}_is_sentinel.stub=true;function _random_get(buffer,size){buffer>>>=0;size>>>=0;try{randomFill(HEAPU8.subarray(buffer>>>0,buffer+size>>>0));return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}_random_get.sig="ipp";function _wasmsh_js_http_fetch(...args){return wasmImports["wasmsh_js_http_fetch"](...args)}_wasmsh_js_http_fetch.stub=true;var _stackAlloc=stackAlloc;var _stackRestore=stackSave;var _stackSave=stackSave;var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer>>>0)};var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={string:str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},array:arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func(...cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var cwrap=(ident,returnType,argTypes,opts)=>{var numericArgs=!argTypes||argTypes.every(type=>type==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return(...args)=>ccall(ident,returnType,argTypes,args,opts)};var stringToNewUTF8=str=>{var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8(str,ret,size);return ret};var FS_createPath=(...args)=>FS.createPath(...args);var FS_unlink=(...args)=>FS.unlink(...args);var FS_createLazyFile=(...args)=>FS.createLazyFile(...args);var FS_createDevice=(...args)=>FS.createDevice(...args);var getCppExceptionTag=()=>___cpp_exception;var getCppExceptionThrownObjectFromWebAssemblyException=ex=>{var unwind_header=ex.getArg(getCppExceptionTag(),0);return ___thrown_object_from_unwind_exception(unwind_header)};var incrementExceptionRefcount=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);___cxa_increment_exception_refcount(ptr)};var decrementExceptionRefcount=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);___cxa_decrement_exception_refcount(ptr)};var getExceptionMessageCommon=ptr=>{var sp=stackSave();var type_addr_addr=stackAlloc(4);var message_addr_addr=stackAlloc(4);___get_exception_message(ptr,type_addr_addr,message_addr_addr);var type_addr=HEAPU32[type_addr_addr>>>2>>>0];var message_addr=HEAPU32[message_addr_addr>>>2>>>0];var type=UTF8ToString(type_addr);_free(type_addr);var message;if(message_addr){message=UTF8ToString(message_addr);_free(message_addr)}stackRestore(sp);return[type,message]};var getExceptionMessage=ex=>{var ptr=getCppExceptionThrownObjectFromWebAssemblyException(ex);return getExceptionMessageCommon(ptr)};registerWasmPlugin();FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();for(var base64ReverseLookup=new Uint8Array(123),i=25;i>=0;--i){base64ReverseLookup[48+i]=52+i;base64ReverseLookup[65+i]=i;base64ReverseLookup[97+i]=26+i}base64ReverseLookup[43]=62;base64ReverseLookup[47]=63;MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";if(ENVIRONMENT_IS_NODE){NODEFS.staticInit()}{initMemory();if(Module["preloadPlugins"])preloadPlugins=Module["preloadPlugins"];if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(Module["print"])out=Module["print"];if(Module["printErr"])err=Module["printErr"];if(Module["dynamicLibraries"])dynamicLibraries=Module["dynamicLibraries"];if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"]}Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["callMain"]=callMain;Module["ERRNO_CODES"]=ERRNO_CODES;Module["wasmTable"]=wasmTable;Module["ccall"]=ccall;Module["cwrap"]=cwrap;Module["UTF8ToString"]=UTF8ToString;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_unlink"]=FS_unlink;Module["FS_createPath"]=FS_createPath;Module["FS_createDevice"]=FS_createDevice;Module["FS"]=FS;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_createLazyFile"]=FS_createLazyFile;Module["LZ4"]=LZ4;Module["ExitStatus"]=ExitStatus;Module["GOTHandler"]=GOTHandler;Module["GOT"]=GOT;Module["currentModuleWeakSymbols"]=currentModuleWeakSymbols;Module["addOnPostRun"]=addOnPostRun;Module["onPostRuns"]=onPostRuns;Module["callRuntimeCallbacks"]=callRuntimeCallbacks;Module["addOnPreRun"]=addOnPreRun;Module["onPreRuns"]=onPreRuns;Module["getDylinkMetadata"]=getDylinkMetadata;Module["UTF8ArrayToString"]=UTF8ArrayToString;Module["UTF8Decoder"]=UTF8Decoder;Module["getValue"]=getValue;Module["loadDylibs"]=loadDylibs;Module["loadDynamicLibrary"]=loadDynamicLibrary;Module["LDSO"]=LDSO;Module["newDSO"]=newDSO;Module["loadWebAssemblyModule"]=loadWebAssemblyModule;Module["getMemory"]=getMemory;Module["___heap_base"]=___heap_base;Module["alignMemory"]=alignMemory;Module["relocateExports"]=relocateExports;Module["updateGOT"]=updateGOT;Module["isInternalSym"]=isInternalSym;Module["addFunction"]=addFunction;Module["convertJsFunctionToWasm"]=convertJsFunctionToWasm;Module["uleb128Encode"]=uleb128Encode;Module["sigToWasmTypes"]=sigToWasmTypes;Module["generateFuncType"]=generateFuncType;Module["getFunctionAddress"]=getFunctionAddress;Module["updateTableMap"]=updateTableMap;Module["getWasmTableEntry"]=getWasmTableEntry;Module["wasmTableMirror"]=wasmTableMirror;Module["wasmTable"]=wasmTable;Module["functionsInTableMap"]=functionsInTableMap;Module["getEmptyTableSlot"]=getEmptyTableSlot;Module["freeTableIndexes"]=freeTableIndexes;Module["setWasmTableEntry"]=setWasmTableEntry;Module["resolveGlobalSymbol"]=resolveGlobalSymbol;Module["isSymbolDefined"]=isSymbolDefined;Module["addOnPostCtor"]=addOnPostCtor;Module["onPostCtors"]=onPostCtors;Module["UTF8ToString"]=UTF8ToString;Module["mergeLibSymbols"]=mergeLibSymbols;Module["asyncLoad"]=asyncLoad;Module["preloadedWasm"]=preloadedWasm;Module["registerWasmPlugin"]=registerWasmPlugin;Module["preloadPlugins"]=preloadPlugins;Module["findLibraryFS"]=findLibraryFS;Module["replaceORIGIN"]=replaceORIGIN;Module["PATH"]=PATH;Module["withStackSave"]=withStackSave;Module["stackSave"]=stackSave;Module["stackRestore"]=stackRestore;Module["stackAlloc"]=stackAlloc;Module["lengthBytesUTF8"]=lengthBytesUTF8;Module["stringToUTF8OnStack"]=stringToUTF8OnStack;Module["stringToUTF8"]=stringToUTF8;Module["stringToUTF8Array"]=stringToUTF8Array;Module["FS"]=FS;Module["randomFill"]=randomFill;Module["initRandomFill"]=initRandomFill;Module["base64Decode"]=base64Decode;Module["PATH_FS"]=PATH_FS;Module["TTY"]=TTY;Module["FS_stdin_getChar"]=FS_stdin_getChar;Module["FS_stdin_getChar_buffer"]=FS_stdin_getChar_buffer;Module["intArrayFromString"]=intArrayFromString;Module["MEMFS"]=MEMFS;Module["mmapAlloc"]=mmapAlloc;Module["zeroMemory"]=zeroMemory;Module["FS_createPreloadedFile"]=FS_createPreloadedFile;Module["FS_createDataFile"]=FS_createDataFile;Module["FS_handledByPreloadPlugin"]=FS_handledByPreloadPlugin;Module["FS_modeStringToFlags"]=FS_modeStringToFlags;Module["FS_getMode"]=FS_getMode;Module["IDBFS"]=IDBFS;Module["NODEFS"]=NODEFS;Module["ERRNO_CODES"]=ERRNO_CODES;Module["WORKERFS"]=WORKERFS;Module["PROXYFS"]=PROXYFS;Module["LZ4"]=LZ4;Module["reportUndefinedSymbols"]=reportUndefinedSymbols;Module["noExitRuntime"]=noExitRuntime;Module["setValue"]=setValue;Module["___assert_fail"]=___assert_fail;Module["bigintToI53Checked"]=bigintToI53Checked;Module["INT53_MAX"]=INT53_MAX;Module["INT53_MIN"]=INT53_MIN;Module["___call_sighandler"]=___call_sighandler;Module["___cpp_exception"]=___cpp_exception;Module["___memory_base"]=___memory_base;Module["___stack_high"]=___stack_high;Module["___stack_low"]=___stack_low;Module["___stack_pointer"]=___stack_pointer;Module["___syscall__newselect"]=___syscall__newselect;Module["SYSCALLS"]=SYSCALLS;Module["___syscall_accept4"]=___syscall_accept4;Module["getSocketFromFD"]=getSocketFromFD;Module["SOCKFS"]=SOCKFS;Module["writeSockaddr"]=writeSockaddr;Module["inetPton4"]=inetPton4;Module["inetPton6"]=inetPton6;Module["DNS"]=DNS;Module["___syscall_bind"]=___syscall_bind;Module["getSocketAddress"]=getSocketAddress;Module["readSockaddr"]=readSockaddr;Module["inetNtop4"]=inetNtop4;Module["inetNtop6"]=inetNtop6;Module["___syscall_chdir"]=___syscall_chdir;Module["___syscall_chmod"]=___syscall_chmod;Module["___syscall_connect"]=___syscall_connect;Module["___syscall_dup"]=___syscall_dup;Module["___syscall_dup3"]=___syscall_dup3;Module["___syscall_faccessat"]=___syscall_faccessat;Module["___syscall_fadvise64"]=___syscall_fadvise64;Module["___syscall_fchdir"]=___syscall_fchdir;Module["___syscall_fchmod"]=___syscall_fchmod;Module["___syscall_fchmodat2"]=___syscall_fchmodat2;Module["___syscall_fchown32"]=___syscall_fchown32;Module["___syscall_fchownat"]=___syscall_fchownat;Module["___syscall_fcntl64"]=___syscall_fcntl64;Module["syscallGetVarargP"]=syscallGetVarargP;Module["syscallGetVarargI"]=syscallGetVarargI;Module["___syscall_fdatasync"]=___syscall_fdatasync;Module["___syscall_fstat64"]=___syscall_fstat64;Module["___syscall_fstatfs64"]=___syscall_fstatfs64;Module["___syscall_ftruncate64"]=___syscall_ftruncate64;Module["___syscall_getcwd"]=___syscall_getcwd;Module["___syscall_getdents64"]=___syscall_getdents64;Module["___syscall_getpeername"]=___syscall_getpeername;Module["___syscall_getsockname"]=___syscall_getsockname;Module["___syscall_getsockopt"]=___syscall_getsockopt;Module["___syscall_ioctl"]=___syscall_ioctl;Module["___syscall_listen"]=___syscall_listen;Module["___syscall_lstat64"]=___syscall_lstat64;Module["___syscall_mkdirat"]=___syscall_mkdirat;Module["___syscall_newfstatat"]=___syscall_newfstatat;Module["___syscall_openat"]=___syscall_openat;Module["___syscall_pipe"]=___syscall_pipe;Module["PIPEFS"]=PIPEFS;Module["___syscall_poll"]=___syscall_poll;Module["___syscall_readlinkat"]=___syscall_readlinkat;Module["___syscall_recvfrom"]=___syscall_recvfrom;Module["___syscall_recvmsg"]=___syscall_recvmsg;Module["___syscall_renameat"]=___syscall_renameat;Module["___syscall_rmdir"]=___syscall_rmdir;Module["___syscall_sendmsg"]=___syscall_sendmsg;Module["___syscall_sendto"]=___syscall_sendto;Module["___syscall_socket"]=___syscall_socket;Module["___syscall_stat64"]=___syscall_stat64;Module["___syscall_statfs64"]=___syscall_statfs64;Module["___syscall_symlinkat"]=___syscall_symlinkat;Module["___syscall_truncate64"]=___syscall_truncate64;Module["___syscall_unlinkat"]=___syscall_unlinkat;Module["___syscall_utimensat"]=___syscall_utimensat;Module["readI53FromI64"]=readI53FromI64;Module["___table_base"]=___table_base;Module["__abort_js"]=__abort_js;Module["__dlopen_js"]=__dlopen_js;Module["dlopenInternal"]=dlopenInternal;Module["dlSetError"]=dlSetError;Module["__dlsym_js"]=__dlsym_js;Module["__emscripten_lookup_name"]=__emscripten_lookup_name;Module["__emscripten_runtime_keepalive_clear"]=__emscripten_runtime_keepalive_clear;Module["runtimeKeepaliveCounter"]=runtimeKeepaliveCounter;Module["__emscripten_system"]=__emscripten_system;Module["__gmtime_js"]=__gmtime_js;Module["__localtime_js"]=__localtime_js;Module["ydayFromDate"]=ydayFromDate;Module["isLeapYear"]=isLeapYear;Module["MONTH_DAYS_LEAP_CUMULATIVE"]=MONTH_DAYS_LEAP_CUMULATIVE;Module["MONTH_DAYS_REGULAR_CUMULATIVE"]=MONTH_DAYS_REGULAR_CUMULATIVE;Module["__mktime_js"]=__mktime_js;Module["__mmap_js"]=__mmap_js;Module["__msync_js"]=__msync_js;Module["__munmap_js"]=__munmap_js;Module["__setitimer_js"]=__setitimer_js;Module["timers"]=timers;Module["callUserCallback"]=callUserCallback;Module["handleException"]=handleException;Module["maybeExit"]=maybeExit;Module["_exit"]=_exit;Module["exitJS"]=exitJS;Module["_proc_exit"]=_proc_exit;Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["_emscripten_get_now"]=_emscripten_get_now;Module["__tzset_js"]=__tzset_js;Module["_clock_res_get"]=_clock_res_get;Module["_emscripten_get_now_res"]=_emscripten_get_now_res;Module["nowIsMonotonic"]=nowIsMonotonic;Module["checkWasiClock"]=checkWasiClock;Module["_clock_time_get"]=_clock_time_get;Module["_emscripten_date_now"]=_emscripten_date_now;Module["_create_sentinel"]=_create_sentinel;Module["_emscripten_asm_const_int"]=_emscripten_asm_const_int;Module["runEmAsmFunction"]=runEmAsmFunction;Module["readEmAsmArgs"]=readEmAsmArgs;Module["readEmAsmArgsArray"]=readEmAsmArgsArray;Module["_emscripten_get_heap_max"]=_emscripten_get_heap_max;Module["getHeapMax"]=getHeapMax;Module["_emscripten_resize_heap"]=_emscripten_resize_heap;Module["growMemory"]=growMemory;Module["_emscripten_runtime_keepalive_pop"]=_emscripten_runtime_keepalive_pop;Module["runtimeKeepalivePop"]=runtimeKeepalivePop;Module["_emscripten_runtime_keepalive_push"]=_emscripten_runtime_keepalive_push;Module["runtimeKeepalivePush"]=runtimeKeepalivePush;Module["_environ_get"]=_environ_get;Module["getEnvStrings"]=getEnvStrings;Module["ENV"]=ENV;Module["getExecutableName"]=getExecutableName;Module["_environ_sizes_get"]=_environ_sizes_get;Module["_fd_close"]=_fd_close;Module["_fd_fdstat_get"]=_fd_fdstat_get;Module["_fd_pread"]=_fd_pread;Module["doReadv"]=doReadv;Module["_fd_pwrite"]=_fd_pwrite;Module["doWritev"]=doWritev;Module["_fd_read"]=_fd_read;Module["_fd_seek"]=_fd_seek;Module["_fd_sync"]=_fd_sync;Module["_fd_write"]=_fd_write;Module["_getaddrinfo"]=_getaddrinfo;Module["_getnameinfo"]=_getnameinfo;Module["_getprotobyname"]=_getprotobyname;Module["_setprotoent"]=_setprotoent;Module["Protocols"]=Protocols;Module["stringToAscii"]=stringToAscii;Module["_is_sentinel"]=_is_sentinel;Module["_random_get"]=_random_get;Module["_wasmsh_js_http_fetch"]=_wasmsh_js_http_fetch;Module["_stackAlloc"]=_stackAlloc;Module["_stackRestore"]=_stackRestore;Module["_stackSave"]=_stackSave;Module["ccall"]=ccall;Module["getCFunc"]=getCFunc;Module["writeArrayToMemory"]=writeArrayToMemory;Module["cwrap"]=cwrap;Module["stringToNewUTF8"]=stringToNewUTF8;Module["FS_createPath"]=FS_createPath;Module["FS_unlink"]=FS_unlink;Module["FS_createLazyFile"]=FS_createLazyFile;Module["FS_createDevice"]=FS_createDevice;Module["incrementExceptionRefcount"]=incrementExceptionRefcount;Module["getCppExceptionThrownObjectFromWebAssemblyException"]=getCppExceptionThrownObjectFromWebAssemblyException;Module["getCppExceptionTag"]=getCppExceptionTag;Module["decrementExceptionRefcount"]=decrementExceptionRefcount;Module["getExceptionMessage"]=getExceptionMessage;Module["getExceptionMessageCommon"]=getExceptionMessageCommon;var ASM_CONSTS={3386162:()=>{throw new Error("intentionally triggered fatal error!")},3386219:()=>jspiSupported,3386245:()=>{wasmImports["open64"]=wasmImports["open"]}};function new_error(type,msg,err){return new API.PythonError(UTF8ToString(type),msg,err)}new_error.sig="eiei";function fail_test(){API.fail_test=true}fail_test.sig="v";function capture_stderr(){API.capture_stderr()}capture_stderr.sig="v";function restore_stderr(){return API.restore_stderr()}restore_stderr.sig="e";function raw_call_js(func){func()}raw_call_js.sig="ve";function hiwire_invalid_ref_js(type,ref){API.fail_test=!!1;if(type===1&&!ref){if(_PyErr_Occurred()){const e=_wrap_exception();console.error("Pyodide internal error: Argument to hiwire_get is falsy. This was "+"probably because the Python error indicator was set when get_value was "+"called. The Python error that caused this was:",e);throw e}else{const msg="Pyodide internal error: Argument to hiwire_get is falsy (but error "+"indicator is not set).";console.error(msg);throw new Error(msg)}}const typestr={[1]:"get",[2]:"incref",[3]:"decref"}[type];const msg=`hiwire_${typestr} on invalid reference ${ref}. This is most likely due `+"to use after free. It may also be due to memory corruption.";console.error(msg);throw new Error(msg)}hiwire_invalid_ref_js.sig="vii";function set_pyodide_module(mod){API._pyodide=mod}set_pyodide_module.sig="ve";function js2python_immutable_js(value){try{let result=Module.js2python_convertImmutable(value);if(result!==undefined){return result}return 0}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_immutable_js.sig="ie";function js2python_js(value){try{let result=Module.js2python_convertImmutable(value);if(result!==undefined){return result}return _JsProxy_create(value)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_js.sig="ie";function js2python_convert(v,depth,defaultConverter){try{return Module.js2python_convert(v,{depth,defaultConverter})}catch(e){Module.handle_js_error(e);return 0}errNoRet()}js2python_convert.sig="ieie";function isReservedWord(word){if(!Module.pythonReservedWords){Module.pythonReservedWords=new Set(["False","await","else","import","pass","None","break","except","in","raise","True","class","finally","is","return","and","continue","for","lambda","try","as","def","from","nonlocal","while","assert","del","global","not","with","async","elif","if","or","yield"])}return Module.pythonReservedWords.has(word)}function normalizeReservedWords(word){const noTrailing_=word.replace(/_*$/,"");if(!isReservedWord(noTrailing_)){return word}if(noTrailing_!==word){return word.slice(0,-1)}return word}function JsProxy_GetAttr_js(jsobj,ptrkey){try{const jskey=normalizeReservedWords(UTF8ToString(ptrkey));const result=jsobj[jskey];if(result===undefined&&!(jskey in jsobj)){return Module.error}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetAttr_js.sig="eei";function JsProxy_SetAttr_js(jsobj,ptrkey,jsval){try{let jskey=normalizeReservedWords(UTF8ToString(ptrkey));jsobj[jskey]=jsval}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_SetAttr_js.sig="ieie";function JsProxy_DelAttr_js(jsobj,ptrkey){try{let jskey=normalizeReservedWords(UTF8ToString(ptrkey));delete jsobj[jskey]}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_DelAttr_js.sig="iei";function JsProxy_GetIter_js(obj){try{return obj[Symbol.iterator]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetIter_js.sig="ee";function handle_next_result_js(res,done,msg){try{let errmsg;if(typeof res!=="object"){errmsg=`Result should have type "object" not "${typeof res}"`}else if(typeof res.done==="undefined"){if(typeof res.then==="function"){errmsg=`Result was a promise, use anext() / asend() / athrow() instead.`}else{errmsg=`Result has no "done" field.`}}if(errmsg){HEAPU32[(msg>>2)+0>>>0]=stringToNewUTF8(errmsg);HEAPU32[(done>>2)+0>>>0]=-1}HEAPU32[(done>>2)+0>>>0]=res.done;return res.value}catch(e){Module.handle_js_error(e);return-1}return 0}handle_next_result_js.sig="eeii";function JsException_new_helper(name_ptr,message_ptr,stack_ptr){try{let name=UTF8ToString(name_ptr);let message=UTF8ToString(message_ptr);let stack=UTF8ToString(stack_ptr);return API.deserializeError(name,message,stack)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsException_new_helper.sig="eiii";function JsProxy_GetAsyncIter_js(obj){try{return obj[Symbol.asyncIterator]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_GetAsyncIter_js.sig="ee";function _agen_handle_result_js(p,msg,set_result,set_exception,closing){try{let errmsg;if(typeof p!=="object"){errmsg=`Result of anext() should be object not ${typeof p}`}else if(typeof p.then!=="function"){if(typeof p.done==="boolean"){errmsg=`Result of anext() was not a promise, use next() instead.`}else{errmsg=`Result of anext() was not a promise.`}}if(errmsg){HEAPU32[(msg>>2)+0>>>0]=stringToNewUTF8(errmsg);return-1}_Py_IncRef(set_result);_Py_IncRef(set_exception);p.then(({done,value})=>{__agen_handle_result_js_c(set_result,set_exception,done,value,closing)},err=>{__agen_handle_result_js_c(set_result,set_exception,-1,err,closing)}).finally(()=>{_Py_DecRef(set_result);_Py_DecRef(set_exception)});return 0}catch(e){Module.handle_js_error(e);return-1}return 0}_agen_handle_result_js.sig="ieiiii";function get_length_helper(val){try{let result;if(typeof val.size==="number"){result=val.size}else if(typeof val.length==="number"){result=val.length}else{return-2}if(result<0){return-3}if(result>2147483647){return-4}return result}catch(e){Module.handle_js_error(e);return-1}return 0}get_length_helper.sig="ie";function get_length_string(val){try{let result;if(typeof val.size==="number"){result=val.size}else if(typeof val.length==="number"){result=val.length}return stringToNewUTF8(" "+result.toString())}catch(e){Module.handle_js_error(e);return 0}errNoRet()}get_length_string.sig="ie";function destroy_jsarray_entries(array){for(let v of array){try{if(typeof v.destroy==="function"){v.destroy()}}catch(e){console.warn("Weird error:",e)}}}destroy_jsarray_entries.sig="ve";function JsArray_repeat_js(o,count){try{return Array.from({length:count},()=>o).flat()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsArray_repeat_js.sig="eei";function JsArray_inplace_repeat_js(o,count){try{o.splice(0,o.length,...Array.from({length:count},()=>o).flat())}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_inplace_repeat_js.sig="iei";function JsArray_reversed_iterator(array){return new ReversedIterator(array)}class ReversedIterator{constructor(array){this._array=array;this._i=array.length-1}__length_hint__(){return this._array.length}[Symbol.toStringTag](){return"ReverseIterator"}next(){const i=this._i;const a=this._array;const done=i<0;const value=done?undefined:a[i];this._i--;return{done,value}}}JsArray_reversed_iterator.sig="ee";function JsArray_index_js(o,v,start,stop){try{for(let i=start;i<stop;i++){if(o[i]===v){return i}}return-2}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_index_js.sig="ieeii";function JsArray_count_js(o,v){try{let result=0;for(let i=0;i<o.length;i++){if(o[i]===v){result++}}return result}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_count_js.sig="iee";function JsArray_reverse_js(array){try{array.reverse()}catch(e){Module.handle_js_error(e);return-1}return 0}JsArray_reverse_js.sig="ie";function JsProxy_subscript_js(obj,key){try{let result=obj.get(key);if(result===undefined){if(obj.has&&typeof obj.has==="function"&&!obj.has(key)){return Module.error}}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_subscript_js.sig="eee";function JsMap_GetIter_js(obj){try{let result;if(typeof obj.keys==="function"){result=obj.keys()}else{result=obj[Symbol.iterator]()}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsMap_GetIter_js.sig="ee";function JsMap_clear_js(map){try{if(map&&typeof map.clear==="function"){map.clear();return 1}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}JsMap_clear_js.sig="ie";function JsProxy_Dir_js(jsobj){try{let result=[];do{const names=Object.getOwnPropertyNames(jsobj);result.push(...names.filter(s=>{let c=s.charCodeAt(0);return c<48||c>57}).map(word=>isReservedWord(word.replace(/_*$/,""))?word+"_":word))}while(jsobj=Object.getPrototypeOf(jsobj));return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_Dir_js.sig="ee";function JsProxy_Bool_js(val){try{if(!val){return!!0}if(val.size===0){if(/HTML[A-Za-z]*Element/.test(getTypeTag(val))){return!!1}return!!0}if(val.length===0&&JsvArray_Check(val)){return!!0}if(val.byteLength===0){return!!0}return!!1}catch(e){return!!0}}JsProxy_Bool_js.sig="ie";function JsObjMap_GetIter_js(obj){try{return Module.iterObject(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsObjMap_GetIter_js.sig="ee";function JsObjMap_length_js(obj){try{let length=0;for(let _ of Module.iterObject(obj)){length++}return length}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_length_js.sig="ie";function JsObjMap_subscript_js(obj,key){try{if(!Object.prototype.hasOwnProperty.call(obj,key)){return Module.error}return obj[key]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsObjMap_subscript_js.sig="eee";function JsObjMap_ass_subscript_js(obj,key,value){try{if(value===Module.error){if(!Object.prototype.hasOwnProperty.call(obj,key)){return-1}delete obj[key]}else{obj[key]=value}return 0}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_ass_subscript_js.sig="ieee";function JsObjMap_contains_js(obj,key){try{return Object.prototype.hasOwnProperty.call(obj,key)}catch(e){Module.handle_js_error(e);return-1}return 0}JsObjMap_contains_js.sig="iee";function JsModule_GetAll_js(o){try{return Object.getOwnPropertyNames(o)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsModule_GetAll_js.sig="ee";function JsBuffer_DecodeString_js(buffer,encoding){try{let encoding_js;if(encoding){encoding_js=UTF8ToString(encoding)}const decoder=new TextDecoder(encoding_js,{fatal:!!1,ignoreBOM:!!1});let res;try{res=decoder.decode(buffer)}catch(e){if(e instanceof TypeError){return Module.error}throw e}return res}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsBuffer_DecodeString_js.sig="eei";function JsBuffer_get_info(jsobj,byteLength_ptr,format_ptr,size_ptr,checked_ptr){const[format_utf8,size,checked]=Module.get_buffer_datatype(jsobj);HEAPU32[(byteLength_ptr>>2)+0>>>0]=jsobj.byteLength;HEAPU32[(format_ptr>>2)+0>>>0]=format_utf8;HEAPU32[(size_ptr>>2)+0>>>0]=size;HEAPU8[checked_ptr+0>>>0]=checked}JsBuffer_get_info.sig="veiiii";function JsDoubleProxy_unwrap_js(id){try{return Module.PyProxy_getPtr(id)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}JsDoubleProxy_unwrap_js.sig="ie";function JsProxy_to_weakref_js(pyproxy){try{return new WeakRef(pyproxy)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsProxy_to_weakref_js.sig="ee";function JsProxy_compute_typeflags(obj,is_py_json){try{let type_flags=0;if(API.isPyProxy(obj)&&!pyproxyIsAlive(obj)){return 0}const typeTag=getTypeTag(obj);function safeBool(cb){try{return cb()}catch(e){return!!0}}const isBufferView=safeBool(()=>ArrayBuffer.isView(obj));const isArray=safeBool(()=>Array.isArray(obj));const constructorName=safeBool(()=>obj.constructor.name)||"";if(typeof obj==="function"){type_flags|=1<<9}if(hasMethod(obj,"then")){type_flags|=1<<7}if(hasMethod(obj,Symbol.iterator)){type_flags|=1<<0}if(hasMethod(obj,Symbol.asyncIterator)){type_flags|=1<<15}if(hasMethod(obj,"next")&&(hasMethod(obj,Symbol.iterator)||!hasMethod(obj,Symbol.asyncIterator))){type_flags|=1<<1}if(hasMethod(obj,"next")&&(!hasMethod(obj,Symbol.iterator)||hasMethod(obj,Symbol.asyncIterator))){type_flags|=1<<18}if(hasProperty(obj,"size")||hasProperty(obj,"length")&&typeof obj!=="function"){type_flags|=1<<2}if(hasMethod(obj,"get")){type_flags|=1<<3}if(hasMethod(obj,"set")){type_flags|=1<<4}if(hasMethod(obj,"has")){type_flags|=1<<5}if(hasMethod(obj,"includes")){type_flags|=1<<6}if((isBufferView||typeTag==="[object ArrayBuffer]")&&!(type_flags&1<<9)){type_flags|=1<<8}if(API.isPyProxy(obj)){type_flags|=1<<13}if(isArray){type_flags|=1<<10}if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){type_flags|=1<<11}if(isBufferView&&typeTag!=="[object DataView]"){type_flags|=1<<12}if(typeTag==="[object Generator]"){type_flags|=1<<16}if(typeTag==="[object AsyncGenerator]"){type_flags|=1<<17}if(hasProperty(obj,"name")&&hasProperty(obj,"message")&&(hasProperty(obj,"stack")||constructorName==="DOMException")&&!(type_flags&(1<<9|1<<8))){type_flags|=1<<19}if(is_py_json&&type_flags&(1<<10|1<<11|1<<1)){type_flags|=1<<21}if(is_py_json&&!(type_flags&(1<<10|1<<12|1<<11|1<<8|1<<13|1<<1|1<<9|1<<19))){type_flags|=1<<20}return type_flags}catch(e){Module.handle_js_error(e);return-1}return 0}JsProxy_compute_typeflags.sig="iei";function is_comlink_proxy(obj){try{return!!(API.Comlink&&value[API.Comlink.createEndpoint])}catch(e){return!!0}}is_comlink_proxy.sig="ie";function can_run_sync_js(){return!!validSuspender.value}can_run_sync_js.sig="i";function my_dict_converter(){return Object.fromEntries}my_dict_converter.sig="e";function get_async_js_call_done_callback(proxies){try{return function(result){let msg="This borrowed proxy was automatically destroyed "+"at the end of an asynchronous function call. Try "+"using create_proxy or create_once_callable.";for(let px of proxies){Module.pyproxy_destroy(px,msg,!!0)}if(API.isPyProxy(result)){Module.pyproxy_destroy(result,msg,!!0)}}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}get_async_js_call_done_callback.sig="ee";function wrap_generator(gen,proxies){try{proxies=new Set(proxies);const msg="This borrowed proxy was automatically destroyed "+"when a generator completed execution. Try "+"using create_proxy or create_once_callable.";function cleanup(){proxies.forEach(px=>Module.pyproxy_destroy(px,msg))}function wrap(funcname){return function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return{get[Symbol.toStringTag](){return"Generator"},[Symbol.iterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}wrap_generator.sig="eee";function wrap_async_generator(gen,proxies){try{proxies=new Set(proxies);const msg="This borrowed proxy was automatically destroyed "+"when an asynchronous generator completed execution. Try "+"using create_proxy or create_once_callable.";function cleanup(){proxies.forEach(px=>Module.pyproxy_destroy(px,msg))}function wrap(funcname){return async function(val){if(API.isPyProxy(val)){val=val.copy();proxies.add(val)}let res;try{res=await gen[funcname](val)}catch(e){cleanup();throw e}if(res.done){proxies.delete(res.value);cleanup()}return res}}return{get[Symbol.toStringTag](){return"AsyncGenerator"},[Symbol.asyncIterator](){return this},next:wrap("next"),throw:wrap("throw"),return:wrap("return")}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}wrap_async_generator.sig="eee";function throw_no_gil(){throw new API.NoGilError("Attempted to use PyProxy when Python GIL not held")}throw_no_gil.sig="v";function pyproxy_Check(val){return API.isPyProxy(val)}pyproxy_Check.sig="ie";function pyproxy_AsPyObject(val){if(!API.isPyProxy(val)||!pyproxyIsAlive(val)){return 0}return Module.PyProxy_getPtr(val)}pyproxy_AsPyObject.sig="ie";function destroy_proxies(proxies,msg_ptr){let msg=undefined;if(msg_ptr){msg=_JsvString_FromId(msg_ptr)}for(let px of proxies){Module.pyproxy_destroy(px,msg,false)}}destroy_proxies.sig="vei";function gc_register_proxies(proxies){for(let px of proxies){Module.gc_register_proxy(Module.PyProxy_getAttrs(px).shared)}}gc_register_proxies.sig="ve";function destroy_proxy(px,msg_ptr){const{shared,props}=Module.PyProxy_getAttrsQuiet(px);if(!shared.ptr){return}if(props.roundtrip){return}let msg=undefined;if(msg_ptr){msg=_JsvString_FromId(msg_ptr)}Module.pyproxy_destroy(px,msg,false)}destroy_proxy.sig="vei";function proxy_cache_get(proxyCache,descr){const proxy=proxyCache.get(descr);if(!proxy){return Module.error}if(pyproxyIsAlive(proxy)){return proxy}else{proxyCache.delete(descr);return Module.error}}proxy_cache_get.sig="eei";function proxy_cache_set(proxyCache,descr,proxy){proxyCache.set(descr,proxy)}proxy_cache_set.sig="veie";function _pyproxyGen_make_result(done,value){return{done:!!done,value}}_pyproxyGen_make_result.sig="eie";function array_to_js(array,len){return Array.from(HEAP32.subarray(array/4>>>0,array/4+len>>>0))}array_to_js.sig="eii";function _pyproxy_get_buffer_result(start_ptr,smallest_ptr,largest_ptr,readonly,format,itemsize,shape,strides,view,c_contiguous,f_contiguous,sentinel){format=UTF8ToString(format);return{start_ptr,smallest_ptr,largest_ptr,readonly,format,itemsize,shape,strides,view,c_contiguous,f_contiguous}}_pyproxy_get_buffer_result.sig="eiiiiiieeiiii";function pyproxy_new_ex(ptrobj,capture_this,roundtrip,gcRegister,jsonAdaptor){try{return Module.pyproxy_new(ptrobj,{props:{captureThis:!!capture_this,roundtrip:!!roundtrip},gcRegister,jsonAdaptor})}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}pyproxy_new_ex.sig="eiiiii";function pyproxy_new(ptrobj){try{return Module.pyproxy_new(ptrobj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}pyproxy_new.sig="ei";function create_once_callable(obj,may_syncify){try{_Py_IncRef(obj);let alreadyCalled=!!0;function wrapper(...args){if(alreadyCalled){throw new Error("OnceProxy can only be called once")}try{if(may_syncify){return Module.callPyObjectMaybePromising(obj,args)}else{return Module.callPyObject(obj,args)}}finally{wrapper.destroy()}}wrapper.destroy=function(){if(alreadyCalled){throw new Error("OnceProxy has already been destroyed")}alreadyCalled=!!1;Module.finalizationRegistry.unregister(wrapper);_Py_DecRef(obj)};Module.finalizationRegistry.register(wrapper,[obj,undefined],wrapper);return wrapper}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}create_once_callable.sig="eii";function create_promise_handles(handle_result,handle_exception,done_callback,js2py_converter){try{if(handle_result){_Py_IncRef(handle_result)}if(handle_exception){_Py_IncRef(handle_exception)}if(js2py_converter){_Py_IncRef(js2py_converter)}if(!done_callback){done_callback=x=>{}}let used=!!0;function checkUsed(){if(used){throw new Error("One of the promise handles has already been called.")}}function destroy(){checkUsed();used=!!1;if(handle_result){_Py_DecRef(handle_result)}if(handle_exception){_Py_DecRef(handle_exception)}if(js2py_converter){_Py_DecRef(js2py_converter)}}function onFulfilled(res){checkUsed();try{if(handle_result){return _create_promise_handles_result_helper(handle_result,js2py_converter,res)}}finally{done_callback(res);destroy()}}function onRejected(err){checkUsed();try{if(handle_exception){return Module.callPyObjectMaybePromising(handle_exception,[err])}}finally{done_callback(undefined);destroy()}}onFulfilled.destroy=destroy;onRejected.destroy=destroy;return[onFulfilled,onRejected]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}create_promise_handles.sig="eiiei";function _python2js_buffer_inner(buf,itemsize,ndim,format,shape,strides,suboffsets){try{let converter=Module.get_converter(format,itemsize);return Module._python2js_buffer_recursive(buf,0,{ndim,format,itemsize,shape,strides,suboffsets,converter})}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_buffer_inner.sig="eiiiiiii";function jslib_init_js(){try{HEAP32[_Jsr_undefined/4>>>0]=_hiwire_intern(undefined);HEAP32[_Jsr_true/4>>>0]=_hiwire_intern(true);HEAP32[_Jsr_false/4>>>0]=_hiwire_intern(false);HEAP32[_Jsr_error/4>>>0]=_hiwire_intern(_Jsv_GetNull());HEAP32[_Jsr_novalue/4>>>0]=_hiwire_intern({noValueMarker:1});Module.novalue=_hiwire_get(HEAP32[_Jsr_novalue/4>>>0]);Module.error=_hiwire_get(HEAP32[_Jsr_error/4>>>0]);Hiwire.num_keys=_hiwire_num_refs;return 0}catch(e){Module.handle_js_error(e);return-1}return 0}jslib_init_js.sig="i";function JsvNoValue_Check(v){return v===Module.novalue}JsvNoValue_Check.sig="ie";function JsvNum_fromInt(x){return x}JsvNum_fromInt.sig="ei";function JsvNum_fromDouble(val){return val}JsvNum_fromDouble.sig="ed";function JsvNum_fromDigits(digits,ndigits){let result=BigInt(0);for(let i=0;i<ndigits;i++){result+=BigInt(HEAPU32[(digits>>2)+i>>>0])<<BigInt(32*i)}result+=BigInt(HEAPU32[(digits>>2)+ndigits-1>>>0]&2147483648)<<BigInt(1+32*(ndigits-1));if(-Number.MAX_SAFE_INTEGER<result&&result<Number.MAX_SAFE_INTEGER){result=Number(result)}return result}JsvNum_fromDigits.sig="eii";function Jsv_to_bool(x){return!!x}Jsv_to_bool.sig="ie";function Jsv_typeof(x){return typeof x}Jsv_typeof.sig="ee";function Jsv_constructorName(obj){try{return stringToNewUTF8(obj.constructor.name)}catch(e){Module.handle_js_error(e);return 0}errNoRet()}Jsv_constructorName.sig="ie";function JsvUTF8ToString(ptr){return UTF8ToString(ptr)}JsvUTF8ToString.sig="ei";function JsvArray_New(){return[]}JsvArray_New.sig="e";function JsvArray_Check(obj){try{if(Array.isArray(obj)){return true}let typeTag=getTypeTag(obj);if(typeTag==="[object HTMLCollection]"||typeTag==="[object NodeList]"){return true}if(ArrayBuffer.isView(obj)&&obj.constructor.name!=="DataView"){return true}return false}catch(e){return false}}JsvArray_Check.sig="ie";function JsvArray_Get(arr,idx){try{const result=arr[idx];if(result===undefined&&!(idx in arr)){return Module.error}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_Get.sig="eei";function JsvArray_Set(arr,idx,val){try{arr[idx]=val}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_Set.sig="ieie";function JsvArray_Delete(arr,idx){try{if(idx<0||idx>=arr.length){return Module.error}return arr.splice(idx,1)[0]}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_Delete.sig="eei";function JsvArray_Push(arr,obj){return arr.push(obj)}JsvArray_Push.sig="iee";function JsvArray_Extend(arr,vals){arr.push(...vals)}JsvArray_Extend.sig="vee";function JsvArray_Insert(arr,idx,value){try{arr.splice(idx,0,value)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_Insert.sig="ieie";function JsvArray_ShallowCopy(arr){try{return"slice"in arr?arr.slice():Array.from(arr)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_ShallowCopy.sig="ee";function JsvArray_slice(obj,length,start,stop,step){try{let result;if(step===1){result=obj.slice(start,stop)}else{result=Array.from({length},(_,i)=>obj[start+i*step])}return result}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvArray_slice.sig="eeiiii";function JsvArray_slice_assign(obj,slicelength,start,stop,step,values_length,values){try{let jsvalues=[];for(let i=0;i<values_length;i++){const ref=_python2js(HEAPU32[(values>>2)+i>>>0]);if(ref===Module.error){return-1}jsvalues.push(ref)}if(step===1){obj.splice(start,slicelength,...jsvalues)}else{if(values!==0){for(let i=0;i<slicelength;i++){obj.splice(start+i*step,1,jsvalues[i])}}else{for(let i=slicelength-1;i>=0;i--){obj.splice(start+i*step,1)}}}}catch(e){Module.handle_js_error(e);return-1}return 0}JsvArray_slice_assign.sig="ieiiiiii";function JsvObject_New(){return{}}JsvObject_New.sig="e";function JsvObject_SetAttr(obj,attr,value){try{obj[attr]=value}catch(e){Module.handle_js_error(e);return-1}return 0}JsvObject_SetAttr.sig="ieee";function JsvObject_Entries(obj){try{return Object.entries(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Entries.sig="ee";function JsvObject_Keys(obj){try{return Object.keys(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Keys.sig="ee";function JsvObject_Values(obj){try{return Object.values(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_Values.sig="ee";function JsvObject_toString(obj){try{if(hasMethod(obj,"toString")){return obj.toString()}return Object.prototype.toString.call(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_toString.sig="ee";function JsvObject_CallMethod(obj,meth,args){try{return obj[meth](...args)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod.sig="eeee";function JsvObject_CallMethod_NoArgs(obj,meth){try{return obj[meth]()}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_NoArgs.sig="eee";function JsvObject_CallMethod_OneArg(obj,meth,arg){try{return obj[meth](arg)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_OneArg.sig="eeee";function JsvObject_CallMethod_TwoArgs(obj,meth,arg1,arg2){try{return obj[meth](arg1,arg2)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvObject_CallMethod_TwoArgs.sig="eeeee";function JsvFunction_Check(obj){try{return typeof obj==="function"}catch(e){return false}}JsvFunction_Check.sig="ie";function JsvFunction_CallBound(func,this_,args){try{return Function.prototype.apply.apply(func,[this_,args])}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_CallBound.sig="eeee";function JsvFunction_Call_OneArg(func,arg){try{return func(arg)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_Call_OneArg.sig="eee";function JsvFunction_Construct(func,args){try{return Reflect.construct(func,args)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvFunction_Construct.sig="eee";function JsvPromise_Check(obj){try{return isPromise(obj)}catch(e){return false}}JsvPromise_Check.sig="ie";function JsvPromise_Resolve(obj){try{return Promise.resolve(obj)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvPromise_Resolve.sig="ee";function jslib_init_buffers_js(){try{const dtypes_str=Array.from("bBhHiIqQfd").join(String.fromCharCode(0));const dtypes_ptr=stringToNewUTF8(dtypes_str);const dtypes_map=Object.fromEntries(Object.entries(dtypes_str).map(([idx,val])=>[val,dtypes_ptr+ +idx]));const buffer_datatype_map=new Map([["Int8Array",[dtypes_map["b"],1,true]],["Uint8Array",[dtypes_map["B"],1,true]],["Uint8ClampedArray",[dtypes_map["B"],1,true]],["Int16Array",[dtypes_map["h"],2,true]],["Uint16Array",[dtypes_map["H"],2,true]],["Int32Array",[dtypes_map["i"],4,true]],["Uint32Array",[dtypes_map["I"],4,true]],["Float32Array",[dtypes_map["f"],4,true]],["Float64Array",[dtypes_map["d"],8,true]],["BigInt64Array",[dtypes_map["q"],8,true]],["BigUint64Array",[dtypes_map["Q"],8,true]],["DataView",[dtypes_map["B"],1,false]],["ArrayBuffer",[dtypes_map["B"],1,false]]]);Module.get_buffer_datatype=function(jsobj){return buffer_datatype_map.get(jsobj.constructor.name)||[0,0,false]}}catch(e){Module.handle_js_error(e);return-1}return 0}jslib_init_buffers_js.sig="i";function JsvBuffer_assignToPtr(buf,ptr){try{Module.HEAPU8.set(bufferAsUint8Array(buf),ptr)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_assignToPtr.sig="iei";function JsvBuffer_assignFromPtr(buf,ptr){try{bufferAsUint8Array(buf).set(Module.HEAPU8.subarray(ptr,ptr+buf.byteLength))}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_assignFromPtr.sig="iei";function JsvBuffer_readFromFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.read(stream,uint8_buf,0,uint8_buf.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_readFromFile.sig="iei";function JsvBuffer_writeToFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buf,0,uint8_buf.byteLength)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_writeToFile.sig="iei";function JsvBuffer_intoFile(buf,fd){try{let uint8_buf=bufferAsUint8Array(buf);let stream=Module.FS.streams[fd];Module.FS.write(stream,uint8_buf,0,uint8_buf.byteLength,undefined,true)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvBuffer_intoFile.sig="iei";function JsvGenerator_Check(obj){try{return getTypeTag(obj)==="[object Generator]"}catch(e){return false}}JsvGenerator_Check.sig="ie";function JsvAsyncGenerator_Check(obj){try{return getTypeTag(obj)==="[object AsyncGenerator]"}catch(e){return false}}JsvAsyncGenerator_Check.sig="ie";function JsvError_Throw(e){throw e}JsvError_Throw.sig="ve";function Jsv_less_than(a,b){try{return!!(a<b)}catch(e){return false}}Jsv_less_than.sig="iee";function Jsv_less_than_equal(a,b){try{return!!(a<=b)}catch(e){return false}}Jsv_less_than_equal.sig="iee";function Jsv_equal(a,b){try{return!!(a===b)}catch(e){return false}}Jsv_equal.sig="iee";function Jsv_not_equal(a,b){try{return!!(a!==b)}catch(e){return false}}Jsv_not_equal.sig="iee";function Jsv_greater_than(a,b){try{return!!(a>b)}catch(e){return false}}Jsv_greater_than.sig="iee";function Jsv_greater_than_equal(a,b){try{return!!(a>=b)}catch(e){return false}}Jsv_greater_than_equal.sig="iee";function JsvMap_New(){try{return new Map}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvMap_New.sig="e";function JsvLiteralMap_New(){try{return new API.LiteralMap}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvLiteralMap_New.sig="e";function JsvMap_Set(map,key,val){try{map.set(key,val)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvMap_Set.sig="ieee";function JsvSet_New(){try{return new Set}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}JsvSet_New.sig="e";function JsvSet_Add(set,val){try{set.add(val)}catch(e){Module.handle_js_error(e);return-1}return 0}JsvSet_Add.sig="iee";function _python2js_addto_postprocess_list(list,parent,key,value){list.push([parent,key,value])}_python2js_addto_postprocess_list.sig="veeei";function _python2js_handle_postprocess_list(list,cache){for(const[parent,key,ptr]of list){let val=cache.get(ptr);if(parent.constructor.name==="LiteralMap"){parent.set(key,val)}else{parent[key]=val}}}_python2js_handle_postprocess_list.sig="vee";function _python2js_ucs1(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCharCode(HEAPU8[ptr+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs1.sig="eii";function _python2js_ucs2(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCharCode(HEAPU16[(ptr>>1)+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs2.sig="eii";function _python2js_ucs4(ptr,len){try{let jsstr="";for(let i=0;i<len;++i){jsstr+=String.fromCodePoint(HEAPU32[(ptr>>2)+i>>>0])}return jsstr}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_python2js_ucs4.sig="eii";function _python2js_add_to_cache(cache,pyparent,jsparent){try{cache.set(pyparent,jsparent)}catch(e){Module.handle_js_error(e);return-1}return 0}_python2js_add_to_cache.sig="ieie";function _python2js_cache_lookup(cache,pyparent){return cache.get(pyparent)||Module.error}_python2js_cache_lookup.sig="eei";function _JsObject_Set_js(obj,key,value){try{if(key in obj){return-2}obj[key]=value}catch(e){Module.handle_js_error(e);return-1}return 0}_JsObject_Set_js.sig="ieee";function _JsArray_PushEntry_helper(array,key,value){try{array.push([key,value])}catch(e){Module.handle_js_error(e);return-1}return 0}_JsArray_PushEntry_helper.sig="ieee";function _JsArray_PostProcess_helper(jscontext,array){try{return jscontext.dict_converter(array)}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}_JsArray_PostProcess_helper.sig="eee";function python2js__default_converter_js(jscontext,object){try{let proxy=Module.pyproxy_new(object);try{return jscontext.default_converter(proxy,jscontext.converter,jscontext.cacheConversion)}finally{proxy.destroy()}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js__default_converter_js.sig="eei";function python2js__eager_converter_js(jscontext,object){try{if(jscontext.eager_visited.has(object)){return Module.novalue}jscontext.eager_visited.add(object);const proxy=Module.pyproxy_new(object);try{return jscontext.eager_converter(proxy,jscontext.converter,jscontext.cacheConversion)}finally{proxy.destroy()}}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js__eager_converter_js.sig="eei";function python2js_custom__create_jscontext(context,cache,dict_converter,default_converter,eager_converter){try{const jscontext={};if(dict_converter){jscontext.dict_converter=dict_converter}if(default_converter){jscontext.default_converter=default_converter;jscontext.cacheConversion=function(input,output){if(!API.isPyProxy(input)){throw new TypeError("The first argument to cacheConversion must be a PyProxy.")}const input_ptr=Module.PyProxy_getPtr(input);cache.set(input_ptr,output)}}if(eager_converter){jscontext.eager_converter=eager_converter;jscontext.eager_visited=new Set}if(default_converter||eager_converter){jscontext.converter=function(x){if(!API.isPyProxy(x)){return x}const ptr=Module.PyProxy_getPtr(x);let res;try{res=__python2js(context,ptr)}catch(e){API.fatal_error(e)}if(res===Module.error){_pythonexc2js()}return res}}return jscontext}catch(e){Module.handle_js_error(e);return Module.error}errNoRet()}python2js_custom__create_jscontext.sig="eieeee";function destroy_proxies_js(proxies_id){try{for(const proxy of proxies_id){proxy.destroy()}}catch(e){Module.handle_js_error(e);return-1}return 0}destroy_proxies_js.sig="ie";function pyodide_js_init(){"use strict";(()=>{var Dr=Object.create;var ze=Object.defineProperty;var Rr=Object.getOwnPropertyDescriptor;var Lr=Object.getOwnPropertyNames;var $r=Object.getPrototypeOf,Cr=Object.prototype.hasOwnProperty;var a=(t,e)=>ze(t,"name",{value:e,configurable:!0}),b=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Ur=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Lr(e))!Cr.call(t,o)&&o!==r&&ze(t,o,{get:()=>e[o],enumerable:!(n=Rr(e,o))||n.enumerable});return t};function Br(t){return!isNaN(parseFloat(t))&&isFinite(t)}a(Br,"_isNumber");function D(t){return t.charAt(0).toUpperCase()+t.substring(1)}a(D,"_capitalize");function Ge(t){return function(){return this[t]}}a(Ge,"_getter");var $=["isConstructor","isEval","isNative","isToplevel"],C=["columnNumber","lineNumber"],U=["fileName","functionName","source"],Hr=["args"],jr=["evalOrigin"],se=$.concat(C,U,Hr,jr);function v(t){if(t)for(var e=0;e<se.length;e++)t[se[e]]!==void 0&&this["set"+D(se[e])](t[se[e]])}a(v,"StackFrame");v.prototype={getArgs:a(function(){return this.args},"getArgs"),setArgs:a(function(t){if(Object.prototype.toString.call(t)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=t},"setArgs"),getEvalOrigin:a(function(){return this.evalOrigin},"getEvalOrigin"),setEvalOrigin:a(function(t){if(t instanceof v)this.evalOrigin=t;else if(t instanceof Object)this.evalOrigin=new v(t);else throw new TypeError("Eval Origin must be an Object or StackFrame")},"setEvalOrigin"),toString:a(function(){var t=this.getFileName()||"",e=this.getLineNumber()||"",r=this.getColumnNumber()||"",n=this.getFunctionName()||"";return this.getIsEval()?t?"[eval] ("+t+":"+e+":"+r+")":"[eval]:"+e+":"+r:n?n+" ("+t+":"+e+":"+r+")":t+":"+e+":"+r},"toString")};v.fromString=a(function(e){var r=e.indexOf("("),n=e.lastIndexOf(")"),o=e.substring(0,r),i=e.substring(r+1,n).split(","),s=e.substring(n+1);if(s.indexOf("@")===0)var l=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(s,""),c=l[1],u=l[2],y=l[3];return new v({functionName:o,args:i||void 0,fileName:c,lineNumber:u||void 0,columnNumber:y||void 0})},"StackFrame$$fromString");for(O=0;O<$.length;O++)v.prototype["get"+D($[O])]=Ge($[O]),v.prototype["set"+D($[O])]=function(t){return function(e){this[t]=!!e}}($[O]);var O;for(T=0;T<C.length;T++)v.prototype["get"+D(C[T])]=Ge(C[T]),v.prototype["set"+D(C[T])]=function(t){return function(e){if(!Br(e))throw new TypeError(t+" must be a Number");this[t]=Number(e)}}(C[T]);var T;for(F=0;F<U.length;F++)v.prototype["get"+D(U[F])]=Ge(U[F]),v.prototype["set"+D(U[F])]=function(t){return function(e){this[t]=String(e)}}(U[F]);var F,le=v;function Wr(){var t=/^\s*at .*(\S+:\d+|\(native\))/m,e=/^(eval@)?(\[native code])?$/;return{parse:a(function(n){if(n.stack&&n.stack.match(t))return this.parseV8OrIE(n);if(n.stack)return this.parseFFOrSafari(n);throw new Error("Cannot parse given Error object")},"ErrorStackParser$$parse"),extractLocation:a(function(n){if(n.indexOf(":")===-1)return[n];var o=/(.+?)(?::(\d+))?(?::(\d+))?$/,i=o.exec(n.replace(/[()]/g,""));return[i[1],i[2]||void 0,i[3]||void 0]},"ErrorStackParser$$extractLocation"),parseV8OrIE:a(function(n){var o=n.stack.split(`\n`).filter(function(i){return!!i.match(t)},this);return o.map(function(i){i.indexOf("(eval ")>-1&&(i=i.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(,.*$)/g,""));var s=i.replace(/^\s+/,"").replace(/\(eval code/g,"(").replace(/^.*?\s+/,""),l=s.match(/ (\(.+\)$)/);s=l?s.replace(l[0],""):s;var c=this.extractLocation(l?l[1]:s),u=l&&s||void 0,y=["eval","<anonymous>"].indexOf(c[0])>-1?void 0:c[0];return new le({functionName:u,fileName:y,lineNumber:c[1],columnNumber:c[2],source:i})},this)},"ErrorStackParser$$parseV8OrIE"),parseFFOrSafari:a(function(n){var o=n.stack.split(`\n`).filter(function(i){return!i.match(e)},this);return o.map(function(i){if(i.indexOf(" > eval")>-1&&(i=i.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),i.indexOf("@")===-1&&i.indexOf(":")===-1)return new le({functionName:i});var s=/((.*".+"[^@]*)?[^@]*)(?:@)/,l=i.match(s),c=l&&l[1]?l[1]:void 0,u=this.extractLocation(i.replace(s,""));return new le({functionName:c,fileName:u[0],lineNumber:u[1],columnNumber:u[2],source:i})},this)},"ErrorStackParser$$parseFFOrSafari")}}a(Wr,"ErrorStackParser");var zr=new Wr;var Ve=zr;function Mt(t){if(typeof t=="string")t=new Error(t);else if(t&&typeof t=="object"&&t.name==="ExitStatus"){let e=t.status;t=new z(t.message),t.status=e}else if(typeof t!="object"||t===null||typeof t.stack!="string"||typeof t.message!="string"){let e=API.getTypeTag(t),r=`A value of type ${typeof t} with tag ${e} was thrown as an error!`;try{r+=`\nString interpolation of the thrown value gives """${t}""".`}catch{r+=`\nString interpolation of the thrown value fails.`}try{r+=`\nThe thrown value's toString method returns """${t.toString()}""".`}catch{r+=`\nThe thrown value's toString method fails.`}t=new Error(r)}return t}a(Mt,"ensureCaughtObjectIsError");var Ke=class extends Error{static{a(this,"CppException")}constructor(e,r,n){let o=Module.getCppExceptionThrownObjectFromWebAssemblyException(n);r||(r=`The exception is an object of type ${e} at address ${o} which does not inherit from std::exception`),super(r),this.ty=e}get name(){return`${this.constructor.name} ${this.ty}`}},Gr=WebAssembly.Exception,Vr=a(t=>t instanceof Gr,"isWasmException");function Nt(t){let[e,r]=Module.getExceptionMessage(t);return new Ke(e,r,t)}a(Nt,"convertCppException");Tests.convertCppException=Nt;var Et=!1;API.fatal_error=function(t){if(t&&t.pyodide_fatal_error)return;if(Et){console.error("Recursive call to fatal_error. Inner error was:"),console.error(t);return}if(t instanceof G)throw t;typeof t=="number"||Vr(t)?t=Nt(t):t=Mt(t),t.pyodide_fatal_error=!0,Et=!0;let e=t instanceof z;e||(console.error("Pyodide has suffered a fatal error. Please report this to the Pyodide maintainers."),console.error("The cause of the fatal error was:"),API.inTestHoist?(console.error(t.toString()),console.error(t.stack)):console.error(t));try{e||_dump_traceback();let n=`Pyodide already ${e?"exited":"fatally failed"} and can no longer be used.`;for(let o of Reflect.ownKeys(API.public_api))typeof o=="string"&&o.startsWith("_")||o==="version"||Object.defineProperty(API.public_api,o,{enumerable:!0,configurable:!0,get:a(()=>{throw new Error(n)},"get")});API.on_fatal&&API.on_fatal(t)}catch(r){console.error("Another error occurred while handling the fatal error:"),console.error(r)}throw t};API.maybe_fatal_error=function(t){API._skip_unwind_fatal_error&&t==="unwind"||API.fatal_error(t)};var Je=[];API.capture_stderr=function(){Je=[],Module.FS.createDevice("/dev","capture_stderr",null,t=>Je.push(t)),Module.FS.closeStream(2),Module.FS.open("/dev/capture_stderr",1)};API.restore_stderr=function(){return Module.FS.closeStream(2),Module.FS.unlink("/dev/capture_stderr"),Module.FS.open("/dev/stderr",1),UTF8ArrayToString(new Uint8Array(Je))};API.fatal_loading_error=function(...t){let e=t.join(" ");if(_PyErr_Occurred()){API.capture_stderr(),_PyErr_Print();let r=API.restore_stderr();e+=`\n`+r}throw new ce(e)};function qe(t){if(!t)return!1;let e=t.fileName||"";if(e.includes("wasm-function"))return!0;if(!e.includes("pyodide.asm.js"))return!1;let r=t.functionName||"";return r.startsWith("Object.")&&(r=r.slice(7)),API.public_api&&r in API.public_api&&r!=="PythonError"?(t.functionName=r,!1):!0}a(qe,"isPyodideFrame");function kt(t){return qe(t)&&t.functionName==="new_error"}a(kt,"isErrorStart");Module.handle_js_error=function(t){if(t&&t.pyodide_fatal_error)throw t;if(t instanceof w)return;let e=!1;t instanceof R&&(e=_restore_sys_last_exception(t.__error_address));let r,n;try{r=Ve.parse(t)}catch{n=!0}if(n&&(t=Mt(t)),!e){let o=_JsProxy_create(t);_set_error(o),_Py_DecRef(o)}if(!n){if(kt(r[0])||kt(r[1]))for(;qe(r[0]);)r.shift();for(let o of r){if(qe(o))break;let i=stringToNewUTF8(o.functionName||"???"),s=stringToNewUTF8(o.fileName||"???.js");__PyTraceback_Add(i,s,o.lineNumber),_free(i),_free(s)}}};var R=class extends Error{static{a(this,"PythonError")}constructor(e,r,n){let o=Error.stackTraceLimit;Error.stackTraceLimit=1/0,super(r),Error.stackTraceLimit=o,this.type=e,this.__error_address=n}};API.PythonError=R;var w=class extends Error{static{a(this,"_PropagatePythonError")}constructor(){super("If you are seeing this message, an internal Pyodide error has occurred. Please report it to the Pyodide maintainers.")}};Module._PropagatePythonError=w;function Kr(t){Object.defineProperty(t.prototype,"name",{value:t.name})}a(Kr,"setName");var ce=class extends Error{static{a(this,"FatalPyodideError")}},z=class extends Error{static{a(this,"Exit")}},G=class extends Error{static{a(this,"NoGilError")}};[w,ce,z,R,G].forEach(Kr);API.NoGilError=G;API.errorConstructors=new Map([EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError,globalThis.DOMException,globalThis.AssertionError,globalThis.SystemError].filter(t=>t).map(t=>[t.constructor.name,t]));API.deserializeError=function(t,e,r){let n=API.errorConstructors.get(t)||Error,o=new n(e);return API.errorConstructors.has(t)||(o.name=t),o.message=e,o.stack=r,o};function Jr(t){let e=0,r=[];for(let s of t){let l=s.codePointAt(0);r.push(l),e=l>e?l:e}let n=r.length,o=_PyUnicode_New(n,e);if(o===0)throw new w;let i=_PyUnicode_Data(o);if(e>65535)for(let s=0;s<n;s++)HEAPU32[(i>>2)+s>>>0]=r[s];else if(e>255)for(let s=0;s<n;s++)HEAPU16[(i>>1)+s>>>0]=r[s];else for(let s=0;s<n;s++)HEAPU8[i+s>>>0]=r[s];return o}a(Jr,"js2python_string");function qr(t){let e=t,r=0;for(t<0&&(t=-t),t<<=BigInt(1);t;)r++,t>>=BigInt(32);let n=stackSave(),o=stackAlloc(r*4);t=e;for(let s=0;s<r;s++)HEAPU32[(o>>2)+s>>>0]=Number(t&BigInt(4294967295)),t>>=BigInt(32);let i=__PyLong_FromByteArray(o,r*4,!0,!0);return stackRestore(n),i}a(qr,"js2python_bigint");function V(t){let e=Yr(t);if(e===0)throw new w;return e}a(V,"js2python_convertImmutable");Module.js2python_convertImmutable=V;function Yr(t){let e=typeof t;if(e==="string")return Jr(t);if(e==="number")return Number.isSafeInteger(t)?_PyLong_FromDouble(t):_PyFloat_FromDouble(t);if(e==="bigint")return qr(t);if(t===void 0)return __js2python_none();if(t===null)return __js2python_null();if(t===!0)return __js2python_true();if(t===!1)return __js2python_false();if(API.isPyProxy(t)){let{props:r,shared:n}=Module.PyProxy_getAttrs(t);return r.roundtrip?_JsProxy_create(t):__js2python_pyproxy(n.ptr)}}a(Yr,"js2python_convertImmutableInner");function Qr(t,e){let r=_PyList_New(t.length);if(r===0)return 0;let n=0;try{e.cache.set(t,r);for(let o=0;o<t.length;o++){if(n=ue(t[o],e),_Py_IncRef(n),_PyList_SetItem(r,o,n)===-1)throw new w;_Py_DecRef(n),n=0}}catch(o){throw _Py_DecRef(n),_Py_DecRef(r),o}return r}a(Qr,"js2python_convertList");function Ot(t,e,r){let n=_PyDict_New();if(n===0)return 0;let o=0,i=0;try{r.cache.set(t,n);for(let[s,l]of e){if(o=V(s),o===void 0){let c=s.constructor&&s.constructor.name||typeof s;throw new Error(`Cannot use key of type ${c} as a key to a Python dict`)}if(i=ue(l,r),_PyDict_SetItem(n,o,i)===-1)throw new w;_Py_DecRef(o),o=0,_Py_DecRef(i),i=0}}catch(s){throw _Py_DecRef(o),_Py_DecRef(i),_Py_DecRef(n),s}return n}a(Ot,"js2python_convertMap");function Xr(t,e){let r=_PySet_New(0);if(r===0)return 0;let n=0;try{e.cache.set(t,r);for(let o of t){if(n=V(o),n===void 0){let s=o.constructor&&o.constructor.name||typeof o;throw new Error(`Cannot use key of type ${s} as a key to a Python set`)}if(_PySet_Add(r,n)===-1)throw new w;_Py_DecRef(n),n=0}}catch(o){throw _Py_DecRef(n),_Py_DecRef(r),o}return r}a(Xr,"js2python_convertSet");function Tt(t,e){if(t.has(1)&&t.has(!0))throw new Error(`Cannot faithfully convert ${e} into Python since it contains both 1 and true as keys.`);if(t.has(0)&&t.has(!1))throw new Error(`Cannot faithfully convert ${e} into Python since it contains both 0 and false as keys.`)}a(Tt,"checkBoolIntCollision");function Zr(t,e){let r=getTypeTag(t);if(Array.isArray(t)||t==="[object HTMLCollection]"||t==="[object NodeList]")return Qr(t,e);if(r==="[object Map]"||t instanceof Map)return Tt(t,"Map"),Ot(t,t.entries(),e);if(r==="[object Set]"||t instanceof Set)return Tt(t,"Set"),Xr(t,e);if(r==="[object Object]"&&(t.constructor===void 0||t.constructor.name==="Object"))return Ot(t,Object.entries(t),e);if(r==="[object ArrayBuffer]"||ArrayBuffer.isView(t)){let[n,o]=Module.get_buffer_datatype(t);return _JsBuffer_CopyIntoMemoryView(t,t.byteLength,n,o)}}a(Zr,"js2python_convertOther");function ue(t,e){let r=V(t);if(r!==void 0)return r;if(e.depth===0)return _JsProxy_create(t);if(r=e.cache.get(t),r!==void 0)return r;e.depth--;try{if(r=Zr(t,e),r!==void 0)return r;if(!e.defaultConverter)return _JsProxy_create(t);let n=e.defaultConverter(t,e.converter,e.cacheConversion);return r=V(n),API.isPyProxy(n)&&Module.pyproxy_destroy(n,"",!1),r!==void 0?r:_JsProxy_create(n)}finally{e.depth++}}a(ue,"js2python_convert_with_context");function en(t,{depth:e,defaultConverter:r}){let n={cache:new Map,depth:e,defaultConverter:r,converter:a(o=>Module.pyproxy_new(ue(o,n)),"converter"),cacheConversion(o,i){if(API.isPyProxy(i))n.cache.set(o,Module.PyProxy_getPtr(i));else throw new Error("Second argument should be a PyProxy!")}};return ue(t,n)}a(en,"js2python_convert");Module.js2python_convert=en;Module.processBufferFormatString=function(t,e=""){if(t.length>2)throw new Error(`Expected format string to have length <= 2, got '${t}'.`+e);let r=t.slice(-1),n=t.slice(0,-1),o;switch(n){case"!":case">":o=!0;break;case"<":case"@":case"=":case"":o=!1;break;default:throw new Error(`Unrecognized alignment character ${n}.`+e)}let i;switch(r){case"b":i=Int8Array;break;case"s":case"p":case"c":case"B":case"?":i=Uint8Array;break;case"h":i=Int16Array;break;case"H":i=Uint16Array;break;case"i":case"l":case"n":i=Int32Array;break;case"I":case"L":case"N":case"P":i=Uint32Array;break;case"q":if(globalThis.BigInt64Array===void 0)throw new Error("BigInt64Array is not supported on this browser."+e);i=BigInt64Array;break;case"Q":if(globalThis.BigUint64Array===void 0)throw new Error("BigUint64Array is not supported on this browser."+e);i=BigUint64Array;break;case"f":i=Float32Array;break;case"d":i=Float64Array;break;case"e":throw new Error("Javascript has no Float16 support.");default:throw new Error(`Unrecognized format character '${r}'.`+e)}return[i,o]};Module.python2js_buffer_1d_contiguous=function(t,e,r){let n=e*r;return HEAP8.slice(t,t+n).buffer};Module.python2js_buffer_1d_noncontiguous=function(t,e,r,n,o){let i=o*n,s=new Uint8Array(i);for(let l=0;l<n;++l){let c=t+l*e;r>=0&&(c=HEAPU32[(c>>2)+0>>>0]+r),s.set(HEAP8.subarray(c>>>0,c+o>>>0),l*o)}return s.buffer};Module._python2js_buffer_recursive=function(t,e,r){let{shape:n,strides:o,ndim:i,converter:s,itemsize:l,suboffsets:c}=r,u=HEAPU32[(n>>2)+e>>>0],y=HEAP32[(o>>2)+e>>>0],_=-1;if(i===0)return s(Module.python2js_buffer_1d_contiguous(t,l,1));if(c!==0&&(_=HEAP32[(c>>2)+e>>>0]),e===i-1){let f;return y===l&&_<0?f=Module.python2js_buffer_1d_contiguous(t,y,u):f=Module.python2js_buffer_1d_noncontiguous(t,y,_,u,l),s(f)}let m=[];for(let f=0;f<u;++f){let I=t+f*y;_>=0&&(curptr=HEAPU32[(curptr>>2)+0>>>0]+_),m.push(Module._python2js_buffer_recursive(I,e+1,r))}return m};Module.get_converter=function(t,e){let r=UTF8ToString(t),[n,o]=Module.processBufferFormatString(r);switch(r.slice(-1)){case"s":let u=new TextDecoder("utf8",{ignoreBOM:!0});return y=>u.decode(y);case"?":return y=>Array.from(new Uint8Array(y),_=>!!_)}if(!o)return u=>new n(u);let s,l;switch(e){case 2:s="getUint16",l="setUint16";break;case 4:s="getUint32",l="setUint32";break;case 8:s="getFloat64",l="setFloat64";break;default:throw new Error(`Unexpected size ${e}`)}function c(u){let y=new DataView(u),_=y[s].bind(y),m=y[l].bind(y);for(let f=0;f<y.byteLength;f+=e)m(f,_(f,!0),!1);return u}return a(c,"swapFunc"),u=>new n(c(u))};function tn(t){try{return t instanceof g}catch{return!1}}a(tn,"isPyProxy");API.isPyProxy=tn;globalThis.FinalizationRegistry?Module.finalizationRegistry=new FinalizationRegistry(({ptr:t,cache:e})=>{e&&(e.leaked=!0,Bt(e));try{_check_gil();let r=validSuspender.value;validSuspender.value=!1,_Py_DecRef(t),validSuspender.value=r}catch(r){API.fatal_error(r)}}):Module.finalizationRegistry={register(){},unregister(){}};var Ye=new Map;Module.pyproxy_alloc_map=Ye;var ct,ut;Module.enable_pyproxy_allocation_tracing=function(){ct=a(function(t){Ye.set(t,Error().stack)},"trace_pyproxy_alloc"),ut=a(function(t){Ye.delete(t)},"trace_pyproxy_dealloc")};Module.disable_pyproxy_allocation_tracing=function(){ct=a(function(t){},"trace_pyproxy_alloc"),ut=a(function(t){},"trace_pyproxy_dealloc")};Module.disable_pyproxy_allocation_tracing();var $t=Symbol("pyproxy.attrs");function rn(t,e){_check_gil();let r=validSuspender.value;validSuspender.value=!1;try{return _pyproxy_getflags(t,e)}finally{validSuspender.value=r}}a(rn,"pyproxy_getflags");function J(t,{flags:e,cache:r,props:n,shared:o,gcRegister:i,jsonAdaptor:s}={}){i===void 0&&(i=!0);let l=e!==void 0?e:rn(t,!!s);l===-1&&_pythonexc2js();let c=l&8192,u=l&32768,y=l&1<<17,_=Module.getPyProxyClass(l),m;l&256?(m=a(function(){},"target"),Object.setPrototypeOf(m,_.prototype),delete m.length,delete m.name,m.prototype=void 0):m=Object.create(_.prototype);let f=!!o;o||(r||(r={map:new Map,json_adaptor_map:new Map,refcnt:0}),r.refcnt++,o={ptr:t,cache:r,flags:l,promise:void 0,destroyed_msg:void 0,gcRegistered:!1},_Py_IncRef(t)),n=Object.assign({isBound:!1,captureThis:!1,boundArgs:[],roundtrip:!1},n);let I;u?I=M:c?I=fn:y?I=_n:I=P;let oe=new Proxy(m,I);!f&&i&&Ct(o),f||ct(oe);let ae={shared:o,props:n};return m[$t]=ae,oe}a(J,"pyproxy_new");Module.pyproxy_new=J;function Ct(t){let e=Object.assign({},t);t.gcRegistered=!0,Module.finalizationRegistry.register(t,e,t)}a(Ct,"gc_register_proxy");Module.gc_register_proxy=Ct;function Oe(t){return t[$t]}a(Oe,"_getAttrsQuiet");Module.PyProxy_getAttrsQuiet=Oe;function S(t){let e=Oe(t);if(!e.shared.ptr)throw new Error(e.shared.destroyed_msg);return e}a(S,"_getAttrs");Module.PyProxy_getAttrs=S;function p(t){return S(t).shared.ptr}a(p,"_getPtr");function h(t){return Object.getPrototypeOf(t).$$flags}a(h,"_getFlags");function Ut(t){return!!(h(t)&98304)}a(Ut,"isJsonAdaptor");function Ft(t,e,r){let{captureThis:n,boundArgs:o,boundThis:i,isBound:s}=S(t).props;return n?s?[i].concat(o,r):[e].concat(r):s?o.concat(r):r}a(Ft,"_adjustArgs");var Dt=new Map;Module.getPyProxyClass=function(t){let e=[[1,Qe],[2,B],[4,L],[8,k],[16,Ze],[32,tt],[2048,rt],[512,et],[1024,nt],[4096,ot],[64,st],[128,lt],[256,ke],[8192,at],[16384,it]],r=Dt.get(t);if(r)return r;let n={};for(let[l,c]of e)t&l&&Object.assign(n,Object.getOwnPropertyDescriptors(c.prototype));(t&8192||t&2)&&Object.assign(n,Object.getOwnPropertyDescriptors(Xe.prototype)),n.constructor=Object.getOwnPropertyDescriptor(g.prototype,"constructor"),Object.assign(n,Object.getOwnPropertyDescriptors({$$flags:t}));let o=t&256?jt:Ht,i=Object.create(o,n);function s(){}return a(s,"NewPyProxyClass"),s.prototype=i,Dt.set(t,s),s};Module.PyProxy_getPtr=p;var Rt="This borrowed attribute proxy was automatically destroyed in the process of destroying the proxy it was borrowed from. Try using the 'copy' method.";function Bt(t){if(t&&(t.refcnt--,!t.leaked&&t.refcnt===0)){for(let e of t.map.values())Module.pyproxy_destroy(e,Rt,!0);for(let e of t.json_adaptor_map.values())Module.pyproxy_destroy(e,Rt,!0)}}a(Bt,"pyproxy_decref_cache");function nn(t,e){if(e=e||"Object has already been destroyed",API.debug_ffi){let r=t.type,n;try{n=t.toString()}catch(o){if(o.pyodide_fatal_error)throw o}e+=`\nThe object was of type "${r}" and `,n?e+=`had repr "${n}"`:e+="an error was raised when trying to generate its repr"}else e+="\nFor more information about the cause of this error, use `pyodide.setDebug(true)`";return e}a(nn,"generateDestroyedMessage");Module.pyproxy_destroy=function(t,e,r){let{shared:n,props:o}=Oe(t);if(!n.ptr||!r&&o.roundtrip)return;n.destroyed_msg=nn(t,e);let i=n.ptr;n.ptr=0,n.gcRegistered&&Module.finalizationRegistry.unregister(n),Bt(n.cache);try{_check_gil();let s=validSuspender.value;validSuspender.value=!1,_Py_DecRef(i),ut(t),validSuspender.value=s}catch(s){API.fatal_error(s)}};function pe(t,e,r){let n=e.length,o=Object.keys(r),i=Object.values(r),s=o.length;e.push(...i);let l;try{_check_gil();let c=validSuspender.value;validSuspender.value=!1,l=__pyproxy_apply(t,e,n,o,s),validSuspender.value=c}catch(c){API.maybe_fatal_error(c);return}if(l===Module.error&&_pythonexc2js(),l&&l.type==="coroutine"&&l._ensure_future){_check_gil();let c=validSuspender.value;validSuspender.value=!1;let u=__iscoroutinefunction(t);validSuspender.value=c,u&&l._ensure_future()}return l}a(pe,"callPyObjectKwargs");async function de(t,e,r){if(!Module.jspiSupported)throw new Error("WebAssembly stack switching not supported in this JavaScript runtime");let n=e.length,o=Object.keys(r),i=Object.values(r),s=o.length;e.push(...i);let l=stackSave(),c=stackAlloc(4),u;try{_check_gil();let y=validSuspender.value;validSuspender.value=!1,u=await Module.promisingApply(t,e,n,o,s,c),validSuspender.value=y}catch(y){API.fatal_error(y)}if(u=u[0],u===Module.error){_PyErr_SetRaisedException(HEAPU32[c/4>>>0]);try{_pythonexc2js()}finally{stackRestore(l)}}if(u&&u.type==="coroutine"&&u._ensure_future){_check_gil();let y=validSuspender.value;validSuspender.value=!1;let _=__iscoroutinefunction(t);validSuspender.value=y,_&&u._ensure_future()}return u}a(de,"callPyObjectKwargsPromising");Module.callPyObjectMaybePromising=async function(t,e){return Module.jspiSupported?await de(t,e,{}):pe(t,e,{})};Module.callPyObject=function(t,e){return pe(t,e,{})};var g=class t{static{a(this,"PyProxy")}static[Symbol.hasInstance](e){return[t,Wt].some(r=>Function.prototype[Symbol.hasInstance].call(r,e))}constructor(){throw new TypeError("PyProxy is not a constructor")}get[Symbol.toStringTag](){return"PyProxy"}get type(){let e=p(this);return __pyproxy_type(e)}toString(){let e=p(this),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxy_repr(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}destroy(e={}){e=Object.assign({message:"",destroyRoundtrip:!0},e);let{message:r,destroyRoundtrip:n}=e;Module.pyproxy_destroy(this,r,n)}copy(){let e=S(this);return J(e.shared.ptr,{flags:h(this),cache:e.shared.cache,props:e.props})}toJs({depth:e=-1,pyproxies:r=void 0,create_pyproxies:n=!0,dict_converter:o=void 0,default_converter:i=void 0,eager_converter:s=void 0}={}){let l=p(this),c,u;n?r?u=r:u=[]:u=Module.error;try{_check_gil();let y=validSuspender.value;validSuspender.value=!1,c=_python2js_custom(l,e,u,o??Module.error,i??Module.error,s??Module.error),validSuspender.value=y}catch(y){API.fatal_error(y)}return c===Module.error&&_pythonexc2js(),c}},Ht=g.prototype;Tests.Function=Function;var jt=Object.create(Function.prototype,Object.getOwnPropertyDescriptors(Ht));function Wt(){}a(Wt,"PyProxyFunction");Wt.prototype=jt;var fe=class extends g{static{a(this,"PyProxyWithLength")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1)}},Qe=class{static{a(this,"PyLengthMethods")}get length(){let e=p(this),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=_PyObject_Size(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===-1&&_pythonexc2js(),r}},ge=class extends g{static{a(this,"PyProxyWithGet")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&2)}},Xe=class{static{a(this,"PyAsJsonAdaptorMethods")}asJsJson(){let{shared:e,props:r}=S(this),n=h(this);return n&8192?n|=65536:n|=32768,J(e.ptr,{shared:e,flags:n,props:r})}},B=class{static{a(this,"PyGetItemMethods")}get(e){let{shared:r}=S(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_getitem(r.ptr,e,r.cache.json_adaptor_map,Ut(this)),validSuspender.value=o}catch(o){API.fatal_error(o)}if(n===Module.error)if(_PyErr_Occurred())_pythonexc2js();else return;return n}asJsJson(){throw new Error("Should not happen")}},_e=class extends g{static{a(this,"PyProxyWithSet")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&4)}},L=class{static{a(this,"PySetItemMethods")}set(e,r){let n=p(this),o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_setitem(n,e,r),validSuspender.value=i}catch(i){API.fatal_error(i)}o===-1&&_pythonexc2js()}delete(e){let r=p(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_delitem(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}n===-1&&_pythonexc2js()}},me=class extends g{static{a(this,"PyProxyWithHas")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8)}},k=class{static{a(this,"PyContainsMethods")}has(e){let r=p(this),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_contains(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===-1&&_pythonexc2js(),n===1}};function*on(t,e,r,n){let o=[];try{for(;;){_check_gil();let i=validSuspender.value;validSuspender.value=!1;let s=__pyproxy_iter_next(t,r,n);if(validSuspender.value=i,s===Module.error)break;yield s,!n&&API.isPyProxy(s)&&o.push(s)}}catch(i){API.fatal_error(i)}finally{Module.finalizationRegistry.unregister(e),_Py_DecRef(t)}try{o.forEach(i=>Module.pyproxy_destroy(i,"This borrowed proxy was automatically destroyed when an iterator was exhausted."))}catch{}_PyErr_Occurred()&&_pythonexc2js()}a(on,"iter_helper");var he=class extends g{static{a(this,"PyIterable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&48)}},Ze=class{static{a(this,"PyIterableMethods")}[Symbol.iterator](){let{shared:e}=S(this),r={},n;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,n=_PyObject_GetIter(e.ptr),validSuspender.value=i}catch(i){API.fatal_error(i)}n===0&&_pythonexc2js();let o=on(n,r,e.cache.json_adaptor_map,Ut(this));return Module.finalizationRegistry.register(o,[n,void 0],r),o}};async function*an(t,e){try{for(;;){let r;try{_check_gil();let n=validSuspender.value;if(validSuspender.value=!1,r=__pyproxy_aiter_next(t),validSuspender.value=n,r===Module.error)break}catch(n){API.fatal_error(n)}try{yield await r}catch(n){if(n&&typeof n=="object"&&n.type==="StopAsyncIteration")return;throw n}finally{r.destroy()}}}finally{Module.finalizationRegistry.unregister(e),_Py_DecRef(t)}_PyErr_Occurred()&&_pythonexc2js()}a(an,"aiter_helper");var Pe=class extends g{static{a(this,"PyAsyncIterable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1536)}},et=class{static{a(this,"PyAsyncIterableMethods")}[Symbol.asyncIterator](){let e=p(this),r={},n;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,n=_PyObject_GetAIter(e),validSuspender.value=i}catch(i){API.fatal_error(i)}n===0&&_pythonexc2js();let o=an(n,r);return Module.finalizationRegistry.register(o,[n,void 0],r),o}},be=class extends g{static{a(this,"PyIterator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&32)}},tt=class{static{a(this,"PyIteratorMethods")}[Symbol.iterator](){return this}next(e=void 0){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_Send(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}return r===Module.error&&_pythonexc2js(),r}},ve=class extends g{static{a(this,"PyGenerator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&2048)}},rt=class{static{a(this,"PyGeneratorMethods")}throw(e){let r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_throw(p(this),e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}return(e){let r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_return(p(this),e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r}},xe=class extends g{static{a(this,"PyAsyncIterator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&1024)}},nt=class{static{a(this,"PyAsyncIteratorMethods")}[Symbol.asyncIterator](){return this}async next(e=void 0){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_asend(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"&&o.type==="StopAsyncIteration")return{done:!0,value:n};throw o}finally{r.destroy()}return{done:!1,value:n}}},we=class extends g{static{a(this,"PyAsyncGenerator")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&4096)}},ot=class{static{a(this,"PyAsyncGeneratorMethods")}async throw(e){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_athrow(p(this),e),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"){if(o.type==="StopAsyncIteration")return{done:!0,value:n};if(o.type==="GeneratorExit")return{done:!0,value:n}}throw o}finally{r.destroy()}return{done:!1,value:n}}async return(e){let r;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,r=__pyproxyGen_areturn(p(this)),validSuspender.value=o}catch(o){API.fatal_error(o)}r===Module.error&&_pythonexc2js();let n;try{n=await r}catch(o){if(o&&typeof o=="object"){if(o.type==="StopAsyncIteration")return{done:!0,value:n};if(o.type==="GeneratorExit")return{done:!0,value:e}}throw o}finally{r.destroy()}return{done:!1,value:n}}},Se=class extends g{static{a(this,"PySequence")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8192)}};function sn(t,e){let r=t.toString(),n=e.toString();return r===n?0:r<n?-1:1}a(sn,"defaultCompareFunc");var at=class{static{a(this,"PySequenceMethods")}get[Symbol.isConcatSpreadable](){return!0}join(e){return Array.prototype.join.call(this,e)}slice(e,r){return Array.prototype.slice.call(this,e,r)}lastIndexOf(e,r){return r===void 0&&(r=this.length),Array.prototype.lastIndexOf.call(this,e,r)}indexOf(e,r){return Array.prototype.indexOf.call(this,e,r)}forEach(e,r){Array.prototype.forEach.call(this,e,r)}map(e,r){return Array.prototype.map.call(this,e,r)}filter(e,r){return Array.prototype.filter.call(this,e,r)}some(e,r){return Array.prototype.some.call(this,e,r)}every(e,r){return Array.prototype.every.call(this,e,r)}reduce(...e){return Array.prototype.reduce.apply(this,e)}reduceRight(...e){return Array.prototype.reduceRight.apply(this,e)}at(e){return Array.prototype.at.call(this,e)}concat(...e){return Array.prototype.concat.apply(this,e)}includes(e){return this.has(e)}entries(){return Array.prototype.entries.call(this)}keys(){return Array.prototype.keys.call(this)}values(){return Array.prototype.values.call(this)}find(e,r){return Array.prototype.find.call(this,e,r)}findIndex(e,r){return Array.prototype.findIndex.call(this,e,r)}toJSON(){return Array.from(this)}asJsJson(){throw new Error("Should not happen")}},Ae=class extends g{static{a(this,"PyMutableSequence")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&8192)}},it=class{static{a(this,"PyMutableSequenceMethods")}reverse(){return this.$reverse(),this}sort(e){let r=API.public_api.pyimport("functools"),n=r.cmp_to_key,o;e?o=e:o=sn;function i(l,c){return l===void 0&&c===void 0?0:l===void 0?1:c===void 0?-1:o(l,c)}a(i,"wrapper");let s;try{s=n(i),this.$sort.callKwargs({key:s})}finally{s?.destroy(),n.destroy(),r.destroy()}return this}splice(e,r,...n){return r===void 0&&(r=1<<30),dn(this,e,e+r,n)}push(...e){for(let r of e)this.append(r);return this.length}pop(){return Lt(this,!1)}shift(){return Lt(this,!0)}unshift(...e){return e.forEach((r,n)=>{this.insert(n,r)}),this.length}copyWithin(...e){return Array.prototype.copyWithin.apply(this,e),this}fill(...e){return Array.prototype.fill.apply(this,e),this}};function ln(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_hasattr(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===-1&&_pythonexc2js(),n!==0}a(ln,"python_hasattr");function cn(t,e){let{shared:r}=S(t),n=r.cache.map,o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_getattr(r.ptr,e,n),validSuspender.value=i}catch(i){API.fatal_error(i)}if(o===Module.error){_PyErr_Occurred()&&_pythonexc2js();return}return o}a(cn,"python_getattr");function un(t,e,r){let n=p(t),o;try{_check_gil();let i=validSuspender.value;validSuspender.value=!1,o=__pyproxy_setattr(n,e,r),validSuspender.value=i}catch(i){API.fatal_error(i)}o===-1&&_pythonexc2js()}a(un,"python_setattr");function yn(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_delattr(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}n===-1&&_pythonexc2js()}a(yn,"python_delattr");function dn(t,e,r,n){let o=p(t),i;try{_check_gil();let s=validSuspender.value;validSuspender.value=!1,i=__pyproxy_slice_assign(o,e,r,n),validSuspender.value=s}catch(s){API.fatal_error(s)}return i===Module.error&&_pythonexc2js(),i}a(dn,"python_slice_assign");function Lt(t,e){let r=p(t),n;try{_check_gil();let o=validSuspender.value;validSuspender.value=!1,n=__pyproxy_pop(r,e),validSuspender.value=o}catch(o){API.fatal_error(o)}return n===Module.error&&_pythonexc2js(),n}a(Lt,"python_pop");var pn=new Set(["name","length","caller","arguments"]);function ye(t,e,r){return t instanceof Function?e in t&&!(pn.has(e)||r&&e==="prototype"):e in t}a(ye,"filteredHasKey");var P={isExtensible(){return!0},has(t,e){return ye(t,e,!1)?!0:typeof e=="symbol"?!1:(e.startsWith("$")&&(e=e.slice(1)),ln(t,e))},get(t,e){return typeof e=="symbol"||ye(t,e,!0)?Reflect.get(t,e):(e.startsWith("$")&&(e=e.slice(1)),cn(t,e))},set(t,e,r){let n=Object.getOwnPropertyDescriptor(t,e);return n&&!n.writable&&!n.set?!1:typeof e=="symbol"||ye(t,e,!0)?Reflect.set(t,e,r):(e.startsWith("$")&&(e=e.slice(1)),un(t,e,r),!0)},deleteProperty(t,e){let r=Object.getOwnPropertyDescriptor(t,e);return r&&!r.configurable?!1:typeof e=="symbol"||ye(t,e,!0)?Reflect.deleteProperty(t,e):(e.startsWith("$")&&(e=e.slice(1)),yn(t,e),!0)},ownKeys(t){let e=p(t),r;try{_check_gil();let n=validSuspender.value;validSuspender.value=!1,r=__pyproxy_ownKeys(e),validSuspender.value=n}catch(n){API.fatal_error(n)}return r===Module.error&&_pythonexc2js(),r.push(...Reflect.ownKeys(t)),r},apply(t,e,r){return t.apply(e,r)}};function K(t){return t&&typeof t=="object"&&t.constructor&&t.constructor.name==="PythonError"}a(K,"isPythonError");var fn={isExtensible(){return!0},has(t,e){return typeof e=="string"&&/^[0-9]+$/.test(e)?Number(e)<t.length:P.has(t,e)},get(t,e){if(e==="length")return t.length;if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return B.prototype.get.call(t,Number(e))}catch(r){if(K(r)&&r.type=="IndexError")return;throw r}return P.get(t,e)},set(t,e,r){if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return L.prototype.set.call(t,Number(e),r),!0}catch(n){if(K(n)&&n.type=="IndexError")return!1;throw n}return P.set(t,e,r)},deleteProperty(t,e){if(typeof e=="string"&&/^[0-9]+$/.test(e))try{return L.prototype.delete.call(t,Number(e)),!0}catch(r){if(K(r)&&r.type=="IndexError")return!1;throw r}return P.deleteProperty(t,e)},ownKeys(t){let e=P.ownKeys(t);return e.push(...Array.from({length:t.length},(r,n)=>n.toString())),e.push("length"),e}},gn=new Set(["copy","constructor","$$flags","toString","destroy"]),M={isExtensible(){return!0},has(t,e){return k.prototype.has.call(t,e)?!0:typeof e=="string"&&/^[0-9]+$/.test(e)?k.prototype.has.call(t,Number(e)):!1},get(t,e){if(typeof e=="symbol"||gn.has(e))return Reflect.get(...arguments);let r=B.prototype.get.call(t,e);return r!==void 0||k.prototype.has.call(t,e)?r:typeof e=="string"&&/^[0-9]+$/.test(e)?B.prototype.get.call(t,Number(e)):Reflect.get(...arguments)},set(t,e,r){if(typeof e=="symbol")return!1;!k.prototype.has.call(t,e)&&typeof e=="string"&&/^[0-9]+$/.test(e)&&(e=Number(e));try{return L.prototype.set.call(t,e,r),!0}catch(n){if(K(n)&&n.type==="KeyError")return!1;throw n}},deleteProperty(t,e){if(typeof e=="symbol")return!1;!k.prototype.has.call(t,e)&&typeof e=="string"&&/^[0-9]+$/.test(e)&&(e=Number(e));try{return L.prototype.delete.call(t,e),!0}catch(r){if(K(r)&&r.type==="KeyError")return!1;throw r}},getOwnPropertyDescriptor(t,e){return M.has(t,e)?{configurable:!0,enumerable:!0,value:M.get(t,e),writable:!0}:void 0},ownKeys(t){let e=new Set;return zt(t,e),Array.from(e)}};function zt(t,e){let r=P.get(t,"keys")();for(let n of r)typeof n=="string"?e.add(n):typeof n=="number"&&e.add(n.toString());r.destroy()}a(zt,"dictOwnKeysHelper");var _n={isExtensible(){return!0},has(t,e){return P.has(t,e)?!0:M.has(t,e)},get(t,e){let r=P.get(t,e);return r!==void 0||P.has(t,e)?r:M.get(t,e)},set(t,e,r){return P.has(t,e)?P.set(t,e,r):M.set(t,e,r)},deleteProperty(t,e){return P.has(t,e)?P.deleteProperty(t,e):M.deleteProperty(t,e)},getOwnPropertyDescriptor(t,e){return Reflect.getOwnPropertyDescriptor(t,e)??M.getOwnPropertyDescriptor(t,e)},ownKeys(t){let e=new Set(P.ownKeys(t));return zt(t,e),Array.from(e)}},Ie=class extends g{static{a(this,"PyAwaitable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&64)}},st=class{static{a(this,"PyAwaitableMethods")}_ensure_future(){let{shared:e}=Oe(this);if(e.promise)return e.promise;let r=e.ptr;r||S(this);let n,o,i=new Promise((l,c)=>{n=l,o=c}),s;try{_check_gil();let l=validSuspender.value;validSuspender.value=!1,s=__pyproxy_ensure_future(r,n,o),validSuspender.value=l}catch(l){API.fatal_error(l)}return s===-1&&_pythonexc2js(),e.promise=i,this.destroy(),i}then(e,r){return this._ensure_future().then(e,r)}catch(e){return this._ensure_future().catch(e)}finally(e){return this._ensure_future().finally(e)}},Ee=class extends g{static{a(this,"PyCallable")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&256)}},ke=class{static{a(this,"PyCallableMethods")}apply(e,r){return r=function(...n){return n}.apply(void 0,r),r=Ft(this,e,r),Module.callPyObject(p(this),r)}call(e,...r){return r=Ft(this,e,r),Module.callPyObject(p(this),r)}callWithOptions({relaxed:e,kwargs:r,promising:n},...o){let i={};if(r){if(o.length===0)throw new TypeError("callWithOptions with 'kwargs: true' requires at least one argument (the key word argument object)");if(i=o.pop(),i.constructor!==void 0&&i.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object")}let s=e?API.pyodide_code.relaxed_call:this;return e&&o.unshift(this),(n?de:pe)(p(s),o,i)}callKwargs(...e){if(e.length===0)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let r=e.pop();if(r.constructor!==void 0&&r.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object");return pe(p(this),e,r)}callRelaxed(...e){return API.pyodide_code.relaxed_call(this,...e)}callKwargsRelaxed(...e){return API.pyodide_code.relaxed_call.callKwargs(this,...e)}callPromising(...e){return de(p(this),e,{})}callPromisingKwargs(...e){if(e.length===0)throw new TypeError("callKwargs requires at least one argument (the key word argument object)");let r=e.pop();if(r.constructor!==void 0&&r.constructor.name!=="Object")throw new TypeError("kwargs argument is not an object");return de(p(this),e,r)}bind(e,...r){let{shared:n,props:o}=S(this),{boundArgs:i,boundThis:s,isBound:l}=o,c=e;l&&(c=s);let u=i.concat(r);return o=Object.assign({},o,{boundArgs:u,isBound:!0,boundThis:c}),J(n.ptr,{shared:n,flags:h(this),props:o})}captureThis(){let{props:e,shared:r}=S(this);return e=Object.assign({},e,{captureThis:!0}),J(r.ptr,{shared:r,flags:h(this),props:e})}};ke.prototype.prototype=Function.prototype;var mn=new Map([["i8",Int8Array],["u8",Uint8Array],["u8clamped",Uint8ClampedArray],["i16",Int16Array],["u16",Uint16Array],["i32",Int32Array],["u32",Uint32Array],["i32",Int32Array],["u32",Uint32Array],["i64",globalThis.BigInt64Array],["u64",globalThis.BigUint64Array],["f32",Float32Array],["f64",Float64Array],["dataview",DataView]]),Me=class extends g{static{a(this,"PyBuffer")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&!!(h(e)&128)}},lt=class{static{a(this,"PyBufferMethods")}getBuffer(e){let r;if(e&&(r=mn.get(e),r===void 0))throw new Error(`Unknown type ${e}`);let n=p(this),o;try{_check_gil();let A=validSuspender.value;validSuspender.value=!1,o=__pyproxy_get_buffer(n),validSuspender.value=A}catch(A){API.fatal_error(A)}o===Module.error&&_pythonexc2js();let{start_ptr:i,smallest_ptr:s,largest_ptr:l,readonly:c,format:u,itemsize:y,shape:_,strides:m,view:f,c_contiguous:I,f_contiguous:oe}=o,ae=!1;try{let A=!1;r===void 0&&([r,A]=Module.processBufferFormatString(u," In this case, you can pass an explicit type argument."));let N=parseInt(r.name.replace(/[^0-9]/g,""))/8||1;if(A&&N>1)throw new Error("JavaScript has no native support for big endian buffers. In this case, you can pass an explicit type argument. For instance, `getBuffer('dataview')` will return a `DataView`which has native support for reading big endian data. Alternatively, toJs will automatically convert the buffer to little endian.");let ie=l-s;if(ie!==0&&(i%N!==0||s%N!==0||l%N!==0))throw new Error(`Buffer does not have valid alignment for a ${r.name}`);let Or=ie/N,Tr=(i-s)/N,We;ie===0?We=new r:We=new r(HEAPU32.buffer,s,Or);for(let Fr of m.keys())m[Fr]/=N;return ae=!0,Object.create(q.prototype,Object.getOwnPropertyDescriptors({offset:Tr,readonly:c,format:u,itemsize:y,ndim:_.length,nbytes:ie,shape:_,strides:m,data:We,c_contiguous:I,f_contiguous:oe,_view_ptr:f,_released:!1}))}finally{if(!ae)try{_check_gil();let A=validSuspender.value;validSuspender.value=!1,_PyBuffer_Release(f),_PyMem_Free(f),validSuspender.value=A}catch(A){API.fatal_error(A)}}}},Ne=class extends g{static{a(this,"PyDict")}static[Symbol.hasInstance](e){return API.isPyProxy(e)&&e.type==="dict"}},q=class{static{a(this,"PyBufferView")}constructor(){throw new TypeError("PyBufferView is not a constructor")}release(){if(!this._released){try{_check_gil();let e=validSuspender.value;validSuspender.value=!1,_PyBuffer_Release(this._view_ptr),_PyMem_Free(this._view_ptr),validSuspender.value=e}catch(e){API.fatal_error(e)}this._released=!0,this.data=Module.error}}};var Gt={PyProxy:g,PyProxyWithLength:fe,PyProxyWithGet:ge,PyProxyWithSet:_e,PyProxyWithHas:me,PyDict:Ne,PyIterable:he,PyAsyncIterable:Pe,PyIterator:be,PyAsyncIterator:xe,PyGenerator:ve,PyAsyncGenerator:we,PyAwaitable:Ie,PyCallable:Ee,PyBuffer:Me,PyBufferView:q,PythonError:R,PySequence:Se,PyMutableSequence:Ae};function Vt(t){t.id!=="canvas"&&console.warn("If you are using canvas element for SDL library, it should have id 'canvas' to work properly."),Module.canvas=t}a(Vt,"setCanvas2D");function Kt(){return Module.canvas}a(Kt,"getCanvas2D");function hn(t){Vt(t)}a(hn,"setCanvas3D");function Pn(){return Kt()}a(Pn,"getCanvas3D");var Jt={setCanvas2D:Vt,getCanvas2D:Kt,setCanvas3D:hn,getCanvas3D:Pn};var qt=new Map([["INSTALLER","pyodide.unpackArchive"]]);function bn(){if(typeof API<"u"&&API!==globalThis.API)return API.runtimeEnv;let t=typeof Bun<"u",e=typeof Deno<"u",r=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&!process.browser,n=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Chrome")===-1&&navigator.userAgent.indexOf("Safari")>-1;return vn({IN_BUN:t,IN_DENO:e,IN_NODE:r,IN_SAFARI:n,IN_SHELL:typeof read=="function"&&typeof load=="function"})}a(bn,"getGlobalRuntimeEnv");var d=bn();function vn(t){let e=t.IN_NODE&&typeof module<"u"&&module.exports&&typeof b=="function"&&typeof __dirname=="string",r=t.IN_NODE&&!e,n=!t.IN_NODE&&!t.IN_DENO&&!t.IN_BUN,o=n&&typeof window<"u"&&typeof window.document<"u"&&typeof document.createElement=="function"&&"sessionStorage"in window&&typeof globalThis.importScripts!="function",i=n&&typeof globalThis.WorkerGlobalScope<"u"&&typeof globalThis.self<"u"&&globalThis.self instanceof globalThis.WorkerGlobalScope;return{...t,IN_BROWSER:n,IN_BROWSER_MAIN_THREAD:o,IN_BROWSER_WEB_WORKER:i,IN_NODE_COMMONJS:e,IN_NODE_ESM:r}}a(vn,"calculateDerivedFlags");function yt(){let t=a(()=>{},"_resolve"),e=a(()=>{},"_reject"),r=new Promise((n,o)=>{t=n,e=o});return r.resolve=t,r.reject=e,r}a(yt,"createResolvable");function Te(){let t=Promise.resolve();async function e(){let r=t,n;return t=new Promise(o=>n=o),await r,n}return a(e,"acquireLock"),e}a(Te,"createLock");var xn=/[-_.]+/g;function Yt(t){return t.replace(xn,"-").toLowerCase()}a(Yt,"canonicalizePackageName");var wn=/^.*?([^\/]*)\.whl$/;function Qt(t){let e=wn.exec(t);if(e){let r=e[1].toLowerCase().split("-");return{name:r[0],version:r[1],fileName:r.join("-")+".whl"}}}a(Qt,"uriToPackageData");function Xt(t){return btoa(t.match(/\w{2}/g).map(function(e){return String.fromCharCode(parseInt(e,16))}).join(""))}a(Xt,"base16ToBase64");var Zt,dt,er,Re,H;async function tr(){if(!d.IN_NODE||(Zt=(await import("node:url")).default,Re=await import("node:fs"),H=await import("node:fs/promises"),er=(await import("node:vm")).default,dt=await import("node:path"),nr=dt.sep,typeof b<"u"))return;let t=Re,e=await import("node:crypto"),r=await import("ws"),n=await import("node:child_process"),o={fs:t,crypto:e,ws:r,child_process:n};globalThis.require=function(i){return o[i]}}a(tr,"initNodeModules");function rr(t){return t.includes("://")||t.startsWith("/")}a(rr,"isAbsolute");function Sn(t,e){return dt.resolve(e||".",t)}a(Sn,"node_resolvePath");function An(t,e){return e===void 0&&(e=location),new URL(t,e).toString()}a(An,"browser_resolvePath");var Y;d.IN_NODE?Y=Sn:d.IN_SHELL?Y=a(t=>t,"resolvePath"):Y=An;var nr;d.IN_NODE||(nr="/");function In(t,e){return t.startsWith("file://")&&(t=t.slice(7)),t.includes("://")?{response:fetch(t)}:{binary:H.readFile(t).then(r=>new Uint8Array(r.buffer,r.byteOffset,r.byteLength))}}a(In,"node_getBinaryResponse");function En(t,e){if(t.startsWith("file://")&&(t=t.slice(7)),t.includes("://"))throw new Error("Shell cannot fetch urls");return{binary:Promise.resolve(new Uint8Array(readbuffer(t)))}}a(En,"shell_getBinaryResponse");function kn(t,e){let r=new URL(t,location);return{response:fetch(r,e?{integrity:e}:{})}}a(kn,"browser_getBinaryResponse");var De;d.IN_NODE?De=In:d.IN_SHELL?De=En:De=kn;async function Q(t,e){let{response:r,binary:n}=De(t,e);if(n)return n;let o=await r;if(!o.ok)throw new Error(`Failed to load '${t}': request failed.`);return new Uint8Array(await o.arrayBuffer())}a(Q,"loadBinaryFile");var Fe;if(d.IN_BROWSER_MAIN_THREAD)Fe=a(async t=>await import(t),"loadScript");else if(d.IN_BROWSER_WEB_WORKER)Fe=a(async t=>{try{globalThis.importScripts(t)}catch(e){if(e instanceof TypeError)await import(t);else throw e}},"loadScript");else if(d.IN_NODE)Fe=Mn;else if(d.IN_SHELL)Fe=load;else throw new Error("Cannot determine runtime environment");async function Mn(t){t.startsWith("file://")&&(t=t.slice(7)),t.includes("://")?er.runInThisContext(await(await fetch(t)).text()):await import(Zt.pathToFileURL(t).href)}a(Mn,"nodeLoadScript");async function or(t){if(d.IN_NODE&&t)try{await H.stat(t)}catch{await H.mkdir(t,{recursive:!0})}}a(or,"ensureDirNode");var X=class{constructor(e,r){this._lock=Te();this.#t=e,this.#e=r}static{a(this,"DynlibLoader")}#t;#e;async loadDynlib(e){let r=await this._lock();try{let n=this.#e.stackSave(),o=this.#e.stringToUTF8OnStack(e);try{let i=this.#e._emscripten_dlopen_promise(o,2);this.#e.stackRestore(n);let s=this.#e.getPromise(i);this.#e.promiseMap.free(i),await s}catch(i){let s=this.getDLError();throw new Error(`Failed to load dynamic library ${e}: ${s??i}`)}}catch(n){throw n&&n.message&&n.message.includes("need to see wasm magic number")?new Error(`Failed to load dynamic library ${e} $. We probably just tried to load a linux .so file or something.`):n}finally{r()}}getDLError(){let e=this.#e._dlerror();return e===0?void 0:this.#e.UTF8ToString(e,512).trim()}async loadDynlibsFromPackage(e,r){for(let n of r)await this.loadDynlib(n)}};if(typeof API<"u"&&typeof Module<"u"){let t=new X(API,Module);API.loadDynlib=t.loadDynlib.bind(t)}var Z=class{static{a(this,"Installer")}#t;#e;constructor(e,r){this.#t=e,this.#e=new X(e,r)}async install(e,r,n,o){let i=this.#t.package_loader.unpack_buffer.callKwargs({buffer:e,filename:r,extract_dir:n,metadata:o,calculate_dynlibs:!0});await this.#e.loadDynlibsFromPackage({file_name:r},i)}},ar;if(typeof API<"u"&&typeof Module<"u"){let t=new Z(API,Module);ar=t.install.bind(t),API.install=ar}function Nn(t,e,r){t();let n;try{n=r()}catch(o){throw e(),o}return n instanceof Promise?n.finally(()=>e()):(e(),n)}a(Nn,"withContext");function ir(t,e){return function(r){return function(...n){return Nn(t,e,()=>r.apply(this,n))}}}a(ir,"createContextWrapper");async function On(t){await tr();let e=await t,r=typeof e=="string"?JSON.parse(e):e;if(!r.packages)throw new Error("Loaded pyodide lock file does not contain the expected key 'packages'.");if(r.info.abi_version!==API.abiVersion)throw new Error(`Lock file ABI version doesn't match Pyodide ABI version.\n lockfile version: ${r.info.abi_version}\n pyodide version: ${API.abiVersion}`);API.lockfile=r,API.lockfile_info=r.info,API.lockfile_packages=r.packages,API.lockfile_unvendored_stdlibs_and_test=[],API._import_name_to_package_name=new Map;for(let i of Object.keys(API.lockfile_packages)){let s=API.lockfile_packages[i];for(let l of s.imports)API._import_name_to_package_name.set(l,i);s.package_type==="cpython_module"&&API.lockfile_unvendored_stdlibs_and_test.push(i)}API.lockfile_unvendored_stdlibs=API.lockfile_unvendored_stdlibs_and_test.filter(i=>i!=="test");let n=API.config.packages;API.config.fullStdLib&&(n=[...n,...API.lockfile_unvendored_stdlibs]),await te(n,{messageCallback(){}}),await API.bootstrapFinalizedPromise,API.flushPackageManagerBuffers(),API._pyodide._importhook.register_module_not_found_hook(API._import_name_to_package_name,API.lockfile_unvendored_stdlibs_and_test),API.package_loader.init_loaded_packages()}a(On,"initializePackageIndex");var Tn="default channel",Fn="pyodide.loadPackage",pt=class{constructor(e,r){this.cdnURL="";this.loadedPackages={};this._lock=Te();this.streamReady=!1;this.stdoutBuffer=[];this.stderrBuffer=[];this.defaultChannel=Tn;this.#t=e,this.#e=r,this.#r=new Z(e,r),d.IN_NODE?(this.installBaseUrl=this.#t.config.packageCacheDir??this.#t.config.packageBaseUrl,this.cdnURL=this.#t.config.cdnUrl):this.installBaseUrl=this.#t.config.packageBaseUrl,this.stdout=n=>{if(!this.streamReady){this.stdoutBuffer.push(n);return}let o=this.#e.stackSave();try{let i=this.#e.stringToUTF8OnStack(n);this.#e._print_stdout(i)}finally{this.#e.stackRestore(o)}},this.stderr=n=>{if(!this.streamReady){this.stderrBuffer.push(n);return}let o=this.#e.stackSave();try{let i=this.#e.stringToUTF8OnStack(n);this.#e._print_stderr(i)}finally{this.#e.stackRestore(o)}}}static{a(this,"PackageManager")}#t;#e;#r;async loadPackage(e,r={checkIntegrity:!0}){return this.setCallbacks(r.messageCallback,r.errorCallback)(this.loadPackageInner.bind(this))(e,r)}async loadPackageInner(e,r={checkIntegrity:!0}){let n=new Set,o=Rn(e),i=this.recursiveDependencies(o);for(let[u,{name:y,normalizedName:_,channel:m}]of i){let f=this.getLoadedPackageChannel(y);f&&(i.delete(_),f===m||m===this.defaultChannel?this.logStdout(`${y} already loaded from ${f}`):this.logStderr(`URI mismatch, attempting to load package ${y} from ${m} while it is already loaded from ${f}. To override a dependency, load the custom package first.`))}if(i.size===0)return this.logStdout("No new packages to load"),[];let s=Array.from(i.values(),({name:u})=>u).sort().join(", "),l=new Map,c=await this._lock();try{this.logStdout(`Loading ${s}`);for(let[u,y]of i){if(this.getLoadedPackageChannel(y.name)){i.delete(y.normalizedName);continue}y.installPromise=this.downloadAndInstall(y,i,n,l,r.checkIntegrity)}if(await Promise.all(Array.from(i.values()).map(({installPromise:u})=>u)),n.size>0){let u=Array.from(n,y=>y.name).sort().join(", ");this.logStdout(`Loaded ${u}`)}if(l.size>0){let u=Array.from(l.keys()).sort().join(", ");this.logStdout(`Failed to load ${u}`);for(let[y,_]of l)this.logStderr(`The following error occurred while loading ${y}:`),this.logStderr(_.message)}return await this.#t.bootstrapFinalizedPromise,this.#t.importlib.invalidate_caches(),Array.from(n,Dn)}finally{c()}}addPackageToLoad(e,r){let n=Yt(e);if(r.has(n))return;let o=this.#t.lockfile_packages[n];if(!o)throw new Error(`No known package with name '${e}'`);if(r.set(n,{name:o.name,normalizedName:n,channel:this.defaultChannel,depends:o.depends,installPromise:void 0,done:yt(),packageData:o}),!this.getLoadedPackageChannel(o.name))for(let i of o.depends)this.addPackageToLoad(i,r)}recursiveDependencies(e){let r=new Map;for(let n of e){let o=Qt(n);if(o===void 0){this.addPackageToLoad(n,r);continue}let{name:i,version:s,fileName:l}=o,c=n;if(r.has(i)&&r.get(i).channel!==c){this.logStderr(`Loading same package ${i} from ${c} and ${r.get(i).channel}`);continue}r.set(i,{name:i,normalizedName:i,channel:c,depends:[],installPromise:void 0,done:yt(),packageData:{name:i,version:s,file_name:l,install_dir:"site",sha256:"",package_type:"package",imports:[],depends:[]}})}return r}async downloadPackage(e,r=!0){await or(this.installBaseUrl);let n,o,i;if(e.channel===this.defaultChannel){if(!(e.normalizedName in this.#t.lockfile_packages))throw new Error(`Internal error: no entry for package named ${name}`);let l=this.#t.lockfile_packages[e.normalizedName];if(n=l.file_name,!rr(n)&&!this.installBaseUrl)throw new Error(`Lock file file_name for package "${e.name}" is relative path "${n}" but no packageBaseUrl provided to loadPyodide.`);o=Y(n,this.installBaseUrl),i="sha256-"+Xt(l.sha256)}else o=e.channel,i=void 0;r||(i=void 0);try{return await Q(o,i)}catch(l){if(!d.IN_NODE||e.channel!==this.defaultChannel||!n||n.startsWith("/"))throw l}this.logStdout(`Didn't find package ${n} locally, attempting to load from ${this.cdnURL}`);let s=await Q(this.cdnURL+n);return this.logStdout(`Package ${n} loaded from ${this.cdnURL}, caching the wheel in node_modules for future use.`),await H.writeFile(o,s),s}async installPackage(e,r){let n=this.#t.lockfile_packages[e.normalizedName];n||(n=e.packageData);let o=n.file_name,i=this.#t.package_loader.get_install_dir(n.install_dir);await this.#r.install(r,o,i,new Map([["INSTALLER",Fn],["PYODIDE_SOURCE",e.channel===this.defaultChannel?"pyodide":e.channel]]))}async downloadAndInstall(e,r,n,o,i=!0){if(ee[e.name]===void 0)try{let s=await this.downloadPackage(e,i),l=e.depends.map(c=>r.has(c)?r.get(c).done:Promise.resolve());await this.#t.bootstrapFinalizedPromise,await Promise.all(l),await this.installPackage(e,s),n.add(e.packageData),ee[e.name]=e.channel}catch(s){o.set(e.name,s)}finally{e.done.resolve()}}flushBuffers(){this.streamReady=!0;for(let e of this.stdoutBuffer)this.stdout(e);for(let e of this.stderrBuffer)this.stderr(e);this.stdoutBuffer=[],this.stderrBuffer=[]}getLoadedPackageChannel(e){let r=this.loadedPackages[e];return r===void 0?null:r}setCallbacks(e,r){let n=this.stdout,o=this.stderr;return ir(()=>{this.stdout=e||n,this.stderr=r||o},()=>{this.stdout=n,this.stderr=o})}logStdout(e){this.stdout(e)}logStderr(e){this.stderr(e)}};function Dn({name:t,version:e,file_name:r,package_type:n}){return{name:t,version:e,fileName:r,packageType:n}}a(Dn,"filterPackageData");function Rn(t){return typeof t.toJs=="function"&&(t=t.toJs()),Array.isArray(t)||(t=[t]),t}a(Rn,"toStringArray");var te,ee;if(typeof API<"u"&&typeof Module<"u"){let t=new pt(API,Module);te=t.loadPackage.bind(t),ee=t.loadedPackages,API.flushPackageManagerBuffers=t.flushBuffers.bind(t),API.lockFilePromise&&(API.packageIndexReady=On(API.lockFilePromise)),API.packageManager=t}var sr="0.29.3";var vt=d.IN_NODE?b("node:fs"):void 0,ur=d.IN_NODE?b("node:tty"):void 0;function yr(t){try{vt.fsyncSync(t)}catch(e){if(e?.code==="EINVAL"||(t===0||t===1||t===2)&&(e?.code==="ENOTSUP"||e?.code==="EBADF"||e?.code==="EPERM"))return;throw e}}a(yr,"nodeFsync");var dr=!1,$e={},x={};function gt(t){$e[x.stdin]=t}a(gt,"_setStdinOps");function Ln(t){$e[x.stdout]=t}a(Ln,"_setStdoutOps");function $n(t){$e[x.stderr]=t}a($n,"_setStderrOps");function Cn(t){return t&&typeof t=="object"&&"errno"in t}a(Cn,"isErrnoError");var Un=new Int32Array(new WebAssembly.Memory({shared:!0,initial:1,maximum:1}).buffer);function Bn(t){try{return Atomics.wait(Un,0,0,t),!0}catch{return!1}}a(Bn,"syncSleep");function Hn(t){for(;;)try{return t()}catch(e){if(e&&e.code==="EAGAIN"&&Bn(100))continue;throw e}}a(Hn,"handleEAGAIN");function lr(t,e,r){let n;try{n=Hn(e)}catch(o){throw o&&o.code&&Module.ERRNO_CODES[o.code]?new FS.ErrnoError(Module.ERRNO_CODES[o.code]):Cn(o)?o:(console.error("Error thrown in read:"),console.error(o),new FS.ErrnoError(29))}if(n===void 0)throw console.warn(`${r} returned undefined; a correct implementation must return a number`),new FS.ErrnoError(29);return n!==0&&(t.node.timestamp=Date.now()),n}a(lr,"readWriteHelper");var cr=a((t,e,r)=>API.typedArrayAsUint8Array(t).subarray(e,e+r),"prepareBuffer"),ft={open:a(function(t){let e=$e[t.node.rdev];if(!e)throw new FS.ErrnoError(43);t.devops=e,t.tty=t.devops.isatty?{ops:{}}:void 0,t.seekable=!1},"open"),close:a(function(t){t.stream_ops.fsync(t)},"close"),fsync:a(function(t){let e=t.devops;e.fsync&&e.fsync()},"fsync"),read:a(function(t,e,r,n,o){return e=cr(e,r,n),lr(t,()=>t.devops.read(e),"read")},"read"),write:a(function(t,e,r,n,o){return e=cr(e,r,n),lr(t,()=>t.devops.write(e),"write")},"write")};function Ce(){dr&&(FS.closeStream(0),FS.closeStream(1),FS.closeStream(2),FS.open("/dev/stdin",0),FS.open("/dev/stdout",1),FS.open("/dev/stderr",1))}a(Ce,"refreshStreams");API.initializeStreams=function(t,e,r){let n=FS.createDevice.major++;x.stdin=FS.makedev(n,0),x.stdout=FS.makedev(n,1),x.stderr=FS.makedev(n,2),FS.registerDevice(x.stdin,ft),FS.registerDevice(x.stdout,ft),FS.registerDevice(x.stderr,ft),FS.unlink("/dev/stdin"),FS.unlink("/dev/stdout"),FS.unlink("/dev/stderr"),FS.mkdev("/dev/stdin",x.stdin),FS.mkdev("/dev/stdout",x.stdout),FS.mkdev("/dev/stderr",x.stderr),re({stdin:t}),xt({batched:e}),wt({batched:r}),dr=!0,Ce()};function jn(){d.IN_NODE?re(new mt(process.stdin.fd)):re({stdin:a(()=>prompt(),"stdin")})}a(jn,"setDefaultStdin");function Wn(){gt(new _t),Ce()}a(Wn,"setStdinError");function re(t={}){let{stdin:e,error:r,isatty:n,autoEOF:o,read:i}=t,s=+!!e+ +!!r+ +!!i;if(s>1)throw new TypeError("At most one of stdin, read, and error must be provided.");if(!e&&o!==void 0)throw new TypeError("The 'autoEOF' option can only be used with the 'stdin' option");if(s===0){jn();return}r&&Wn(),e&&(o=o===void 0?!0:o,gt(new ht(e.bind(t),!!n,o))),i&>(t),Ce()}a(re,"setStdin");function pr(t,e,r){let{raw:n,isatty:o,batched:i,write:s}=t,l=+!!n+ +!!i+ +!!s;if(l===0&&(t=r(),({raw:n,isatty:o,batched:i,write:s}=t)),l>1)throw new TypeError("At most one of 'raw', 'batched', and 'write' must be passed");if(!n&&!s&&o)throw new TypeError("Cannot set 'isatty' to true unless 'raw' or 'write' is provided");n&&e(new Pt(n.bind(t),!!o)),i&&e(new bt(i.bind(t))),s&&e(t),Ce()}a(pr,"_setStdwrite");function zn(){return d.IN_NODE?new Le(process.stdout.fd):{batched:a(t=>console.log(t),"batched")}}a(zn,"_getStdoutDefaults");function Gn(){return d.IN_NODE?new Le(process.stderr.fd):{batched:a(t=>console.warn(t),"batched")}}a(Gn,"_getStderrDefaults");function xt(t={}){pr(t,Ln,zn)}a(xt,"setStdout");function wt(t={}){pr(t,$n,Gn)}a(wt,"setStderr");var Vn=globalThis.TextEncoder??function(){},Kn=new Vn,_t=class{static{a(this,"ErrorReader")}read(e){throw new FS.ErrnoError(29)}},mt=class{static{a(this,"NodeReader")}constructor(e){this.fd=e,this.isatty=ur.isatty(e)}read(e){try{return vt.readSync(this.fd,e)}catch(r){if(r.toString().includes("EOF"))return 0;throw r}}fsync(){yr(this.fd)}},ht=class{static{a(this,"LegacyReader")}constructor(e,r,n){this.infunc=e,this.isatty=r,this.autoEOF=n,this.index=0,this.saved=void 0,this.insertEOF=!1}_getInput(){if(this.saved)return this.saved;let e=this.infunc();if(typeof e=="number")return e;if(e!=null){if(ArrayBuffer.isView(e)){if(e.BYTES_PER_ELEMENT!==1)throw console.warn(`Expected BYTES_PER_ELEMENT to be 1, infunc gave ${e.constructor}`),new FS.ErrnoError(29);return e}if(typeof e=="string")return e.endsWith(`\n`)||(e+=`\n`),e;if(Object.prototype.toString.call(e)==="[object ArrayBuffer]")return new Uint8Array(e);throw console.warn("Expected result to be undefined, null, string, array buffer, or array buffer view"),new FS.ErrnoError(29)}}read(e){if(this.insertEOF)return this.insertEOF=!1,0;let r=0;for(;;){let n=this._getInput();if(typeof n=="number"){e[0]=n,e=e.subarray(1),r++;continue}let o;if(n&&n.length>0)if(typeof n=="string"){let{read:i,written:s}=Kn.encodeInto(n,e);this.saved=n.slice(i),r+=s,o=e[s-1],e=e.subarray(s)}else{let i;n.length>e.length?(e.set(n.subarray(0,e.length)),this.saved=n.subarray(e.length),i=e.length):(e.set(n),this.saved=void 0,i=n.length),r+=i,o=e[i-1],e=e.subarray(i)}if(!(n&&n.length>0)||this.autoEOF||e.length===0)return this.insertEOF=r>0&&this.autoEOF&&o!==10,r}}fsync(){}},Pt=class{static{a(this,"CharacterCodeWriter")}constructor(e,r){this.out=e,this.isatty=r}write(e){for(let r of e)this.out(r);return e.length}},bt=class{constructor(e){this.isatty=!1;this.out=e,this.output=[]}static{a(this,"StringWriter")}write(e){for(let r of e)r===10?(this.out(UTF8ArrayToString(new Uint8Array(this.output))),this.output=[]):r!==0&&this.output.push(r);return e.length}fsync(){this.output&&this.output.length>0&&(this.out(UTF8ArrayToString(new Uint8Array(this.output))),this.output=[])}},Le=class{static{a(this,"NodeWriter")}constructor(e){this.fd=e,this.isatty=ur.isatty(e)}write(e){return vt.writeSync(this.fd,e)}fsync(){yr(this.fd)}};var St="sched$"+Math.random().toString(36).slice(2)+"$",W={},fr=0,j=null,At=[],Jn=typeof globalThis.scheduler?.postTask=="function";function qn(){if(!d.IN_BROWSER_MAIN_THREAD)return;let t=a(e=>{if(typeof e.data=="string"&&e.data.indexOf(St)===0){let r=+e.data.slice(St.length),n=W[r];if(!n)return;try{n()}finally{delete W[r]}}},"onGlobalMessage");globalThis.addEventListener("message",t,!1)}a(qn,"installPostMessageHandler");qn();function Yn(){j||d.IN_SAFARI||d.IN_DENO||d.IN_NODE||typeof globalThis.MessageChannel=="function"&&(j=new MessageChannel,j.port1.onmessage=()=>{let t=At.length;for(let e=0;e<t;e++){let r=At.shift(),n=W[r];if(n)try{n()}finally{delete W[r]}}},j.port1.start?.())}a(Yn,"ensureSharedChannel");Yn();function Qn(t){if(d.IN_NODE)setImmediate(t);else if(j){let e=fr++;W[e]=t,At.push(e),j.port2.postMessage(0)}else if(d.IN_BROWSER_MAIN_THREAD&&typeof globalThis.postMessage=="function"){let e=fr++;W[e]=t,globalThis.postMessage(St+e,"*")}else setTimeout(t,0)}a(Qn,"scheduleCallbackImmediate");function Ue(t,e=0){if(Jn){globalThis.scheduler.postTask(t,{delay:e});return}e<=2?Qn(t):setTimeout(t,e)}a(Ue,"scheduleCallback");var{get:Xn,getOwnPropertyDescriptor:Zn,ownKeys:eo}=Reflect,to=a(t=>({value:t,enumerable:!0,writable:!0,configurable:!0}),"getPropertyDescriptor"),_r=Symbol(),gr="prototype",ro={deleteProperty:a((t,e)=>t.has(e)?t.delete(e):delete t[e],"deleteProperty"),get(t,e,r){if(e===_r)return t;let n=t[e];return typeof n=="function"&&e!=="constructor"&&(n=n.bind(t)),n||=t.get(e),n},getOwnPropertyDescriptor(t,e){if(t.has(e))return to(t.get(e));if(e in t)return Zn(t,e)},has:a((t,e)=>t.has(e)||e in t,"has"),ownKeys:a(t=>[...t.keys(),...eo(t)].filter(e=>["string","symbol"].includes(typeof e)),"ownKeys"),set:a((t,e,r)=>(t.set(e,r),!0),"set")},no=new Proxy(class extends Map{static{a(this,"LiteralMap")}constructor(...e){return new Proxy(super(...e),ro)}},{get(t,e,...r){return e!==gr&&e in t[gr]?(n,...o)=>{let i=n[_r],s=i[e];return typeof s=="function"&&(s=s.apply(i,o)),s===i?n:s}:Xn(t,e,...r)}}),mr=no;var Be=new FinalizationRegistry(t=>void t());function oo(t){let e=new AbortController;for(let l of t)if(l.aborted)return e.abort(l.reason),e.signal;let r=new WeakRef(e),n=[],o=t.length;t.forEach(l=>{let c=new WeakRef(l);function u(){r.deref()?.abort(c.deref()?.reason)}a(u,"abort"),l.addEventListener("abort",u),n.push([c,u]),Be.register(l,()=>!--o&&i(),l)});function i(){n.forEach(([l,c])=>{let u=l.deref();u&&(u.removeEventListener("abort",c),Be.unregister(u));let y=r.deref();y&&(Be.unregister(y.signal),delete y.signal.__controller)})}a(i,"clear");let{signal:s}=e;return Be.register(s,i,s),s.addEventListener("abort",i),s.__controller=e,s}a(oo,"abortSignalAny");var hr=oo;API.getExpectedKeys=function(){return[null,API.config.jsglobals,API.public_api,API,Ue,API,{}]};var xr=Symbol("getAccessorList"),Pr=Symbol("getObject");function He(t,e=[]){return new Proxy(t,{get(r,n,o){if(n===xr)return e;if(n===Pr)return r;let i=Reflect.get(...arguments),s=Reflect.getOwnPropertyDescriptor(r,n);return s&&s.writable===!1&&!s.configurable||s&&s.set&&!s.get||!["object","function"].includes(typeof i)?i:He(i,[...e,n])},apply(r,n,o){return n=n?.[Pr]??n,Reflect.apply(r,n,o)},getPrototypeOf(){return He(Reflect.getPrototypeOf(...arguments),[...e,"[getProtoTypeOf]"])}})}a(He,"makeGlobalsProxy");var wr=1886286592,je=48;function ao(t,e){if(e.length!==8)throw new Error("Expected 256 bit buffer");for(let r=0;r<32;r++)e[r]=parseInt(t.slice(r*8,(r+1)*8),16)}a(ao,"encodeBuildId");function io(t){if(t.length!==8)throw new Error("Expected 256 bit buffer");return Array.from(t,e=>e.toString(16).padStart(8,"0")).join("")}a(io,"decodeBuildId");function br(t,e,r){if(e===r)return;if(typeof r=="function"&&typeof e!="function")throw console.warn(r,e),new Error(`Expected function at index ${t}`);let n=!1;try{n=JSON.stringify(e)===JSON.stringify(r)}catch(o){console.warn(o)}if(!n)throw console.warn(r,e),new Error(`Unexpected hiwire entry at index ${t}`)}a(br,"checkEntry");var ne=6;API.serializeHiwireState=function(t,e){e||(e=br);let r=[],n=API.getExpectedKeys();for(let s=0;s<n.length;s++){let l;try{l=Module.__hiwire_get(s)}catch{throw new Error(`Failed to get value at index ${s}`)}br(s,l,n[s])}for(let s=n.length;;s++){let l;try{l=Module.__hiwire_get(s)}catch{break}if(!["object","function"].includes(typeof l))throw new Error(`Unexpected object of type ${typeof l} at index ${s}`);if(l===null){r.push(l);continue}let c;try{c=l[xr]}catch{}if(c){r.push({path:c});continue}if(l===API){r.push({API:!0});continue}if(l===API.abortSignalAny){r.push({abortSignalAny:!0});continue}if(t){let u=t(l);try{JSON.stringify(u)}catch{throw console.warn(`Serializer returned result that cannot be JSON.stringify'd at index ${s}.`),console.warn(" Input: ",l),console.warn(" Output:",u),new Error(`Serializer returned result that cannot be JSON.stringify'd at index ${s}.`)}r.push({serialized:u});continue}throw new Error(`Can't serialize object at index ${s}`)}let o=[];if(Module.__hiwire_immortal_get(ne)?.noValueMarker!==1)throw new Error(`Internal error: expected js_no_value object at index ${ne}`);for(let s=ne+1;;s++){let l;try{l=Module.__hiwire_immortal_get(s)}catch{break}if(typeof l!="string")throw new Error("Expected a string");o.push(l)}return{hiwireKeys:r,immortalKeys:o}};API.makeSnapshot=function(t){if(!API.config._makeSnapshot)throw new Error("makeSnapshot only works if you passed the makeSnapshot option to loadPyodide");let e=API.serializeHiwireState(t),r=JSON.stringify(e),n=je+2*r.length;n=Math.ceil(n/16)*16;let o=new Uint8Array(n+Module.HEAP8.length),i=new TextEncoder,{written:s}=i.encodeInto(r,o.subarray(je)),l=new Uint32Array(o.buffer);return l[0]=wr,l[1]=n,l[2]=s,l[3]=0,ao(API.config.BUILD_ID,l.subarray(4,12)),o.subarray(n).set(Module.HEAP8),o};API.restoreSnapshot=function(t){let e=new Uint32Array(t.buffer,t.byteOffset,t.byteLength/4);if(e[0]!==wr)throw new Error("Snapshot has invalid magic number");let r=e[1],n=e[2],o=io(e.subarray(4,12));if(o!==API.config.BUILD_ID)throw new Error(`Snapshot build id mismatch\nexpected: ${API.config.BUILD_ID}\ngot : ${o}\n`);let i=t.subarray(je,je+n);t=t.subarray(r);let s=(new TextDecoder).decode(i),l=JSON.parse(s);return Module.HEAP8.set(t),l};function Sr(){if(Module._jslib_init(),Module.__hiwire_immortal_get(ne)?.noValueMarker!==1)throw new Error(`Internal error: expected js_no_value object at index ${ne}`);Module._init_pyodide_proxy(),Module.runtimeKeepalivePush()}a(Sr,"syncUpSnapshotLoad1");function vr(t,e){if(Module.__hiwire_set(t,e)<0)throw new Error("table set failed")}a(vr,"tableSet");function Ar(t,e,r){let n=API.getExpectedKeys();n.forEach((o,i)=>vr(i,o)),e.hiwireKeys.forEach((o,i)=>{let s;if(!o)s=o;else if("path"in o)s=o.path.reduce((l,c)=>l[c],t)||null;else if("abortSignalAny"in o)s=API.abortSignalAny;else if("API"in o)s=API;else{if(!r)throw new Error("You must pass an appropriate deserializer as _snapshotDeserializer");s=r(o.serialized)}vr(n.length+i,s)}),e.immortalKeys.forEach(o=>Module.__hiwire_immortal_add(o))}a(Ar,"syncUpSnapshotLoad2");async function Ir(t,e){return new Promise((r,n)=>{t.FS.syncfs(e,o=>{o?n(o):r()})})}a(Ir,"syncfs");async function Er(t){return await Ir(t,!1)}a(Er,"syncLocalToRemote");async function kr(t){return await Ir(t,!0)}a(kr,"syncRemoteToLocal");API.loadBinaryFile=Q;API.rawRun=a(function(e){let r=Module.stringToNewUTF8(e);Module.API.capture_stderr();let n=_PyRun_SimpleString(r);_free(r);let o=Module.API.restore_stderr().trim();return[n,o]},"rawRun");API.runPythonInternal=function(t){return API._pyodide._base.eval_code(t,API.runPythonInternal_dict)};API.setPyProxyToStringMethod=function(t){Module.HEAP8[Module._compat_to_string_repr]=+t};API.setCompatToJsLiteralMap=function(t){Module.HEAP8[Module._compat_dict_to_literalmap]=+t};API.setCompatNullToNone=function(t){Module.HEAP8[Module._compat_null_to_none]=+t};API.saveState=()=>API.pyodide_py._state.save_state();API.restoreState=t=>API.pyodide_py._state.restore_state(t);API.scheduleCallback=Ue;typeof AbortSignal<"u"&&AbortSignal.any?API.abortSignalAny=AbortSignal.any:API.abortSignalAny=hr;API.LiteralMap=mr;function Mr(t){Module.FS.mkdirTree(t);let{node:e}=Module.FS.lookupPath(t,{follow_mount:!1});if(Module.FS.isMountpoint(e))throw new Error(`path '${t}' is already a file system mount point`);if(!Module.FS.isDir(e.mode))throw new Error(`path '${t}' points to a file not a directory`);for(let r in e.contents)throw new Error(`directory '${t}' is not empty`)}a(Mr,"ensureMountPathExists");var It=class{static{a(this,"PyodideAPI_")}static{this.version=sr}static{this.loadPackage=te}static{this.loadedPackages=ee}static{this.ffi=Gt}static{this.setStdin=re}static{this.setStdout=xt}static{this.setStderr=wt}static{this.globals={}}static{this.FS={}}static{this.PATH={}}static{this.canvas=Jt}static{this.ERRNO_CODES={}}static{this.pyodide_py={}}static async loadPackagesFromImports(e,r={checkIntegrity:!0}){let n=API.pyodide_code.find_imports(e),o;try{o=n.toJs()}finally{n.destroy()}if(o.length===0)return[];let i=API._import_name_to_package_name,s=new Set;for(let l of o)i.has(l)&&s.add(i.get(l));return s.size?await te(Array.from(s),r):[]}static runPython(e,r={}){return r.globals||(r.globals=API.globals),API.pyodide_code.eval_code.callKwargs(e,r)}static async runPythonAsync(e,r={}){return r.globals||(r.globals=API.globals),await API.pyodide_code.eval_code_async.callKwargs(e,r)}static registerJsModule(e,r){API.pyodide_ffi.register_js_module(e,r)}static unregisterJsModule(e){API.pyodide_ffi.unregister_js_module(e)}static toPy(e,{depth:r,defaultConverter:n}={depth:-1}){switch(typeof e){case"string":case"number":case"boolean":case"bigint":case"undefined":return e}if(!e||API.isPyProxy(e))return e;let o=0,i=0;try{o=Module.js2python_convert(e,{depth:r,defaultConverter:n})}catch(s){throw s instanceof Module._PropagatePythonError&&_pythonexc2js(),s}try{if(_JsProxy_Check(o))return e;i=_python2js(o),i===null&&_pythonexc2js()}finally{_Py_DecRef(o)}return i}static pyimport(e){return API.pyodide_base.pyimport_impl(e)}static unpackArchive(e,r,n={}){if(!ArrayBuffer.isView(e)&&API.getTypeTag(e)!=="[object ArrayBuffer]")throw new TypeError("Expected argument 'buffer' to be an ArrayBuffer or an ArrayBuffer view");API.typedArrayAsUint8Array(e);let o=n.extractDir;API.package_loader.unpack_buffer.callKwargs({buffer:e,format:r,extract_dir:o,metadata:qt})}static async mountNativeFS(e,r){if(r.constructor.name!=="FileSystemDirectoryHandle")throw new TypeError("Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle");return Mr(e),Module.FS.mount(Module.FS.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:r},e),await kr(Module),{syncfs:a(async()=>await Er(Module),"syncfs")}}static mountNodeFS(e,r){if(!d.IN_NODE)throw new Error("mountNodeFS only works in Node");Mr(e);let n;try{n=Re.lstatSync(r)}catch{throw new Error(`hostPath '${r}' does not exist`)}if(!n.isDirectory())throw new Error(`hostPath '${r}' is not a directory`);Module.FS.mount(Module.FS.filesystems.NODEFS,{root:r},e)}static registerComlink(e){API._Comlink=e}static setInterruptBuffer(e){Module.HEAP8[Module._Py_EMSCRIPTEN_SIGNAL_HANDLING]=+!!e,Module.Py_EmscriptenSignalBuffer=e}static checkInterrupt(){if(_PyGILState_Check()){__PyErr_CheckSignals()&&_pythonexc2js();return}else{let e=Module.Py_EmscriptenSignalBuffer;if(e&&e[0]===2)throw new Module.FS.ErrnoError(27)}}static setDebug(e){let r=!!API.debug_ffi;return API.debug_ffi=e,r}static makeMemorySnapshot({serializer:e}={}){if(!API.config._makeSnapshot)throw new Error("Can only use pyodide.makeMemorySnapshot if the _makeSnapshot option is passed to loadPyodide");return API.makeSnapshot(e)}static get lockfile(){return API.lockfile}static get lockfileBaseUrl(){return API.config.packageCacheDir??API.config.packageBaseUrl}};function so(){let t=Object.getOwnPropertyDescriptors(It);delete t.prototype;let e=Object.create({},t);return API.public_api=e,e.FS=Module.FS,e.PATH=Module.PATH,e.ERRNO_CODES=Module.ERRNO_CODES,e._module=Module,e._api=API,e}a(so,"makePublicAPI");function lo(t,e){return new Proxy(t,{get(r,n){return n==="get"?o=>{let i=r.get(o);return i===void 0&&(i=e.get(o)),i}:n==="has"?o=>r.has(o)||e.has(o):Reflect.get(r,n)}})}a(lo,"wrapPythonGlobals");var Nr;API.bootstrapFinalizedPromise=new Promise(t=>Nr=t);API.finalizeBootstrap=function(t,e){t&&Sr();let[r,n]=API.rawRun("import _pyodide_core");r&&API.fatal_loading_error(`Failed to import _pyodide_core\n`,n),API.runPythonInternal_dict=API._pyodide._base.eval_code("{}"),API.importlib=API.runPythonInternal("import importlib; importlib");let o=API.importlib.import_module;API.sys=o("sys"),API.os=o("os");let i=API.runPythonInternal("import __main__; __main__.__dict__"),s=API.runPythonInternal("import builtins; builtins.__dict__");API.globals=lo(i,s);let l=API._pyodide._importhook,c=so();API.config._makeSnapshot&&(API.config.jsglobals=He(API.config.jsglobals));let u=API.config.jsglobals;return t?Ar(u,t,e):(l.register_js_finder(),l.register_js_module("js",u),l.register_js_module("pyodide_js",c),l.register_windows_finder()),API.pyodide_py=o("pyodide"),API.pyodide_code=o("pyodide.code"),API.pyodide_ffi=o("pyodide.ffi"),API.package_loader=o("pyodide._package_loader"),API.pyodide_base=o("_pyodide._base"),API.sitepackages=API.package_loader.SITE_PACKAGES.__str__(),API.dsodir=API.package_loader.DSO_DIR.__str__(),API.defaultLdLibraryPath=[API.dsodir,API.sitepackages],API.os.environ.__setitem__("LD_LIBRARY_PATH",API.defaultLdLibraryPath.join(":")),c.pyodide_py=API.pyodide_py,c.globals=API.globals,Nr(),c}})()}var StackSwitching=(()=>{var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true})};var __copyProps=(to,from,except,desc)=>{if(from&&typeof from==="object"||typeof from==="function"){for(let key of __getOwnPropNames(from))if(!__hasOwnProp.call(to,key)&&key!==except)__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return to};var __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:true}),mod);var stack_switching_exports={};__export(stack_switching_exports,{StackState:()=>StackState,createPromising:()=>createPromising,jspiSupported:()=>jspiSupported,newJspiSupported:()=>newJspiSupported,oldJspiSupported:()=>oldJspiSupported,promisingApply:()=>promisingApply,promisingRunMain:()=>promisingRunMain,suspenderGlobal:()=>suspenderGlobal,validSuspender:()=>validSuspender});var suspenderGlobal={value:null};var validSuspender={value:false};var promisingApplyHandler;function promisingApply(...args){validSuspender.value=true;Module.stackStop=stackSave();return promisingApplyHandler(...args)}var promisingRunMainHandler;function promisingRunMain(...args){validSuspender.value=true;Module.stackStop=stackSave();return promisingRunMainHandler(...args)}function createPromising(wasm_func){if(Module.newJspiSupported){const promisingFunc=WebAssembly.promising(wasm_func);async function wrapper(...args){const orig=validSuspender.value;validSuspender.value=true;try{return await promisingFunc(null,...args)}finally{validSuspender.value=orig}}return wrapper}const{parameters}=wasmFunctionType(wasm_func);parameters.shift();return new WebAssembly.Function({parameters,results:["externref"]},wasm_func,{promising:"first"})}function initSuspenders(){promisingApplyHandler=createPromising(wasmExports._pyproxy_apply_promising);if(wasmExports.run_main_promising){promisingRunMainHandler=createPromising(wasmExports.run_main_promising)}}var stackStates=[];var StackState=class{constructor(){this.start=stackSave();this.stop=Module.stackStop;this._copy=new Uint8Array(0);if(this.start!==this.stop){stackStates.push(this)}}restore(){let total=0;while(stackStates.length>0&&stackStates[stackStates.length-1].stop<this.stop){total+=stackStates.pop()._save()}const last=stackStates[stackStates.length-1];if(last&&last!==this){total+=last._save_up_to(this.stop)}if(last&&last.stop===this.stop){stackStates.pop()}if(this._copy.length!==0){Module.HEAP8.set(this._copy,this.start);total+=this._copy.length;this._copy=new Uint8Array(0)}Module.stackStop=this.stop;stackRestore(this.start);return total}_save_up_to(stop){let sz1=this._copy.length;let sz2=stop-this.start;if(sz2<=sz1){return 0}const new_segment=HEAP8.subarray(this.start+sz1>>>0,this.start+sz2>>>0);const c=new Uint8Array(sz2);c.set(this._copy);c.set(new_segment,sz1);this._copy=c;return sz2}_save(){return this._save_up_to(this.stop)}};var canConstructWasm=true;try{new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0]))}catch(e){canConstructWasm=false}var newJspiSupported=canConstructWasm&&"Suspending"in WebAssembly;var oldJspiSupported=canConstructWasm&&"Suspender"in WebAssembly;var jspiSupported=newJspiSupported||oldJspiSupported;Module.newJspiSupported=newJspiSupported;Module.oldJspiSupported=oldJspiSupported;Module.jspiSupported=jspiSupported;if(jspiSupported){Module.preRun.push(initSuspenders)}return __toCommonJS(stack_switching_exports)})();const{StackState,createPromising,jspiSupported,newJspiSupported,oldJspiSupported,promisingApply,promisingRunMain,suspenderGlobal,validSuspender}=StackSwitching;Object.assign(Module,StackSwitching);const API=Module.API;const Hiwire={};const Tests={};API.tests=Tests;API.version="0.29.3";API.abiVersion="2025_0";Module.hiwire=Hiwire;function getTypeTag(x){try{return Object.prototype.toString.call(x)}catch(e){return""}}API.getTypeTag=getTypeTag;function hasProperty(obj,prop){try{while(obj){if(Object.hasOwn(obj,prop)){return true}obj=Object.getPrototypeOf(obj)}}catch(e){}return false}function hasMethod(obj,prop){try{return typeof obj[prop]==="function"}catch(e){return false}}const pyproxyIsAlive=px=>!!Module.PyProxy_getAttrsQuiet(px).shared.ptr;API.pyproxyIsAlive=pyproxyIsAlive;const errNoRet=()=>{throw new Error("Assertion error: control reached end of function without return")};function isPromise(obj){try{return typeof obj?.then==="function"}catch(e){return false}}API.isPromise=isPromise;function bufferAsUint8Array(arg){if(ArrayBuffer.isView(arg)){return new Uint8Array(arg.buffer,arg.byteOffset,arg.byteLength)}else{return new Uint8Array(arg)}}API.typedArrayAsUint8Array=bufferAsUint8Array;Module.iterObject=function*(object){for(let k in object){if(Object.hasOwn(object,k)){yield k}}};function wasmFunctionType(wasm_func){if(!WebAssembly.Function){throw new Error("No type reflection")}if(WebAssembly.Function.type){return WebAssembly.Function.type(wasm_func)}return wasm_func.type()}pyodide_js_init();pyodide_js_init.sig="v";function set_suspender(suspender){suspenderGlobal.value=suspender}set_suspender.sig="ve";function get_suspender(){return suspenderGlobal.value}get_suspender.sig="e";function syncifyHandler(x,y){return Module.error}async function inner(x,y){try{return await(x??y)}catch(e){if(e&&e.pyodide_fatal_error){throw e}Module.syncify_error=e;return Module.error}}if(newJspiSupported){syncifyHandler=new WebAssembly.Suspending(inner)}else if(oldJspiSupported){syncifyHandler=new WebAssembly.Function({parameters:["externref","externref"],results:["externref"]},inner,{suspending:"first"})}syncifyHandler.sig="eee";function JsvPromise_Syncify_handleError(){if(!Module.syncify_error){return}Module.handle_js_error(Module.syncify_error);delete Module.syncify_error}JsvPromise_Syncify_handleError.sig="v";function saveState(){if(!validSuspender.value){return Module.error}const stackState=new StackState;const threadState=_captureThreadState();return{threadState,stackState,suspender:suspenderGlobal.value}}saveState.sig="e";function restoreState(state){state.stackState.restore();_restoreThreadState(state.threadState);suspenderGlobal.value=state.suspender;validSuspender.value=true}restoreState.sig="ve";function _Py_emscripten_runtime(){var info;if(typeof navigator=="object"){info=navigator.userAgent}else if(typeof process=="object"){info="Node.js ".concat(process.version)}else{info="UNKNOWN"}var len=lengthBytesUTF8(info)+1;var res=_malloc(len);if(res)stringToUTF8(info,res,len);return res}_Py_emscripten_runtime.sig="i";function _Py_CheckEmscriptenSignals_Helper(){if(!Module.Py_EmscriptenSignalBuffer){return 0}try{let result=Module.Py_EmscriptenSignalBuffer[0];Module.Py_EmscriptenSignalBuffer[0]=0;return result}catch(e){return 0}}_Py_CheckEmscriptenSignals_Helper.sig="i";function _PyEM_GetCountArgsPtr(){return Module._PyEM_CountArgsPtr}_PyEM_GetCountArgsPtr.sig="i";function _PyEM_InitTrampoline_js(){const ptr=getPyEMCountArgsPtr();Module._PyEM_CountArgsPtr=ptr;const offset=HEAP32[__PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET/4>>>0];HEAP32[(__PyRuntime+offset)/4>>>0]=ptr}function getPyEMCountArgsPtr(){let isIOS=globalThis.navigator&&(/iPad|iPhone|iPod/.test(navigator.userAgent)||navigator.platform==="MacIntel"&&typeof navigator.maxTouchPoints!=="undefined"&&navigator.maxTouchPoints>1);if(isIOS){return 0}const code=new Uint8Array([0,97,115,109,1,0,0,0,1,27,5,96,0,1,127,96,1,127,1,127,96,2,127,127,1,127,96,3,127,127,127,1,127,96,1,127,0,2,9,1,1,101,1,116,1,112,0,0,3,2,1,1,7,5,1,1,102,0,0,10,68,1,66,1,1,112,32,0,37,0,34,1,251,20,3,2,4,69,13,0,65,3,15,11,32,1,251,20,2,2,4,69,13,0,65,2,15,11,32,1,251,20,1,2,4,69,13,0,65,1,15,11,32,1,251,20,0,2,4,69,13,0,65,0,15,11,65,127,11]);try{const mod=new WebAssembly.Module(code);const inst=new WebAssembly.Instance(mod,{e:{t:wasmTable}});return addFunction(inst.exports.f)}catch(e){return 0}}_PyEM_InitTrampoline_js.sig="v";function _PyEM_TrampolineCall_JS(func,arg1,arg2,arg3){return wasmTable.get(func)(arg1,arg2,arg3)}_PyEM_TrampolineCall_JS.sig="iiiii";function unbox_small_structs(type_ptr){var type_id=HEAPU16[(type_ptr+6>>1)+0>>>0];while(type_id===13){var elements=HEAPU32[(type_ptr+8>>2)+0>>>0];var first_element=HEAPU32[(elements>>2)+0>>>0];if(first_element===0){type_id=0;break}else if(HEAPU32[(elements>>2)+1>>>0]===0){type_ptr=first_element;type_id=HEAPU16[(first_element+6>>1)+0>>>0]}else{break}}return[type_ptr,type_id]}function ffi_call_js(cif,fn,rvalue,avalue){var abi=HEAPU32[(cif>>2)+0>>>0];var nargs=HEAPU32[(cif>>2)+1>>>0];var nfixedargs=HEAPU32[(cif>>2)+6>>>0];var arg_types_ptr=HEAPU32[(cif>>2)+2>>>0];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3>>>0]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var orig_stack_ptr=stackSave();var cur_stack_ptr=orig_stack_ptr;var args=[];var ret_by_arg=!!0;if(rtype_id===15){throw new Error("complex ret marshalling nyi")}if(rtype_id<0||rtype_id>15){throw new Error("Unexpected rtype "+rtype_id)}if(rtype_id===4||rtype_id===13){args.push(rvalue);ret_by_arg=!!1}for(var i=0;i<nfixedargs;i++){var arg_ptr=HEAPU32[(avalue>>2)+i>>>0];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 1:case 10:case 9:case 14:args.push(HEAPU32[(arg_ptr>>2)+0>>>0]);break;case 2:args.push(HEAPF32[(arg_ptr>>2)+0>>>0]);break;case 3:args.push(HEAPF64[(arg_ptr>>3)+0>>>0]);break;case 5:args.push(HEAPU8[arg_ptr+0>>>0]);break;case 6:args.push(HEAP8[arg_ptr+0>>>0]);break;case 7:args.push(HEAPU16[(arg_ptr>>1)+0>>>0]);break;case 8:args.push(HEAP16[(arg_ptr>>1)+0>>>0]);break;case 11:case 12:args.push(HEAPU64[(arg_ptr>>3)+0>>>0]);break;case 4:args.push(HEAPU64[(arg_ptr>>3)+0>>>0]);args.push(HEAPU64[(arg_ptr>>3)+1>>>0]);break;case 13:var size=HEAPU32[(arg_type_ptr>>2)+0>>>0];var align=HEAPU16[(arg_type_ptr+4>>1)+0>>>0];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr>>>0,cur_stack_ptr+size>>>0).set(HEAP8.subarray(arg_ptr>>>0,arg_ptr+size>>>0));args.push(cur_stack_ptr);break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected type "+arg_type_id)}}if(nfixedargs!=nargs){var struct_arg_info=[];for(var i=nargs-1;i>=nfixedargs;i--){var arg_ptr=HEAPU32[(avalue>>2)+i>>>0];var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];switch(arg_type_id){case 5:case 6:cur_stack_ptr-=1,cur_stack_ptr&=~(1-1);HEAPU8[cur_stack_ptr+0>>>0]=HEAPU8[arg_ptr+0>>>0];break;case 7:case 8:cur_stack_ptr-=2,cur_stack_ptr&=~(2-1);HEAPU16[(cur_stack_ptr>>1)+0>>>0]=HEAPU16[(arg_ptr>>1)+0>>>0];break;case 1:case 9:case 10:case 14:case 2:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];break;case 3:case 11:case 12:cur_stack_ptr-=8,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];HEAPU32[(cur_stack_ptr>>2)+1>>>0]=HEAPU32[(arg_ptr>>2)+1>>>0];break;case 4:cur_stack_ptr-=16,cur_stack_ptr&=~(8-1);HEAPU32[(cur_stack_ptr>>2)+0>>>0]=HEAPU32[(arg_ptr>>2)+0>>>0];HEAPU32[(cur_stack_ptr>>2)+1>>>0]=HEAPU32[(arg_ptr>>2)+1>>>0];HEAPU32[(cur_stack_ptr>>2)+2>>>0]=HEAPU32[(arg_ptr>>2)+2>>>0];HEAPU32[(cur_stack_ptr>>2)+3>>>0]=HEAPU32[(arg_ptr>>2)+3>>>0];break;case 13:cur_stack_ptr-=4,cur_stack_ptr&=~(4-1);struct_arg_info.push([cur_stack_ptr,arg_ptr,HEAPU32[(arg_type_ptr>>2)+0>>>0],HEAPU16[(arg_type_ptr+4>>1)+0>>>0]]);break;case 15:throw new Error("complex arg marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}args.push(cur_stack_ptr);for(var i=0;i<struct_arg_info.length;i++){var struct_info=struct_arg_info[i];var arg_target=struct_info[0];var arg_ptr=struct_info[1];var size=struct_info[2];var align=struct_info[3];cur_stack_ptr-=size,cur_stack_ptr&=~(align-1);HEAP8.subarray(cur_stack_ptr>>>0,cur_stack_ptr+size>>>0).set(HEAP8.subarray(arg_ptr>>>0,arg_ptr+size>>>0));HEAPU32[(arg_target>>2)+0>>>0]=cur_stack_ptr}}stackRestore(cur_stack_ptr);stackAlloc(0);var result=(0,getWasmTableEntry(fn).apply(null,args));stackRestore(orig_stack_ptr);if(ret_by_arg){return}switch(rtype_id){case 0:break;case 1:case 9:case 10:case 14:HEAPU32[(rvalue>>2)+0>>>0]=result;break;case 2:HEAPF32[(rvalue>>2)+0>>>0]=result;break;case 3:HEAPF64[(rvalue>>3)+0>>>0]=result;break;case 5:case 6:HEAPU8[rvalue+0>>>0]=result;break;case 7:case 8:HEAPU16[(rvalue>>1)+0>>>0]=result;break;case 11:case 12:HEAPU64[(rvalue>>3)+0>>>0]=result;break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}}ffi_call_js.sig="viiii";function ffi_closure_alloc_js(size,code){var closure=_malloc(size);var index=getEmptyTableSlot();HEAPU32[(code>>2)+0>>>0]=index;HEAPU32[(closure>>2)+0>>>0]=index;return closure}ffi_closure_alloc_js.sig="iii";function ffi_closure_free_js(closure){var index=HEAPU32[(closure>>2)+0>>>0];freeTableIndexes.push(index);_free(closure)}ffi_closure_free_js.sig="vi";function ffi_prep_closure_loc_js(closure,cif,fun,user_data,codeloc){var abi=HEAPU32[(cif>>2)+0>>>0];var nargs=HEAPU32[(cif>>2)+1>>>0];var nfixedargs=HEAPU32[(cif>>2)+6>>>0];var arg_types_ptr=HEAPU32[(cif>>2)+2>>>0];var rtype_unboxed=unbox_small_structs(HEAPU32[(cif>>2)+3>>>0]);var rtype_ptr=rtype_unboxed[0];var rtype_id=rtype_unboxed[1];var sig;var ret_by_arg=!!0;switch(rtype_id){case 0:sig="v";break;case 13:case 4:sig="vi";ret_by_arg=!!1;break;case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:sig="i";break;case 2:sig="f";break;case 3:sig="d";break;case 11:case 12:sig="j";break;case 15:throw new Error("complex ret marshalling nyi");default:throw new Error("Unexpected rtype "+rtype_id)}var unboxed_arg_type_id_list=[];var unboxed_arg_type_info_list=[];for(var i=0;i<nargs;i++){var arg_unboxed=unbox_small_structs(HEAPU32[(arg_types_ptr>>2)+i>>>0]);var arg_type_ptr=arg_unboxed[0];var arg_type_id=arg_unboxed[1];unboxed_arg_type_id_list.push(arg_type_id);unboxed_arg_type_info_list.push([HEAPU32[(arg_type_ptr>>2)+0>>>0],HEAPU16[(arg_type_ptr+4>>1)+0>>>0]])}for(var i=0;i<nfixedargs;i++){switch(unboxed_arg_type_id_list[i]){case 1:case 5:case 6:case 7:case 8:case 9:case 10:case 14:case 13:sig+="i";break;case 2:sig+="f";break;case 3:sig+="d";break;case 4:sig+="jj";break;case 11:case 12:sig+="j";break;case 15:throw new Error("complex marshalling nyi");default:throw new Error("Unexpected argtype "+arg_type_id)}}if(nfixedargs<nargs){sig+="i"}0;function trampoline(){var args=Array.prototype.slice.call(arguments);var orig_stack_ptr=stackSave();var cur_ptr=orig_stack_ptr;var ret_ptr;var jsarg_idx=0;if(ret_by_arg){ret_ptr=args[jsarg_idx++]}else{cur_ptr-=8,cur_ptr&=~(8-1);ret_ptr=cur_ptr}cur_ptr-=4*nargs;var args_ptr=cur_ptr;var carg_idx=0;for(;carg_idx<nfixedargs;carg_idx++){var cur_arg=args[jsarg_idx++];var arg_type_info=unboxed_arg_type_info_list[carg_idx];var arg_size=arg_type_info[0];var arg_align=arg_type_info[1];var arg_type_id=unboxed_arg_type_id_list[carg_idx];switch(arg_type_id){case 5:case 6:cur_ptr-=1,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU8[cur_ptr+0>>>0]=cur_arg;break;case 7:case 8:cur_ptr-=2,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU16[(cur_ptr>>1)+0>>>0]=cur_arg;break;case 1:case 9:case 10:case 14:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU32[(cur_ptr>>2)+0>>>0]=cur_arg;break;case 13:cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr>>>0,cur_ptr+arg_size>>>0).set(HEAP8.subarray(cur_arg>>>0,cur_arg+arg_size>>>0));HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;break;case 2:cur_ptr-=4,cur_ptr&=~(4-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPF32[(cur_ptr>>2)+0>>>0]=cur_arg;break;case 3:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPF64[(cur_ptr>>3)+0>>>0]=cur_arg;break;case 11:case 12:cur_ptr-=8,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU64[(cur_ptr>>3)+0>>>0]=cur_arg;break;case 4:cur_ptr-=16,cur_ptr&=~(8-1);HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr;HEAPU64[(cur_ptr>>3)+0>>>0]=cur_arg;cur_arg=args[jsarg_idx++];HEAPU64[(cur_ptr>>3)+1>>>0]=cur_arg;break}}var varargs=args[args.length-1];for(;carg_idx<nargs;carg_idx++){var arg_type_id=unboxed_arg_type_id_list[carg_idx];var arg_type_info=unboxed_arg_type_info_list[carg_idx];var arg_size=arg_type_info[0];var arg_align=arg_type_info[1];if(arg_type_id===13){var struct_ptr=HEAPU32[(varargs>>2)+0>>>0];cur_ptr-=arg_size,cur_ptr&=~(arg_align-1);HEAP8.subarray(cur_ptr>>>0,cur_ptr+arg_size>>>0).set(HEAP8.subarray(struct_ptr>>>0,struct_ptr+arg_size>>>0));HEAPU32[(args_ptr>>2)+carg_idx>>>0]=cur_ptr}else{HEAPU32[(args_ptr>>2)+carg_idx>>>0]=varargs}varargs+=4}stackRestore(cur_ptr);stackAlloc(0);0;getWasmTableEntry(HEAPU32[(closure>>2)+2>>>0])(HEAPU32[(closure>>2)+1>>>0],ret_ptr,args_ptr,HEAPU32[(closure>>2)+3>>>0]);stackRestore(orig_stack_ptr);if(!ret_by_arg){switch(sig[0]){case"i":return HEAPU32[(ret_ptr>>2)+0>>>0];case"j":return HEAPU64[(ret_ptr>>3)+0>>>0];case"d":return HEAPF64[(ret_ptr>>3)+0>>>0];case"f":return HEAPF32[(ret_ptr>>2)+0>>>0]}}}try{var wasm_trampoline=convertJsFunctionToWasm(trampoline,sig)}catch(e){return 1}setWasmTableEntry(codeloc,wasm_trampoline);HEAPU32[(closure>>2)+1>>>0]=cif;HEAPU32[(closure>>2)+2>>>0]=fun;HEAPU32[(closure>>2)+3>>>0]=user_data;return 0}ffi_prep_closure_loc_js.sig="iiiiii";function __hiwire_deduplicate_new(){return new Map}__hiwire_deduplicate_new.sig="e";function __hiwire_deduplicate_get(map,value){return map.get(value)}__hiwire_deduplicate_get.sig="iee";function __hiwire_deduplicate_set(map,value,ref){map.set(value,ref)}__hiwire_deduplicate_set.sig="veei";function __hiwire_deduplicate_delete(map,value){map.delete(value)}__hiwire_deduplicate_delete.sig="vee";var wasmImports={JsArray_count_js,JsArray_index_js,JsArray_inplace_repeat_js,JsArray_repeat_js,JsArray_reverse_js,JsArray_reversed_iterator,JsBuffer_DecodeString_js,JsBuffer_get_info,JsDoubleProxy_unwrap_js,JsException_new_helper,JsMap_GetIter_js,JsMap_clear_js,JsModule_GetAll_js,JsObjMap_GetIter_js,JsObjMap_ass_subscript_js,JsObjMap_contains_js,JsObjMap_length_js,JsObjMap_subscript_js,JsProxy_Bool_js,JsProxy_DelAttr_js,JsProxy_Dir_js,JsProxy_GetAsyncIter_js,JsProxy_GetAttr_js,JsProxy_GetIter_js,JsProxy_SetAttr_js,JsProxy_compute_typeflags,JsProxy_subscript_js,JsProxy_to_weakref_js,JsvArray_Check,JsvArray_Delete,JsvArray_Extend,JsvArray_Get,JsvArray_Insert,JsvArray_New,JsvArray_Push,JsvArray_Set,JsvArray_ShallowCopy,JsvArray_slice,JsvArray_slice_assign,JsvAsyncGenerator_Check,JsvBuffer_assignFromPtr,JsvBuffer_assignToPtr,JsvBuffer_intoFile,JsvBuffer_readFromFile,JsvBuffer_writeToFile,JsvError_Throw,JsvFunction_CallBound,JsvFunction_Call_OneArg,JsvFunction_Check,JsvFunction_Construct,JsvGenerator_Check,JsvLiteralMap_New,JsvMap_New,JsvMap_Set,JsvNoValue_Check,JsvNum_fromDigits,JsvNum_fromDouble,JsvNum_fromInt,JsvObject_CallMethod,JsvObject_CallMethod_NoArgs,JsvObject_CallMethod_OneArg,JsvObject_CallMethod_TwoArgs,JsvObject_Entries,JsvObject_Keys,JsvObject_New,JsvObject_SetAttr,JsvObject_Values,JsvObject_toString,JsvPromise_Check,JsvPromise_Resolve,JsvPromise_Syncify_handleError,JsvSet_Add,JsvSet_New,JsvUTF8ToString,Jsv_constructorName,Jsv_equal,Jsv_greater_than,Jsv_greater_than_equal,Jsv_less_than,Jsv_less_than_equal,Jsv_not_equal,Jsv_to_bool,Jsv_typeof,_JsArray_PostProcess_helper,_JsArray_PushEntry_helper,_JsObject_Set_js,_PyEM_GetCountArgsPtr,_PyEM_InitTrampoline_js,_PyEM_TrampolineCall_JS,_Py_CheckEmscriptenSignals_Helper,_Py_emscripten_runtime,__assert_fail:___assert_fail,__call_sighandler:___call_sighandler,__cpp_exception:___cpp_exception,__heap_base:___heap_base,__hiwire_deduplicate_delete,__hiwire_deduplicate_get,__hiwire_deduplicate_new,__hiwire_deduplicate_set,__indirect_function_table:wasmTable,__memory_base:___memory_base,__stack_high:___stack_high,__stack_low:___stack_low,__stack_pointer:___stack_pointer,__syscall__newselect:___syscall__newselect,__syscall_accept4:___syscall_accept4,__syscall_bind:___syscall_bind,__syscall_chdir:___syscall_chdir,__syscall_chmod:___syscall_chmod,__syscall_connect:___syscall_connect,__syscall_dup:___syscall_dup,__syscall_dup3:___syscall_dup3,__syscall_faccessat:___syscall_faccessat,__syscall_fadvise64:___syscall_fadvise64,__syscall_fchdir:___syscall_fchdir,__syscall_fchmod:___syscall_fchmod,__syscall_fchmodat2:___syscall_fchmodat2,__syscall_fchown32:___syscall_fchown32,__syscall_fchownat:___syscall_fchownat,__syscall_fcntl64:___syscall_fcntl64,__syscall_fdatasync:___syscall_fdatasync,__syscall_fstat64:___syscall_fstat64,__syscall_fstatfs64:___syscall_fstatfs64,__syscall_ftruncate64:___syscall_ftruncate64,__syscall_getcwd:___syscall_getcwd,__syscall_getdents64:___syscall_getdents64,__syscall_getpeername:___syscall_getpeername,__syscall_getsockname:___syscall_getsockname,__syscall_getsockopt:___syscall_getsockopt,__syscall_ioctl:___syscall_ioctl,__syscall_listen:___syscall_listen,__syscall_lstat64:___syscall_lstat64,__syscall_mkdirat:___syscall_mkdirat,__syscall_newfstatat:___syscall_newfstatat,__syscall_openat:___syscall_openat,__syscall_pipe:___syscall_pipe,__syscall_poll:___syscall_poll,__syscall_readlinkat:___syscall_readlinkat,__syscall_recvfrom:___syscall_recvfrom,__syscall_recvmsg:___syscall_recvmsg,__syscall_renameat:___syscall_renameat,__syscall_rmdir:___syscall_rmdir,__syscall_sendmsg:___syscall_sendmsg,__syscall_sendto:___syscall_sendto,__syscall_socket:___syscall_socket,__syscall_stat64:___syscall_stat64,__syscall_statfs64:___syscall_statfs64,__syscall_symlinkat:___syscall_symlinkat,__syscall_truncate64:___syscall_truncate64,__syscall_unlinkat:___syscall_unlinkat,__syscall_utimensat:___syscall_utimensat,__table_base:___table_base,_abort_js:__abort_js,_agen_handle_result_js,_dlopen_js:__dlopen_js,_dlsym_js:__dlsym_js,_emscripten_lookup_name:__emscripten_lookup_name,_emscripten_runtime_keepalive_clear:__emscripten_runtime_keepalive_clear,_emscripten_system:__emscripten_system,_gmtime_js:__gmtime_js,_localtime_js:__localtime_js,_mktime_js:__mktime_js,_mmap_js:__mmap_js,_msync_js:__msync_js,_munmap_js:__munmap_js,_pyproxyGen_make_result,_pyproxy_get_buffer_result,_python2js_add_to_cache,_python2js_addto_postprocess_list,_python2js_buffer_inner,_python2js_cache_lookup,_python2js_handle_postprocess_list,_python2js_ucs1,_python2js_ucs2,_python2js_ucs4,_setitimer_js:__setitimer_js,_tzset_js:__tzset_js,array_to_js,can_run_sync_js,capture_stderr,clock_res_get:_clock_res_get,clock_time_get:_clock_time_get,create_once_callable,create_promise_handles,create_sentinel:_create_sentinel,destroy_jsarray_entries,destroy_proxies,destroy_proxies_js,destroy_proxy,emscripten_asm_const_int:_emscripten_asm_const_int,emscripten_date_now:_emscripten_date_now,emscripten_get_heap_max:_emscripten_get_heap_max,emscripten_get_now:_emscripten_get_now,emscripten_resize_heap:_emscripten_resize_heap,emscripten_runtime_keepalive_pop:_emscripten_runtime_keepalive_pop,emscripten_runtime_keepalive_push:_emscripten_runtime_keepalive_push,environ_get:_environ_get,environ_sizes_get:_environ_sizes_get,exit:_exit,fail_test,fd_close:_fd_close,fd_fdstat_get:_fd_fdstat_get,fd_pread:_fd_pread,fd_pwrite:_fd_pwrite,fd_read:_fd_read,fd_seek:_fd_seek,fd_sync:_fd_sync,fd_write:_fd_write,ffi_call_js,ffi_closure_alloc_js,ffi_closure_free_js,ffi_prep_closure_loc_js,gc_register_proxies,get_async_js_call_done_callback,get_length_helper,get_length_string,get_suspender,getaddrinfo:_getaddrinfo,getnameinfo:_getnameinfo,getprotobyname:_getprotobyname,handle_next_result_js,hiwire_invalid_ref_js,is_comlink_proxy,is_sentinel:_is_sentinel,js2python_convert,js2python_immutable_js,js2python_js,jslib_init_buffers_js,jslib_init_js,memory:wasmMemory,my_dict_converter,new_error,proc_exit:_proc_exit,proxy_cache_get,proxy_cache_set,pyodide_js_init,pyproxy_AsPyObject,pyproxy_Check,pyproxy_new,pyproxy_new_ex,python2js__default_converter_js,python2js__eager_converter_js,python2js_custom__create_jscontext,random_get:_random_get,raw_call_js,restoreState,restore_stderr,saveState,set_pyodide_module,set_suspender,syncifyHandler,throw_no_gil,wasmsh_js_http_fetch:_wasmsh_js_http_fetch,wrap_async_generator,wrap_generator};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports["__wasm_call_ctors"];var _dump_traceback=Module["_dump_traceback"]=wasmExports["dump_traceback"];var _set_error=Module["_set_error"]=wasmExports["set_error"];var _restore_sys_last_exception=Module["_restore_sys_last_exception"]=wasmExports["restore_sys_last_exception"];var _wrap_exception=Module["_wrap_exception"]=wasmExports["wrap_exception"];var _pythonexc2js=Module["_pythonexc2js"]=wasmExports["pythonexc2js"];var _init_pyodide_proxy=Module["_init_pyodide_proxy"]=wasmExports["init_pyodide_proxy"];var _PyUnicode_Data=Module["_PyUnicode_Data"]=wasmExports["PyUnicode_Data"];var __js2python_none=Module["__js2python_none"]=wasmExports["_js2python_none"];var __js2python_null=Module["__js2python_null"]=wasmExports["_js2python_null"];var __js2python_true=Module["__js2python_true"]=wasmExports["_js2python_true"];var __js2python_false=Module["__js2python_false"]=wasmExports["_js2python_false"];var __js2python_pyproxy=Module["__js2python_pyproxy"]=wasmExports["_js2python_pyproxy"];var _js2python_immutable=Module["_js2python_immutable"]=wasmExports["js2python_immutable"];var _js2python=Module["_js2python"]=wasmExports["js2python"];var _clear_method_call_singleton=Module["_clear_method_call_singleton"]=wasmExports["clear_method_call_singleton"];var __agen_handle_result_js_c=Module["__agen_handle_result_js_c"]=wasmExports["_agen_handle_result_js_c"];var _JsProxy_Check=Module["_JsProxy_Check"]=wasmExports["JsProxy_Check"];var _JsBuffer_CopyIntoMemoryView=Module["_JsBuffer_CopyIntoMemoryView"]=wasmExports["JsBuffer_CopyIntoMemoryView"];var _JsProxy_create=Module["_JsProxy_create"]=wasmExports["JsProxy_create"];var _check_gil=Module["_check_gil"]=wasmExports["check_gil"];var _pyproxy_getflags=Module["_pyproxy_getflags"]=wasmExports["pyproxy_getflags"];var __pyproxy_repr=Module["__pyproxy_repr"]=wasmExports["_pyproxy_repr"];var __pyproxy_type=Module["__pyproxy_type"]=wasmExports["_pyproxy_type"];var __pyproxy_hasattr=Module["__pyproxy_hasattr"]=wasmExports["_pyproxy_hasattr"];var __pyproxy_getattr=Module["__pyproxy_getattr"]=wasmExports["_pyproxy_getattr"];var __pyproxy_setattr=Module["__pyproxy_setattr"]=wasmExports["_pyproxy_setattr"];var __pyproxy_delattr=Module["__pyproxy_delattr"]=wasmExports["_pyproxy_delattr"];var __pyproxy_getitem=Module["__pyproxy_getitem"]=wasmExports["_pyproxy_getitem"];var __pyproxy_setitem=Module["__pyproxy_setitem"]=wasmExports["_pyproxy_setitem"];var __pyproxy_delitem=Module["__pyproxy_delitem"]=wasmExports["_pyproxy_delitem"];var __pyproxy_slice_assign=Module["__pyproxy_slice_assign"]=wasmExports["_pyproxy_slice_assign"];var __pyproxy_pop=Module["__pyproxy_pop"]=wasmExports["_pyproxy_pop"];var __pyproxy_contains=Module["__pyproxy_contains"]=wasmExports["_pyproxy_contains"];var __pyproxy_ownKeys=Module["__pyproxy_ownKeys"]=wasmExports["_pyproxy_ownKeys"];var __pyproxy_apply=Module["__pyproxy_apply"]=wasmExports["_pyproxy_apply"];var __pyproxy_apply_promising=Module["__pyproxy_apply_promising"]=wasmExports["_pyproxy_apply_promising"];var __iscoroutinefunction=Module["__iscoroutinefunction"]=wasmExports["_iscoroutinefunction"];var __pyproxy_iter_next=Module["__pyproxy_iter_next"]=wasmExports["_pyproxy_iter_next"];var __pyproxyGen_Send=Module["__pyproxyGen_Send"]=wasmExports["_pyproxyGen_Send"];var __pyproxyGen_return=Module["__pyproxyGen_return"]=wasmExports["_pyproxyGen_return"];var __pyproxyGen_throw=Module["__pyproxyGen_throw"]=wasmExports["_pyproxyGen_throw"];var __pyproxyGen_asend=Module["__pyproxyGen_asend"]=wasmExports["_pyproxyGen_asend"];var __pyproxyGen_areturn=Module["__pyproxyGen_areturn"]=wasmExports["_pyproxyGen_areturn"];var __pyproxyGen_athrow=Module["__pyproxyGen_athrow"]=wasmExports["_pyproxyGen_athrow"];var __pyproxy_aiter_next=Module["__pyproxy_aiter_next"]=wasmExports["_pyproxy_aiter_next"];var __pyproxy_ensure_future=Module["__pyproxy_ensure_future"]=wasmExports["_pyproxy_ensure_future"];var __pyproxy_get_buffer=Module["__pyproxy_get_buffer"]=wasmExports["_pyproxy_get_buffer"];var _create_promise_handles_result_helper=Module["_create_promise_handles_result_helper"]=wasmExports["create_promise_handles_result_helper"];var _Jsv_GetNull=Module["_Jsv_GetNull"]=wasmExports["Jsv_GetNull"];var _jslib_init=Module["_jslib_init"]=wasmExports["jslib_init"];var _JsrString_FromId=Module["_JsrString_FromId"]=wasmExports["JsrString_FromId"];var _JsvString_FromId=Module["_JsvString_FromId"]=wasmExports["JsvString_FromId"];var __python2js=Module["__python2js"]=wasmExports["_python2js"];var _python2js=Module["_python2js"]=wasmExports["python2js"];var _python2js_with_depth=Module["_python2js_with_depth"]=wasmExports["python2js_with_depth"];var _python2js_custom=Module["_python2js_custom"]=wasmExports["python2js_custom"];var _pyodide_export=Module["_pyodide_export"]=wasmExports["pyodide_export"];var _captureThreadState=Module["_captureThreadState"]=wasmExports["captureThreadState"];var _restoreThreadState=Module["_restoreThreadState"]=wasmExports["restoreThreadState"];var _print_stdout=Module["_print_stdout"]=wasmExports["print_stdout"];var _print_stderr=Module["_print_stderr"]=wasmExports["print_stderr"];var _main=Module["_main"]=wasmExports["__main_argc_argv"];var _hiwire_get=Module["_hiwire_get"]=wasmExports["hiwire_get"];var _PyErr_Occurred=Module["_PyErr_Occurred"]=wasmExports["PyErr_Occurred"];var _hiwire_pop=Module["_hiwire_pop"]=wasmExports["hiwire_pop"];var _hiwire_new=Module["_hiwire_new"]=wasmExports["hiwire_new"];var _hiwire_intern=Module["_hiwire_intern"]=wasmExports["hiwire_intern"];var _PyErr_SetRaisedException=Module["_PyErr_SetRaisedException"]=wasmExports["PyErr_SetRaisedException"];var _PyErr_Print=Module["_PyErr_Print"]=wasmExports["PyErr_Print"];var _PyErr_SetString=Module["_PyErr_SetString"]=wasmExports["PyErr_SetString"];var _hiwire_decref=Module["_hiwire_decref"]=wasmExports["hiwire_decref"];var _hiwire_incref=Module["_hiwire_incref"]=wasmExports["hiwire_incref"];var _free=Module["_free"]=wasmExports["free"];var _PyErr_Clear=Module["_PyErr_Clear"]=wasmExports["PyErr_Clear"];var _PyMem_Free=Module["_PyMem_Free"]=wasmExports["PyMem_Free"];var _PyDict_SetItem=Module["_PyDict_SetItem"]=wasmExports["PyDict_SetItem"];var _malloc=wasmExports["malloc"];var _PyGILState_Check=Module["_PyGILState_Check"]=wasmExports["PyGILState_Check"];var _PyDict_New=Module["_PyDict_New"]=wasmExports["PyDict_New"];var _PySet_New=Module["_PySet_New"]=wasmExports["PySet_New"];var _PyList_New=Module["_PyList_New"]=wasmExports["PyList_New"];var _PyObject_GetIter=Module["_PyObject_GetIter"]=wasmExports["PyObject_GetIter"];var _PyBuffer_Release=Module["_PyBuffer_Release"]=wasmExports["PyBuffer_Release"];var _run_main=Module["_run_main"]=wasmExports["run_main"];var _run_main_promising=Module["_run_main_promising"]=wasmExports["run_main_promising"];var _wasmsh_probe_file_equals=Module["_wasmsh_probe_file_equals"]=wasmExports["wasmsh_probe_file_equals"];var _wasmsh_probe_version=Module["_wasmsh_probe_version"]=wasmExports["wasmsh_probe_version"];var _wasmsh_probe_write_text=Module["_wasmsh_probe_write_text"]=wasmExports["wasmsh_probe_write_text"];var _wasmsh_runtime_free=Module["_wasmsh_runtime_free"]=wasmExports["wasmsh_runtime_free"];var _wasmsh_runtime_free_string=Module["_wasmsh_runtime_free_string"]=wasmExports["wasmsh_runtime_free_string"];var _wasmsh_runtime_handle_json=Module["_wasmsh_runtime_handle_json"]=wasmExports["wasmsh_runtime_handle_json"];var _wasmsh_runtime_new=Module["_wasmsh_runtime_new"]=wasmExports["wasmsh_runtime_new"];var _PyObject_Size=Module["_PyObject_Size"]=wasmExports["PyObject_Size"];var _PyUnicode_New=Module["_PyUnicode_New"]=wasmExports["PyUnicode_New"];var _PyFloat_FromDouble=Module["_PyFloat_FromDouble"]=wasmExports["PyFloat_FromDouble"];var _PyObject_GetAIter=Module["_PyObject_GetAIter"]=wasmExports["PyObject_GetAIter"];var _PyEval_SaveThread=Module["_PyEval_SaveThread"]=wasmExports["PyEval_SaveThread"];var _PyEval_RestoreThread=Module["_PyEval_RestoreThread"]=wasmExports["PyEval_RestoreThread"];var _PySet_Add=Module["_PySet_Add"]=wasmExports["PySet_Add"];var _PyLong_FromDouble=Module["_PyLong_FromDouble"]=wasmExports["PyLong_FromDouble"];var _PyList_SetItem=Module["_PyList_SetItem"]=wasmExports["PyList_SetItem"];var __PyLong_FromByteArray=Module["__PyLong_FromByteArray"]=wasmExports["_PyLong_FromByteArray"];var _PyErr_CheckSignals=Module["_PyErr_CheckSignals"]=wasmExports["PyErr_CheckSignals"];var _fflush=wasmExports["fflush"];var _Py_IncRef=Module["_Py_IncRef"]=wasmExports["Py_IncRef"];var _Py_DecRef=Module["_Py_DecRef"]=wasmExports["Py_DecRef"];var _calloc=wasmExports["calloc"];var _PyRun_SimpleString=Module["_PyRun_SimpleString"]=wasmExports["PyRun_SimpleString"];var __PyTraceback_Add=Module["__PyTraceback_Add"]=wasmExports["_PyTraceback_Add"];var _ntohs=wasmExports["ntohs"];var _htons=wasmExports["htons"];var _htonl=wasmExports["htonl"];var __PyErr_CheckSignals=Module["__PyErr_CheckSignals"]=wasmExports["_PyErr_CheckSignals"];var __hiwire_immortal_add=Module["__hiwire_immortal_add"]=wasmExports["_hiwire_immortal_add"];var __hiwire_immortal_get=Module["__hiwire_immortal_get"]=wasmExports["_hiwire_immortal_get"];var __hiwire_get=Module["__hiwire_get"]=wasmExports["_hiwire_get"];var __hiwire_set=Module["__hiwire_set"]=wasmExports["_hiwire_set"];var _hiwire_num_refs=Module["_hiwire_num_refs"]=wasmExports["hiwire_num_refs"];var ___funcs_on_exit=wasmExports["__funcs_on_exit"];var ___dl_seterr=wasmExports["__dl_seterr"];var __emscripten_find_dylib=wasmExports["_emscripten_find_dylib"];var _emscripten_builtin_memalign=wasmExports["emscripten_builtin_memalign"];var __emscripten_timeout=wasmExports["_emscripten_timeout"];var ___trap=wasmExports["__trap"];var __emscripten_stack_restore=wasmExports["_emscripten_stack_restore"];var __emscripten_stack_alloc=wasmExports["_emscripten_stack_alloc"];var _emscripten_stack_get_current=Module["_emscripten_stack_get_current"]=wasmExports["emscripten_stack_get_current"];var ___cxa_decrement_exception_refcount=wasmExports["__cxa_decrement_exception_refcount"];var ___cxa_increment_exception_refcount=wasmExports["__cxa_increment_exception_refcount"];var ___thrown_object_from_unwind_exception=wasmExports["__thrown_object_from_unwind_exception"];var ___get_exception_message=wasmExports["__get_exception_message"];var ___wasm_apply_data_relocs=wasmExports["__wasm_apply_data_relocs"];var _compat_null_to_none=Module["_compat_null_to_none"]=3386432;var _compat_to_string_repr=Module["_compat_to_string_repr"]=3386500;var _Jsr_error=Module["_Jsr_error"]=3386436;var _Jsr_undefined=Module["_Jsr_undefined"]=3386440;var _Jsr_true=Module["_Jsr_true"]=3386444;var _Jsr_false=Module["_Jsr_false"]=3386448;var _Jsr_novalue=Module["_Jsr_novalue"]=3386452;var _compat_dict_to_literalmap=Module["_compat_dict_to_literalmap"]=3386577;var __PyRuntime=Module["__PyRuntime"]=2773680;var _Py_EMSCRIPTEN_SIGNAL_HANDLING=Module["_Py_EMSCRIPTEN_SIGNAL_HANDLING"]=3424384;var _Py_Version=Module["_Py_Version"]=461308;var __PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET=Module["__PyEM_EMSCRIPTEN_COUNT_ARGS_OFFSET"]=491544;function applySignatureConversions(wasmExports){wasmExports=Object.assign({},wasmExports);var makeWrapper_pp=f=>a0=>f(a0)>>>0;var makeWrapper_ppp=f=>(a0,a1)=>f(a0,a1)>>>0;var makeWrapper_ppppp=f=>(a0,a1,a2,a3)=>f(a0,a1,a2,a3)>>>0;var makeWrapper_p=f=>()=>f()>>>0;wasmExports["malloc"]=makeWrapper_pp(wasmExports["malloc"]);wasmExports["calloc"]=makeWrapper_ppp(wasmExports["calloc"]);wasmExports["_emscripten_find_dylib"]=makeWrapper_ppppp(wasmExports["_emscripten_find_dylib"]);wasmExports["emscripten_builtin_memalign"]=makeWrapper_ppp(wasmExports["emscripten_builtin_memalign"]);wasmExports["_emscripten_stack_alloc"]=makeWrapper_pp(wasmExports["_emscripten_stack_alloc"]);wasmExports["emscripten_stack_get_current"]=makeWrapper_p(wasmExports["emscripten_stack_get_current"]);return wasmExports}function callMain(args=[]){var entryFunction=resolveGlobalSymbol("main").sym;if(!entryFunction)return;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(arg=>{HEAPU32[argv_ptr>>>2>>>0]=stringToUTF8OnStack(arg);argv_ptr+=4});HEAPU32[argv_ptr>>>2>>>0]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args=arguments_){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();var noInitialRun=Module["noInitialRun"]||false;if(!noInitialRun)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}function preInit(){if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].shift()()}}}preInit();run();moduleRtn=readyPromise;
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
return moduleRtn;
|