-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdotnet.js.map
1 lines (1 loc) · 644 KB
/
dotnet.js.map
1
{"version":3,"file":"dotnet.js","mappings":"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","sources":["webpack://dotnet/webpack/universalModuleDefinition","webpack://dotnet/./native/dotnet.js","webpack://dotnet/webpack/bootstrap","webpack://dotnet/webpack/runtime/define property getters","webpack://dotnet/webpack/runtime/global","webpack://dotnet/webpack/runtime/hasOwnProperty shorthand","webpack://dotnet/./src/wasm.ts","webpack://dotnet/./src/dotnet-js-interop.ts","webpack://dotnet/./src/heap-lock.ts","webpack://dotnet/./src/interop.ts","webpack://dotnet/./node_modules/js-base64/base64.mjs","webpack://dotnet/./src/mono.ts","webpack://dotnet/./src/boot.ts","webpack://dotnet/./src/dotnet.ts","webpack://dotnet/./src/event.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dotnet\"] = factory();\n\telse\n\t\troot[\"dotnet\"] = factory();\n})(this, () => {\nreturn ","var Module = (function () {\n var _scriptDir = typeof document !== \"undefined\" && document.currentScript ? document.currentScript.src : undefined;\n\n return (\n function (Module) {\n Module = Module || {};\n\n var Module = typeof Module !== \"undefined\" ? Module : {};\n var readyPromiseResolve, readyPromiseReject;\n Module[\"ready\"] = new Promise(function (resolve, reject) {\n readyPromiseResolve = resolve;\n readyPromiseReject = reject;\n });\n var moduleOverrides = {};\n var key;\n for (key in Module) {if (Module.hasOwnProperty(key)) {moduleOverrides[key] = Module[key];}}\n var arguments_ = [];\n var thisProgram = \"./this.program\";\n var quit_ = function (status, toThrow) {throw toThrow;};\n var ENVIRONMENT_IS_WEB = true;\n var ENVIRONMENT_IS_WORKER = false;\n var ENVIRONMENT_IS_NODE = false;\n var ENVIRONMENT_IS_SHELL = false;\n var scriptDirectory = \"\";\n function locateFile(path) {\n if (Module[\"locateFile\"]) {return Module[\"locateFile\"](path, scriptDirectory);}\n return scriptDirectory + path;\n }\n var read_, readAsync, readBinary, setWindowTitle;\n if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WORKER) {scriptDirectory = self.location.href;} else if (typeof document !== \"undefined\" && document.currentScript) {scriptDirectory = document.currentScript.src;}\n if (_scriptDir) {scriptDirectory = _scriptDir;}\n if (scriptDirectory.indexOf(\"blob:\") !== 0) {scriptDirectory = scriptDirectory.substr(0, scriptDirectory.lastIndexOf(\"/\") + 1);} else {scriptDirectory = \"\";}\n {\n read_ = function (url) {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url, false);\n xhr.send(null);\n return xhr.responseText;\n };\n if (ENVIRONMENT_IS_WORKER) {\n readBinary = function (url) {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url, false);\n xhr.responseType = \"arraybuffer\";\n xhr.send(null);\n return new Uint8Array(xhr.response);\n };\n }\n readAsync = function (url, onload, onerror) {\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"arraybuffer\";\n xhr.onload = function () {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n onload(xhr.response);\n return;\n }\n onerror();\n };\n xhr.onerror = onerror;\n xhr.send(null);\n };\n }\n setWindowTitle = function (title) {document.title = title;};\n } else {}\n var out = Module[\"print\"] || console.log.bind(console);\n var err = Module[\"printErr\"] || console.warn.bind(console);\n for (key in moduleOverrides) {if (moduleOverrides.hasOwnProperty(key)) {Module[key] = moduleOverrides[key];}}\n moduleOverrides = null;\n if (Module[\"arguments\"]) arguments_ = Module[\"arguments\"];\n if (Module[\"thisProgram\"]) thisProgram = Module[\"thisProgram\"];\n if (Module[\"quit\"]) quit_ = Module[\"quit\"];\n var STACK_ALIGN = 16;\n function alignMemory(size, factor) {\n if (!factor) factor = STACK_ALIGN;\n return Math.ceil(size / factor) * factor;\n }\n function warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n }\n function convertJsFunctionToWasm(func, sig) {\n if (typeof WebAssembly.Function === \"function\") {\n var typeNames = { \"i\": \"i32\", \"j\": \"i64\", \"f\": \"f32\", \"d\": \"f64\" };\n var type = { parameters: [], results: sig[0] == \"v\" ? [] : [typeNames[sig[0]]] };\n for (var i = 1; i < sig.length; ++i) {type.parameters.push(typeNames[sig[i]]);}\n return new WebAssembly.Function(type, func);\n }\n var typeSection = [1, 0, 1, 96];\n var sigRet = sig.slice(0, 1);\n var sigParam = sig.slice(1);\n var typeCodes = { \"i\": 127, \"j\": 126, \"f\": 125, \"d\": 124 };\n typeSection.push(sigParam.length);\n for (var i = 0; i < sigParam.length; ++i) {typeSection.push(typeCodes[sigParam[i]]);}\n if (sigRet == \"v\") {typeSection.push(0);} else {typeSection = typeSection.concat([1, typeCodes[sigRet]]);}\n typeSection[1] = typeSection.length - 2;\n var bytes = new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0].concat(typeSection, [2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0]));\n var module = new WebAssembly.Module(bytes);\n var instance = new WebAssembly.Instance(module, { \"e\": { \"f\": func } });\n var wrappedFunc = instance.exports[\"f\"];\n return wrappedFunc;\n }\n var freeTableIndexes = [];\n var functionsInTableMap;\n function getEmptyTableSlot() {\n if (freeTableIndexes.length) {return freeTableIndexes.pop();}\n try {wasmTable.grow(1);} catch (err) {\n if (!(err instanceof RangeError)) {throw err;}\n throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\";\n }\n return wasmTable.length - 1;\n }\n function addFunctionWasm(func, sig) {\n if (!functionsInTableMap) {\n functionsInTableMap = new WeakMap;\n for (var i = 0; i < wasmTable.length; i++) {\n var item = wasmTable.get(i);\n if (item) {functionsInTableMap.set(item, i);}\n }\n }\n if (functionsInTableMap.has(func)) {return functionsInTableMap.get(func);}\n var ret = getEmptyTableSlot();\n try {wasmTable.set(ret, func);} catch (err) {\n if (!(err instanceof TypeError)) {throw err;}\n var wrapped = convertJsFunctionToWasm(func, sig);\n wasmTable.set(ret, wrapped);\n }\n functionsInTableMap.set(func, ret);\n return ret;\n }\n function addFunction(func, sig) {return addFunctionWasm(func, sig);}\n var tempRet0 = 0;\n var setTempRet0 = function (value) {tempRet0 = value;};\n var getTempRet0 = function () {return tempRet0;};\n var wasmBinary;\n if (Module[\"wasmBinary\"]) wasmBinary = Module[\"wasmBinary\"];\n var noExitRuntime = Module[\"noExitRuntime\"] || true;\n if (typeof WebAssembly !== \"object\") {abort(\"no native wasm support detected\");}\n function setValue(ptr, value, type, noSafe) {\n type = type || \"i8\";\n if (type.charAt(type.length - 1) === \"*\") type = \"i32\";\n switch (type) {\n case\"i1\":\n HEAP8[ptr >> 0] = value;\n break;\n case\"i8\":\n HEAP8[ptr >> 0] = value;\n break;\n case\"i16\":\n HEAP16[ptr >> 1] = value;\n break;\n case\"i32\":\n HEAP32[ptr >> 2] = value;\n break;\n case\"i64\":\n tempI64 = [value >>> 0, (tempDouble = value, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];\n break;\n case\"float\":\n HEAPF32[ptr >> 2] = value;\n break;\n case\"double\":\n HEAPF64[ptr >> 3] = value;\n break;\n default:\n abort(\"invalid type for setValue: \" + type);\n }\n }\n function getValue(ptr, type, noSafe) {\n type = type || \"i8\";\n if (type.charAt(type.length - 1) === \"*\") type = \"i32\";\n switch (type) {\n case\"i1\":\n return HEAP8[ptr >> 0];\n case\"i8\":\n return HEAP8[ptr >> 0];\n case\"i16\":\n return HEAP16[ptr >> 1];\n case\"i32\":\n return HEAP32[ptr >> 2];\n case\"i64\":\n return HEAP32[ptr >> 2];\n case\"float\":\n return HEAPF32[ptr >> 2];\n case\"double\":\n return HEAPF64[ptr >> 3];\n default:\n abort(\"invalid type for getValue: \" + type);\n }\n return null;\n }\n var wasmMemory;\n var ABORT = false;\n var EXITSTATUS;\n function assert(condition, text) {if (!condition) {abort(\"Assertion failed: \" + text);}}\n function getCFunc(ident) {\n var func = Module[\"_\" + ident];\n assert(func, \"Cannot call unknown function \" + ident + \", make sure it is exported\");\n return func;\n }\n function ccall(ident, returnType, argTypes, args, opts) {\n var toC = {\n \"string\": function (str) {\n var ret = 0;\n if (str !== null && str !== undefined && str !== 0) {\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n return ret;\n }, \"array\": function (arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n }\n };\n function convertReturnValue(ret) {\n if (returnType === \"string\") return UTF8ToString(ret);\n if (returnType === \"boolean\") return Boolean(ret);\n return ret;\n }\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n if (converter) {\n if (stack === 0) stack = stackSave();\n cArgs[i] = converter(args[i]);\n } else {cArgs[i] = args[i];}\n }\n }\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) stackRestore(stack);\n return ret;\n }\n function cwrap(ident, returnType, argTypes, opts) {\n argTypes = argTypes || [];\n var numericArgs = argTypes.every(function (type) {return type === \"number\";});\n var numericRet = returnType !== \"string\";\n if (numericRet && numericArgs && !opts) {return getCFunc(ident);}\n return function () {return ccall(ident, returnType, argTypes, arguments, opts);};\n }\n var ALLOC_STACK = 1;\n var UTF8Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf8\") : undefined;\n function UTF8ArrayToString(heap, idx, maxBytesToRead) {\n var endIdx = idx + maxBytesToRead;\n var endPtr = idx;\n while (heap[endPtr] && !(endPtr >= endIdx)) ++endPtr;\n if (endPtr - idx > 16 && heap.subarray && UTF8Decoder) {return UTF8Decoder.decode(heap.subarray(idx, endPtr));} else {\n var str = \"\";\n while (idx < endPtr) {\n var u0 = heap[idx++];\n if (!(u0 & 128)) {\n str += String.fromCharCode(u0);\n continue;\n }\n var u1 = heap[idx++] & 63;\n if ((u0 & 224) == 192) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n var u2 = heap[idx++] & 63;\n if ((u0 & 240) == 224) {u0 = (u0 & 15) << 12 | u1 << 6 | u2;} else {u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heap[idx++] & 63;}\n if (u0 < 65536) {str += String.fromCharCode(u0);} else {\n var ch = u0 - 65536;\n str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);\n }\n }\n }\n return str;\n }\n function UTF8ToString(ptr, maxBytesToRead) {return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : \"\";}\n function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) {\n var u1 = str.charCodeAt(++i);\n u = 65536 + ((u & 1023) << 10) | u1 & 1023;\n }\n if (u <= 127) {\n if (outIdx >= endIdx) break;\n heap[outIdx++] = u;\n } else if (u <= 2047) {\n if (outIdx + 1 >= endIdx) break;\n heap[outIdx++] = 192 | u >> 6;\n heap[outIdx++] = 128 | u & 63;\n } else if (u <= 65535) {\n if (outIdx + 2 >= endIdx) break;\n heap[outIdx++] = 224 | u >> 12;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n } else {\n if (outIdx + 3 >= endIdx) break;\n heap[outIdx++] = 240 | u >> 18;\n heap[outIdx++] = 128 | u >> 12 & 63;\n heap[outIdx++] = 128 | u >> 6 & 63;\n heap[outIdx++] = 128 | u & 63;\n }\n }\n heap[outIdx] = 0;\n return outIdx - startIdx;\n }\n function stringToUTF8(str, outPtr, maxBytesToWrite) {return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);}\n function lengthBytesUTF8(str) {\n var len = 0;\n for (var i = 0; i < str.length; ++i) {\n var u = str.charCodeAt(i);\n if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023;\n if (u <= 127) ++len; else if (u <= 2047) len += 2; else if (u <= 65535) len += 3; else len += 4;\n }\n return len;\n }\n var UTF16Decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;\n function stringToUTF16(str, outPtr, maxBytesToWrite) {\n if (maxBytesToWrite === undefined) {maxBytesToWrite = 2147483647;}\n if (maxBytesToWrite < 2) return 0;\n maxBytesToWrite -= 2;\n var startPtr = outPtr;\n var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n for (var i = 0; i < numCharsToWrite; ++i) {\n var codeUnit = str.charCodeAt(i);\n HEAP16[outPtr >> 1] = codeUnit;\n outPtr += 2;\n }\n HEAP16[outPtr >> 1] = 0;\n return outPtr - startPtr;\n }\n function allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = _malloc(size);\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n }\n function writeArrayToMemory(array, buffer) {HEAP8.set(array, buffer);}\n function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {HEAP8[buffer++ >> 0] = str.charCodeAt(i);}\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n }\n function alignUp(x, multiple) {\n if (x % multiple > 0) {x += multiple - x % multiple;}\n return x;\n }\n var buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64;\n function updateGlobalBufferAndViews(buf) {\n buffer = buf;\n Module[\"HEAP8\"] = HEAP8 = new Int8Array(buf);\n Module[\"HEAP16\"] = HEAP16 = new Int16Array(buf);\n Module[\"HEAP32\"] = HEAP32 = new Int32Array(buf);\n Module[\"HEAPU8\"] = HEAPU8 = new Uint8Array(buf);\n Module[\"HEAPU16\"] = HEAPU16 = new Uint16Array(buf);\n Module[\"HEAPU32\"] = HEAPU32 = new Uint32Array(buf);\n Module[\"HEAPF32\"] = HEAPF32 = new Float32Array(buf);\n Module[\"HEAPF64\"] = HEAPF64 = new Float64Array(buf);\n }\n var INITIAL_MEMORY = Module[\"INITIAL_MEMORY\"] || 16777216;\n var wasmTable;\n var __ATPRERUN__ = [];\n var __ATINIT__ = [];\n var __ATMAIN__ = [];\n var __ATPOSTRUN__ = [];\n var runtimeInitialized = false;\n var runtimeExited = false;\n function preRun() {\n if (Module[\"preRun\"]) {\n if (typeof Module[\"preRun\"] == \"function\") Module[\"preRun\"] = [Module[\"preRun\"]];\n while (Module[\"preRun\"].length) {addOnPreRun(Module[\"preRun\"].shift());}\n }\n callRuntimeCallbacks(__ATPRERUN__);\n }\n function initRuntime() {\n runtimeInitialized = true;\n if (!Module[\"noFSInit\"] && !FS.init.initialized) FS.init();\n TTY.init();\n SOCKFS.root = FS.mount(SOCKFS, {}, null);\n callRuntimeCallbacks(__ATINIT__);\n }\n function exitRuntime() {runtimeExited = true;}\n function postRun() {\n if (Module[\"postRun\"]) {\n if (typeof Module[\"postRun\"] == \"function\") Module[\"postRun\"] = [Module[\"postRun\"]];\n while (Module[\"postRun\"].length) {addOnPostRun(Module[\"postRun\"].shift());}\n }\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n function addOnPreRun(cb) {__ATPRERUN__.unshift(cb);}\n function addOnInit(cb) {__ATINIT__.unshift(cb);}\n function addOnPostRun(cb) {__ATPOSTRUN__.unshift(cb);}\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null;\n function getUniqueRunDependency(id) {return id;}\n function addRunDependency(id) {\n runDependencies++;\n if (Module[\"monitorRunDependencies\"]) {Module[\"monitorRunDependencies\"](runDependencies);}\n }\n function removeRunDependency(id) {\n runDependencies--;\n if (Module[\"monitorRunDependencies\"]) {Module[\"monitorRunDependencies\"](runDependencies);}\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback();\n }\n }\n }\n Module[\"preloadedImages\"] = {};\n Module[\"preloadedAudios\"] = {};\n function abort(what) {\n if (Module[\"onAbort\"]) {Module[\"onAbort\"](what);}\n what += \"\";\n err(what);\n ABORT = true;\n EXITSTATUS = 1;\n what = \"abort(\" + what + \"). Build with -s ASSERTIONS=1 for more info.\";\n var e = new WebAssembly.RuntimeError(what);\n readyPromiseReject(e);\n throw e;\n }\n var dataURIPrefix = \"data:application/octet-stream;base64,\";\n function isDataURI(filename) {return filename.startsWith(dataURIPrefix);}\n var wasmBinaryFile = \"dotnet.wasm\";\n if (!isDataURI(wasmBinaryFile)) {wasmBinaryFile = locateFile(wasmBinaryFile);}\n function getBinary(file) {\n try {\n if (file == wasmBinaryFile && wasmBinary) {return new Uint8Array(wasmBinary);}\n if (readBinary) {return readBinary(file);} else {throw\"both async and sync fetching of the wasm failed\";}\n } catch (err) {abort(err);}\n }\n function getBinaryPromise() {\n if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {\n if (typeof fetch === \"function\") {\n return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function (response) {\n if (!response[\"ok\"]) {throw\"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";}\n return response[\"arrayBuffer\"]();\n }).catch(function () {return getBinary(wasmBinaryFile);});\n }\n }\n return Promise.resolve().then(function () {return getBinary(wasmBinaryFile);});\n }\n function createWasm() {\n var info = { \"env\": asmLibraryArg, \"wasi_snapshot_preview1\": asmLibraryArg };\n function receiveInstance(instance, module) {\n var exports = instance.exports;\n Module[\"asm\"] = exports;\n wasmMemory = Module[\"asm\"][\"memory\"];\n updateGlobalBufferAndViews(wasmMemory.buffer);\n wasmTable = Module[\"asm\"][\"__indirect_function_table\"];\n addOnInit(Module[\"asm\"][\"__wasm_call_ctors\"]);\n removeRunDependency(\"wasm-instantiate\");\n }\n addRunDependency(\"wasm-instantiate\");\n function receiveInstantiationResult(result) {receiveInstance(result[\"instance\"]);}\n function instantiateArrayBuffer(receiver) {\n return getBinaryPromise().then(function (binary) {\n var result = WebAssembly.instantiate(binary, info);\n return result;\n }).then(receiver, function (reason) {\n err(\"failed to asynchronously prepare wasm: \" + reason);\n abort(reason);\n });\n }\n function instantiateAsync() {\n if (!wasmBinary && typeof WebAssembly.instantiateStreaming === \"function\" && !isDataURI(wasmBinaryFile) && typeof fetch === \"function\") {\n return fetch(wasmBinaryFile, { credentials: \"same-origin\" }).then(function (response) {\n var result = WebAssembly.instantiateStreaming(response, info);\n return result.then(receiveInstantiationResult, function (reason) {\n err(\"wasm streaming compile failed: \" + reason);\n err(\"falling back to ArrayBuffer instantiation\");\n return instantiateArrayBuffer(receiveInstantiationResult);\n });\n });\n } else {return instantiateArrayBuffer(receiveInstantiationResult);}\n }\n if (Module[\"instantiateWasm\"]) {\n try {\n var exports = Module[\"instantiateWasm\"](info, receiveInstance);\n return exports;\n } catch (e) {\n err(\"Module.instantiateWasm callback failed with error: \" + e);\n return false;\n }\n }\n instantiateAsync().catch(readyPromiseReject);\n return {};\n }\n var tempDouble;\n var tempI64;\n var ASM_CONSTS = {\n 581932: function ($0, $1) {MONO.string_decoder.decode($0, $0 + $1, true);}, 581983: function ($0, $1, $2) {\n var js_str = MONO.string_decoder.copy($0);\n try {\n var res = eval(js_str);\n setValue($2, 0, \"i32\");\n if (res === null || res === undefined) return 0; else res = res.toString();\n } catch (e) {\n res = e.toString();\n setValue($2, 1, \"i32\");\n if (res === null || res === undefined) res = \"unknown exception\";\n var stack = e.stack;\n if (stack) {if (stack.startsWith(res)) res = stack; else res += \"\\n\" + stack;}\n }\n var buff = Module._malloc((res.length + 1) * 2);\n stringToUTF16(res, buff, (res.length + 1) * 2);\n setValue($1, res.length, \"i32\");\n return buff;\n }, 582538: function ($0, $1, $2, $3, $4) {\n var log_level = $0;\n var message = Module.UTF8ToString($1);\n var isFatal = $2;\n var domain = Module.UTF8ToString($3);\n var dataPtr = $4;\n if (MONO[\"logging\"] && MONO.logging[\"trace\"]) {\n MONO.logging.trace(domain, log_level, message, isFatal, dataPtr);\n return;\n }\n if (isFatal) console.trace(message);\n switch (Module.UTF8ToString($0)) {\n case\"critical\":\n case\"error\":\n console.error(message);\n break;\n case\"warning\":\n console.warn(message);\n break;\n case\"message\":\n console.log(message);\n break;\n case\"info\":\n console.info(message);\n break;\n case\"debug\":\n console.debug(message);\n break;\n default:\n console.log(message);\n break;\n }\n }, 583162: function ($0, $1) {\n var level = $0;\n var message = Module.UTF8ToString($1);\n var namespace = \"Debugger.Debug\";\n if (MONO[\"logging\"] && MONO.logging[\"debugger\"]) {\n MONO.logging.debugger(level, message);\n return;\n }\n console.debug(\"%s: %s\", namespace, message);\n }, 583402: function ($0, $1, $2, $3) {MONO.mono_wasm_add_dbg_command_received($0, $1, $2, $3);}, 583464: function ($0, $1, $2, $3) {MONO.mono_wasm_add_dbg_command_received($0, $1, $2, $3);}, 583526: function ($0, $1, $2, $3) {MONO.mono_wasm_add_dbg_command_received($0, $1, $2, $3);}, 583588: function ($0, $1, $2, $3) {MONO.mono_wasm_add_dbg_command_received($0, $1, $2, $3);}, 583650: function ($0, $1) {MONO.mono_wasm_add_dbg_command_received(1, 0, $0, $1);}\n };\n function compile_function(snippet_ptr, len, is_exception) {\n try {\n var data = MONO.string_decoder.decode(snippet_ptr, snippet_ptr + len);\n var wrapper = \"(function () { \" + data + \" })\";\n var funcFactory = eval(wrapper);\n var func = funcFactory();\n if (typeof func !== \"function\") {throw new Error(\"Code must return an instance of a JavaScript function. \" + \"Please use `return` statement to return a function.\");}\n setValue(is_exception, 0, \"i32\");\n return BINDING.js_to_mono_obj(func, true);\n } catch (e) {\n res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || res === undefined) res = \"unknown exception\";\n return BINDING.js_to_mono_obj(res, true);\n }\n }\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n if (typeof callback == \"function\") {\n callback(Module);\n continue;\n }\n var func = callback.func;\n if (typeof func === \"number\") {if (callback.arg === undefined) {wasmTable.get(func)();} else {wasmTable.get(func)(callback.arg);}} else {func(callback.arg === undefined ? null : callback.arg);}\n }\n }\n function demangle(func) {return func;}\n function demangleAll(text) {\n var regex = /\\b_Z[\\w\\d_]+/g;\n return text.replace(regex, function (x) {\n var y = demangle(x);\n return x === y ? x : y + \" [\" + x + \"]\";\n });\n }\n function jsStackTrace() {\n var error = new Error;\n if (!error.stack) {\n try {throw new Error;} catch (e) {error = e;}\n if (!error.stack) {return \"(no stack trace available)\";}\n }\n return error.stack.toString();\n }\n var runtimeKeepaliveCounter = 0;\n function keepRuntimeAlive() {return noExitRuntime || runtimeKeepaliveCounter > 0;}\n function ___assert_fail(condition, filename, line, func) {abort(\"Assertion failed: \" + UTF8ToString(condition) + \", at: \" + [filename ? UTF8ToString(filename) : \"unknown filename\", line, func ? UTF8ToString(func) : \"unknown function\"]);}\n var _emscripten_get_now;\n _emscripten_get_now = function () {return 0;};\n var _emscripten_get_now_is_monotonic = true;\n function setErrNo(value) {\n HEAP32[___errno_location() >> 2] = value;\n return value;\n }\n function _clock_gettime(clk_id, tp) {\n var now;\n if (clk_id === 0) {now = Date.now();} else if ((clk_id === 1 || clk_id === 4) && _emscripten_get_now_is_monotonic) {now = _emscripten_get_now();} else {\n setErrNo(28);\n return -1;\n }\n HEAP32[tp >> 2] = now / 1e3 | 0;\n HEAP32[tp + 4 >> 2] = now % 1e3 * 1e3 * 1e3 | 0;\n return 0;\n }\n function ___clock_gettime(a0, a1) {return _clock_gettime(a0, a1);}\n var ExceptionInfoAttrs = { DESTRUCTOR_OFFSET: 0, REFCOUNT_OFFSET: 4, TYPE_OFFSET: 8, CAUGHT_OFFSET: 12, RETHROWN_OFFSET: 13, SIZE: 16 };\n function ___cxa_allocate_exception(size) {return _malloc(size + ExceptionInfoAttrs.SIZE) + ExceptionInfoAttrs.SIZE;}\n function ExceptionInfo(excPtr) {\n this.excPtr = excPtr;\n this.ptr = excPtr - ExceptionInfoAttrs.SIZE;\n this.set_type = function (type) {HEAP32[this.ptr + ExceptionInfoAttrs.TYPE_OFFSET >> 2] = type;};\n this.get_type = function () {return HEAP32[this.ptr + ExceptionInfoAttrs.TYPE_OFFSET >> 2];};\n this.set_destructor = function (destructor) {HEAP32[this.ptr + ExceptionInfoAttrs.DESTRUCTOR_OFFSET >> 2] = destructor;};\n this.get_destructor = function () {return HEAP32[this.ptr + ExceptionInfoAttrs.DESTRUCTOR_OFFSET >> 2];};\n this.set_refcount = function (refcount) {HEAP32[this.ptr + ExceptionInfoAttrs.REFCOUNT_OFFSET >> 2] = refcount;};\n this.set_caught = function (caught) {\n caught = caught ? 1 : 0;\n HEAP8[this.ptr + ExceptionInfoAttrs.CAUGHT_OFFSET >> 0] = caught;\n };\n this.get_caught = function () {return HEAP8[this.ptr + ExceptionInfoAttrs.CAUGHT_OFFSET >> 0] != 0;};\n this.set_rethrown = function (rethrown) {\n rethrown = rethrown ? 1 : 0;\n HEAP8[this.ptr + ExceptionInfoAttrs.RETHROWN_OFFSET >> 0] = rethrown;\n };\n this.get_rethrown = function () {return HEAP8[this.ptr + ExceptionInfoAttrs.RETHROWN_OFFSET >> 0] != 0;};\n this.init = function (type, destructor) {\n this.set_type(type);\n this.set_destructor(destructor);\n this.set_refcount(0);\n this.set_caught(false);\n this.set_rethrown(false);\n };\n this.add_ref = function () {\n var value = HEAP32[this.ptr + ExceptionInfoAttrs.REFCOUNT_OFFSET >> 2];\n HEAP32[this.ptr + ExceptionInfoAttrs.REFCOUNT_OFFSET >> 2] = value + 1;\n };\n this.release_ref = function () {\n var prev = HEAP32[this.ptr + ExceptionInfoAttrs.REFCOUNT_OFFSET >> 2];\n HEAP32[this.ptr + ExceptionInfoAttrs.REFCOUNT_OFFSET >> 2] = prev - 1;\n return prev === 1;\n };\n }\n function CatchInfo(ptr) {\n this.free = function () {\n _free(this.ptr);\n this.ptr = 0;\n };\n this.set_base_ptr = function (basePtr) {HEAP32[this.ptr >> 2] = basePtr;};\n this.get_base_ptr = function () {return HEAP32[this.ptr >> 2];};\n this.set_adjusted_ptr = function (adjustedPtr) {\n var ptrSize = 4;\n HEAP32[this.ptr + ptrSize >> 2] = adjustedPtr;\n };\n this.get_adjusted_ptr = function () {\n var ptrSize = 4;\n return HEAP32[this.ptr + ptrSize >> 2];\n };\n this.get_exception_ptr = function () {\n var isPointer = ___cxa_is_pointer_type(this.get_exception_info().get_type());\n if (isPointer) {return HEAP32[this.get_base_ptr() >> 2];}\n var adjusted = this.get_adjusted_ptr();\n if (adjusted !== 0) return adjusted;\n return this.get_base_ptr();\n };\n this.get_exception_info = function () {return new ExceptionInfo(this.get_base_ptr());};\n if (ptr === undefined) {\n this.ptr = _malloc(8);\n this.set_adjusted_ptr(0);\n } else {this.ptr = ptr;}\n }\n var exceptionCaught = [];\n function exception_addRef(info) {info.add_ref();}\n var uncaughtExceptionCount = 0;\n function ___cxa_begin_catch(ptr) {\n var catchInfo = new CatchInfo(ptr);\n var info = catchInfo.get_exception_info();\n if (!info.get_caught()) {\n info.set_caught(true);\n uncaughtExceptionCount--;\n }\n info.set_rethrown(false);\n exceptionCaught.push(catchInfo);\n exception_addRef(info);\n return catchInfo.get_exception_ptr();\n }\n var exceptionLast = 0;\n function ___cxa_free_exception(ptr) {return _free(new ExceptionInfo(ptr).ptr);}\n function exception_decRef(info) {\n if (info.release_ref() && !info.get_rethrown()) {\n var destructor = info.get_destructor();\n if (destructor) {wasmTable.get(destructor)(info.excPtr);}\n ___cxa_free_exception(info.excPtr);\n }\n }\n function ___cxa_end_catch() {\n _setThrew(0);\n var catchInfo = exceptionCaught.pop();\n exception_decRef(catchInfo.get_exception_info());\n catchInfo.free();\n exceptionLast = 0;\n }\n function ___resumeException(catchInfoPtr) {\n var catchInfo = new CatchInfo(catchInfoPtr);\n var ptr = catchInfo.get_base_ptr();\n if (!exceptionLast) {exceptionLast = ptr;}\n catchInfo.free();\n throw ptr;\n }\n function ___cxa_find_matching_catch_3() {\n var thrown = exceptionLast;\n if (!thrown) {\n setTempRet0(0);\n return 0 | 0;\n }\n var info = new ExceptionInfo(thrown);\n var thrownType = info.get_type();\n var catchInfo = new CatchInfo;\n catchInfo.set_base_ptr(thrown);\n if (!thrownType) {\n setTempRet0(0);\n return catchInfo.ptr | 0;\n }\n var typeArray = Array.prototype.slice.call(arguments);\n var stackTop = stackSave();\n var exceptionThrowBuf = stackAlloc(4);\n HEAP32[exceptionThrowBuf >> 2] = thrown;\n for (var i = 0; i < typeArray.length; i++) {\n var caughtType = typeArray[i];\n if (caughtType === 0 || caughtType === thrownType) {break;}\n if (___cxa_can_catch(caughtType, thrownType, exceptionThrowBuf)) {\n var adjusted = HEAP32[exceptionThrowBuf >> 2];\n if (thrown !== adjusted) {catchInfo.set_adjusted_ptr(adjusted);}\n setTempRet0(caughtType);\n return catchInfo.ptr | 0;\n }\n }\n stackRestore(stackTop);\n setTempRet0(thrownType);\n return catchInfo.ptr | 0;\n }\n function ___cxa_throw(ptr, type, destructor) {\n var info = new ExceptionInfo(ptr);\n info.init(type, destructor);\n exceptionLast = ptr;\n uncaughtExceptionCount++;\n throw ptr;\n }\n var PATH = {\n splitPath: function (filename) {\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n return splitPathRe.exec(filename).slice(1);\n }, normalizeArray: function (parts, allowAboveRoot) {\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === \".\") {parts.splice(i, 1);} else if (last === \"..\") {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n if (allowAboveRoot) {for (; up; up--) {parts.unshift(\"..\");}}\n return parts;\n }, normalize: function (path) {\n var isAbsolute = path.charAt(0) === \"/\", trailingSlash = path.substr(-1) === \"/\";\n path = PATH.normalizeArray(path.split(\"/\").filter(function (p) {return !!p;}), !isAbsolute).join(\"/\");\n if (!path && !isAbsolute) {path = \".\";}\n if (path && trailingSlash) {path += \"/\";}\n return (isAbsolute ? \"/\" : \"\") + path;\n }, dirname: function (path) {\n var result = PATH.splitPath(path), root = result[0], dir = result[1];\n if (!root && !dir) {return \".\";}\n if (dir) {dir = dir.substr(0, dir.length - 1);}\n return root + dir;\n }, basename: function (path) {\n if (path === \"/\") return \"/\";\n path = PATH.normalize(path);\n path = path.replace(/\\/$/, \"\");\n var lastSlash = path.lastIndexOf(\"/\");\n if (lastSlash === -1) return path;\n return path.substr(lastSlash + 1);\n }, extname: function (path) {return PATH.splitPath(path)[3];}, join: function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return PATH.normalize(paths.join(\"/\"));\n }, join2: function (l, r) {return PATH.normalize(l + \"/\" + r);}\n };\n function getRandomDevice() {\n if (typeof crypto === \"object\" && typeof crypto[\"getRandomValues\"] === \"function\") {\n var randomBuffer = new Uint8Array(1);\n return function () {\n crypto.getRandomValues(randomBuffer);\n return randomBuffer[0];\n };\n } else return function () {abort(\"randomDevice\");};\n }\n var PATH_FS = {\n resolve: function () {\n var resolvedPath = \"\", resolvedAbsolute = false;\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : FS.cwd();\n if (typeof path !== \"string\") {throw new TypeError(\"Arguments to path.resolve must be strings\");} else if (!path) {return \"\";}\n resolvedPath = path + \"/\" + resolvedPath;\n resolvedAbsolute = path.charAt(0) === \"/\";\n }\n resolvedPath = PATH.normalizeArray(resolvedPath.split(\"/\").filter(function (p) {return !!p;}), !resolvedAbsolute).join(\"/\");\n return (resolvedAbsolute ? \"/\" : \"\") + resolvedPath || \".\";\n }, relative: function (from, to) {\n from = PATH_FS.resolve(from).substr(1);\n to = PATH_FS.resolve(to).substr(1);\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {if (arr[start] !== \"\") break;}\n var end = arr.length - 1;\n for (; end >= 0; end--) {if (arr[end] !== \"\") break;}\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n var fromParts = trim(from.split(\"/\"));\n var toParts = trim(to.split(\"/\"));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {outputParts.push(\"..\");}\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join(\"/\");\n }\n };\n var TTY = {\n ttys: [], init: function () {}, shutdown: function () {}, register: function (dev, ops) {\n TTY.ttys[dev] = { input: [], output: [], ops: ops };\n FS.registerDevice(dev, TTY.stream_ops);\n }, stream_ops: {\n open: function (stream) {\n var tty = TTY.ttys[stream.node.rdev];\n if (!tty) {throw new FS.ErrnoError(43);}\n stream.tty = tty;\n stream.seekable = false;\n }, close: function (stream) {stream.tty.ops.flush(stream.tty);}, flush: function (stream) {stream.tty.ops.flush(stream.tty);}, read: function (stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.get_char) {throw new FS.ErrnoError(60);}\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {result = stream.tty.ops.get_char(stream.tty);} catch (e) {throw new FS.ErrnoError(29);}\n if (result === undefined && bytesRead === 0) {throw new FS.ErrnoError(6);}\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {stream.node.timestamp = Date.now();}\n return bytesRead;\n }, write: function (stream, buffer, offset, length, pos) {\n if (!stream.tty || !stream.tty.ops.put_char) {throw new FS.ErrnoError(60);}\n 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);}\n if (length) {stream.node.timestamp = Date.now();}\n return i;\n }\n }, default_tty_ops: {\n get_char: function (tty) {\n if (!tty.input.length) {\n var result = null;\n if (typeof window != \"undefined\" && typeof window.prompt == \"function\") {\n result = window.prompt(\"Input: \");\n if (result !== null) {result += \"\\n\";}\n } else if (typeof readline == \"function\") {\n result = readline();\n if (result !== null) {result += \"\\n\";}\n }\n if (!result) {return null;}\n tty.input = intArrayFromString(result, true);\n }\n return tty.input.shift();\n }, put_char: function (tty, val) {\n if (val === null || val === 10) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {if (val != 0) tty.output.push(val);}\n }, flush: function (tty) {\n if (tty.output && tty.output.length > 0) {\n out(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n }, default_tty1_ops: {\n put_char: function (tty, val) {\n if (val === null || val === 10) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n } else {if (val != 0) tty.output.push(val);}\n }, flush: function (tty) {\n if (tty.output && tty.output.length > 0) {\n err(UTF8ArrayToString(tty.output, 0));\n tty.output = [];\n }\n }\n }\n };\n function mmapAlloc(size) {\n var alignedSize = alignMemory(size, 65536);\n var ptr = _malloc(alignedSize);\n while (size < alignedSize) HEAP8[ptr + size++] = 0;\n return ptr;\n }\n var MEMFS = {\n ops_table: null, mount: function (mount) {return MEMFS.createNode(null, \"/\", 16384 | 511, 0);}, createNode: function (parent, name, mode, dev) {\n if (FS.isBlkdev(mode) || FS.isFIFO(mode)) {throw new FS.ErrnoError(63);}\n if (!MEMFS.ops_table) {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, allocate: MEMFS.stream_ops.allocate, 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 } };}\n var node = FS.createNode(parent, name, mode, dev);\n if (FS.isDir(node.mode)) {\n node.node_ops = MEMFS.ops_table.dir.node;\n node.stream_ops = MEMFS.ops_table.dir.stream;\n node.contents = {};\n } else if (FS.isFile(node.mode)) {\n node.node_ops = MEMFS.ops_table.file.node;\n node.stream_ops = MEMFS.ops_table.file.stream;\n node.usedBytes = 0;\n node.contents = null;\n } else if (FS.isLink(node.mode)) {\n node.node_ops = MEMFS.ops_table.link.node;\n node.stream_ops = MEMFS.ops_table.link.stream;\n } else if (FS.isChrdev(node.mode)) {\n node.node_ops = MEMFS.ops_table.chrdev.node;\n node.stream_ops = MEMFS.ops_table.chrdev.stream;\n }\n node.timestamp = Date.now();\n if (parent) {\n parent.contents[name] = node;\n parent.timestamp = node.timestamp;\n }\n return node;\n }, getFileDataAsTypedArray: function (node) {\n if (!node.contents) return new Uint8Array(0);\n if (node.contents.subarray) return node.contents.subarray(0, node.usedBytes);\n return new Uint8Array(node.contents);\n }, expandFileStorage: function (node, newCapacity) {\n var prevCapacity = node.contents ? node.contents.length : 0;\n if (prevCapacity >= newCapacity) return;\n var CAPACITY_DOUBLING_MAX = 1024 * 1024;\n newCapacity = Math.max(newCapacity, prevCapacity * (prevCapacity < CAPACITY_DOUBLING_MAX ? 2 : 1.125) >>> 0);\n if (prevCapacity != 0) newCapacity = Math.max(newCapacity, 256);\n var oldContents = node.contents;\n node.contents = new Uint8Array(newCapacity);\n if (node.usedBytes > 0) node.contents.set(oldContents.subarray(0, node.usedBytes), 0);\n }, resizeFileStorage: function (node, newSize) {\n if (node.usedBytes == newSize) return;\n if (newSize == 0) {\n node.contents = null;\n node.usedBytes = 0;\n } else {\n var oldContents = node.contents;\n node.contents = new Uint8Array(newSize);\n if (oldContents) {node.contents.set(oldContents.subarray(0, Math.min(newSize, node.usedBytes)));}\n node.usedBytes = newSize;\n }\n }, node_ops: {\n getattr: function (node) {\n var attr = {};\n attr.dev = FS.isChrdev(node.mode) ? node.id : 1;\n attr.ino = node.id;\n attr.mode = node.mode;\n attr.nlink = 1;\n attr.uid = 0;\n attr.gid = 0;\n attr.rdev = node.rdev;\n 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;}\n attr.atime = new Date(node.timestamp);\n attr.mtime = new Date(node.timestamp);\n attr.ctime = new Date(node.timestamp);\n attr.blksize = 4096;\n attr.blocks = Math.ceil(attr.size / attr.blksize);\n return attr;\n }, setattr: function (node, attr) {\n if (attr.mode !== undefined) {node.mode = attr.mode;}\n if (attr.timestamp !== undefined) {node.timestamp = attr.timestamp;}\n if (attr.size !== undefined) {MEMFS.resizeFileStorage(node, attr.size);}\n }, lookup: function (parent, name) {throw FS.genericErrors[44];}, mknod: function (parent, name, mode, dev) {return MEMFS.createNode(parent, name, mode, dev);}, rename: function (old_node, new_dir, new_name) {\n if (FS.isDir(old_node.mode)) {\n var new_node;\n try {new_node = FS.lookupNode(new_dir, new_name);} catch (e) {}\n if (new_node) {for (var i in new_node.contents) {throw new FS.ErrnoError(55);}}\n }\n delete old_node.parent.contents[old_node.name];\n old_node.parent.timestamp = Date.now();\n old_node.name = new_name;\n new_dir.contents[new_name] = old_node;\n new_dir.timestamp = old_node.parent.timestamp;\n old_node.parent = new_dir;\n }, unlink: function (parent, name) {\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, rmdir: function (parent, name) {\n var node = FS.lookupNode(parent, name);\n for (var i in node.contents) {throw new FS.ErrnoError(55);}\n delete parent.contents[name];\n parent.timestamp = Date.now();\n }, readdir: function (node) {\n var entries = [\".\", \"..\"];\n for (var key in node.contents) {\n if (!node.contents.hasOwnProperty(key)) {continue;}\n entries.push(key);\n }\n return entries;\n }, symlink: function (parent, newname, oldpath) {\n var node = MEMFS.createNode(parent, newname, 511 | 40960, 0);\n node.link = oldpath;\n return node;\n }, readlink: function (node) {\n if (!FS.isLink(node.mode)) {throw new FS.ErrnoError(28);}\n return node.link;\n }\n }, stream_ops: {\n read: function (stream, buffer, offset, length, position) {\n var contents = stream.node.contents;\n if (position >= stream.node.usedBytes) return 0;\n var size = Math.min(stream.node.usedBytes - position, length);\n 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];}\n return size;\n }, write: function (stream, buffer, offset, length, position, canOwn) {\n if (buffer.buffer === HEAP8.buffer) {canOwn = false;}\n if (!length) return 0;\n var node = stream.node;\n node.timestamp = Date.now();\n if (buffer.subarray && (!node.contents || node.contents.subarray)) {\n if (canOwn) {\n node.contents = buffer.subarray(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (node.usedBytes === 0 && position === 0) {\n node.contents = buffer.slice(offset, offset + length);\n node.usedBytes = length;\n return length;\n } else if (position + length <= node.usedBytes) {\n node.contents.set(buffer.subarray(offset, offset + length), position);\n return length;\n }\n }\n MEMFS.expandFileStorage(node, position + length);\n 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];}}\n node.usedBytes = Math.max(node.usedBytes, position + length);\n return length;\n }, llseek: function (stream, offset, whence) {\n var position = offset;\n if (whence === 1) {position += stream.position;} else if (whence === 2) {if (FS.isFile(stream.node.mode)) {position += stream.node.usedBytes;}}\n if (position < 0) {throw new FS.ErrnoError(28);}\n return position;\n }, allocate: function (stream, offset, length) {\n MEMFS.expandFileStorage(stream.node, offset + length);\n stream.node.usedBytes = Math.max(stream.node.usedBytes, offset + length);\n }, mmap: function (stream, address, length, position, prot, flags) {\n if (address !== 0) {throw new FS.ErrnoError(28);}\n if (!FS.isFile(stream.node.mode)) {throw new FS.ErrnoError(43);}\n var ptr;\n var allocated;\n var contents = stream.node.contents;\n if (!(flags & 2) && contents.buffer === buffer) {\n allocated = false;\n ptr = contents.byteOffset;\n } else {\n 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);}}\n allocated = true;\n ptr = mmapAlloc(length);\n if (!ptr) {throw new FS.ErrnoError(48);}\n HEAP8.set(contents, ptr);\n }\n return { ptr: ptr, allocated: allocated };\n }, msync: function (stream, buffer, offset, length, mmapFlags) {\n if (!FS.isFile(stream.node.mode)) {throw new FS.ErrnoError(43);}\n if (mmapFlags & 2) {return 0;}\n var bytesWritten = MEMFS.stream_ops.write(stream, buffer, 0, length, offset, false);\n return 0;\n }\n }\n };\n var FS = {\n root: null, mounts: [], devices: {}, streams: [], nextInode: 1, nameTable: null, currentPath: \"/\", initialized: false, ignorePermissions: true, trackingDelegate: {}, tracking: { openFlags: { READ: 1, WRITE: 2 } }, ErrnoError: null, genericErrors: {}, filesystems: null, syncFSRequests: 0, lookupPath: function (path, opts) {\n path = PATH_FS.resolve(FS.cwd(), path);\n opts = opts || {};\n if (!path) return { path: \"\", node: null };\n var defaults = { follow_mount: true, recurse_count: 0 };\n for (var key in defaults) {if (opts[key] === undefined) {opts[key] = defaults[key];}}\n if (opts.recurse_count > 8) {throw new FS.ErrnoError(32);}\n var parts = PATH.normalizeArray(path.split(\"/\").filter(function (p) {return !!p;}), false);\n var current = FS.root;\n var current_path = \"/\";\n for (var i = 0; i < parts.length; i++) {\n var islast = i === parts.length - 1;\n if (islast && opts.parent) {break;}\n current = FS.lookupNode(current, parts[i]);\n current_path = PATH.join2(current_path, parts[i]);\n if (FS.isMountpoint(current)) {if (!islast || islast && opts.follow_mount) {current = current.mounted.root;}}\n if (!islast || opts.follow) {\n var count = 0;\n while (FS.isLink(current.mode)) {\n var link = FS.readlink(current_path);\n current_path = PATH_FS.resolve(PATH.dirname(current_path), link);\n var lookup = FS.lookupPath(current_path, { recurse_count: opts.recurse_count });\n current = lookup.node;\n if (count++ > 40) {throw new FS.ErrnoError(32);}\n }\n }\n }\n return { path: current_path, node: current };\n }, getPath: function (node) {\n var path;\n while (true) {\n if (FS.isRoot(node)) {\n var mount = node.mount.mountpoint;\n if (!path) return mount;\n return mount[mount.length - 1] !== \"/\" ? mount + \"/\" + path : mount + path;\n }\n path = path ? node.name + \"/\" + path : node.name;\n node = node.parent;\n }\n }, hashName: function (parentid, name) {\n var hash = 0;\n for (var i = 0; i < name.length; i++) {hash = (hash << 5) - hash + name.charCodeAt(i) | 0;}\n return (parentid + hash >>> 0) % FS.nameTable.length;\n }, hashAddNode: function (node) {\n var hash = FS.hashName(node.parent.id, node.name);\n node.name_next = FS.nameTable[hash];\n FS.nameTable[hash] = node;\n }, hashRemoveNode: function (node) {\n var hash = FS.hashName(node.parent.id, node.name);\n if (FS.nameTable[hash] === node) {FS.nameTable[hash] = node.name_next;} else {\n var current = FS.nameTable[hash];\n while (current) {\n if (current.name_next === node) {\n current.name_next = node.name_next;\n break;\n }\n current = current.name_next;\n }\n }\n }, lookupNode: function (parent, name) {\n var errCode = FS.mayLookup(parent);\n if (errCode) {throw new FS.ErrnoError(errCode, parent);}\n var hash = FS.hashName(parent.id, name);\n for (var node = FS.nameTable[hash]; node; node = node.name_next) {\n var nodeName = node.name;\n if (node.parent.id === parent.id && nodeName === name) {return node;}\n }\n return FS.lookup(parent, name);\n }, createNode: function (parent, name, mode, rdev) {\n var node = new FS.FSNode(parent, name, mode, rdev);\n FS.hashAddNode(node);\n return node;\n }, destroyNode: function (node) {FS.hashRemoveNode(node);}, isRoot: function (node) {return node === node.parent;}, isMountpoint: function (node) {return !!node.mounted;}, isFile: function (mode) {return (mode & 61440) === 32768;}, isDir: function (mode) {return (mode & 61440) === 16384;}, isLink: function (mode) {return (mode & 61440) === 40960;}, isChrdev: function (mode) {return (mode & 61440) === 8192;}, isBlkdev: function (mode) {return (mode & 61440) === 24576;}, isFIFO: function (mode) {return (mode & 61440) === 4096;}, isSocket: function (mode) {return (mode & 49152) === 49152;}, flagModes: { \"r\": 0, \"r+\": 2, \"w\": 577, \"w+\": 578, \"a\": 1089, \"a+\": 1090 }, modeStringToFlags: function (str) {\n var flags = FS.flagModes[str];\n if (typeof flags === \"undefined\") {throw new Error(\"Unknown file open mode: \" + str);}\n return flags;\n }, flagsToPermissionString: function (flag) {\n var perms = [\"r\", \"w\", \"rw\"][flag & 3];\n if (flag & 512) {perms += \"w\";}\n return perms;\n }, nodePermissions: function (node, perms) {\n if (FS.ignorePermissions) {return 0;}\n 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;}\n return 0;\n }, mayLookup: function (dir) {\n var errCode = FS.nodePermissions(dir, \"x\");\n if (errCode) return errCode;\n if (!dir.node_ops.lookup) return 2;\n return 0;\n }, mayCreate: function (dir, name) {\n try {\n var node = FS.lookupNode(dir, name);\n return 20;\n } catch (e) {}\n return FS.nodePermissions(dir, \"wx\");\n }, mayDelete: function (dir, name, isdir) {\n var node;\n try {node = FS.lookupNode(dir, name);} catch (e) {return e.errno;}\n var errCode = FS.nodePermissions(dir, \"wx\");\n if (errCode) {return errCode;}\n if (isdir) {\n if (!FS.isDir(node.mode)) {return 54;}\n if (FS.isRoot(node) || FS.getPath(node) === FS.cwd()) {return 10;}\n } else {if (FS.isDir(node.mode)) {return 31;}}\n return 0;\n }, mayOpen: function (node, flags) {\n if (!node) {return 44;}\n if (FS.isLink(node.mode)) {return 32;} else if (FS.isDir(node.mode)) {if (FS.flagsToPermissionString(flags) !== \"r\" || flags & 512) {return 31;}}\n return FS.nodePermissions(node, FS.flagsToPermissionString(flags));\n }, MAX_OPEN_FDS: 4096, nextfd: function (fd_start, fd_end) {\n fd_start = fd_start || 0;\n fd_end = fd_end || FS.MAX_OPEN_FDS;\n for (var fd = fd_start; fd <= fd_end; fd++) {if (!FS.streams[fd]) {return fd;}}\n throw new FS.ErrnoError(33);\n }, getStream: function (fd) {return FS.streams[fd];}, createStream: function (stream, fd_start, fd_end) {\n if (!FS.FSStream) {\n FS.FSStream = function () {};\n FS.FSStream.prototype = { object: { get: function () {return this.node;}, set: function (val) {this.node = val;} }, isRead: { get: function () {return (this.flags & 2097155) !== 1;} }, isWrite: { get: function () {return (this.flags & 2097155) !== 0;} }, isAppend: { get: function () {return this.flags & 1024;} } };\n }\n var newStream = new FS.FSStream;\n for (var p in stream) {newStream[p] = stream[p];}\n stream = newStream;\n var fd = FS.nextfd(fd_start, fd_end);\n stream.fd = fd;\n FS.streams[fd] = stream;\n return stream;\n }, closeStream: function (fd) {FS.streams[fd] = null;}, chrdev_stream_ops: {\n open: function (stream) {\n var device = FS.getDevice(stream.node.rdev);\n stream.stream_ops = device.stream_ops;\n if (stream.stream_ops.open) {stream.stream_ops.open(stream);}\n }, llseek: function () {throw new FS.ErrnoError(70);}\n }, major: function (dev) {return dev >> 8;}, minor: function (dev) {return dev & 255;}, makedev: function (ma, mi) {return ma << 8 | mi;}, registerDevice: function (dev, ops) {FS.devices[dev] = { stream_ops: ops };}, getDevice: function (dev) {return FS.devices[dev];}, getMounts: function (mount) {\n var mounts = [];\n var check = [mount];\n while (check.length) {\n var m = check.pop();\n mounts.push(m);\n check.push.apply(check, m.mounts);\n }\n return mounts;\n }, syncfs: function (populate, callback) {\n if (typeof populate === \"function\") {\n callback = populate;\n populate = false;\n }\n FS.syncFSRequests++;\n if (FS.syncFSRequests > 1) {err(\"warning: \" + FS.syncFSRequests + \" FS.syncfs operations in flight at once, probably just doing extra work\");}\n var mounts = FS.getMounts(FS.root.mount);\n var completed = 0;\n function doCallback(errCode) {\n FS.syncFSRequests--;\n return callback(errCode);\n }\n function done(errCode) {\n if (errCode) {\n if (!done.errored) {\n done.errored = true;\n return doCallback(errCode);\n }\n return;\n }\n if (++completed >= mounts.length) {doCallback(null);}\n }\n mounts.forEach(function (mount) {\n if (!mount.type.syncfs) {return done(null);}\n mount.type.syncfs(mount, populate, done);\n });\n }, mount: function (type, opts, mountpoint) {\n var root = mountpoint === \"/\";\n var pseudo = !mountpoint;\n var node;\n if (root && FS.root) {throw new FS.ErrnoError(10);} else if (!root && !pseudo) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n mountpoint = lookup.path;\n node = lookup.node;\n if (FS.isMountpoint(node)) {throw new FS.ErrnoError(10);}\n if (!FS.isDir(node.mode)) {throw new FS.ErrnoError(54);}\n }\n var mount = { type: type, opts: opts, mountpoint: mountpoint, mounts: [] };\n var mountRoot = type.mount(mount);\n mountRoot.mount = mount;\n mount.root = mountRoot;\n if (root) {FS.root = mountRoot;} else if (node) {\n node.mounted = mount;\n if (node.mount) {node.mount.mounts.push(mount);}\n }\n return mountRoot;\n }, unmount: function (mountpoint) {\n var lookup = FS.lookupPath(mountpoint, { follow_mount: false });\n if (!FS.isMountpoint(lookup.node)) {throw new FS.ErrnoError(28);}\n var node = lookup.node;\n var mount = node.mounted;\n var mounts = FS.getMounts(mount);\n Object.keys(FS.nameTable).forEach(function (hash) {\n var current = FS.nameTable[hash];\n while (current) {\n var next = current.name_next;\n if (mounts.includes(current.mount)) {FS.destroyNode(current);}\n current = next;\n }\n });\n node.mounted = null;\n var idx = node.mount.mounts.indexOf(mount);\n node.mount.mounts.splice(idx, 1);\n }, lookup: function (parent, name) {return parent.node_ops.lookup(parent, name);}, mknod: function (path, mode, dev) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n if (!name || name === \".\" || name === \"..\") {throw new FS.ErrnoError(28);}\n var errCode = FS.mayCreate(parent, name);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n if (!parent.node_ops.mknod) {throw new FS.ErrnoError(63);}\n return parent.node_ops.mknod(parent, name, mode, dev);\n }, create: function (path, mode) {\n mode = mode !== undefined ? mode : 438;\n mode &= 4095;\n mode |= 32768;\n return FS.mknod(path, mode, 0);\n }, mkdir: function (path, mode) {\n mode = mode !== undefined ? mode : 511;\n mode &= 511 | 512;\n mode |= 16384;\n return FS.mknod(path, mode, 0);\n }, mkdirTree: function (path, mode) {\n var dirs = path.split(\"/\");\n var d = \"\";\n for (var i = 0; i < dirs.length; ++i) {\n if (!dirs[i]) continue;\n d += \"/\" + dirs[i];\n try {FS.mkdir(d, mode);} catch (e) {if (e.errno != 20) throw e;}\n }\n }, mkdev: function (path, mode, dev) {\n if (typeof dev === \"undefined\") {\n dev = mode;\n mode = 438;\n }\n mode |= 8192;\n return FS.mknod(path, mode, dev);\n }, symlink: function (oldpath, newpath) {\n if (!PATH_FS.resolve(oldpath)) {throw new FS.ErrnoError(44);}\n var lookup = FS.lookupPath(newpath, { parent: true });\n var parent = lookup.node;\n if (!parent) {throw new FS.ErrnoError(44);}\n var newname = PATH.basename(newpath);\n var errCode = FS.mayCreate(parent, newname);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n if (!parent.node_ops.symlink) {throw new FS.ErrnoError(63);}\n return parent.node_ops.symlink(parent, newname, oldpath);\n }, rename: function (old_path, new_path) {\n var old_dirname = PATH.dirname(old_path);\n var new_dirname = PATH.dirname(new_path);\n var old_name = PATH.basename(old_path);\n var new_name = PATH.basename(new_path);\n var lookup, old_dir, new_dir;\n lookup = FS.lookupPath(old_path, { parent: true });\n old_dir = lookup.node;\n lookup = FS.lookupPath(new_path, { parent: true });\n new_dir = lookup.node;\n if (!old_dir || !new_dir) throw new FS.ErrnoError(44);\n if (old_dir.mount !== new_dir.mount) {throw new FS.ErrnoError(75);}\n var old_node = FS.lookupNode(old_dir, old_name);\n var relative = PATH_FS.relative(old_path, new_dirname);\n if (relative.charAt(0) !== \".\") {throw new FS.ErrnoError(28);}\n relative = PATH_FS.relative(new_path, old_dirname);\n if (relative.charAt(0) !== \".\") {throw new FS.ErrnoError(55);}\n var new_node;\n try {new_node = FS.lookupNode(new_dir, new_name);} catch (e) {}\n if (old_node === new_node) {return;}\n var isdir = FS.isDir(old_node.mode);\n var errCode = FS.mayDelete(old_dir, old_name, isdir);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n errCode = new_node ? FS.mayDelete(new_dir, new_name, isdir) : FS.mayCreate(new_dir, new_name);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n if (!old_dir.node_ops.rename) {throw new FS.ErrnoError(63);}\n if (FS.isMountpoint(old_node) || new_node && FS.isMountpoint(new_node)) {throw new FS.ErrnoError(10);}\n if (new_dir !== old_dir) {\n errCode = FS.nodePermissions(old_dir, \"w\");\n if (errCode) {throw new FS.ErrnoError(errCode);}\n }\n try {if (FS.trackingDelegate[\"willMovePath\"]) {FS.trackingDelegate[\"willMovePath\"](old_path, new_path);}} catch (e) {err(\"FS.trackingDelegate['willMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);}\n FS.hashRemoveNode(old_node);\n try {old_dir.node_ops.rename(old_node, new_dir, new_name);} catch (e) {throw e;} finally {FS.hashAddNode(old_node);}\n try {if (FS.trackingDelegate[\"onMovePath\"]) FS.trackingDelegate[\"onMovePath\"](old_path, new_path);} catch (e) {err(\"FS.trackingDelegate['onMovePath']('\" + old_path + \"', '\" + new_path + \"') threw an exception: \" + e.message);}\n }, rmdir: function (path) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, true);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n if (!parent.node_ops.rmdir) {throw new FS.ErrnoError(63);}\n if (FS.isMountpoint(node)) {throw new FS.ErrnoError(10);}\n try {if (FS.trackingDelegate[\"willDeletePath\"]) {FS.trackingDelegate[\"willDeletePath\"](path);}} catch (e) {err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);}\n parent.node_ops.rmdir(parent, name);\n FS.destroyNode(node);\n try {if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);} catch (e) {err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);}\n }, readdir: function (path) {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n if (!node.node_ops.readdir) {throw new FS.ErrnoError(54);}\n return node.node_ops.readdir(node);\n }, unlink: function (path) {\n var lookup = FS.lookupPath(path, { parent: true });\n var parent = lookup.node;\n var name = PATH.basename(path);\n var node = FS.lookupNode(parent, name);\n var errCode = FS.mayDelete(parent, name, false);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n if (!parent.node_ops.unlink) {throw new FS.ErrnoError(63);}\n if (FS.isMountpoint(node)) {throw new FS.ErrnoError(10);}\n try {if (FS.trackingDelegate[\"willDeletePath\"]) {FS.trackingDelegate[\"willDeletePath\"](path);}} catch (e) {err(\"FS.trackingDelegate['willDeletePath']('\" + path + \"') threw an exception: \" + e.message);}\n parent.node_ops.unlink(parent, name);\n FS.destroyNode(node);\n try {if (FS.trackingDelegate[\"onDeletePath\"]) FS.trackingDelegate[\"onDeletePath\"](path);} catch (e) {err(\"FS.trackingDelegate['onDeletePath']('\" + path + \"') threw an exception: \" + e.message);}\n }, readlink: function (path) {\n var lookup = FS.lookupPath(path);\n var link = lookup.node;\n if (!link) {throw new FS.ErrnoError(44);}\n if (!link.node_ops.readlink) {throw new FS.ErrnoError(28);}\n return PATH_FS.resolve(FS.getPath(link.parent), link.node_ops.readlink(link));\n }, stat: function (path, dontFollow) {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n var node = lookup.node;\n if (!node) {throw new FS.ErrnoError(44);}\n if (!node.node_ops.getattr) {throw new FS.ErrnoError(63);}\n return node.node_ops.getattr(node);\n }, lstat: function (path) {return FS.stat(path, true);}, chmod: function (path, mode, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {node = path;}\n if (!node.node_ops.setattr) {throw new FS.ErrnoError(63);}\n node.node_ops.setattr(node, { mode: mode & 4095 | node.mode & ~4095, timestamp: Date.now() });\n }, lchmod: function (path, mode) {FS.chmod(path, mode, true);}, fchmod: function (fd, mode) {\n var stream = FS.getStream(fd);\n if (!stream) {throw new FS.ErrnoError(8);}\n FS.chmod(stream.node, mode);\n }, chown: function (path, uid, gid, dontFollow) {\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, { follow: !dontFollow });\n node = lookup.node;\n } else {node = path;}\n if (!node.node_ops.setattr) {throw new FS.ErrnoError(63);}\n node.node_ops.setattr(node, { timestamp: Date.now() });\n }, lchown: function (path, uid, gid) {FS.chown(path, uid, gid, true);}, fchown: function (fd, uid, gid) {\n var stream = FS.getStream(fd);\n if (!stream) {throw new FS.ErrnoError(8);}\n FS.chown(stream.node, uid, gid);\n }, truncate: function (path, len) {\n if (len < 0) {throw new FS.ErrnoError(28);}\n var node;\n if (typeof path === \"string\") {\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n } else {node = path;}\n if (!node.node_ops.setattr) {throw new FS.ErrnoError(63);}\n if (FS.isDir(node.mode)) {throw new FS.ErrnoError(31);}\n if (!FS.isFile(node.mode)) {throw new FS.ErrnoError(28);}\n var errCode = FS.nodePermissions(node, \"w\");\n if (errCode) {throw new FS.ErrnoError(errCode);}\n node.node_ops.setattr(node, { size: len, timestamp: Date.now() });\n }, ftruncate: function (fd, len) {\n var stream = FS.getStream(fd);\n if (!stream) {throw new FS.ErrnoError(8);}\n if ((stream.flags & 2097155) === 0) {throw new FS.ErrnoError(28);}\n FS.truncate(stream.node, len);\n }, utime: function (path, atime, mtime) {\n var lookup = FS.lookupPath(path, { follow: true });\n var node = lookup.node;\n node.node_ops.setattr(node, { timestamp: Math.max(atime, mtime) });\n }, open: function (path, flags, mode, fd_start, fd_end) {\n if (path === \"\") {throw new FS.ErrnoError(44);}\n flags = typeof flags === \"string\" ? FS.modeStringToFlags(flags) : flags;\n mode = typeof mode === \"undefined\" ? 438 : mode;\n if (flags & 64) {mode = mode & 4095 | 32768;} else {mode = 0;}\n var node;\n if (typeof path === \"object\") {node = path;} else {\n path = PATH.normalize(path);\n try {\n var lookup = FS.lookupPath(path, { follow: !(flags & 131072) });\n node = lookup.node;\n } catch (e) {}\n }\n var created = false;\n if (flags & 64) {\n if (node) {if (flags & 128) {throw new FS.ErrnoError(20);}} else {\n node = FS.mknod(path, mode, 0);\n created = true;\n }\n }\n if (!node) {throw new FS.ErrnoError(44);}\n if (FS.isChrdev(node.mode)) {flags &= ~512;}\n if (flags & 65536 && !FS.isDir(node.mode)) {throw new FS.ErrnoError(54);}\n if (!created) {\n var errCode = FS.mayOpen(node, flags);\n if (errCode) {throw new FS.ErrnoError(errCode);}\n }\n if (flags & 512) {FS.truncate(node, 0);}\n flags &= ~(128 | 512 | 131072);\n var stream = FS.createStream({ node: node, path: FS.getPath(node), flags: flags, seekable: true, position: 0, stream_ops: node.stream_ops, ungotten: [], error: false }, fd_start, fd_end);\n if (stream.stream_ops.open) {stream.stream_ops.open(stream);}\n if (Module[\"logReadFiles\"] && !(flags & 1)) {\n if (!FS.readFiles) FS.readFiles = {};\n if (!(path in FS.readFiles)) {\n FS.readFiles[path] = 1;\n err(\"FS.trackingDelegate error on read file: \" + path);\n }\n }\n try {\n if (FS.trackingDelegate[\"onOpenFile\"]) {\n var trackingFlags = 0;\n if ((flags & 2097155) !== 1) {trackingFlags |= FS.tracking.openFlags.READ;}\n if ((flags & 2097155) !== 0) {trackingFlags |= FS.tracking.openFlags.WRITE;}\n FS.trackingDelegate[\"onOpenFile\"](path, trackingFlags);\n }\n } catch (e) {err(\"FS.trackingDelegate['onOpenFile']('\" + path + \"', flags) threw an exception: \" + e.message);}\n return stream;\n }, close: function (stream) {\n if (FS.isClosed(stream)) {throw new FS.ErrnoError(8);}\n if (stream.getdents) stream.getdents = null;\n try {if (stream.stream_ops.close) {stream.stream_ops.close(stream);}} catch (e) {throw e;} finally {FS.closeStream(stream.fd);}\n stream.fd = null;\n }, isClosed: function (stream) {return stream.fd === null;}, llseek: function (stream, offset, whence) {\n if (FS.isClosed(stream)) {throw new FS.ErrnoError(8);}\n if (!stream.seekable || !stream.stream_ops.llseek) {throw new FS.ErrnoError(70);}\n if (whence != 0 && whence != 1 && whence != 2) {throw new FS.ErrnoError(28);}\n stream.position = stream.stream_ops.llseek(stream, offset, whence);\n stream.ungotten = [];\n return stream.position;\n }, read: function (stream, buffer, offset, length, position) {\n if (length < 0 || position < 0) {throw new FS.ErrnoError(28);}\n if (FS.isClosed(stream)) {throw new FS.ErrnoError(8);}\n if ((stream.flags & 2097155) === 1) {throw new FS.ErrnoError(8);}\n if (FS.isDir(stream.node.mode)) {throw new FS.ErrnoError(31);}\n if (!stream.stream_ops.read) {throw new FS.ErrnoError(28);}\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {position = stream.position;} else if (!stream.seekable) {throw new FS.ErrnoError(70);}\n var bytesRead = stream.stream_ops.read(stream, buffer, offset, length, position);\n if (!seeking) stream.position += bytesRead;\n return bytesRead;\n }, write: function (stream, buffer, offset, length, position, canOwn) {\n if (length < 0 || position < 0) {throw new FS.ErrnoError(28);}\n if (FS.isClosed(stream)) {throw new FS.ErrnoError(8);}\n if ((stream.flags & 2097155) === 0) {throw new FS.ErrnoError(8);}\n if (FS.isDir(stream.node.mode)) {throw new FS.ErrnoError(31);}\n if (!stream.stream_ops.write) {throw new FS.ErrnoError(28);}\n if (stream.seekable && stream.flags & 1024) {FS.llseek(stream, 0, 2);}\n var seeking = typeof position !== \"undefined\";\n if (!seeking) {position = stream.position;} else if (!stream.seekable) {throw new FS.ErrnoError(70);}\n var bytesWritten = stream.stream_ops.write(stream, buffer, offset, length, position, canOwn);\n if (!seeking) stream.position += bytesWritten;\n try {if (stream.path && FS.trackingDelegate[\"onWriteToFile\"]) FS.trackingDelegate[\"onWriteToFile\"](stream.path);} catch (e) {err(\"FS.trackingDelegate['onWriteToFile']('\" + stream.path + \"') threw an exception: \" + e.message);}\n return bytesWritten;\n }, allocate: function (stream, offset, length) {\n if (FS.isClosed(stream)) {throw new FS.ErrnoError(8);}\n if (offset < 0 || length <= 0) {throw new FS.ErrnoError(28);}\n if ((stream.flags & 2097155) === 0) {throw new FS.ErrnoError(8);}\n if (!FS.isFile(stream.node.mode) && !FS.isDir(stream.node.mode)) {throw new FS.ErrnoError(43);}\n if (!stream.stream_ops.allocate) {throw new FS.ErrnoError(138);}\n stream.stream_ops.allocate(stream, offset, length);\n }, mmap: function (stream, address, length, position, prot, flags) {\n if ((prot & 2) !== 0 && (flags & 2) === 0 && (stream.flags & 2097155) !== 2) {throw new FS.ErrnoError(2);}\n if ((stream.flags & 2097155) === 1) {throw new FS.ErrnoError(2);}\n if (!stream.stream_ops.mmap) {throw new FS.ErrnoError(43);}\n return stream.stream_ops.mmap(stream, address, length, position, prot, flags);\n }, msync: function (stream, buffer, offset, length, mmapFlags) {\n if (!stream || !stream.stream_ops.msync) {return 0;}\n return stream.stream_ops.msync(stream, buffer, offset, length, mmapFlags);\n }, munmap: function (stream) {return 0;}, ioctl: function (stream, cmd, arg) {\n if (!stream.stream_ops.ioctl) {throw new FS.ErrnoError(59);}\n return stream.stream_ops.ioctl(stream, cmd, arg);\n }, readFile: function (path, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 0;\n opts.encoding = opts.encoding || \"binary\";\n if (opts.encoding !== \"utf8\" && opts.encoding !== \"binary\") {throw new Error(\"Invalid encoding type \\\"\" + opts.encoding + \"\\\"\");}\n var ret;\n var stream = FS.open(path, opts.flags);\n var stat = FS.stat(path);\n var length = stat.size;\n var buf = new Uint8Array(length);\n FS.read(stream, buf, 0, length, 0);\n if (opts.encoding === \"utf8\") {ret = UTF8ArrayToString(buf, 0);} else if (opts.encoding === \"binary\") {ret = buf;}\n FS.close(stream);\n return ret;\n }, writeFile: function (path, data, opts) {\n opts = opts || {};\n opts.flags = opts.flags || 577;\n var stream = FS.open(path, opts.flags, opts.mode);\n if (typeof data === \"string\") {\n var buf = new Uint8Array(lengthBytesUTF8(data) + 1);\n var actualNumBytes = stringToUTF8Array(data, buf, 0, buf.length);\n FS.write(stream, buf, 0, actualNumBytes, undefined, opts.canOwn);\n } else if (ArrayBuffer.isView(data)) {FS.write(stream, data, 0, data.byteLength, undefined, opts.canOwn);} else {throw new Error(\"Unsupported data type\");}\n FS.close(stream);\n }, cwd: function () {return FS.currentPath;}, chdir: function (path) {\n var lookup = FS.lookupPath(path, { follow: true });\n if (lookup.node === null) {throw new FS.ErrnoError(44);}\n if (!FS.isDir(lookup.node.mode)) {throw new FS.ErrnoError(54);}\n var errCode = FS.nodePermissions(lookup.node, \"x\");\n if (errCode) {throw new FS.ErrnoError(errCode);}\n FS.currentPath = lookup.path;\n }, createDefaultDirectories: function () {\n FS.mkdir(\"/tmp\");\n FS.mkdir(\"/home\");\n FS.mkdir(\"/home/web_user\");\n }, createDefaultDevices: function () {\n FS.mkdir(\"/dev\");\n FS.registerDevice(FS.makedev(1, 3), { read: function () {return 0;}, write: function (stream, buffer, offset, length, pos) {return length;} });\n FS.mkdev(\"/dev/null\", FS.makedev(1, 3));\n TTY.register(FS.makedev(5, 0), TTY.default_tty_ops);\n TTY.register(FS.makedev(6, 0), TTY.default_tty1_ops);\n FS.mkdev(\"/dev/tty\", FS.makedev(5, 0));\n FS.mkdev(\"/dev/tty1\", FS.makedev(6, 0));\n var random_device = getRandomDevice();\n FS.createDevice(\"/dev\", \"random\", random_device);\n FS.createDevice(\"/dev\", \"urandom\", random_device);\n FS.mkdir(\"/dev/shm\");\n FS.mkdir(\"/dev/shm/tmp\");\n }, createSpecialDirectories: function () {\n FS.mkdir(\"/proc\");\n var proc_self = FS.mkdir(\"/proc/self\");\n FS.mkdir(\"/proc/self/fd\");\n FS.mount({\n mount: function () {\n var node = FS.createNode(proc_self, \"fd\", 16384 | 511, 73);\n node.node_ops = {\n lookup: function (parent, name) {\n var fd = +name;\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n var ret = { parent: null, mount: { mountpoint: \"fake\" }, node_ops: { readlink: function () {return stream.path;} } };\n ret.parent = ret;\n return ret;\n }\n };\n return node;\n }\n }, {}, \"/proc/self/fd\");\n }, createStandardStreams: function () {\n if (Module[\"stdin\"]) {FS.createDevice(\"/dev\", \"stdin\", Module[\"stdin\"]);} else {FS.symlink(\"/dev/tty\", \"/dev/stdin\");}\n if (Module[\"stdout\"]) {FS.createDevice(\"/dev\", \"stdout\", null, Module[\"stdout\"]);} else {FS.symlink(\"/dev/tty\", \"/dev/stdout\");}\n if (Module[\"stderr\"]) {FS.createDevice(\"/dev\", \"stderr\", null, Module[\"stderr\"]);} else {FS.symlink(\"/dev/tty1\", \"/dev/stderr\");}\n var stdin = FS.open(\"/dev/stdin\", 0);\n var stdout = FS.open(\"/dev/stdout\", 1);\n var stderr = FS.open(\"/dev/stderr\", 1);\n }, ensureErrnoError: function () {\n if (FS.ErrnoError) return;\n FS.ErrnoError = function ErrnoError(errno, node) {\n this.node = node;\n this.setErrno = function (errno) {this.errno = errno;};\n this.setErrno(errno);\n this.message = \"FS error\";\n };\n FS.ErrnoError.prototype = new Error;\n FS.ErrnoError.prototype.constructor = FS.ErrnoError;\n [44].forEach(function (code) {\n FS.genericErrors[code] = new FS.ErrnoError(code);\n FS.genericErrors[code].stack = \"<generic error, no stack>\";\n });\n }, staticInit: function () {\n FS.ensureErrnoError();\n FS.nameTable = new Array(4096);\n FS.mount(MEMFS, {}, \"/\");\n FS.createDefaultDirectories();\n FS.createDefaultDevices();\n FS.createSpecialDirectories();\n FS.filesystems = { \"MEMFS\": MEMFS };\n }, init: function (input, output, error) {\n FS.init.initialized = true;\n FS.ensureErrnoError();\n Module[\"stdin\"] = input || Module[\"stdin\"];\n Module[\"stdout\"] = output || Module[\"stdout\"];\n Module[\"stderr\"] = error || Module[\"stderr\"];\n FS.createStandardStreams();\n }, quit: function () {\n FS.init.initialized = false;\n var fflush = Module[\"_fflush\"];\n if (fflush) fflush(0);\n for (var i = 0; i < FS.streams.length; i++) {\n var stream = FS.streams[i];\n if (!stream) {continue;}\n FS.close(stream);\n }\n }, getMode: function (canRead, canWrite) {\n var mode = 0;\n if (canRead) mode |= 292 | 73;\n if (canWrite) mode |= 146;\n return mode;\n }, findObject: function (path, dontResolveLastLink) {\n var ret = FS.analyzePath(path, dontResolveLastLink);\n if (ret.exists) {return ret.object;} else {return null;}\n }, analyzePath: function (path, dontResolveLastLink) {\n try {\n var lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n path = lookup.path;\n } catch (e) {}\n var ret = { isRoot: false, exists: false, error: 0, name: null, path: null, object: null, parentExists: false, parentPath: null, parentObject: null };\n try {\n var lookup = FS.lookupPath(path, { parent: true });\n ret.parentExists = true;\n ret.parentPath = lookup.path;\n ret.parentObject = lookup.node;\n ret.name = PATH.basename(path);\n lookup = FS.lookupPath(path, { follow: !dontResolveLastLink });\n ret.exists = true;\n ret.path = lookup.path;\n ret.object = lookup.node;\n ret.name = lookup.node.name;\n ret.isRoot = lookup.path === \"/\";\n } catch (e) {ret.error = e.errno;}\n return ret;\n }, createPath: function (parent, path, canRead, canWrite) {\n parent = typeof parent === \"string\" ? parent : FS.getPath(parent);\n var parts = path.split(\"/\").reverse();\n while (parts.length) {\n var part = parts.pop();\n if (!part) continue;\n var current = PATH.join2(parent, part);\n try {FS.mkdir(current);} catch (e) {}\n parent = current;\n }\n return current;\n }, createFile: function (parent, name, properties, canRead, canWrite) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(canRead, canWrite);\n return FS.create(path, mode);\n }, createDataFile: function (parent, name, data, canRead, canWrite, canOwn) {\n var path = name ? PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name) : parent;\n var mode = FS.getMode(canRead, canWrite);\n var node = FS.create(path, mode);\n if (data) {\n if (typeof data === \"string\") {\n var arr = new Array(data.length);\n for (var i = 0, len = data.length; i < len; ++i) arr[i] = data.charCodeAt(i);\n data = arr;\n }\n FS.chmod(node, mode | 146);\n var stream = FS.open(node, 577);\n FS.write(stream, data, 0, data.length, 0, canOwn);\n FS.close(stream);\n FS.chmod(node, mode);\n }\n return node;\n }, createDevice: function (parent, name, input, output) {\n var path = PATH.join2(typeof parent === \"string\" ? parent : FS.getPath(parent), name);\n var mode = FS.getMode(!!input, !!output);\n if (!FS.createDevice.major) FS.createDevice.major = 64;\n var dev = FS.makedev(FS.createDevice.major++, 0);\n FS.registerDevice(dev, {\n open: function (stream) {stream.seekable = false;}, close: function (stream) {if (output && output.buffer && output.buffer.length) {output(10);}}, read: function (stream, buffer, offset, length, pos) {\n var bytesRead = 0;\n for (var i = 0; i < length; i++) {\n var result;\n try {result = input();} catch (e) {throw new FS.ErrnoError(29);}\n if (result === undefined && bytesRead === 0) {throw new FS.ErrnoError(6);}\n if (result === null || result === undefined) break;\n bytesRead++;\n buffer[offset + i] = result;\n }\n if (bytesRead) {stream.node.timestamp = Date.now();}\n return bytesRead;\n }, write: function (stream, buffer, offset, length, pos) {\n for (var i = 0; i < length; i++) {try {output(buffer[offset + i]);} catch (e) {throw new FS.ErrnoError(29);}}\n if (length) {stream.node.timestamp = Date.now();}\n return i;\n }\n });\n return FS.mkdev(path, mode, dev);\n }, forceLoadFile: function (obj) {\n if (obj.isDevice || obj.isFolder || obj.link || obj.contents) return true;\n 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 if (read_) {\n try {\n obj.contents = intArrayFromString(read_(obj.url), true);\n obj.usedBytes = obj.contents.length;\n } catch (e) {throw new FS.ErrnoError(29);}\n } else {throw new Error(\"Cannot load without read() or XMLHttpRequest.\");}\n }, createLazyFile: function (parent, name, url, canRead, canWrite) {\n function LazyUint8Array() {\n this.lengthKnown = false;\n this.chunks = [];\n }\n LazyUint8Array.prototype.get = function LazyUint8Array_get(idx) {\n if (idx > this.length - 1 || idx < 0) {return undefined;}\n var chunkOffset = idx % this.chunkSize;\n var chunkNum = idx / this.chunkSize | 0;\n return this.getter(chunkNum)[chunkOffset];\n };\n LazyUint8Array.prototype.setDataGetter = function LazyUint8Array_setDataGetter(getter) {this.getter = getter;};\n LazyUint8Array.prototype.cacheLength = function LazyUint8Array_cacheLength() {\n var xhr = new XMLHttpRequest;\n xhr.open(\"HEAD\", url, false);\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n var datalength = Number(xhr.getResponseHeader(\"Content-length\"));\n var header;\n var hasByteServing = (header = xhr.getResponseHeader(\"Accept-Ranges\")) && header === \"bytes\";\n var usesGzip = (header = xhr.getResponseHeader(\"Content-Encoding\")) && header === \"gzip\";\n var chunkSize = 1024 * 1024;\n if (!hasByteServing) chunkSize = datalength;\n var doXHR = function (from, to) {\n if (from > to) throw new Error(\"invalid range (\" + from + \", \" + to + \") or no bytes requested!\");\n if (to > datalength - 1) throw new Error(\"only \" + datalength + \" bytes available! programmer error!\");\n var xhr = new XMLHttpRequest;\n xhr.open(\"GET\", url, false);\n if (datalength !== chunkSize) xhr.setRequestHeader(\"Range\", \"bytes=\" + from + \"-\" + to);\n if (typeof Uint8Array != \"undefined\") xhr.responseType = \"arraybuffer\";\n if (xhr.overrideMimeType) {xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");}\n xhr.send(null);\n if (!(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304)) throw new Error(\"Couldn't load \" + url + \". Status: \" + xhr.status);\n if (xhr.response !== undefined) {return new Uint8Array(xhr.response || []);} else {return intArrayFromString(xhr.responseText || \"\", true);}\n };\n var lazyArray = this;\n lazyArray.setDataGetter(function (chunkNum) {\n var start = chunkNum * chunkSize;\n var end = (chunkNum + 1) * chunkSize - 1;\n end = Math.min(end, datalength - 1);\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") {lazyArray.chunks[chunkNum] = doXHR(start, end);}\n if (typeof lazyArray.chunks[chunkNum] === \"undefined\") throw new Error(\"doXHR failed!\");\n return lazyArray.chunks[chunkNum];\n });\n if (usesGzip || !datalength) {\n chunkSize = datalength = 1;\n datalength = this.getter(0).length;\n chunkSize = datalength;\n out(\"LazyFiles on gzip forces download of the whole file when length is accessed\");\n }\n this._length = datalength;\n this._chunkSize = chunkSize;\n this.lengthKnown = true;\n };\n if (typeof XMLHttpRequest !== \"undefined\") {\n if (!ENVIRONMENT_IS_WORKER) throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";\n var lazyArray = new LazyUint8Array;\n Object.defineProperties(lazyArray, {\n length: {\n get: function () {\n if (!this.lengthKnown) {this.cacheLength();}\n return this._length;\n }\n }, chunkSize: {\n get: function () {\n if (!this.lengthKnown) {this.cacheLength();}\n return this._chunkSize;\n }\n }\n });\n var properties = { isDevice: false, contents: lazyArray };\n } else {var properties = { isDevice: false, url: url };}\n var node = FS.createFile(parent, name, properties, canRead, canWrite);\n if (properties.contents) {node.contents = properties.contents;} else if (properties.url) {\n node.contents = null;\n node.url = properties.url;\n }\n Object.defineProperties(node, { usedBytes: { get: function () {return this.contents.length;} } });\n var stream_ops = {};\n var keys = Object.keys(node.stream_ops);\n keys.forEach(function (key) {\n var fn = node.stream_ops[key];\n stream_ops[key] = function forceLoadLazyFile() {\n FS.forceLoadFile(node);\n return fn.apply(null, arguments);\n };\n });\n stream_ops.read = function stream_ops_read(stream, buffer, offset, length, position) {\n FS.forceLoadFile(node);\n var contents = stream.node.contents;\n if (position >= contents.length) return 0;\n var size = Math.min(contents.length - position, length);\n 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);}}\n return size;\n };\n node.stream_ops = stream_ops;\n return node;\n }, createPreloadedFile: function (parent, name, url, canRead, canWrite, onload, onerror, dontCreateFile, canOwn, preFinish) {\n Browser.init();\n var fullname = name ? PATH_FS.resolve(PATH.join2(parent, name)) : parent;\n var dep = getUniqueRunDependency(\"cp \" + fullname);\n function processData(byteArray) {\n function finish(byteArray) {\n if (preFinish) preFinish();\n if (!dontCreateFile) {FS.createDataFile(parent, name, byteArray, canRead, canWrite, canOwn);}\n if (onload) onload();\n removeRunDependency(dep);\n }\n var handled = false;\n Module[\"preloadPlugins\"].forEach(function (plugin) {\n if (handled) return;\n if (plugin[\"canHandle\"](fullname)) {\n plugin[\"handle\"](byteArray, fullname, finish, function () {\n if (onerror) onerror();\n removeRunDependency(dep);\n });\n handled = true;\n }\n });\n if (!handled) finish(byteArray);\n }\n addRunDependency(dep);\n if (typeof url == \"string\") {Browser.asyncLoad(url, function (byteArray) {processData(byteArray);}, onerror);} else {processData(url);}\n }, indexedDB: function () {return window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;}, DB_NAME: function () {return \"EM_FS_\" + window.location.pathname;}, DB_VERSION: 20, DB_STORE_NAME: \"FILE_DATA\", saveFilesToDB: function (paths, onload, onerror) {\n onload = onload || function () {};\n onerror = onerror || function () {};\n var indexedDB = FS.indexedDB();\n try {var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);} catch (e) {return onerror(e);}\n openRequest.onupgradeneeded = function openRequest_onupgradeneeded() {\n out(\"creating db\");\n var db = openRequest.result;\n db.createObjectStore(FS.DB_STORE_NAME);\n };\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n var transaction = db.transaction([FS.DB_STORE_NAME], \"readwrite\");\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {if (fail == 0) onload(); else onerror();}\n paths.forEach(function (path) {\n var putRequest = files.put(FS.analyzePath(path).object.contents, path);\n putRequest.onsuccess = function putRequest_onsuccess() {\n ok++;\n if (ok + fail == total) finish();\n };\n putRequest.onerror = function putRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n }, loadFilesFromDB: function (paths, onload, onerror) {\n onload = onload || function () {};\n onerror = onerror || function () {};\n var indexedDB = FS.indexedDB();\n try {var openRequest = indexedDB.open(FS.DB_NAME(), FS.DB_VERSION);} catch (e) {return onerror(e);}\n openRequest.onupgradeneeded = onerror;\n openRequest.onsuccess = function openRequest_onsuccess() {\n var db = openRequest.result;\n try {var transaction = db.transaction([FS.DB_STORE_NAME], \"readonly\");} catch (e) {\n onerror(e);\n return;\n }\n var files = transaction.objectStore(FS.DB_STORE_NAME);\n var ok = 0, fail = 0, total = paths.length;\n function finish() {if (fail == 0) onload(); else onerror();}\n paths.forEach(function (path) {\n var getRequest = files.get(path);\n getRequest.onsuccess = function getRequest_onsuccess() {\n if (FS.analyzePath(path).exists) {FS.unlink(path);}\n FS.createDataFile(PATH.dirname(path), PATH.basename(path), getRequest.result, true, true, true);\n ok++;\n if (ok + fail == total) finish();\n };\n getRequest.onerror = function getRequest_onerror() {\n fail++;\n if (ok + fail == total) finish();\n };\n });\n transaction.onerror = onerror;\n };\n openRequest.onerror = onerror;\n }\n };\n var SYSCALLS = {\n mappings: {}, DEFAULT_POLLMASK: 5, umask: 511, calculateAt: function (dirfd, path, allowEmpty) {\n if (path[0] === \"/\") {return path;}\n var dir;\n if (dirfd === -100) {dir = FS.cwd();} else {\n var dirstream = FS.getStream(dirfd);\n if (!dirstream) throw new FS.ErrnoError(8);\n dir = dirstream.path;\n }\n if (path.length == 0) {\n if (!allowEmpty) {throw new FS.ErrnoError(44);}\n return dir;\n }\n return PATH.join2(dir, path);\n }, doStat: function (func, path, buf) {\n try {var stat = func(path);} catch (e) {\n if (e && e.node && PATH.normalize(path) !== PATH.normalize(FS.getPath(e.node))) {return -54;}\n throw e;\n }\n HEAP32[buf >> 2] = stat.dev;\n HEAP32[buf + 4 >> 2] = 0;\n HEAP32[buf + 8 >> 2] = stat.ino;\n HEAP32[buf + 12 >> 2] = stat.mode;\n HEAP32[buf + 16 >> 2] = stat.nlink;\n HEAP32[buf + 20 >> 2] = stat.uid;\n HEAP32[buf + 24 >> 2] = stat.gid;\n HEAP32[buf + 28 >> 2] = stat.rdev;\n HEAP32[buf + 32 >> 2] = 0;\n tempI64 = [stat.size >>> 0, (tempDouble = stat.size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 40 >> 2] = tempI64[0], HEAP32[buf + 44 >> 2] = tempI64[1];\n HEAP32[buf + 48 >> 2] = 4096;\n HEAP32[buf + 52 >> 2] = stat.blocks;\n HEAP32[buf + 56 >> 2] = stat.atime.getTime() / 1e3 | 0;\n HEAP32[buf + 60 >> 2] = 0;\n HEAP32[buf + 64 >> 2] = stat.mtime.getTime() / 1e3 | 0;\n HEAP32[buf + 68 >> 2] = 0;\n HEAP32[buf + 72 >> 2] = stat.ctime.getTime() / 1e3 | 0;\n HEAP32[buf + 76 >> 2] = 0;\n tempI64 = [stat.ino >>> 0, (tempDouble = stat.ino, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[buf + 80 >> 2] = tempI64[0], HEAP32[buf + 84 >> 2] = tempI64[1];\n return 0;\n }, doMsync: function (addr, stream, len, flags, offset) {\n var buffer = HEAPU8.slice(addr, addr + len);\n FS.msync(stream, buffer, offset, len, flags);\n }, doMkdir: function (path, mode) {\n path = PATH.normalize(path);\n if (path[path.length - 1] === \"/\") path = path.substr(0, path.length - 1);\n FS.mkdir(path, mode, 0);\n return 0;\n }, doMknod: function (path, mode, dev) {\n switch (mode & 61440) {\n case 32768:\n case 8192:\n case 24576:\n case 4096:\n case 49152:\n break;\n default:\n return -28;\n }\n FS.mknod(path, mode, dev);\n return 0;\n }, doReadlink: function (path, buf, bufsize) {\n if (bufsize <= 0) return -28;\n var ret = FS.readlink(path);\n var len = Math.min(bufsize, lengthBytesUTF8(ret));\n var endChar = HEAP8[buf + len];\n stringToUTF8(ret, buf, bufsize + 1);\n HEAP8[buf + len] = endChar;\n return len;\n }, doAccess: function (path, amode) {\n if (amode & ~7) {return -28;}\n var node;\n var lookup = FS.lookupPath(path, { follow: true });\n node = lookup.node;\n if (!node) {return -44;}\n var perms = \"\";\n if (amode & 4) perms += \"r\";\n if (amode & 2) perms += \"w\";\n if (amode & 1) perms += \"x\";\n if (perms && FS.nodePermissions(node, perms)) {return -2;}\n return 0;\n }, doDup: function (path, flags, suggestFD) {\n var suggest = FS.getStream(suggestFD);\n if (suggest) FS.close(suggest);\n return FS.open(path, flags, 0, suggestFD, suggestFD).fd;\n }, doReadv: function (stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.read(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n if (curr < len) break;\n }\n return ret;\n }, doWritev: function (stream, iov, iovcnt, offset) {\n var ret = 0;\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n var curr = FS.write(stream, HEAP8, ptr, len, offset);\n if (curr < 0) return -1;\n ret += curr;\n }\n return ret;\n }, varargs: undefined, get: function () {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n }, getStr: function (ptr) {\n var ret = UTF8ToString(ptr);\n return ret;\n }, getStreamFromFD: function (fd) {\n var stream = FS.getStream(fd);\n if (!stream) throw new FS.ErrnoError(8);\n return stream;\n }, get64: function (low, high) {return low;}\n };\n function ___sys_access(path, amode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doAccess(path, amode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_chdir(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chdir(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_chmod(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n FS.chmod(path, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n var ERRNO_CODES = {\n 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\n };\n var SOCKFS = {\n mount: function (mount) {\n Module[\"websocket\"] = Module[\"websocket\"] && \"object\" === typeof Module[\"websocket\"] ? Module[\"websocket\"] : {};\n Module[\"websocket\"]._callbacks = {};\n Module[\"websocket\"][\"on\"] = function (event, callback) {\n if (\"function\" === typeof callback) {this._callbacks[event] = callback;}\n return this;\n };\n Module[\"websocket\"].emit = function (event, param) {if (\"function\" === typeof this._callbacks[event]) {this._callbacks[event].call(this, param);}};\n return FS.createNode(null, \"/\", 16384 | 511, 0);\n }, createSocket: function (family, type, protocol) {\n type &= ~526336;\n var streaming = type == 1;\n if (protocol) {assert(streaming == (protocol == 6));}\n var sock = { family: family, type: type, protocol: protocol, server: null, error: null, peers: {}, pending: [], recv_queue: [], sock_ops: SOCKFS.websocket_sock_ops };\n var name = SOCKFS.nextname();\n var node = FS.createNode(SOCKFS.root, name, 49152, 0);\n node.sock = sock;\n var stream = FS.createStream({ path: name, node: node, flags: 2, seekable: false, stream_ops: SOCKFS.stream_ops });\n sock.stream = stream;\n return sock;\n }, getSocket: function (fd) {\n var stream = FS.getStream(fd);\n if (!stream || !FS.isSocket(stream.node.mode)) {return null;}\n return stream.node.sock;\n }, stream_ops: {\n poll: function (stream) {\n var sock = stream.node.sock;\n return sock.sock_ops.poll(sock);\n }, ioctl: function (stream, request, varargs) {\n var sock = stream.node.sock;\n return sock.sock_ops.ioctl(sock, request, varargs);\n }, read: function (stream, buffer, offset, length, position) {\n var sock = stream.node.sock;\n var msg = sock.sock_ops.recvmsg(sock, length);\n if (!msg) {return 0;}\n buffer.set(msg.buffer, offset);\n return msg.buffer.length;\n }, write: function (stream, buffer, offset, length, position) {\n var sock = stream.node.sock;\n return sock.sock_ops.sendmsg(sock, buffer, offset, length);\n }, close: function (stream) {\n var sock = stream.node.sock;\n sock.sock_ops.close(sock);\n }\n }, nextname: function () {\n if (!SOCKFS.nextname.current) {SOCKFS.nextname.current = 0;}\n return \"socket[\" + SOCKFS.nextname.current++ + \"]\";\n }, websocket_sock_ops: {\n createPeer: function (sock, addr, port) {\n var ws;\n if (typeof addr === \"object\") {\n ws = addr;\n addr = null;\n port = null;\n }\n if (ws) {\n if (ws._socket) {\n addr = ws._socket.remoteAddress;\n port = ws._socket.remotePort;\n } else {\n var result = /ws[s]?:\\/\\/([^:]+):(\\d+)/.exec(ws.url);\n if (!result) {throw new Error(\"WebSocket URL must be in the format ws(s)://address:port\");}\n addr = result[1];\n port = parseInt(result[2], 10);\n }\n } else {\n try {\n var runtimeConfig = Module[\"websocket\"] && \"object\" === typeof Module[\"websocket\"];\n var url = \"ws:#\".replace(\"#\", \"//\");\n if (runtimeConfig) {if (\"string\" === typeof Module[\"websocket\"][\"url\"]) {url = Module[\"websocket\"][\"url\"];}}\n if (url === \"ws://\" || url === \"wss://\") {\n var parts = addr.split(\"/\");\n url = url + parts[0] + \":\" + port + \"/\" + parts.slice(1).join(\"/\");\n }\n var subProtocols = \"binary\";\n if (runtimeConfig) {if (\"string\" === typeof Module[\"websocket\"][\"subprotocol\"]) {subProtocols = Module[\"websocket\"][\"subprotocol\"];}}\n var opts = undefined;\n if (subProtocols !== \"null\") {\n subProtocols = subProtocols.replace(/^ +| +$/g, \"\").split(/ *, */);\n opts = ENVIRONMENT_IS_NODE ? { \"protocol\": subProtocols.toString() } : subProtocols;\n }\n if (runtimeConfig && null === Module[\"websocket\"][\"subprotocol\"]) {\n subProtocols = \"null\";\n opts = undefined;\n }\n var WebSocketConstructor;\n {WebSocketConstructor = WebSocket;}\n ws = new WebSocketConstructor(url, opts);\n ws.binaryType = \"arraybuffer\";\n } catch (e) {throw new FS.ErrnoError(ERRNO_CODES.EHOSTUNREACH);}\n }\n var peer = { addr: addr, port: port, socket: ws, dgram_send_queue: [] };\n SOCKFS.websocket_sock_ops.addPeer(sock, peer);\n SOCKFS.websocket_sock_ops.handlePeerEvents(sock, peer);\n if (sock.type === 2 && typeof sock.sport !== \"undefined\") {peer.dgram_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]));}\n return peer;\n }, getPeer: function (sock, addr, port) {return sock.peers[addr + \":\" + port];}, addPeer: function (sock, peer) {sock.peers[peer.addr + \":\" + peer.port] = peer;}, removePeer: function (sock, peer) {delete sock.peers[peer.addr + \":\" + peer.port];}, handlePeerEvents: function (sock, peer) {\n var first = true;\n var handleOpen = function () {\n Module[\"websocket\"].emit(\"open\", sock.stream.fd);\n try {\n var queued = peer.dgram_send_queue.shift();\n while (queued) {\n peer.socket.send(queued);\n queued = peer.dgram_send_queue.shift();\n }\n } catch (e) {peer.socket.close();}\n };\n function handleMessage(data) {\n if (typeof data === \"string\") {\n var encoder = new TextEncoder;\n data = encoder.encode(data);\n } else {\n assert(data.byteLength !== undefined);\n if (data.byteLength == 0) {return;} else {data = new Uint8Array(data);}\n }\n var wasfirst = first;\n first = false;\n 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)) {\n var newport = data[8] << 8 | data[9];\n SOCKFS.websocket_sock_ops.removePeer(sock, peer);\n peer.port = newport;\n SOCKFS.websocket_sock_ops.addPeer(sock, peer);\n return;\n }\n sock.recv_queue.push({ addr: peer.addr, port: peer.port, data: data });\n Module[\"websocket\"].emit(\"message\", sock.stream.fd);\n }\n if (ENVIRONMENT_IS_NODE) {\n peer.socket.on(\"open\", handleOpen);\n peer.socket.on(\"message\", function (data, flags) {\n if (!flags.binary) {return;}\n handleMessage(new Uint8Array(data).buffer);\n });\n peer.socket.on(\"close\", function () {Module[\"websocket\"].emit(\"close\", sock.stream.fd);});\n peer.socket.on(\"error\", function (error) {\n sock.error = ERRNO_CODES.ECONNREFUSED;\n Module[\"websocket\"].emit(\"error\", [sock.stream.fd, sock.error, \"ECONNREFUSED: Connection refused\"]);\n });\n } else {\n peer.socket.onopen = handleOpen;\n peer.socket.onclose = function () {Module[\"websocket\"].emit(\"close\", sock.stream.fd);};\n peer.socket.onmessage = function peer_socket_onmessage(event) {handleMessage(event.data);};\n peer.socket.onerror = function (error) {\n sock.error = ERRNO_CODES.ECONNREFUSED;\n Module[\"websocket\"].emit(\"error\", [sock.stream.fd, sock.error, \"ECONNREFUSED: Connection refused\"]);\n };\n }\n }, poll: function (sock) {\n if (sock.type === 1 && sock.server) {return sock.pending.length ? 64 | 1 : 0;}\n var mask = 0;\n var dest = sock.type === 1 ? SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport) : null;\n if (sock.recv_queue.length || !dest || dest && dest.socket.readyState === dest.socket.CLOSING || dest && dest.socket.readyState === dest.socket.CLOSED) {mask |= 64 | 1;}\n if (!dest || dest && dest.socket.readyState === dest.socket.OPEN) {mask |= 4;}\n if (dest && dest.socket.readyState === dest.socket.CLOSING || dest && dest.socket.readyState === dest.socket.CLOSED) {mask |= 16;}\n return mask;\n }, ioctl: function (sock, request, arg) {\n switch (request) {\n case 21531:\n var bytes = 0;\n if (sock.recv_queue.length) {bytes = sock.recv_queue[0].data.length;}\n HEAP32[arg >> 2] = bytes;\n return 0;\n default:\n return ERRNO_CODES.EINVAL;\n }\n }, close: function (sock) {\n if (sock.server) {\n try {sock.server.close();} catch (e) {}\n sock.server = null;\n }\n var peers = Object.keys(sock.peers);\n for (var i = 0; i < peers.length; i++) {\n var peer = sock.peers[peers[i]];\n try {peer.socket.close();} catch (e) {}\n SOCKFS.websocket_sock_ops.removePeer(sock, peer);\n }\n return 0;\n }, bind: function (sock, addr, port) {\n if (typeof sock.saddr !== \"undefined\" || typeof sock.sport !== \"undefined\") {throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}\n sock.saddr = addr;\n sock.sport = port;\n if (sock.type === 2) {\n if (sock.server) {\n sock.server.close();\n sock.server = null;\n }\n try {sock.sock_ops.listen(sock, 0);} catch (e) {\n if (!(e instanceof FS.ErrnoError)) throw e;\n if (e.errno !== ERRNO_CODES.EOPNOTSUPP) throw e;\n }\n }\n }, connect: function (sock, addr, port) {\n if (sock.server) {throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);}\n if (typeof sock.daddr !== \"undefined\" && typeof sock.dport !== \"undefined\") {\n var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);\n if (dest) {if (dest.socket.readyState === dest.socket.CONNECTING) {throw new FS.ErrnoError(ERRNO_CODES.EALREADY);} else {throw new FS.ErrnoError(ERRNO_CODES.EISCONN);}}\n }\n var peer = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);\n sock.daddr = peer.addr;\n sock.dport = peer.port;\n throw new FS.ErrnoError(ERRNO_CODES.EINPROGRESS);\n }, listen: function (sock, backlog) {if (!ENVIRONMENT_IS_NODE) {throw new FS.ErrnoError(ERRNO_CODES.EOPNOTSUPP);}}, accept: function (listensock) {\n if (!listensock.server) {throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}\n var newsock = listensock.pending.shift();\n newsock.stream.flags = listensock.stream.flags;\n return newsock;\n }, getname: function (sock, peer) {\n var addr, port;\n if (peer) {\n if (sock.daddr === undefined || sock.dport === undefined) {throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);}\n addr = sock.daddr;\n port = sock.dport;\n } else {\n addr = sock.saddr || 0;\n port = sock.sport || 0;\n }\n return { addr: addr, port: port };\n }, sendmsg: function (sock, buffer, offset, length, addr, port) {\n if (sock.type === 2) {\n if (addr === undefined || port === undefined) {\n addr = sock.daddr;\n port = sock.dport;\n }\n if (addr === undefined || port === undefined) {throw new FS.ErrnoError(ERRNO_CODES.EDESTADDRREQ);}\n } else {\n addr = sock.daddr;\n port = sock.dport;\n }\n var dest = SOCKFS.websocket_sock_ops.getPeer(sock, addr, port);\n if (sock.type === 1) {if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);} else if (dest.socket.readyState === dest.socket.CONNECTING) {throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}}\n if (ArrayBuffer.isView(buffer)) {\n offset += buffer.byteOffset;\n buffer = buffer.buffer;\n }\n var data;\n data = buffer.slice(offset, offset + length);\n if (sock.type === 2) {\n if (!dest || dest.socket.readyState !== dest.socket.OPEN) {\n if (!dest || dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {dest = SOCKFS.websocket_sock_ops.createPeer(sock, addr, port);}\n dest.dgram_send_queue.push(data);\n return length;\n }\n }\n try {\n dest.socket.send(data);\n return length;\n } catch (e) {throw new FS.ErrnoError(ERRNO_CODES.EINVAL);}\n }, recvmsg: function (sock, length) {\n if (sock.type === 1 && sock.server) {throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);}\n var queued = sock.recv_queue.shift();\n if (!queued) {\n if (sock.type === 1) {\n var dest = SOCKFS.websocket_sock_ops.getPeer(sock, sock.daddr, sock.dport);\n if (!dest) {throw new FS.ErrnoError(ERRNO_CODES.ENOTCONN);} else if (dest.socket.readyState === dest.socket.CLOSING || dest.socket.readyState === dest.socket.CLOSED) {return null;} else {throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}\n } else {throw new FS.ErrnoError(ERRNO_CODES.EAGAIN);}\n }\n var queuedLength = queued.data.byteLength || queued.data.length;\n var queuedOffset = queued.data.byteOffset || 0;\n var queuedBuffer = queued.data.buffer || queued.data;\n var bytesRead = Math.min(length, queuedLength);\n var res = { buffer: new Uint8Array(queuedBuffer, queuedOffset, bytesRead), addr: queued.addr, port: queued.port };\n if (sock.type === 1 && bytesRead < queuedLength) {\n var bytesRemaining = queuedLength - bytesRead;\n queued.data = new Uint8Array(queuedBuffer, queuedOffset + bytesRead, bytesRemaining);\n sock.recv_queue.unshift(queued);\n }\n return res;\n }\n }\n };\n function getSocketFromFD(fd) {\n var socket = SOCKFS.getSocket(fd);\n if (!socket) throw new FS.ErrnoError(8);\n return socket;\n }\n function inetNtop4(addr) {return (addr & 255) + \".\" + (addr >> 8 & 255) + \".\" + (addr >> 16 & 255) + \".\" + (addr >> 24 & 255);}\n function inetNtop6(ints) {\n var str = \"\";\n var word = 0;\n var longest = 0;\n var lastzero = 0;\n var zstart = 0;\n var len = 0;\n var i = 0;\n 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];\n var hasipv4 = true;\n var v4part = \"\";\n for (i = 0; i < 5; i++) {\n if (parts[i] !== 0) {\n hasipv4 = false;\n break;\n }\n }\n if (hasipv4) {\n v4part = inetNtop4(parts[6] | parts[7] << 16);\n if (parts[5] === -1) {\n str = \"::ffff:\";\n str += v4part;\n return str;\n }\n if (parts[5] === 0) {\n str = \"::\";\n if (v4part === \"0.0.0.0\") v4part = \"\";\n if (v4part === \"0.0.0.1\") v4part = \"1\";\n str += v4part;\n return str;\n }\n }\n for (word = 0; word < 8; word++) {\n if (parts[word] === 0) {\n if (word - lastzero > 1) {len = 0;}\n lastzero = word;\n len++;\n }\n if (len > longest) {\n longest = len;\n zstart = word - longest + 1;\n }\n }\n for (word = 0; word < 8; word++) {\n if (longest > 1) {\n if (parts[word] === 0 && word >= zstart && word < zstart + longest) {\n if (word === zstart) {\n str += \":\";\n if (zstart === 0) str += \":\";\n }\n continue;\n }\n }\n str += Number(_ntohs(parts[word] & 65535)).toString(16);\n str += word < 7 ? \":\" : \"\";\n }\n return str;\n }\n function readSockaddr(sa, salen) {\n var family = HEAP16[sa >> 1];\n var port = _ntohs(HEAPU16[sa + 2 >> 1]);\n var addr;\n switch (family) {\n case 2:\n if (salen !== 16) {return { errno: 28 };}\n addr = HEAP32[sa + 4 >> 2];\n addr = inetNtop4(addr);\n break;\n case 10:\n if (salen !== 28) {return { errno: 28 };}\n addr = [HEAP32[sa + 8 >> 2], HEAP32[sa + 12 >> 2], HEAP32[sa + 16 >> 2], HEAP32[sa + 20 >> 2]];\n addr = inetNtop6(addr);\n break;\n default:\n return { errno: 5 };\n }\n return { family: family, addr: addr, port: port };\n }\n function getSocketAddress(addrp, addrlen, allowNull) {\n if (allowNull && addrp === 0) return null;\n var info = readSockaddr(addrp, addrlen);\n if (info.errno) throw new FS.ErrnoError(info.errno);\n info.addr = DNS.lookup_addr(info.addr) || info.addr;\n return info;\n }\n function ___sys_connect(fd, addr, addrlen) {\n try {\n var sock = getSocketFromFD(fd);\n var info = getSocketAddress(addr, addrlen);\n sock.sock_ops.connect(sock, info.addr, info.port);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_fadvise64_64(fd, offset, len, advice) {return 0;}\n function ___sys_fchmod(fd, mode) {\n try {\n FS.fchmod(fd, mode);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_fcntl64(fd, cmd, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (cmd) {\n case 0: {\n var arg = SYSCALLS.get();\n if (arg < 0) {return -28;}\n var newStream;\n newStream = FS.open(stream.path, stream.flags, 0, arg);\n return newStream.fd;\n }\n case 1:\n case 2:\n return 0;\n case 3:\n return stream.flags;\n case 4: {\n var arg = SYSCALLS.get();\n stream.flags |= arg;\n return 0;\n }\n case 12: {\n var arg = SYSCALLS.get();\n var offset = 0;\n HEAP16[arg + offset >> 1] = 2;\n return 0;\n }\n case 13:\n case 14:\n return 0;\n case 16:\n case 8:\n return -28;\n case 9:\n setErrNo(28);\n return -1;\n default: {return -28;}\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_fstat64(fd, buf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n return SYSCALLS.doStat(FS.stat, stream.path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_fstatfs64(fd, size, buf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n return ___sys_statfs64(0, size, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_ftruncate64(fd, zero, low, high) {\n try {\n var length = SYSCALLS.get64(low, high);\n FS.ftruncate(fd, length);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_getcwd(buf, size) {\n try {\n if (size === 0) return -28;\n var cwd = FS.cwd();\n var cwdLengthInBytes = lengthBytesUTF8(cwd);\n if (size < cwdLengthInBytes + 1) return -68;\n stringToUTF8(cwd, buf, size);\n return buf;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_getdents64(fd, dirp, count) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n if (!stream.getdents) {stream.getdents = FS.readdir(stream.path);}\n var struct_size = 280;\n var pos = 0;\n var off = FS.llseek(stream, 0, 1);\n var idx = Math.floor(off / struct_size);\n while (idx < stream.getdents.length && pos + struct_size <= count) {\n var id;\n var type;\n var name = stream.getdents[idx];\n if (name[0] === \".\") {\n id = 1;\n type = 4;\n } else {\n var child = FS.lookupNode(stream.node, name);\n id = child.id;\n type = FS.isChrdev(child.mode) ? 2 : FS.isDir(child.mode) ? 4 : FS.isLink(child.mode) ? 10 : 8;\n }\n tempI64 = [id >>> 0, (tempDouble = id, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[dirp + pos >> 2] = tempI64[0], HEAP32[dirp + pos + 4 >> 2] = tempI64[1];\n tempI64 = [(idx + 1) * struct_size >>> 0, (tempDouble = (idx + 1) * struct_size, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[dirp + pos + 8 >> 2] = tempI64[0], HEAP32[dirp + pos + 12 >> 2] = tempI64[1];\n HEAP16[dirp + pos + 16 >> 1] = 280;\n HEAP8[dirp + pos + 18 >> 0] = type;\n stringToUTF8(name, dirp + pos + 19, 256);\n pos += struct_size;\n idx += 1;\n }\n FS.llseek(stream, idx * struct_size, 0);\n return pos;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_getpid() {return 42;}\n function ___sys_getrusage(who, usage) {\n try {\n _memset(usage, 0, 136);\n HEAP32[usage >> 2] = 1;\n HEAP32[usage + 4 >> 2] = 2;\n HEAP32[usage + 8 >> 2] = 3;\n HEAP32[usage + 12 >> 2] = 4;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_ioctl(fd, op, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n switch (op) {\n case 21509:\n case 21505: {\n if (!stream.tty) return -59;\n return 0;\n }\n case 21510:\n case 21511:\n case 21512:\n case 21506:\n case 21507:\n case 21508: {\n if (!stream.tty) return -59;\n return 0;\n }\n case 21519: {\n if (!stream.tty) return -59;\n var argp = SYSCALLS.get();\n HEAP32[argp >> 2] = 0;\n return 0;\n }\n case 21520: {\n if (!stream.tty) return -59;\n return -28;\n }\n case 21531: {\n var argp = SYSCALLS.get();\n return FS.ioctl(stream, op, argp);\n }\n case 21523: {\n if (!stream.tty) return -59;\n return 0;\n }\n case 21524: {\n if (!stream.tty) return -59;\n return 0;\n }\n default:\n abort(\"bad ioctl syscall \" + op);\n }\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_link(oldpath, newpath) {return -34;}\n function ___sys_lstat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.lstat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_madvise1(addr, length, advice) {return 0;}\n function ___sys_mkdir(path, mode) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doMkdir(path, mode);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function syscallMmap2(addr, len, prot, flags, fd, off) {\n off <<= 12;\n var ptr;\n var allocated = false;\n if ((flags & 16) !== 0 && addr % 65536 !== 0) {return -28;}\n if ((flags & 32) !== 0) {\n ptr = _memalign(65536, len);\n if (!ptr) return -48;\n _memset(ptr, 0, len);\n allocated = true;\n } else {\n var info = FS.getStream(fd);\n if (!info) return -8;\n var res = FS.mmap(info, addr, len, off, prot, flags);\n ptr = res.ptr;\n allocated = res.allocated;\n }\n SYSCALLS.mappings[ptr] = { malloc: ptr, len: len, allocated: allocated, fd: fd, prot: prot, flags: flags, offset: off };\n return ptr;\n }\n function ___sys_mmap2(addr, len, prot, flags, fd, off) {\n try {return syscallMmap2(addr, len, prot, flags, fd, off);} catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_msync(addr, len, flags) {\n try {\n var info = SYSCALLS.mappings[addr];\n if (!info) return 0;\n SYSCALLS.doMsync(addr, FS.getStream(info.fd), len, info.flags, 0);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function syscallMunmap(addr, len) {\n if ((addr | 0) === -1 || len === 0) {return -28;}\n var info = SYSCALLS.mappings[addr];\n if (!info) return 0;\n if (len === info.len) {\n var stream = FS.getStream(info.fd);\n if (stream) {\n if (info.prot & 2) {SYSCALLS.doMsync(addr, stream, len, info.flags, info.offset);}\n FS.munmap(stream);\n }\n SYSCALLS.mappings[addr] = null;\n if (info.allocated) {_free(info.malloc);}\n }\n return 0;\n }\n function ___sys_munmap(addr, len) {\n try {return syscallMunmap(addr, len);} catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_open(path, flags, varargs) {\n SYSCALLS.varargs = varargs;\n try {\n var pathname = SYSCALLS.getStr(path);\n var mode = varargs ? SYSCALLS.get() : 0;\n var stream = FS.open(pathname, flags, mode);\n return stream.fd;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_readlink(path, buf, bufsize) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doReadlink(path, buf, bufsize);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function inetPton4(str) {\n var b = str.split(\".\");\n for (var i = 0; i < 4; i++) {\n var tmp = Number(b[i]);\n if (isNaN(tmp)) return null;\n b[i] = tmp;\n }\n return (b[0] | b[1] << 8 | b[2] << 16 | b[3] << 24) >>> 0;\n }\n function jstoi_q(str) {return parseInt(str);}\n function inetPton6(str) {\n var words;\n var w, offset, z;\n 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;\n var parts = [];\n if (!valid6regx.test(str)) {return null;}\n if (str === \"::\") {return [0, 0, 0, 0, 0, 0, 0, 0];}\n if (str.startsWith(\"::\")) {str = str.replace(\"::\", \"Z:\");} else {str = str.replace(\"::\", \":Z:\");}\n if (str.indexOf(\".\") > 0) {\n str = str.replace(new RegExp(\"[.]\", \"g\"), \":\");\n words = str.split(\":\");\n words[words.length - 4] = jstoi_q(words[words.length - 4]) + jstoi_q(words[words.length - 3]) * 256;\n words[words.length - 3] = jstoi_q(words[words.length - 2]) + jstoi_q(words[words.length - 1]) * 256;\n words = words.slice(0, words.length - 2);\n } else {words = str.split(\":\");}\n offset = 0;\n z = 0;\n for (w = 0; w < words.length; w++) {\n if (typeof words[w] === \"string\") {\n if (words[w] === \"Z\") {\n for (z = 0; z < 8 - words.length + 1; z++) {parts[w + z] = 0;}\n offset = z - 1;\n } else {parts[w + offset] = _htons(parseInt(words[w], 16));}\n } else {parts[w + offset] = words[w];}\n }\n return [parts[1] << 16 | parts[0], parts[3] << 16 | parts[2], parts[5] << 16 | parts[4], parts[7] << 16 | parts[6]];\n }\n function writeSockaddr(sa, family, addr, port, addrlen) {\n switch (family) {\n case 2:\n addr = inetPton4(addr);\n if (addrlen) {HEAP32[addrlen >> 2] = 16;}\n HEAP16[sa >> 1] = family;\n HEAP32[sa + 4 >> 2] = addr;\n HEAP16[sa + 2 >> 1] = _htons(port);\n tempI64 = [0 >>> 0, (tempDouble = 0, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[sa + 8 >> 2] = tempI64[0], HEAP32[sa + 12 >> 2] = tempI64[1];\n break;\n case 10:\n addr = inetPton6(addr);\n if (addrlen) {HEAP32[addrlen >> 2] = 28;}\n HEAP32[sa >> 2] = family;\n HEAP32[sa + 8 >> 2] = addr[0];\n HEAP32[sa + 12 >> 2] = addr[1];\n HEAP32[sa + 16 >> 2] = addr[2];\n HEAP32[sa + 20 >> 2] = addr[3];\n HEAP16[sa + 2 >> 1] = _htons(port);\n HEAP32[sa + 4 >> 2] = 0;\n HEAP32[sa + 24 >> 2] = 0;\n break;\n default:\n return 5;\n }\n return 0;\n }\n var DNS = {\n address_map: { id: 1, addrs: {}, names: {} }, lookup_name: function (name) {\n var res = inetPton4(name);\n if (res !== null) {return name;}\n res = inetPton6(name);\n if (res !== null) {return name;}\n var addr;\n if (DNS.address_map.addrs[name]) {addr = DNS.address_map.addrs[name];} else {\n var id = DNS.address_map.id++;\n assert(id < 65535, \"exceeded max address mappings of 65535\");\n addr = \"172.29.\" + (id & 255) + \".\" + (id & 65280);\n DNS.address_map.names[addr] = name;\n DNS.address_map.addrs[name] = addr;\n }\n return addr;\n }, lookup_addr: function (addr) {\n if (DNS.address_map.names[addr]) {return DNS.address_map.names[addr];}\n return null;\n }\n };\n function ___sys_recvfrom(fd, buf, len, flags, addr, addrlen) {\n try {\n var sock = getSocketFromFD(fd);\n var msg = sock.sock_ops.recvmsg(sock, len);\n if (!msg) return 0;\n if (addr) {var errno = writeSockaddr(addr, sock.family, DNS.lookup_name(msg.addr), msg.port, addrlen);}\n HEAPU8.set(msg.buffer, buf);\n return msg.buffer.byteLength;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_rename(old_path, new_path) {\n try {\n old_path = SYSCALLS.getStr(old_path);\n new_path = SYSCALLS.getStr(new_path);\n FS.rename(old_path, new_path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_rmdir(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.rmdir(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_sendto(fd, message, length, flags, addr, addr_len) {\n try {\n var sock = getSocketFromFD(fd);\n var dest = getSocketAddress(addr, addr_len, true);\n if (!dest) {return FS.write(sock.stream, HEAP8, message, length);} else {return sock.sock_ops.sendmsg(sock, HEAP8, message, length, dest.addr, dest.port);}\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_setsockopt(fd) {\n try {return -50;} catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_shutdown(fd, how) {\n try {\n getSocketFromFD(fd);\n return -52;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_socket(domain, type, protocol) {\n try {\n var sock = SOCKFS.createSocket(domain, type, protocol);\n return sock.stream.fd;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_stat64(path, buf) {\n try {\n path = SYSCALLS.getStr(path);\n return SYSCALLS.doStat(FS.stat, path, buf);\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_symlink(target, linkpath) {\n try {\n target = SYSCALLS.getStr(target);\n linkpath = SYSCALLS.getStr(linkpath);\n FS.symlink(target, linkpath);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_unlink(path) {\n try {\n path = SYSCALLS.getStr(path);\n FS.unlink(path);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function ___sys_utimensat(dirfd, path, times, flags) {\n try {\n path = SYSCALLS.getStr(path);\n path = SYSCALLS.calculateAt(dirfd, path, true);\n var seconds = HEAP32[times >> 2];\n var nanoseconds = HEAP32[times + 4 >> 2];\n var atime = seconds * 1e3 + nanoseconds / (1e3 * 1e3);\n times += 8;\n seconds = HEAP32[times >> 2];\n nanoseconds = HEAP32[times + 4 >> 2];\n var mtime = seconds * 1e3 + nanoseconds / (1e3 * 1e3);\n FS.utime(path, atime, mtime);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n function _abort() {abort();}\n function _emscripten_get_now_res() {return 1e3;}\n function _clock_getres(clk_id, res) {\n var nsec;\n if (clk_id === 0) {nsec = 1e3 * 1e3;} else if (clk_id === 1 && _emscripten_get_now_is_monotonic) {nsec = _emscripten_get_now_res();} else {\n setErrNo(28);\n return -1;\n }\n HEAP32[res >> 2] = nsec / 1e9 | 0;\n HEAP32[res + 4 >> 2] = nsec;\n return 0;\n }\n function _difftime(time1, time0) {return time1 - time0;}\n var DOTNETENTROPY = {\n batchedQuotaMax: 65536, getBatchedRandomValues: function (buffer, bufferLength) {\n for (var i = 0; i < bufferLength; i += this.batchedQuotaMax) {\n var view = new Uint8Array(Module.HEAPU8.buffer, buffer + i, Math.min(bufferLength - i, this.batchedQuotaMax));\n crypto.getRandomValues(view);\n }\n }\n };\n function _dotnet_browser_entropy(buffer, bufferLength) {\n if (typeof crypto === \"object\" && typeof crypto[\"getRandomValues\"] === \"function\") {\n DOTNETENTROPY.getBatchedRandomValues(buffer, bufferLength);\n return 0;\n } else {return -1;}\n }\n var readAsmConstArgsArray = [];\n function readAsmConstArgs(sigPtr, buf) {\n readAsmConstArgsArray.length = 0;\n var ch;\n buf >>= 2;\n while (ch = HEAPU8[sigPtr++]) {\n var double = ch < 105;\n if (double && buf & 1) buf++;\n readAsmConstArgsArray.push(double ? HEAPF64[buf++ >> 1] : HEAP32[buf]);\n ++buf;\n }\n return readAsmConstArgsArray;\n }\n function _emscripten_asm_const_int(code, sigPtr, argbuf) {\n var args = readAsmConstArgs(sigPtr, argbuf);\n return ASM_CONSTS[code].apply(null, args);\n }\n function _emscripten_get_heap_max() {return 2147483648;}\n function _emscripten_memcpy_big(dest, src, num) {HEAPU8.copyWithin(dest, src, src + num);}\n function emscripten_realloc_buffer(size) {\n try {\n wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);\n updateGlobalBufferAndViews(wasmMemory.buffer);\n return 1;\n } catch (e) {}\n }\n function _emscripten_resize_heap(requestedSize) {\n var oldSize = HEAPU8.length;\n requestedSize = requestedSize >>> 0;\n var maxHeapSize = 2147483648;\n if (requestedSize > maxHeapSize) {return false;}\n for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {\n var overGrownHeapSize = oldSize * (1 + .2 / cutDown);\n overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);\n var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));\n var replacement = emscripten_realloc_buffer(newSize);\n if (replacement) {return true;}\n }\n return false;\n }\n function _emscripten_thread_sleep(msecs) {\n var start = _emscripten_get_now();\n while (_emscripten_get_now() - start < msecs) {}\n }\n var ENV = {};\n function getExecutableName() {return thisProgram || \"./this.program\";}\n function getEnvStrings() {\n if (!getEnvStrings.strings) {\n var lang = (typeof navigator === \"object\" && navigator.languages && navigator.languages[0] || \"C\").replace(\"-\", \"_\") + \".UTF-8\";\n var env = { \"USER\": \"web_user\", \"LOGNAME\": \"web_user\", \"PATH\": \"/\", \"PWD\": \"/\", \"HOME\": \"/home/web_user\", \"LANG\": lang, \"_\": getExecutableName() };\n for (var x in ENV) {env[x] = ENV[x];}\n var strings = [];\n for (var x in env) {strings.push(x + \"=\" + env[x]);}\n getEnvStrings.strings = strings;\n }\n return getEnvStrings.strings;\n }\n function _environ_get(__environ, environ_buf) {\n try {\n var bufSize = 0;\n getEnvStrings().forEach(function (string, i) {\n var ptr = environ_buf + bufSize;\n HEAP32[__environ + i * 4 >> 2] = ptr;\n writeAsciiToMemory(string, ptr);\n bufSize += string.length + 1;\n });\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _environ_sizes_get(penviron_count, penviron_buf_size) {\n try {\n var strings = getEnvStrings();\n HEAP32[penviron_count >> 2] = strings.length;\n var bufSize = 0;\n strings.forEach(function (string) {bufSize += string.length + 1;});\n HEAP32[penviron_buf_size >> 2] = bufSize;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _exit(status) {exit(status);}\n function _fd_close(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_fdstat_get(fd, pbuf) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var type = stream.tty ? 2 : FS.isDir(stream.mode) ? 3 : FS.isLink(stream.mode) ? 7 : 4;\n HEAP8[pbuf >> 0] = type;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_pread(fd, iov, iovcnt, offset_low, offset_high, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doReadv(stream, iov, iovcnt, offset_low);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_pwrite(fd, iov, iovcnt, offset_low, offset_high, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doWritev(stream, iov, iovcnt, offset_low);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_read(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doReadv(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var HIGH_OFFSET = 4294967296;\n var offset = offset_high * HIGH_OFFSET + (offset_low >>> 0);\n var DOUBLE_LIMIT = 9007199254740992;\n if (offset <= -DOUBLE_LIMIT || offset >= DOUBLE_LIMIT) {return -61;}\n FS.llseek(stream, offset, whence);\n tempI64 = [stream.position >>> 0, (tempDouble = stream.position, +Math.abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math.min(+Math.floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[newOffset >> 2] = tempI64[0], HEAP32[newOffset + 4 >> 2] = tempI64[1];\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_sync(fd) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n if (stream.stream_ops && stream.stream_ops.fsync) {return -stream.stream_ops.fsync(stream);}\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _fd_write(fd, iov, iovcnt, pnum) {\n try {\n var stream = SYSCALLS.getStreamFromFD(fd);\n var num = SYSCALLS.doWritev(stream, iov, iovcnt);\n HEAP32[pnum >> 2] = num;\n return 0;\n } catch (e) {\n if (typeof FS === \"undefined\" || !(e instanceof FS.ErrnoError)) abort(e);\n return e.errno;\n }\n }\n function _flock(fd, operation) {return 0;}\n var GAI_ERRNO_MESSAGES = {};\n function _gai_strerror(val) {\n var buflen = 256;\n if (!_gai_strerror.buffer) {\n _gai_strerror.buffer = _malloc(buflen);\n GAI_ERRNO_MESSAGES[\"0\"] = \"Success\";\n GAI_ERRNO_MESSAGES[\"\" + -1] = \"Invalid value for 'ai_flags' field\";\n GAI_ERRNO_MESSAGES[\"\" + -2] = \"NAME or SERVICE is unknown\";\n GAI_ERRNO_MESSAGES[\"\" + -3] = \"Temporary failure in name resolution\";\n GAI_ERRNO_MESSAGES[\"\" + -4] = \"Non-recoverable failure in name res\";\n GAI_ERRNO_MESSAGES[\"\" + -6] = \"'ai_family' not supported\";\n GAI_ERRNO_MESSAGES[\"\" + -7] = \"'ai_socktype' not supported\";\n GAI_ERRNO_MESSAGES[\"\" + -8] = \"SERVICE not supported for 'ai_socktype'\";\n GAI_ERRNO_MESSAGES[\"\" + -10] = \"Memory allocation failure\";\n GAI_ERRNO_MESSAGES[\"\" + -11] = \"System error returned in 'errno'\";\n GAI_ERRNO_MESSAGES[\"\" + -12] = \"Argument buffer overflow\";\n }\n var msg = \"Unknown error\";\n if (val in GAI_ERRNO_MESSAGES) {if (GAI_ERRNO_MESSAGES[val].length > buflen - 1) {msg = \"Message too long\";} else {msg = GAI_ERRNO_MESSAGES[val];}}\n writeAsciiToMemory(msg, _gai_strerror.buffer);\n return _gai_strerror.buffer;\n }\n function _getTempRet0() {return getTempRet0();}\n function _gettimeofday(ptr) {\n var now = Date.now();\n HEAP32[ptr >> 2] = now / 1e3 | 0;\n HEAP32[ptr + 4 >> 2] = now % 1e3 * 1e3 | 0;\n return 0;\n }\n function _gmtime_r(time, tmPtr) {\n var date = new Date(HEAP32[time >> 2] * 1e3);\n HEAP32[tmPtr >> 2] = date.getUTCSeconds();\n HEAP32[tmPtr + 4 >> 2] = date.getUTCMinutes();\n HEAP32[tmPtr + 8 >> 2] = date.getUTCHours();\n HEAP32[tmPtr + 12 >> 2] = date.getUTCDate();\n HEAP32[tmPtr + 16 >> 2] = date.getUTCMonth();\n HEAP32[tmPtr + 20 >> 2] = date.getUTCFullYear() - 1900;\n HEAP32[tmPtr + 24 >> 2] = date.getUTCDay();\n HEAP32[tmPtr + 36 >> 2] = 0;\n HEAP32[tmPtr + 32 >> 2] = 0;\n var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);\n var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;\n HEAP32[tmPtr + 28 >> 2] = yday;\n if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8(\"GMT\");\n HEAP32[tmPtr + 40 >> 2] = _gmtime_r.GMTString;\n return tmPtr;\n }\n function _llvm_eh_typeid_for(type) {return type;}\n function _tzset() {\n if (_tzset.called) return;\n _tzset.called = true;\n var currentYear = (new Date).getFullYear();\n var winter = new Date(currentYear, 0, 1);\n var summer = new Date(currentYear, 6, 1);\n var winterOffset = winter.getTimezoneOffset();\n var summerOffset = summer.getTimezoneOffset();\n var stdTimezoneOffset = Math.max(winterOffset, summerOffset);\n HEAP32[__get_timezone() >> 2] = stdTimezoneOffset * 60;\n HEAP32[__get_daylight() >> 2] = Number(winterOffset != summerOffset);\n function extractZone(date) {\n var match = date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);\n return match ? match[1] : \"GMT\";\n }\n var winterName = extractZone(winter);\n var summerName = extractZone(summer);\n var winterNamePtr = allocateUTF8(winterName);\n var summerNamePtr = allocateUTF8(summerName);\n if (summerOffset < winterOffset) {\n HEAP32[__get_tzname() >> 2] = winterNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = summerNamePtr;\n } else {\n HEAP32[__get_tzname() >> 2] = summerNamePtr;\n HEAP32[__get_tzname() + 4 >> 2] = winterNamePtr;\n }\n }\n function _localtime_r(time, tmPtr) {\n _tzset();\n var date = new Date(HEAP32[time >> 2] * 1e3);\n HEAP32[tmPtr >> 2] = date.getSeconds();\n HEAP32[tmPtr + 4 >> 2] = date.getMinutes();\n HEAP32[tmPtr + 8 >> 2] = date.getHours();\n HEAP32[tmPtr + 12 >> 2] = date.getDate();\n HEAP32[tmPtr + 16 >> 2] = date.getMonth();\n HEAP32[tmPtr + 20 >> 2] = date.getFullYear() - 1900;\n HEAP32[tmPtr + 24 >> 2] = date.getDay();\n var start = new Date(date.getFullYear(), 0, 1);\n var yday = (date.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24) | 0;\n HEAP32[tmPtr + 28 >> 2] = yday;\n HEAP32[tmPtr + 36 >> 2] = -(date.getTimezoneOffset() * 60);\n var summerOffset = new Date(date.getFullYear(), 6, 1).getTimezoneOffset();\n var winterOffset = start.getTimezoneOffset();\n var dst = (summerOffset != winterOffset && date.getTimezoneOffset() == Math.min(winterOffset, summerOffset)) | 0;\n HEAP32[tmPtr + 32 >> 2] = dst;\n var zonePtr = HEAP32[__get_tzname() + (dst ? 4 : 0) >> 2];\n HEAP32[tmPtr + 40 >> 2] = zonePtr;\n return tmPtr;\n }\n var MONO = {\n pump_count: 0, timeout_queue: [], spread_timers_maximum: 0, _vt_stack: [], mono_wasm_runtime_is_ready: false, mono_wasm_ignore_pdb_load_errors: true, _id_table: {}, pump_message: function () {\n if (!this.mono_background_exec) this.mono_background_exec = Module.cwrap(\"mono_background_exec\", null);\n while (MONO.timeout_queue.length > 0) {\n --MONO.pump_count;\n MONO.timeout_queue.shift()();\n }\n while (MONO.pump_count > 0) {\n --MONO.pump_count;\n this.mono_background_exec();\n }\n }, export_functions: function (module) {\n module[\"pump_message\"] = MONO.pump_message.bind(MONO);\n module[\"prevent_timer_throttling\"] = MONO.prevent_timer_throttling.bind(MONO);\n module[\"mono_wasm_set_timeout_exec\"] = MONO.mono_wasm_set_timeout_exec.bind(MONO);\n module[\"mono_load_runtime_and_bcl\"] = MONO.mono_load_runtime_and_bcl.bind(MONO);\n module[\"mono_load_runtime_and_bcl_args\"] = MONO.mono_load_runtime_and_bcl_args.bind(MONO);\n module[\"mono_wasm_load_bytes_into_heap\"] = MONO.mono_wasm_load_bytes_into_heap.bind(MONO);\n module[\"mono_wasm_load_icu_data\"] = MONO.mono_wasm_load_icu_data.bind(MONO);\n module[\"mono_wasm_get_icudt_name\"] = MONO.mono_wasm_get_icudt_name.bind(MONO);\n module[\"mono_wasm_globalization_init\"] = MONO.mono_wasm_globalization_init.bind(MONO);\n module[\"mono_wasm_get_loaded_files\"] = MONO.mono_wasm_get_loaded_files.bind(MONO);\n module[\"mono_wasm_new_root_buffer\"] = MONO.mono_wasm_new_root_buffer.bind(MONO);\n module[\"mono_wasm_new_root_buffer_from_pointer\"] = MONO.mono_wasm_new_root_buffer_from_pointer.bind(MONO);\n module[\"mono_wasm_new_root\"] = MONO.mono_wasm_new_root.bind(MONO);\n module[\"mono_wasm_new_roots\"] = MONO.mono_wasm_new_roots.bind(MONO);\n module[\"mono_wasm_release_roots\"] = MONO.mono_wasm_release_roots.bind(MONO);\n module[\"mono_wasm_load_config\"] = MONO.mono_wasm_load_config.bind(MONO);\n }, _base64Converter: {\n _base64Table: [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"+\", \"/\"], _makeByteReader: function (bytes, index, count) {\n var position = typeof index === \"number\" ? index : 0;\n var endpoint;\n if (typeof count === \"number\") endpoint = position + count; else endpoint = bytes.length - position;\n var result = {\n read: function () {\n if (position >= endpoint) return false;\n var nextByte = bytes[position];\n position += 1;\n return nextByte;\n }\n };\n Object.defineProperty(result, \"eof\", { get: function () {return position >= endpoint;}, configurable: true, enumerable: true });\n return result;\n }, toBase64StringImpl: function (inArray, offset, length) {\n var reader = this._makeByteReader(inArray, offset, length);\n var result = \"\";\n var ch1 = 0, ch2 = 0, ch3 = 0, bits = 0, equalsCount = 0, sum = 0;\n var mask1 = (1 << 24) - 1, mask2 = (1 << 18) - 1, mask3 = (1 << 12) - 1, mask4 = (1 << 6) - 1;\n var shift1 = 18, shift2 = 12, shift3 = 6, shift4 = 0;\n while (true) {\n ch1 = reader.read();\n ch2 = reader.read();\n ch3 = reader.read();\n if (ch1 === false) break;\n if (ch2 === false) {\n ch2 = 0;\n equalsCount += 1;\n }\n if (ch3 === false) {\n ch3 = 0;\n equalsCount += 1;\n }\n sum = ch1 << 16 | ch2 << 8 | ch3 << 0;\n bits = (sum & mask1) >> shift1;\n result += this._base64Table[bits];\n bits = (sum & mask2) >> shift2;\n result += this._base64Table[bits];\n if (equalsCount < 2) {\n bits = (sum & mask3) >> shift3;\n result += this._base64Table[bits];\n }\n if (equalsCount === 2) {result += \"==\";} else if (equalsCount === 1) {result += \"=\";} else {\n bits = (sum & mask4) >> shift4;\n result += this._base64Table[bits];\n }\n }\n return result;\n }\n }, _mono_wasm_root_buffer_prototype: {\n _throw_index_out_of_range: function () {throw new Error(\"index out of range\");}, _check_in_range: function (index) {if (index >= this.__count || index < 0) this._throw_index_out_of_range();}, get_address: function (index) {\n this._check_in_range(index);\n return this.__offset + index * 4;\n }, get_address_32: function (index) {\n this._check_in_range(index);\n return this.__offset32 + index;\n }, get: function (index) {\n this._check_in_range(index);\n return Module.HEAP32[this.get_address_32(index)];\n }, set: function (index, value) {\n Module.HEAP32[this.get_address_32(index)] = value;\n return value;\n }, _unsafe_get: function (index) {return Module.HEAP32[this.__offset32 + index];}, _unsafe_set: function (index, value) {Module.HEAP32[this.__offset32 + index] = value;}, clear: function () {if (this.__offset) MONO._zero_region(this.__offset, this.__count * 4);}, release: function () {\n if (this.__offset && this.__ownsAllocation) {\n MONO.mono_wasm_deregister_root(this.__offset);\n MONO._zero_region(this.__offset, this.__count * 4);\n Module._free(this.__offset);\n }\n this.__handle = this.__offset = this.__count = this.__offset32 = 0;\n }, toString: function () {return \"[root buffer @\" + this.get_address(0) + \", size \" + this.__count + \"]\";}\n }, _scratch_root_buffer: null, _scratch_root_free_indices: null, _scratch_root_free_indices_count: 0, _scratch_root_free_instances: [], _mono_wasm_root_prototype: {\n get_address: function () {return this.__buffer.get_address(this.__index);}, get_address_32: function () {return this.__buffer.get_address_32(this.__index);}, get: function () {\n var result = this.__buffer._unsafe_get(this.__index);\n return result;\n }, set: function (value) {\n this.__buffer._unsafe_set(this.__index, value);\n return value;\n }, valueOf: function () {return this.get();}, clear: function () {this.set(0);}, release: function () {\n const maxPooledInstances = 128;\n if (MONO._scratch_root_free_instances.length > maxPooledInstances) {\n MONO._mono_wasm_release_scratch_index(this.__index);\n this.__buffer = 0;\n this.__index = 0;\n } else {\n this.set(0);\n MONO._scratch_root_free_instances.push(this);\n }\n }, toString: function () {return \"[root @\" + this.get_address() + \"]\";}\n }, _mono_wasm_release_scratch_index: function (index) {\n if (index === undefined) return;\n this._scratch_root_buffer.set(index, 0);\n this._scratch_root_free_indices[this._scratch_root_free_indices_count] = index;\n this._scratch_root_free_indices_count++;\n }, _mono_wasm_claim_scratch_index: function () {\n if (!this._scratch_root_buffer) {\n const maxScratchRoots = 8192;\n this._scratch_root_buffer = this.mono_wasm_new_root_buffer(maxScratchRoots, \"js roots\");\n this._scratch_root_free_indices = new Int32Array(maxScratchRoots);\n this._scratch_root_free_indices_count = maxScratchRoots;\n for (var i = 0; i < maxScratchRoots; i++) this._scratch_root_free_indices[i] = maxScratchRoots - i - 1;\n Object.defineProperty(this._mono_wasm_root_prototype, \"value\", { get: this._mono_wasm_root_prototype.get, set: this._mono_wasm_root_prototype.set, configurable: false });\n }\n if (this._scratch_root_free_indices_count < 1) throw new Error(\"Out of scratch root space\");\n var result = this._scratch_root_free_indices[this._scratch_root_free_indices_count - 1];\n this._scratch_root_free_indices_count--;\n return result;\n }, _zero_region: function (byteOffset, sizeBytes) {if (byteOffset % 4 === 0 && sizeBytes % 4 === 0) Module.HEAP32.fill(0, byteOffset / 4, sizeBytes / 4); else Module.HEAP8.fill(0, byteOffset, sizeBytes);}, mono_wasm_new_root_buffer: function (capacity, msg) {\n if (!this.mono_wasm_register_root || !this.mono_wasm_deregister_root) {\n this.mono_wasm_register_root = Module.cwrap(\"mono_wasm_register_root\", \"number\", [\"number\", \"number\", \"string\"]);\n this.mono_wasm_deregister_root = Module.cwrap(\"mono_wasm_deregister_root\", null, [\"number\"]);\n }\n if (capacity <= 0) throw new Error(\"capacity >= 1\");\n capacity = capacity | 0;\n var capacityBytes = capacity * 4;\n var offset = Module._malloc(capacityBytes);\n if (offset % 4 !== 0) throw new Error(\"Malloc returned an unaligned offset\");\n this._zero_region(offset, capacityBytes);\n var result = Object.create(this._mono_wasm_root_buffer_prototype);\n result.__offset = offset;\n result.__offset32 = offset / 4 | 0;\n result.__count = capacity;\n result.length = capacity;\n result.__handle = this.mono_wasm_register_root(offset, capacityBytes, msg || 0);\n result.__ownsAllocation = true;\n return result;\n }, mono_wasm_new_root_buffer_from_pointer: function (offset, capacity, msg) {\n if (!this.mono_wasm_register_root || !this.mono_wasm_deregister_root) {\n this.mono_wasm_register_root = Module.cwrap(\"mono_wasm_register_root\", \"number\", [\"number\", \"number\", \"string\"]);\n this.mono_wasm_deregister_root = Module.cwrap(\"mono_wasm_deregister_root\", null, [\"number\"]);\n }\n if (capacity <= 0) throw new Error(\"capacity >= 1\");\n capacity = capacity | 0;\n var capacityBytes = capacity * 4;\n if (offset % 4 !== 0) throw new Error(\"Unaligned offset\");\n this._zero_region(offset, capacityBytes);\n var result = Object.create(this._mono_wasm_root_buffer_prototype);\n result.__offset = offset;\n result.__offset32 = offset / 4 | 0;\n result.__count = capacity;\n result.length = capacity;\n result.__handle = this.mono_wasm_register_root(offset, capacityBytes, msg || 0);\n result.__ownsAllocation = false;\n return result;\n }, mono_wasm_new_root: function (value) {\n var result;\n if (this._scratch_root_free_instances.length > 0) {result = this._scratch_root_free_instances.pop();} else {\n var index = this._mono_wasm_claim_scratch_index();\n var buffer = this._scratch_root_buffer;\n result = Object.create(this._mono_wasm_root_prototype);\n result.__buffer = buffer;\n result.__index = index;\n }\n if (value !== undefined) {\n if (typeof value !== \"number\") throw new Error(\"value must be an address in the managed heap\");\n result.set(value);\n } else {result.set(0);}\n return result;\n }, mono_wasm_new_roots: function (count_or_values) {\n var result;\n if (Array.isArray(count_or_values)) {\n result = new Array(count_or_values.length);\n for (var i = 0; i < result.length; i++) result[i] = this.mono_wasm_new_root(count_or_values[i]);\n } else if ((count_or_values | 0) > 0) {\n result = new Array(count_or_values);\n for (var i = 0; i < result.length; i++) result[i] = this.mono_wasm_new_root();\n } else {throw new Error(\"count_or_values must be either an array or a number greater than 0\");}\n return result;\n }, mono_wasm_release_roots: function () {\n for (var i = 0; i < arguments.length; i++) {\n if (!arguments[i]) continue;\n arguments[i].release();\n }\n }, mono_text_decoder: undefined, string_decoder: {\n copy: function (mono_string) {\n if (mono_string === 0) return null;\n if (!this.mono_wasm_string_root) this.mono_wasm_string_root = MONO.mono_wasm_new_root();\n this.mono_wasm_string_root.value = mono_string;\n if (!this.mono_wasm_string_get_data) this.mono_wasm_string_get_data = Module.cwrap(\"mono_wasm_string_get_data\", null, [\"number\", \"number\", \"number\", \"number\"]);\n if (!this.mono_wasm_string_decoder_buffer) this.mono_wasm_string_decoder_buffer = Module._malloc(12);\n let ppChars = this.mono_wasm_string_decoder_buffer + 0, pLengthBytes = this.mono_wasm_string_decoder_buffer + 4, pIsInterned = this.mono_wasm_string_decoder_buffer + 8;\n this.mono_wasm_string_get_data(mono_string, ppChars, pLengthBytes, pIsInterned);\n if (!this.mono_wasm_empty_string) this.mono_wasm_empty_string = \"\";\n let result = this.mono_wasm_empty_string;\n let lengthBytes = Module.HEAP32[pLengthBytes / 4], pChars = Module.HEAP32[ppChars / 4], isInterned = Module.HEAP32[pIsInterned / 4];\n if (pLengthBytes && pChars) {\n if (isInterned && MONO.interned_string_table && MONO.interned_string_table.has(mono_string)) {result = MONO.interned_string_table.get(mono_string);} else {\n result = this.decode(pChars, pChars + lengthBytes, false);\n if (isInterned) {\n if (!MONO.interned_string_table) MONO.interned_string_table = new Map;\n MONO.interned_string_table.set(mono_string, result);\n }\n }\n }\n this.mono_wasm_string_root.value = 0;\n return result;\n }, decode: function (start, end, save) {\n if (!MONO.mono_text_decoder) {MONO.mono_text_decoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\") : undefined;}\n var str = \"\";\n if (MONO.mono_text_decoder) {\n var subArray = typeof SharedArrayBuffer !== \"undefined\" && Module.HEAPU8.buffer instanceof SharedArrayBuffer ? Module.HEAPU8.slice(start, end) : Module.HEAPU8.subarray(start, end);\n str = MONO.mono_text_decoder.decode(subArray);\n } else {\n for (var i = 0; i < end - start; i += 2) {\n var char = Module.getValue(start + i, \"i16\");\n str += String.fromCharCode(char);\n }\n }\n if (save) this.result = str;\n return str;\n }\n }, mono_wasm_add_dbg_command_received: function (res_ok, id, buffer, buffer_len) {\n const assembly_data = new Uint8Array(Module.HEAPU8.buffer, buffer, buffer_len);\n const base64String = MONO._base64Converter.toBase64StringImpl(assembly_data);\n const buffer_obj = { res_ok: res_ok, res: { id: id, value: base64String } };\n if (MONO.commands_received.has(id)) console.warn(\"Addind an id that already exists in commands_received\");\n MONO.commands_received.set(id, buffer_obj);\n }, mono_wasm_malloc_and_set_debug_buffer: function (command_parameters) {\n if (command_parameters.length > this._debugger_buffer_len) {\n if (this._debugger_buffer) Module._free(this._debugger_buffer);\n this._debugger_buffer_len = Math.max(command_parameters.length, this._debugger_buffer_len, 256);\n this._debugger_buffer = Module._malloc(this._debugger_buffer_len);\n }\n this._debugger_heap_bytes = new Uint8Array(Module.HEAPU8.buffer, this._debugger_buffer, this._debugger_buffer_len);\n this._debugger_heap_bytes.set(this._base64_to_uint8(command_parameters));\n }, mono_wasm_send_dbg_command_with_parms: function (id, command_set, command, command_parameters, length, valtype, newvalue) {\n this.mono_wasm_malloc_and_set_debug_buffer(command_parameters);\n this._c_fn_table.mono_wasm_send_dbg_command_with_parms_wrapper(id, command_set, command, this._debugger_buffer, length, valtype, newvalue.toString());\n let { res_ok: res_ok, res: res } = MONO.commands_received.remove(id);\n if (!res_ok) throw new Error(`Failed on mono_wasm_invoke_method_debugger_agent_with_parms`);\n return res;\n }, mono_wasm_send_dbg_command: function (id, command_set, command, command_parameters) {\n this.mono_wasm_malloc_and_set_debug_buffer(command_parameters);\n this._c_fn_table.mono_wasm_send_dbg_command_wrapper(id, command_set, command, this._debugger_buffer, command_parameters.length);\n let { res_ok: res_ok, res: res } = MONO.commands_received.remove(id);\n if (!res_ok) throw new Error(`Failed on mono_wasm_send_dbg_command`);\n return res;\n }, mono_wasm_get_dbg_command_info: function () {\n let { res_ok: res_ok, res: res } = MONO.commands_received.remove(0);\n if (!res_ok) throw new Error(`Failed on mono_wasm_get_dbg_command_info`);\n return res;\n }, _get_cfo_res_details: function (objectId, args) {\n if (!(objectId in this._call_function_res_cache)) throw new Error(`Could not find any object with id ${objectId}`);\n const real_obj = this._call_function_res_cache[objectId];\n const descriptors = Object.getOwnPropertyDescriptors(real_obj);\n if (args.accessorPropertiesOnly) {Object.keys(descriptors).forEach(k => {if (descriptors[k].get === undefined) Reflect.deleteProperty(descriptors, k);});}\n let res_details = [];\n Object.keys(descriptors).forEach(k => {\n let new_obj;\n let prop_desc = descriptors[k];\n if (typeof prop_desc.value == \"object\") {new_obj = Object.assign({ name: k }, prop_desc);} else if (prop_desc.value !== undefined) {new_obj = { name: k, value: Object.assign({ type: typeof prop_desc.value, description: \"\" + prop_desc.value }, prop_desc) };} else if (prop_desc.get !== undefined) {new_obj = { name: k, get: { className: \"Function\", description: `get ${k} () {}`, type: \"function\" } };} else {new_obj = { name: k, value: { type: \"symbol\", value: \"<Unknown>\", description: \"<Unknown>\" } };}\n res_details.push(new_obj);\n });\n return { __value_as_json_string__: JSON.stringify(res_details) };\n }, mono_wasm_get_details: function (objectId, args = {}) {return this._get_cfo_res_details(`dotnet:cfo_res:${objectId}`, args);}, _cache_call_function_res: function (obj) {\n const id = `dotnet:cfo_res:${this._next_call_function_res_id++}`;\n this._call_function_res_cache[id] = obj;\n return id;\n }, mono_wasm_release_object: function (objectId) {if (objectId in this._cache_call_function_res) delete this._cache_call_function_res[objectId];}, _create_proxy_from_object_id: function (objectId, details) {\n if (objectId.startsWith(\"dotnet:array:\")) {\n if (details.items === undefined) {\n const ret = details.map(p => p.value);\n return ret;\n }\n if (details.dimensionsDetails == undefined || details.dimensionsDetails.length == 1) {\n const ret = details.items.map(p => p.value);\n return ret;\n }\n }\n let proxy = {};\n Object.keys(details).forEach(p => {\n var prop = details[p];\n if (prop.get !== undefined) {\n Object.defineProperty(proxy, prop.name, {\n get() {return MONO.mono_wasm_send_dbg_command(prop.get.id, prop.get.commandSet, prop.get.command, prop.get.buffer, prop.get.length);}, set: function (newValue) {\n MONO.mono_wasm_send_dbg_command_with_parms(prop.set.id, prop.set.commandSet, prop.set.command, prop.set.buffer, prop.set.length, prop.set.valtype, newValue);\n return true;\n }\n });\n } else if (prop.set !== undefined) {\n Object.defineProperty(proxy, prop.name, {\n get() {return prop.value;}, set: function (newValue) {\n MONO.mono_wasm_send_dbg_command_with_parms(prop.set.id, prop.set.commandSet, prop.set.command, prop.set.buffer, prop.set.length, prop.set.valtype, newValue);\n return true;\n }\n });\n } else {proxy[prop.name] = prop.value;}\n });\n return proxy;\n }, mono_wasm_call_function_on: function (request) {\n if (request.arguments != undefined && !Array.isArray(request.arguments)) throw new Error(`\"arguments\" should be an array, but was ${request.arguments}`);\n const objId = request.objectId;\n const details = request.details;\n let proxy;\n if (objId.startsWith(\"dotnet:cfo_res:\")) {if (objId in this._call_function_res_cache) proxy = this._call_function_res_cache[objId]; else throw new Error(`Unknown object id ${objId}`);} else {proxy = this._create_proxy_from_object_id(objId, details);}\n const fn_args = request.arguments != undefined ? request.arguments.map(a => JSON.stringify(a.value)) : [];\n const fn_eval_str = `var fn = ${request.functionDeclaration}; fn.call (proxy, ...[${fn_args}]);`;\n const fn_res = eval(fn_eval_str);\n if (fn_res === undefined) return { type: \"undefined\" };\n if (Object(fn_res) !== fn_res) {\n if (typeof fn_res == \"object\" && fn_res == null) return { type: typeof fn_res, subtype: `${fn_res}`, value: null };\n return { type: typeof fn_res, description: `${fn_res}`, value: `${fn_res}` };\n }\n if (request.returnByValue && fn_res.subtype == undefined) return { type: \"object\", value: fn_res };\n if (Object.getPrototypeOf(fn_res) == Array.prototype) {\n const fn_res_id = this._cache_call_function_res(fn_res);\n return { type: \"object\", subtype: \"array\", className: \"Array\", description: `Array(${fn_res.length})`, objectId: fn_res_id };\n }\n if (fn_res.value !== undefined || fn_res.subtype !== undefined) {return fn_res;}\n if (fn_res == proxy) return { type: \"object\", className: \"Object\", description: \"Object\", objectId: objId };\n const fn_res_id = this._cache_call_function_res(fn_res);\n return { type: \"object\", className: \"Object\", description: \"Object\", objectId: fn_res_id };\n }, _clear_per_step_state: function () {\n this._next_id_var = 0;\n this._id_table = {};\n }, mono_wasm_debugger_resume: function () {this._clear_per_step_state();}, mono_wasm_detach_debugger: function () {\n if (!this.mono_wasm_set_is_debugger_attached) this.mono_wasm_set_is_debugger_attached = Module.cwrap(\"mono_wasm_set_is_debugger_attached\", \"void\", [\"bool\"]);\n this.mono_wasm_set_is_debugger_attached(false);\n }, _register_c_fn: function (name, ...args) {Object.defineProperty(this._c_fn_table, name + \"_wrapper\", { value: Module.cwrap(name, ...args) });}, _register_c_var_fn: function (name, ret_type, params) {\n if (ret_type !== \"bool\") throw new Error(`Bug: Expected a C function signature that returns bool`);\n this._register_c_fn(name, ret_type, params);\n Object.defineProperty(this, name + \"_info\", {\n value: function (...args) {\n MONO.var_info = [];\n const res_ok = MONO._c_fn_table[name + \"_wrapper\"](...args);\n let res = MONO.var_info;\n MONO.var_info = [];\n if (res_ok) {\n res = this._fixup_name_value_objects(res);\n return { res_ok: res_ok, res: res };\n }\n return { res_ok: res_ok, res: undefined };\n }\n });\n }, mono_wasm_runtime_ready: function () {\n MONO.commands_received = new Map;\n MONO.commands_received.remove = function (key) {\n const value = this.get(key);\n this.delete(key);\n return value;\n };\n this.mono_wasm_runtime_is_ready = true;\n this._clear_per_step_state();\n this._next_call_function_res_id = 0;\n this._call_function_res_cache = {};\n this._c_fn_table = {};\n this._register_c_fn(\"mono_wasm_send_dbg_command\", \"bool\", [\"number\", \"number\", \"number\", \"number\", \"number\"]);\n this._register_c_fn(\"mono_wasm_send_dbg_command_with_parms\", \"bool\", [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"string\"]);\n this._debugger_buffer_len = -1;\n if (globalThis.dotnetDebugger) debugger; else {};\n }, mono_wasm_setenv: function (name, value) {\n if (!this.wasm_setenv) this.wasm_setenv = Module.cwrap(\"mono_wasm_setenv\", null, [\"string\", \"string\"]);\n this.wasm_setenv(name, value);\n }, mono_wasm_set_runtime_options: function (options) {\n if (!this.wasm_parse_runtime_options) this.wasm_parse_runtime_options = Module.cwrap(\"mono_wasm_parse_runtime_options\", null, [\"number\", \"number\"]);\n var argv = Module._malloc(options.length * 4);\n var wasm_strdup = Module.cwrap(\"mono_wasm_strdup\", \"number\", [\"string\"]);\n let aindex = 0;\n for (var i = 0; i < options.length; ++i) {\n Module.setValue(argv + aindex * 4, wasm_strdup(options[i]), \"i32\");\n aindex += 1;\n }\n this.wasm_parse_runtime_options(options.length, argv);\n }, mono_wasm_init_aot_profiler: function (options) {\n if (options == null) options = {};\n if (!(\"write_at\" in options)) options.write_at = \"Interop/Runtime::StopProfile\";\n if (!(\"send_to\" in options)) options.send_to = \"Interop/Runtime::DumpAotProfileData\";\n var arg = \"aot:write-at-method=\" + options.write_at + \",send-to-method=\" + options.send_to;\n Module.ccall(\"mono_wasm_load_profiler_aot\", null, [\"string\"], [arg]);\n }, mono_wasm_init_coverage_profiler: function (options) {\n if (options == null) options = {};\n if (!(\"write_at\" in options)) options.write_at = \"WebAssembly.Runtime::StopProfile\";\n if (!(\"send_to\" in options)) options.send_to = \"WebAssembly.Runtime::DumpCoverageProfileData\";\n var arg = \"coverage:write-at-method=\" + options.write_at + \",send-to-method=\" + options.send_to;\n Module.ccall(\"mono_wasm_load_profiler_coverage\", null, [\"string\"], [arg]);\n }, _apply_configuration_from_args: function (args) {\n for (var k in args.environment_variables || {}) MONO.mono_wasm_setenv(k, args.environment_variables[k]);\n if (args.runtime_options) MONO.mono_wasm_set_runtime_options(args.runtime_options);\n if (args.aot_profiler_options) MONO.mono_wasm_init_aot_profiler(args.aot_profiler_options);\n if (args.coverage_profiler_options) MONO.mono_wasm_init_coverage_profiler(args.coverage_profiler_options);\n }, _get_fetch_file_cb_from_args: function (args) {\n if (typeof args.fetch_file_cb === \"function\") return args.fetch_file_cb;\n if (ENVIRONMENT_IS_NODE) {\n var fs = {};\n return function (asset) {\n console.debug(\"MONO_WASM: Loading... \" + asset);\n var binary = fs.readFileSync(asset);\n var resolve_func2 = function (resolve, reject) {resolve(new Uint8Array(binary));};\n var resolve_func1 = function (resolve, reject) {\n var response = { ok: true, url: asset, arrayBuffer: function () {return new Promise(resolve_func2);} };\n resolve(response);\n };\n return new Promise(resolve_func1);\n };\n } else if (typeof fetch === \"function\") {return function (asset) {return fetch(asset, { credentials: \"same-origin\" });};} else {throw new Error(\"No fetch_file_cb was provided and this environment does not expose 'fetch'.\");}\n }, _handle_loaded_asset: function (ctx, asset, url, blob) {\n var bytes = new Uint8Array(blob);\n if (ctx.tracing) console.log(\"MONO_WASM: Loaded:\", asset.name, \"size\", bytes.length, \"from\", url);\n var virtualName = asset.virtual_path || asset.name;\n var offset = null;\n switch (asset.behavior) {\n case\"resource\":\n case\"assembly\":\n ctx.loaded_files.push({ url: url, file: virtualName });\n case\"heap\":\n case\"icu\":\n offset = this.mono_wasm_load_bytes_into_heap(bytes);\n ctx.loaded_assets[virtualName] = [offset, bytes.length];\n break;\n case\"vfs\":\n var lastSlash = virtualName.lastIndexOf(\"/\");\n var parentDirectory = lastSlash > 0 ? virtualName.substr(0, lastSlash) : null;\n var fileName = lastSlash > 0 ? virtualName.substr(lastSlash + 1) : virtualName;\n if (fileName.startsWith(\"/\")) fileName = fileName.substr(1);\n if (parentDirectory) {\n if (ctx.tracing) console.log(\"MONO_WASM: Creating directory '\" + parentDirectory + \"'\");\n var pathRet = ctx.createPath(\"/\", parentDirectory, true, true);\n } else {parentDirectory = \"/\";}\n if (ctx.tracing) console.log(\"MONO_WASM: Creating file '\" + fileName + \"' in directory '\" + parentDirectory + \"'\");\n if (!this.mono_wasm_load_data_archive(bytes, parentDirectory)) {var fileRet = ctx.createDataFile(parentDirectory, fileName, bytes, true, true, true);}\n break;\n default:\n throw new Error(\"Unrecognized asset behavior:\", asset.behavior, \"for asset\", asset.name);\n }\n if (asset.behavior === \"assembly\") {\n var hasPpdb = ctx.mono_wasm_add_assembly(virtualName, offset, bytes.length);\n if (!hasPpdb) {\n var index = ctx.loaded_files.findIndex(element => element.file == virtualName);\n ctx.loaded_files.splice(index, 1);\n }\n } else if (asset.behavior === \"icu\") {if (this.mono_wasm_load_icu_data(offset)) ctx.num_icu_assets_loaded_successfully += 1; else console.error(\"Error loading ICU asset\", asset.name);} else if (asset.behavior === \"resource\") {ctx.mono_wasm_add_satellite_assembly(virtualName, asset.culture, offset, bytes.length);}\n }, mono_load_runtime_and_bcl: function (unused_vfs_prefix, deploy_prefix, debug_level, file_list, loaded_cb, fetch_file_cb) {\n var args = { fetch_file_cb: fetch_file_cb, loaded_cb: loaded_cb, debug_level: debug_level, assembly_root: deploy_prefix, assets: [] };\n for (var i = 0; i < file_list.length; i++) {\n var file_name = file_list[i];\n var behavior;\n if (file_name.startsWith(\"icudt\") && file_name.endsWith(\".dat\")) {behavior = \"icu\";} else {behavior = \"assembly\";}\n args.assets.push({ name: file_name, behavior: behavior });\n }\n return this.mono_load_runtime_and_bcl_args(args);\n }, mono_load_runtime_and_bcl_args: function (args) {\n try {return this._load_assets_and_runtime(args);} catch (exc) {\n console.error(\"error in mono_load_runtime_and_bcl_args:\", exc);\n throw exc;\n }\n }, mono_wasm_load_bytes_into_heap: function (bytes) {\n var memoryOffset = Module._malloc(bytes.length);\n var heapBytes = new Uint8Array(Module.HEAPU8.buffer, memoryOffset, bytes.length);\n heapBytes.set(bytes);\n return memoryOffset;\n }, num_icu_assets_loaded_successfully: 0, mono_wasm_load_icu_data: function (offset) {\n var fn = Module.cwrap(\"mono_wasm_load_icu_data\", \"number\", [\"number\"]);\n var ok = fn(offset) === 1;\n if (ok) this.num_icu_assets_loaded_successfully++;\n return ok;\n }, mono_wasm_get_icudt_name: function (culture) {return Module.ccall(\"mono_wasm_get_icudt_name\", \"string\", [\"string\"], [culture]);}, _finalize_startup: function (args, ctx) {\n var loaded_files_with_debug_info = [];\n MONO.loaded_assets = ctx.loaded_assets;\n ctx.loaded_files.forEach(value => loaded_files_with_debug_info.push(value.url));\n MONO.loaded_files = loaded_files_with_debug_info;\n if (ctx.tracing) {\n console.log(\"MONO_WASM: loaded_assets: \" + JSON.stringify(ctx.loaded_assets));\n console.log(\"MONO_WASM: loaded_files: \" + JSON.stringify(ctx.loaded_files));\n }\n var load_runtime = Module.cwrap(\"mono_wasm_load_runtime\", null, [\"string\", \"number\"]);\n console.debug(\"MONO_WASM: Initializing mono runtime\");\n this.mono_wasm_globalization_init(args.globalization_mode);\n if (ENVIRONMENT_IS_SHELL || ENVIRONMENT_IS_NODE) {\n try {load_runtime(\"unused\", args.debug_level);} catch (ex) {\n print(\"MONO_WASM: load_runtime () failed: \" + ex);\n print(\"MONO_WASM: Stacktrace: \\n\");\n print(ex.stack);\n var wasm_exit = Module.cwrap(\"mono_wasm_exit\", null, [\"number\"]);\n wasm_exit(1);\n }\n } else {load_runtime(\"unused\", args.debug_level);}\n let tz;\n try {tz = Intl.DateTimeFormat().resolvedOptions().timeZone;} catch {}\n MONO.mono_wasm_setenv(\"TZ\", tz || \"UTC\");\n MONO.mono_wasm_runtime_ready();\n args.loaded_cb();\n }, _load_assets_and_runtime: function (args) {\n if (args.enable_debugging) args.debug_level = args.enable_debugging;\n if (args.assembly_list) throw new Error(\"Invalid args (assembly_list was replaced by assets)\");\n if (args.runtime_assets) throw new Error(\"Invalid args (runtime_assets was replaced by assets)\");\n if (args.runtime_asset_sources) throw new Error(\"Invalid args (runtime_asset_sources was replaced by remote_sources)\");\n if (!args.loaded_cb) throw new Error(\"loaded_cb not provided\");\n var ctx = { tracing: args.diagnostic_tracing || false, pending_count: args.assets.length, mono_wasm_add_assembly: Module.cwrap(\"mono_wasm_add_assembly\", \"number\", [\"string\", \"number\", \"number\"]), mono_wasm_add_satellite_assembly: Module.cwrap(\"mono_wasm_add_satellite_assembly\", \"void\", [\"string\", \"string\", \"number\", \"number\"]), loaded_assets: Object.create(null), loaded_files: [], createPath: Module[\"FS_createPath\"], createDataFile: Module[\"FS_createDataFile\"] };\n if (ctx.tracing) console.log(\"mono_wasm_load_runtime_with_args\", JSON.stringify(args));\n this._apply_configuration_from_args(args);\n var fetch_file_cb = this._get_fetch_file_cb_from_args(args);\n var onPendingRequestComplete = function () {\n --ctx.pending_count;\n if (ctx.pending_count === 0) {\n try {MONO._finalize_startup(args, ctx);} catch (exc) {\n console.error(\"Unhandled exception in _finalize_startup\", exc);\n throw exc;\n }\n }\n };\n var processFetchResponseBuffer = function (asset, url, blob) {\n try {MONO._handle_loaded_asset(ctx, asset, url, blob);} catch (exc) {\n console.error(\"Unhandled exception in processFetchResponseBuffer\", exc);\n throw exc;\n } finally {onPendingRequestComplete();}\n };\n args.assets.forEach(function (asset) {\n var attemptNextSource;\n var sourceIndex = 0;\n var sourcesList = asset.load_remote ? args.remote_sources : [\"\"];\n var handleFetchResponse = function (response) {\n if (!response.ok) {\n try {\n attemptNextSource();\n return;\n } catch (exc) {\n console.error(\"MONO_WASM: Unhandled exception in handleFetchResponse attemptNextSource for asset\", asset.name, exc);\n throw exc;\n }\n }\n try {\n var bufferPromise = response[\"arrayBuffer\"]();\n bufferPromise.then(processFetchResponseBuffer.bind(this, asset, response.url));\n } catch (exc) {\n console.error(\"MONO_WASM: Unhandled exception in handleFetchResponse for asset\", asset.name, exc);\n attemptNextSource();\n }\n };\n attemptNextSource = function () {\n if (sourceIndex >= sourcesList.length) {\n var msg = \"MONO_WASM: Failed to load \" + asset.name;\n try {\n var isOk = asset.is_optional || asset.name.match(/\\.pdb$/) && MONO.mono_wasm_ignore_pdb_load_errors;\n if (isOk) console.debug(msg); else {\n console.error(msg);\n throw new Error(msg);\n }\n } finally {onPendingRequestComplete();}\n }\n var sourcePrefix = sourcesList[sourceIndex];\n sourceIndex++;\n if (sourcePrefix === \"./\") sourcePrefix = \"\";\n var attemptUrl;\n if (sourcePrefix.trim() === \"\") {\n if (asset.behavior === \"assembly\") attemptUrl = locateFile(args.assembly_root + \"/\" + asset.name); else if (asset.behavior === \"resource\") {\n var path = asset.culture !== \"\" ? `${asset.culture}/${asset.name}` : asset.name;\n attemptUrl = locateFile(args.assembly_root + \"/\" + path);\n } else attemptUrl = asset.name;\n } else {attemptUrl = sourcePrefix + asset.name;}\n try {\n if (asset.name === attemptUrl) {if (ctx.tracing) console.log(\"Attempting to fetch '%s'\", attemptUrl);} else {if (ctx.tracing) console.log(\"Attempting to fetch '%s' for '%s'\", attemptUrl, asset.name);}\n var fetch_promise = fetch_file_cb(attemptUrl);\n fetch_promise.then(handleFetchResponse);\n } catch (exc) {\n console.error(\"MONO_WASM: Error fetching '%s'\\n%s\", attemptUrl, exc);\n attemptNextSource();\n }\n };\n attemptNextSource();\n });\n }, mono_wasm_globalization_init: function (globalization_mode) {\n var invariantMode = false;\n if (globalization_mode === \"invariant\") invariantMode = true;\n if (!invariantMode) {\n if (this.num_icu_assets_loaded_successfully > 0) {console.debug(\"MONO_WASM: ICU data archive(s) loaded, disabling invariant mode\");} else if (globalization_mode !== \"icu\") {\n console.debug(\"MONO_WASM: ICU data archive(s) not loaded, using invariant globalization mode\");\n invariantMode = true;\n } else {\n var msg = \"invariant globalization mode is inactive and no ICU data archives were loaded\";\n console.error(\"MONO_WASM: ERROR: \" + msg);\n throw new Error(msg);\n }\n }\n if (invariantMode) this.mono_wasm_setenv(\"DOTNET_SYSTEM_GLOBALIZATION_INVARIANT\", \"1\");\n this.mono_wasm_setenv(\"DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY\", \"1\");\n }, mono_wasm_get_loaded_files: function () {\n if (!this.mono_wasm_set_is_debugger_attached) this.mono_wasm_set_is_debugger_attached = Module.cwrap(\"mono_wasm_set_is_debugger_attached\", \"void\", [\"bool\"]);\n this.mono_wasm_set_is_debugger_attached(true);\n return MONO.loaded_files;\n }, mono_wasm_get_loaded_asset_table: function () {return MONO.loaded_assets;}, _base64_to_uint8: function (base64String) {\n const byteCharacters = atob(base64String);\n const byteNumbers = new Array(byteCharacters.length);\n for (let i = 0; i < byteCharacters.length; i++) {byteNumbers[i] = byteCharacters.charCodeAt(i);}\n return new Uint8Array(byteNumbers);\n }, mono_wasm_load_data_archive: function (data, prefix) {\n if (data.length < 8) return false;\n var dataview = new DataView(data.buffer);\n var magic = dataview.getUint32(0, true);\n if (magic != 1651270004) {return false;}\n var manifestSize = dataview.getUint32(4, true);\n if (manifestSize == 0 || data.length < manifestSize + 8) return false;\n var manifest;\n try {\n manifestContent = Module.UTF8ArrayToString(data, 8, manifestSize);\n manifest = JSON.parse(manifestContent);\n if (!(manifest instanceof Array)) return false;\n } catch (exc) {return false;}\n data = data.slice(manifestSize + 8);\n var folders = new Set;\n manifest.filter(m => {\n var file = m[0];\n var last = file.lastIndexOf(\"/\");\n var directory = file.slice(0, last + 1);\n folders.add(directory);\n });\n folders.forEach(folder => {Module[\"FS_createPath\"](prefix, folder, true, true);});\n for (row of manifest) {\n var name = row[0];\n var length = row[1];\n var bytes = data.slice(0, length);\n Module[\"FS_createDataFile\"](prefix, name, bytes, true, true);\n data = data.slice(length);\n }\n return true;\n }, mono_wasm_raise_debug_event: function (event, args = {}) {\n if (typeof event !== \"object\") throw new Error(`event must be an object, but got ${JSON.stringify(event)}`);\n if (event.eventName === undefined) throw new Error(`event.eventName is a required parameter, in event: ${JSON.stringify(event)}`);\n if (typeof args !== \"object\") throw new Error(`args must be an object, but got ${JSON.stringify(args)}`);\n console.debug(\"mono_wasm_debug_event_raised:aef14bca-5519-4dfe-b35a-f867abc123ae\", JSON.stringify(event), JSON.stringify(args));\n }, mono_wasm_load_config: async function (configFilePath) {\n Module.addRunDependency(configFilePath);\n try {\n let config = null;\n if (ENVIRONMENT_IS_WEB) {\n const configRaw = await fetch(configFilePath);\n config = await configRaw.json();\n } else if (ENVIRONMENT_IS_NODE) {config = {};} else {config = JSON.parse(read(configFilePath));}\n Module.config = config;\n } catch (e) {Module.config = { message: \"failed to load config file\", error: e };} finally {Module.removeRunDependency(configFilePath);}\n }, mono_wasm_set_timeout_exec: function (id) {\n if (!this.mono_set_timeout_exec) this.mono_set_timeout_exec = Module.cwrap(\"mono_set_timeout_exec\", null, [\"number\"]);\n this.mono_set_timeout_exec(id);\n }, prevent_timer_throttling: function () {\n let now = (new Date).valueOf();\n const desired_reach_time = now + 1e3 * 60 * 6;\n const next_reach_time = Math.max(now + 1e3, this.spread_timers_maximum);\n const light_throttling_frequency = 1e3;\n for (var schedule = next_reach_time; schedule < desired_reach_time; schedule += light_throttling_frequency) {\n const delay = schedule - now;\n setTimeout(() => {\n this.mono_wasm_set_timeout_exec(0);\n MONO.pump_count++;\n MONO.pump_message();\n }, delay);\n }\n this.spread_timers_maximum = desired_reach_time;\n }\n };\n function _mono_set_timeout(timeout, id) {\n if (typeof globalThis.setTimeout === \"function\") {\n if (MONO.lastScheduleTimeoutId) {\n globalThis.clearTimeout(MONO.lastScheduleTimeoutId);\n MONO.lastScheduleTimeoutId = undefined;\n }\n MONO.lastScheduleTimeoutId = globalThis.setTimeout(function mono_wasm_set_timeout_exec() {MONO.mono_wasm_set_timeout_exec(id);}, timeout);\n } else {\n ++MONO.pump_count;\n MONO.timeout_queue.push(function () {MONO.mono_wasm_set_timeout_exec(id);});\n }\n }\n var BINDING = {\n BINDING_ASM: \"[System.Private.Runtime.InteropServices.JavaScript]System.Runtime.InteropServices.JavaScript.Runtime\", _cs_owned_objects_by_js_handle: [], _js_handle_free_list: [], _next_js_handle: 1, mono_wasm_marshal_enum_as_int: true, mono_bindings_init: function (binding_asm) {this.BINDING_ASM = binding_asm;}, export_functions: function (module) {\n module[\"mono_bindings_init\"] = BINDING.mono_bindings_init.bind(BINDING);\n module[\"mono_bind_method\"] = BINDING.bind_method.bind(BINDING);\n module[\"mono_method_invoke\"] = BINDING.call_method.bind(BINDING);\n module[\"mono_method_get_call_signature\"] = BINDING.mono_method_get_call_signature.bind(BINDING);\n module[\"mono_method_resolve\"] = BINDING.resolve_method_fqn.bind(BINDING);\n module[\"mono_bind_static_method\"] = BINDING.bind_static_method.bind(BINDING);\n module[\"mono_call_static_method\"] = BINDING.call_static_method.bind(BINDING);\n module[\"mono_bind_assembly_entry_point\"] = BINDING.bind_assembly_entry_point.bind(BINDING);\n module[\"mono_call_assembly_entry_point\"] = BINDING.call_assembly_entry_point.bind(BINDING);\n module[\"mono_intern_string\"] = BINDING.mono_intern_string.bind(BINDING);\n }, bindings_lazy_init: function () {\n if (this.init) return;\n this.init = true;\n this.wasm_type_symbol = Symbol.for(\"wasm type\");\n this.js_owned_gc_handle_symbol = Symbol.for(\"wasm js_owned_gc_handle\");\n this.cs_owned_js_handle_symbol = Symbol.for(\"wasm cs_owned_js_handle\");\n this.delegate_invoke_symbol = Symbol.for(\"wasm delegate_invoke\");\n this.delegate_invoke_signature_symbol = Symbol.for(\"wasm delegate_invoke_signature\");\n this.listener_registration_count_symbol = Symbol.for(\"wasm listener_registration_count\");\n Object.prototype[this.wasm_type_symbol] = 0;\n Array.prototype[this.wasm_type_symbol] = 1;\n ArrayBuffer.prototype[this.wasm_type_symbol] = 2;\n DataView.prototype[this.wasm_type_symbol] = 3;\n Function.prototype[this.wasm_type_symbol] = 4;\n Map.prototype[this.wasm_type_symbol] = 5;\n if (typeof SharedArrayBuffer !== \"undefined\") SharedArrayBuffer.prototype[this.wasm_type_symbol] = 6;\n Int8Array.prototype[this.wasm_type_symbol] = 10;\n Uint8Array.prototype[this.wasm_type_symbol] = 11;\n Uint8ClampedArray.prototype[this.wasm_type_symbol] = 12;\n Int16Array.prototype[this.wasm_type_symbol] = 13;\n Uint16Array.prototype[this.wasm_type_symbol] = 14;\n Int32Array.prototype[this.wasm_type_symbol] = 15;\n Uint32Array.prototype[this.wasm_type_symbol] = 16;\n Float32Array.prototype[this.wasm_type_symbol] = 17;\n Float64Array.prototype[this.wasm_type_symbol] = 18;\n this.assembly_load = Module.cwrap(\"mono_wasm_assembly_load\", \"number\", [\"string\"]);\n this.find_corlib_class = Module.cwrap(\"mono_wasm_find_corlib_class\", \"number\", [\"string\", \"string\"]);\n this.find_class = Module.cwrap(\"mono_wasm_assembly_find_class\", \"number\", [\"number\", \"string\", \"string\"]);\n this._find_method = Module.cwrap(\"mono_wasm_assembly_find_method\", \"number\", [\"number\", \"string\", \"number\"]);\n this.invoke_method = Module.cwrap(\"mono_wasm_invoke_method\", \"number\", [\"number\", \"number\", \"number\", \"number\"]);\n this.mono_string_get_utf8 = Module.cwrap(\"mono_wasm_string_get_utf8\", \"number\", [\"number\"]);\n this.mono_wasm_string_from_utf16 = Module.cwrap(\"mono_wasm_string_from_utf16\", \"number\", [\"number\", \"number\"]);\n this.mono_get_obj_type = Module.cwrap(\"mono_wasm_get_obj_type\", \"number\", [\"number\"]);\n this.mono_array_length = Module.cwrap(\"mono_wasm_array_length\", \"number\", [\"number\"]);\n this.mono_array_get = Module.cwrap(\"mono_wasm_array_get\", \"number\", [\"number\", \"number\"]);\n this.mono_obj_array_new = Module.cwrap(\"mono_wasm_obj_array_new\", \"number\", [\"number\"]);\n this.mono_obj_array_set = Module.cwrap(\"mono_wasm_obj_array_set\", \"void\", [\"number\", \"number\", \"number\"]);\n this.mono_wasm_register_bundled_satellite_assemblies = Module.cwrap(\"mono_wasm_register_bundled_satellite_assemblies\", \"void\", []);\n this.mono_wasm_try_unbox_primitive_and_get_type = Module.cwrap(\"mono_wasm_try_unbox_primitive_and_get_type\", \"number\", [\"number\", \"number\"]);\n this.mono_wasm_box_primitive = Module.cwrap(\"mono_wasm_box_primitive\", \"number\", [\"number\", \"number\", \"number\"]);\n this.mono_wasm_intern_string = Module.cwrap(\"mono_wasm_intern_string\", \"number\", [\"number\"]);\n this.assembly_get_entry_point = Module.cwrap(\"mono_wasm_assembly_get_entry_point\", \"number\", [\"number\"]);\n this.mono_wasm_get_delegate_invoke = Module.cwrap(\"mono_wasm_get_delegate_invoke\", \"number\", [\"number\"]);\n this.mono_wasm_string_array_new = Module.cwrap(\"mono_wasm_string_array_new\", \"number\", [\"number\"]);\n this._box_buffer = Module._malloc(16);\n this._unbox_buffer = Module._malloc(16);\n this._class_int32 = this.find_corlib_class(\"System\", \"Int32\");\n this._class_uint32 = this.find_corlib_class(\"System\", \"UInt32\");\n this._class_double = this.find_corlib_class(\"System\", \"Double\");\n this._class_boolean = this.find_corlib_class(\"System\", \"Boolean\");\n this.mono_typed_array_new = Module.cwrap(\"mono_wasm_typed_array_new\", \"number\", [\"number\", \"number\", \"number\", \"number\"]);\n var binding_fqn_asm = this.BINDING_ASM.substring(this.BINDING_ASM.indexOf(\"[\") + 1, this.BINDING_ASM.indexOf(\"]\")).trim();\n var binding_fqn_class = this.BINDING_ASM.substring(this.BINDING_ASM.indexOf(\"]\") + 1).trim();\n this.binding_module = this.assembly_load(binding_fqn_asm);\n if (!this.binding_module) throw\"Can't find bindings module assembly: \" + binding_fqn_asm;\n var namespace = null, classname = null;\n if (binding_fqn_class !== null && typeof binding_fqn_class !== \"undefined\") {\n namespace = \"System.Runtime.InteropServices.JavaScript\";\n classname = binding_fqn_class.length > 0 ? binding_fqn_class : \"Runtime\";\n if (binding_fqn_class.indexOf(\".\") != -1) {\n var idx = binding_fqn_class.lastIndexOf(\".\");\n namespace = binding_fqn_class.substring(0, idx);\n classname = binding_fqn_class.substring(idx + 1);\n }\n }\n var wasm_runtime_class = this.find_class(this.binding_module, namespace, classname);\n if (!wasm_runtime_class) throw\"Can't find \" + binding_fqn_class + \" class\";\n var get_method = function (method_name) {\n var res = BINDING.find_method(wasm_runtime_class, method_name, -1);\n if (!res) throw\"Can't find method \" + namespace + \".\" + classname + \":\" + method_name;\n return res;\n };\n var bind_runtime_method = function (method_name, signature) {\n var method = get_method(method_name);\n return BINDING.bind_method(method, 0, signature, \"BINDINGS_\" + method_name);\n };\n this.get_call_sig = get_method(\"GetCallSignature\");\n this._get_cs_owned_object_by_js_handle = bind_runtime_method(\"GetCSOwnedObjectByJSHandle\", \"ii!\");\n this._get_cs_owned_object_js_handle = bind_runtime_method(\"GetCSOwnedObjectJSHandle\", \"mi\");\n this._try_get_cs_owned_object_js_handle = bind_runtime_method(\"TryGetCSOwnedObjectJSHandle\", \"mi\");\n this._create_cs_owned_proxy = bind_runtime_method(\"CreateCSOwnedProxy\", \"iii!\");\n this._get_js_owned_object_by_gc_handle = bind_runtime_method(\"GetJSOwnedObjectByGCHandle\", \"i!\");\n this._get_js_owned_object_gc_handle = bind_runtime_method(\"GetJSOwnedObjectGCHandle\", \"m\");\n this._release_js_owned_object_by_gc_handle = bind_runtime_method(\"ReleaseJSOwnedObjectByGCHandle\", \"i\");\n this._create_tcs = bind_runtime_method(\"CreateTaskSource\", \"\");\n this._set_tcs_result = bind_runtime_method(\"SetTaskSourceResult\", \"io\");\n this._set_tcs_failure = bind_runtime_method(\"SetTaskSourceFailure\", \"is\");\n this._get_tcs_task = bind_runtime_method(\"GetTaskSourceTask\", \"i!\");\n this._setup_js_cont = bind_runtime_method(\"SetupJSContinuation\", \"mo\");\n this._object_to_string = bind_runtime_method(\"ObjectToString\", \"m\");\n this._get_date_value = bind_runtime_method(\"GetDateValue\", \"m\");\n this._create_date_time = bind_runtime_method(\"CreateDateTime\", \"d!\");\n this._create_uri = bind_runtime_method(\"CreateUri\", \"s!\");\n this._is_simple_array = bind_runtime_method(\"IsSimpleArray\", \"m\");\n this._are_promises_supported = (typeof Promise === \"object\" || typeof Promise === \"function\") && typeof Promise.resolve === \"function\";\n this.isThenable = (js_obj => {return Promise.resolve(js_obj) === js_obj || (typeof js_obj === \"object\" || typeof js_obj === \"function\") && typeof js_obj.then === \"function\";});\n this.isChromium = false;\n if (globalThis.navigator) {\n var nav = globalThis.navigator;\n if (nav.userAgentData && nav.userAgentData.brands) {this.isChromium = nav.userAgentData.brands.some(i => i.brand == \"Chromium\");} else if (globalThis.navigator.userAgent) {this.isChromium = nav.userAgent.includes(\"Chrome\");}\n }\n this._empty_string = \"\";\n this._empty_string_ptr = 0;\n this._interned_string_full_root_buffers = [];\n this._interned_string_current_root_buffer = null;\n this._interned_string_current_root_buffer_count = 0;\n this._interned_js_string_table = new Map;\n this._js_owned_object_table = new Map;\n this._use_finalization_registry = typeof globalThis.FinalizationRegistry === \"function\";\n this._use_weak_ref = typeof globalThis.WeakRef === \"function\";\n if (this._use_finalization_registry) {this._js_owned_object_registry = new globalThis.FinalizationRegistry(this._js_owned_object_finalized.bind(this));}\n }, _js_owned_object_finalized: function (gc_handle) {\n this._js_owned_object_table.delete(gc_handle);\n this._release_js_owned_object_by_gc_handle(gc_handle);\n }, _lookup_js_owned_object: function (gc_handle) {\n if (!gc_handle) return null;\n var wr = this._js_owned_object_table.get(gc_handle);\n if (wr) {return wr.deref();}\n return null;\n }, _register_js_owned_object: function (gc_handle, js_obj) {\n var wr;\n if (this._use_weak_ref) {wr = new WeakRef(js_obj);} else {wr = { deref: () => {return js_obj;} };}\n this._js_owned_object_table.set(gc_handle, wr);\n }, _wrap_js_thenable_as_task: function (thenable) {\n this.bindings_lazy_init();\n if (!thenable) return null;\n var thenable_js_handle = BINDING.mono_wasm_get_js_handle(thenable);\n const tcs_gc_handle = this._create_tcs();\n thenable.then(result => {\n this._set_tcs_result(tcs_gc_handle, result);\n this._mono_wasm_release_js_handle(thenable_js_handle);\n if (!this._use_finalization_registry) {this._release_js_owned_object_by_gc_handle(tcs_gc_handle);}\n }, reason => {\n this._set_tcs_failure(tcs_gc_handle, reason ? reason.toString() : \"\");\n this._mono_wasm_release_js_handle(thenable_js_handle);\n if (!this._use_finalization_registry) {this._release_js_owned_object_by_gc_handle(tcs_gc_handle);}\n });\n if (this._use_finalization_registry) {this._js_owned_object_registry.register(thenable, tcs_gc_handle);}\n return this._get_tcs_task(tcs_gc_handle);\n }, _unbox_task_root_as_promise: function (root) {\n this.bindings_lazy_init();\n const self = this;\n if (root.value === 0) return null;\n if (!this._are_promises_supported) throw new Error(\"Promises are not supported thus 'System.Threading.Tasks.Task' can not work in this context.\");\n const gc_handle = this._get_js_owned_object_gc_handle(root.value);\n var result = this._lookup_js_owned_object(gc_handle);\n if (!result) {\n var cont_obj = null;\n var result = new Promise(function (resolve, reject) {\n if (self._use_finalization_registry) {cont_obj = { resolve: resolve, reject: reject };} else {\n cont_obj = {\n resolve: function () {\n const res = resolve.apply(null, arguments);\n self._js_owned_object_table.delete(gc_handle);\n self._release_js_owned_object_by_gc_handle(gc_handle);\n return res;\n }, reject: function () {\n const res = reject.apply(null, arguments);\n self._js_owned_object_table.delete(gc_handle);\n self._release_js_owned_object_by_gc_handle(gc_handle);\n return res;\n }\n };\n }\n });\n this._setup_js_cont(root.value, cont_obj);\n if (this._use_finalization_registry) {this._js_owned_object_registry.register(result, gc_handle);}\n this._register_js_owned_object(gc_handle, result);\n }\n return result;\n }, _unbox_ref_type_root_as_js_object: function (root) {\n this.bindings_lazy_init();\n if (root.value === 0) return null;\n var js_handle = this._try_get_cs_owned_object_js_handle(root.value, false);\n if (js_handle) {\n if (js_handle === -1) {throw new Error(\"Cannot access a disposed JSObject at \" + root.value);}\n return this.mono_wasm_get_jsobj_from_js_handle(js_handle);\n }\n const gc_handle = this._get_js_owned_object_gc_handle(root.value);\n var result = this._lookup_js_owned_object(gc_handle);\n if (!result) {\n result = {};\n result[BINDING.js_owned_gc_handle_symbol] = gc_handle;\n if (this._use_finalization_registry) {this._js_owned_object_registry.register(result, gc_handle);}\n this._register_js_owned_object(gc_handle, result);\n }\n return result;\n }, _wrap_delegate_root_as_function: function (root) {\n this.bindings_lazy_init();\n if (root.value === 0) return null;\n const gc_handle = this._get_js_owned_object_gc_handle(root.value);\n return this._wrap_delegate_gc_handle_as_function(gc_handle);\n }, _wrap_delegate_gc_handle_as_function: function (gc_handle, after_listener_callback) {\n this.bindings_lazy_init();\n var result = this._lookup_js_owned_object(gc_handle);\n if (!result) {\n result = function () {\n const delegateRoot = MONO.mono_wasm_new_root(BINDING.get_js_owned_object_by_gc_handle(gc_handle));\n try {\n const res = BINDING.call_method(result[BINDING.delegate_invoke_symbol], delegateRoot.value, result[BINDING.delegate_invoke_signature_symbol], arguments);\n if (after_listener_callback) {after_listener_callback();}\n return res;\n } finally {delegateRoot.release();}\n };\n const delegateRoot = MONO.mono_wasm_new_root(BINDING.get_js_owned_object_by_gc_handle(gc_handle));\n try {\n if (typeof result[BINDING.delegate_invoke_symbol] === \"undefined\") {\n result[BINDING.delegate_invoke_symbol] = BINDING.mono_wasm_get_delegate_invoke(delegateRoot.value);\n if (!result[BINDING.delegate_invoke_symbol]) {throw new Error(\"System.Delegate Invoke method can not be resolved.\");}\n }\n if (typeof result[BINDING.delegate_invoke_signature_symbol] === \"undefined\") {result[BINDING.delegate_invoke_signature_symbol] = Module.mono_method_get_call_signature(result[BINDING.delegate_invoke_symbol], delegateRoot.value);}\n } finally {delegateRoot.release();}\n if (this._use_finalization_registry) {this._js_owned_object_registry.register(result, gc_handle);}\n this._register_js_owned_object(gc_handle, result);\n }\n return result;\n }, mono_intern_string: function (string) {\n if (string.length === 0) return this._empty_string;\n var ptr = this.js_string_to_mono_string_interned(string);\n var result = MONO.interned_string_table.get(ptr);\n return result;\n }, _store_string_in_intern_table: function (string, ptr, internIt) {\n if (!ptr) throw new Error(\"null pointer passed to _store_string_in_intern_table\"); else if (typeof ptr !== \"number\") throw new Error(`non-pointer passed to _store_string_in_intern_table: ${typeof ptr}`);\n const internBufferSize = 8192;\n if (this._interned_string_current_root_buffer_count >= internBufferSize) {\n this._interned_string_full_root_buffers.push(this._interned_string_current_root_buffer);\n this._interned_string_current_root_buffer = null;\n }\n if (!this._interned_string_current_root_buffer) {\n this._interned_string_current_root_buffer = MONO.mono_wasm_new_root_buffer(internBufferSize, \"interned strings\");\n this._interned_string_current_root_buffer_count = 0;\n }\n var rootBuffer = this._interned_string_current_root_buffer;\n var index = this._interned_string_current_root_buffer_count++;\n rootBuffer.set(index, ptr);\n if (internIt) rootBuffer.set(index, ptr = this.mono_wasm_intern_string(ptr));\n if (!ptr) throw new Error(\"mono_wasm_intern_string produced a null pointer\");\n this._interned_js_string_table.set(string, ptr);\n if (!MONO.interned_string_table) MONO.interned_string_table = new Map;\n MONO.interned_string_table.set(ptr, string);\n if (string.length === 0 && !this._empty_string_ptr) this._empty_string_ptr = ptr;\n return ptr;\n }, js_string_to_mono_string_interned: function (string) {\n var text = typeof string === \"symbol\" ? string.description || Symbol.keyFor(string) || \"<unknown Symbol>\" : string;\n if (text.length === 0 && this._empty_string_ptr) return this._empty_string_ptr;\n var ptr = this._interned_js_string_table.get(string);\n if (ptr) return ptr;\n ptr = this.js_string_to_mono_string_new(text);\n ptr = this._store_string_in_intern_table(string, ptr, true);\n return ptr;\n }, js_string_to_mono_string: function (string) {\n if (string === null) return null; else if (typeof string === \"symbol\") return this.js_string_to_mono_string_interned(string); else if (typeof string !== \"string\") throw new Error(\"Expected string argument, got \" + typeof string);\n if (string.length === 0) return this.js_string_to_mono_string_interned(string);\n if (string.length <= 256) {\n var interned = this._interned_js_string_table.get(string);\n if (interned) return interned;\n }\n return this.js_string_to_mono_string_new(string);\n }, js_string_to_mono_string_new: function (string) {\n var buffer = Module._malloc((string.length + 1) * 2);\n var buffer16 = buffer / 2 | 0;\n for (var i = 0; i < string.length; i++) Module.HEAP16[buffer16 + i] = string.charCodeAt(i);\n Module.HEAP16[buffer16 + string.length] = 0;\n var result = this.mono_wasm_string_from_utf16(buffer, string.length);\n Module._free(buffer);\n return result;\n }, find_method: function (klass, name, n) {\n var result = this._find_method(klass, name, n);\n if (result) {\n if (!this._method_descriptions) this._method_descriptions = new Map;\n this._method_descriptions.set(result, name);\n }\n return result;\n }, get_js_obj: function (js_handle) {\n if (js_handle > 0) return this.mono_wasm_get_jsobj_from_js_handle(js_handle);\n return null;\n }, _get_string_from_intern_table: function (mono_obj) {\n if (!MONO.interned_string_table) return undefined;\n return MONO.interned_string_table.get(mono_obj);\n }, conv_string: function (mono_obj) {return MONO.string_decoder.copy(mono_obj);}, is_nested_array: function (ele) {return this._is_simple_array(ele);}, mono_array_to_js_array: function (mono_array) {\n if (mono_array === 0) return null;\n var arrayRoot = MONO.mono_wasm_new_root(mono_array);\n try {return this._mono_array_root_to_js_array(arrayRoot);} finally {arrayRoot.release();}\n }, _mono_array_root_to_js_array: function (arrayRoot) {\n if (arrayRoot.value === 0) return null;\n let elemRoot = MONO.mono_wasm_new_root();\n try {\n var len = this.mono_array_length(arrayRoot.value);\n var res = new Array(len);\n for (var i = 0; i < len; ++i) {\n elemRoot.value = this.mono_array_get(arrayRoot.value, i);\n if (this.is_nested_array(elemRoot.value)) res[i] = this._mono_array_root_to_js_array(elemRoot); else res[i] = this._unbox_mono_obj_root(elemRoot);\n }\n } finally {elemRoot.release();}\n return res;\n }, js_array_to_mono_array: function (js_array, asString, should_add_in_flight) {\n var mono_array = asString ? this.mono_wasm_string_array_new(js_array.length) : this.mono_obj_array_new(js_array.length);\n let [arrayRoot, elemRoot] = MONO.mono_wasm_new_roots([mono_array, 0]);\n try {\n for (var i = 0; i < js_array.length; ++i) {\n var obj = js_array[i];\n if (asString) obj = obj.toString();\n elemRoot.value = this._js_to_mono_obj(should_add_in_flight, obj);\n this.mono_obj_array_set(arrayRoot.value, i, elemRoot.value);\n }\n return mono_array;\n } finally {MONO.mono_wasm_release_roots(arrayRoot, elemRoot);}\n }, js_to_mono_obj: function (js_obj) {return this._js_to_mono_obj(false, js_obj);}, unbox_mono_obj: function (mono_obj) {\n if (mono_obj === 0) return undefined;\n var root = MONO.mono_wasm_new_root(mono_obj);\n try {return this._unbox_mono_obj_root(root);} finally {root.release();}\n }, _unbox_cs_owned_root_as_js_object: function (root) {\n var js_handle = this._get_cs_owned_object_js_handle(root.value, false);\n var js_obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n return js_obj;\n }, _unbox_mono_obj_root_with_known_nonprimitive_type: function (root, type) {\n if (root.value === undefined) throw new Error(`Expected a root but got ${root}`);\n switch (type) {\n case 26:\n case 27:\n throw new Error(\"int64 not available\");\n case 3:\n case 29:\n return this.conv_string(root.value);\n case 4:\n throw new Error(\"no idea on how to unbox value types\");\n case 5:\n return this._wrap_delegate_root_as_function(root);\n case 6:\n return this._unbox_task_root_as_promise(root);\n case 7:\n return this._unbox_ref_type_root_as_js_object(root);\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n throw new Error(\"Marshalling of primitive arrays are not supported. Use the corresponding TypedArray instead.\");\n case 20:\n var dateValue = this._get_date_value(root.value);\n return new Date(dateValue);\n case 21:\n var dateoffsetValue = this._object_to_string(root.value);\n return dateoffsetValue;\n case 22:\n var uriValue = this._object_to_string(root.value);\n return uriValue;\n case 23:\n return this._unbox_cs_owned_root_as_js_object(root);\n case 30:\n return undefined;\n default:\n throw new Error(`no idea on how to unbox object kind ${type} at offset ${root.value} (root address is ${root.get_address()})`);\n }\n }, _unbox_mono_obj_root: function (root) {\n if (root.value === 0) return undefined;\n var type = this.mono_wasm_try_unbox_primitive_and_get_type(root.value, this._unbox_buffer);\n switch (type) {\n case 1:\n return Module.HEAP32[this._unbox_buffer / 4];\n case 25:\n return Module.HEAPU32[this._unbox_buffer / 4];\n case 24:\n return Module.HEAPF32[this._unbox_buffer / 4];\n case 2:\n return Module.HEAPF64[this._unbox_buffer / 8];\n case 8:\n return Module.HEAP32[this._unbox_buffer / 4] !== 0;\n case 28:\n return String.fromCharCode(Module.HEAP32[this._unbox_buffer / 4]);\n default:\n return this._unbox_mono_obj_root_with_known_nonprimitive_type(root, type);\n }\n }, js_typedarray_to_heap: function (typedArray) {\n var numBytes = typedArray.length * typedArray.BYTES_PER_ELEMENT;\n var ptr = Module._malloc(numBytes);\n var heapBytes = new Uint8Array(Module.HEAPU8.buffer, ptr, numBytes);\n heapBytes.set(new Uint8Array(typedArray.buffer, typedArray.byteOffset, numBytes));\n return heapBytes;\n }, _box_js_int: function (js_obj) {\n Module.HEAP32[this._box_buffer / 4] = js_obj;\n return this.mono_wasm_box_primitive(this._class_int32, this._box_buffer, 4);\n }, _box_js_uint: function (js_obj) {\n Module.HEAPU32[this._box_buffer / 4] = js_obj;\n return this.mono_wasm_box_primitive(this._class_uint32, this._box_buffer, 4);\n }, _box_js_double: function (js_obj) {\n Module.HEAPF64[this._box_buffer / 8] = js_obj;\n return this.mono_wasm_box_primitive(this._class_double, this._box_buffer, 8);\n }, _box_js_bool: function (js_obj) {\n Module.HEAP32[this._box_buffer / 4] = js_obj ? 1 : 0;\n return this.mono_wasm_box_primitive(this._class_boolean, this._box_buffer, 4);\n }, _js_to_mono_uri: function (should_add_in_flight, js_obj) {\n this.bindings_lazy_init();\n switch (true) {\n case js_obj === null:\n case typeof js_obj === \"undefined\":\n return 0;\n case typeof js_obj === \"symbol\":\n case typeof js_obj === \"string\":\n return this._create_uri(js_obj);\n default:\n return this._extract_mono_obj(should_add_in_flight, js_obj);\n }\n }, _js_to_mono_obj: function (should_add_in_flight, js_obj) {\n this.bindings_lazy_init();\n switch (true) {\n case js_obj === null:\n case typeof js_obj === \"undefined\":\n return 0;\n case typeof js_obj === \"number\": {\n if ((js_obj | 0) === js_obj) result = this._box_js_int(js_obj); else if (js_obj >>> 0 === js_obj) result = this._box_js_uint(js_obj); else result = this._box_js_double(js_obj);\n if (!result) throw new Error(`Boxing failed for ${js_obj}`);\n return result;\n }\n case typeof js_obj === \"string\":\n return this.js_string_to_mono_string(js_obj);\n case typeof js_obj === \"symbol\":\n return this.js_string_to_mono_string_interned(js_obj);\n case typeof js_obj === \"boolean\":\n return this._box_js_bool(js_obj);\n case this.isThenable(js_obj) === true:\n return this._wrap_js_thenable_as_task(js_obj);\n case js_obj.constructor.name === \"Date\":\n return this._create_date_time(js_obj.getTime());\n default:\n return this._extract_mono_obj(should_add_in_flight, js_obj);\n }\n }, _extract_mono_obj: function (should_add_in_flight, js_obj) {\n if (js_obj === null || typeof js_obj === \"undefined\") return 0;\n var result = null;\n if (js_obj[BINDING.js_owned_gc_handle_symbol]) {\n result = this.get_js_owned_object_by_gc_handle(js_obj[BINDING.js_owned_gc_handle_symbol]);\n return result;\n }\n if (js_obj[BINDING.cs_owned_js_handle_symbol]) {\n result = this.get_cs_owned_object_by_js_handle(js_obj[BINDING.cs_owned_js_handle_symbol], should_add_in_flight);\n if (!result) {delete js_obj[BINDING.cs_owned_js_handle_symbol];}\n }\n if (!result) {\n const wasm_type = js_obj[this.wasm_type_symbol];\n const wasm_type_id = typeof wasm_type === \"undefined\" ? 0 : wasm_type;\n var js_handle = BINDING.mono_wasm_get_js_handle(js_obj);\n result = this._create_cs_owned_proxy(js_handle, wasm_type_id, should_add_in_flight);\n }\n return result;\n }, has_backing_array_buffer: function (js_obj) {return typeof SharedArrayBuffer !== \"undefined\" ? js_obj.buffer instanceof ArrayBuffer || js_obj.buffer instanceof SharedArrayBuffer : js_obj.buffer instanceof ArrayBuffer;}, js_typed_array_to_array: function (js_obj) {\n if (!!(this.has_backing_array_buffer(js_obj) && js_obj.BYTES_PER_ELEMENT)) {\n var arrayType = js_obj[this.wasm_type_symbol];\n var heapBytes = this.js_typedarray_to_heap(js_obj);\n var bufferArray = this.mono_typed_array_new(heapBytes.byteOffset, js_obj.length, js_obj.BYTES_PER_ELEMENT, arrayType);\n Module._free(heapBytes.byteOffset);\n return bufferArray;\n } else {throw new Error(\"Object '\" + js_obj + \"' is not a typed array\");}\n }, typedarray_copy_to: function (typed_array, pinned_array, begin, end, bytes_per_element) {\n if (!!(this.has_backing_array_buffer(typed_array) && typed_array.BYTES_PER_ELEMENT)) {\n if (bytes_per_element !== typed_array.BYTES_PER_ELEMENT) throw new Error(\"Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '\" + typed_array.BYTES_PER_ELEMENT + \"' sizeof managed element: '\" + bytes_per_element + \"'\");\n var num_of_bytes = (end - begin) * bytes_per_element;\n var view_bytes = typed_array.length * typed_array.BYTES_PER_ELEMENT;\n if (num_of_bytes > view_bytes) num_of_bytes = view_bytes;\n var offset = begin * bytes_per_element;\n var heapBytes = new Uint8Array(Module.HEAPU8.buffer, pinned_array + offset, num_of_bytes);\n heapBytes.set(new Uint8Array(typed_array.buffer, typed_array.byteOffset, num_of_bytes));\n return num_of_bytes;\n } else {throw new Error(\"Object '\" + typed_array + \"' is not a typed array\");}\n }, typedarray_copy_from: function (typed_array, pinned_array, begin, end, bytes_per_element) {\n if (!!(this.has_backing_array_buffer(typed_array) && typed_array.BYTES_PER_ELEMENT)) {\n if (bytes_per_element !== typed_array.BYTES_PER_ELEMENT) throw new Error(\"Inconsistent element sizes: TypedArray.BYTES_PER_ELEMENT '\" + typed_array.BYTES_PER_ELEMENT + \"' sizeof managed element: '\" + bytes_per_element + \"'\");\n var num_of_bytes = (end - begin) * bytes_per_element;\n var view_bytes = typed_array.length * typed_array.BYTES_PER_ELEMENT;\n if (num_of_bytes > view_bytes) num_of_bytes = view_bytes;\n var typedarrayBytes = new Uint8Array(typed_array.buffer, 0, num_of_bytes);\n var offset = begin * bytes_per_element;\n typedarrayBytes.set(Module.HEAPU8.subarray(pinned_array + offset, pinned_array + offset + num_of_bytes));\n return num_of_bytes;\n } else {throw new Error(\"Object '\" + typed_array + \"' is not a typed array\");}\n }, typed_array_from: function (pinned_array, begin, end, bytes_per_element, type) {\n var newTypedArray = 0;\n switch (type) {\n case 5:\n newTypedArray = new Int8Array(end - begin);\n break;\n case 6:\n newTypedArray = new Uint8Array(end - begin);\n break;\n case 7:\n newTypedArray = new Int16Array(end - begin);\n break;\n case 8:\n newTypedArray = new Uint16Array(end - begin);\n break;\n case 9:\n newTypedArray = new Int32Array(end - begin);\n break;\n case 10:\n newTypedArray = new Uint32Array(end - begin);\n break;\n case 13:\n newTypedArray = new Float32Array(end - begin);\n break;\n case 14:\n newTypedArray = new Float64Array(end - begin);\n break;\n case 15:\n newTypedArray = new Uint8ClampedArray(end - begin);\n break;\n }\n this.typedarray_copy_from(newTypedArray, pinned_array, begin, end, bytes_per_element);\n return newTypedArray;\n }, js_to_mono_enum: function (js_obj, method, parmIdx) {\n this.bindings_lazy_init();\n if (typeof js_obj !== \"number\") throw new Error(`Expected numeric value for enum argument, got '${js_obj}'`);\n return js_obj | 0;\n }, get_js_owned_object_by_gc_handle: function (gc_handle) {\n if (!gc_handle) {return 0;}\n return this._get_js_owned_object_by_gc_handle(gc_handle);\n }, get_cs_owned_object_by_js_handle: function (js_handle, should_add_in_flight) {\n if (!js_handle) {return 0;}\n return this._get_cs_owned_object_by_js_handle(js_handle, should_add_in_flight);\n }, mono_method_get_call_signature: function (method, mono_obj) {\n let instanceRoot = MONO.mono_wasm_new_root(mono_obj);\n try {\n this.bindings_lazy_init();\n return this.call_method(this.get_call_sig, null, \"im\", [method, instanceRoot.value]);\n } finally {instanceRoot.release();}\n }, _create_named_function: function (name, argumentNames, body, closure) {\n var result = null, closureArgumentList = null, closureArgumentNames = null;\n if (closure) {\n closureArgumentNames = Object.keys(closure);\n closureArgumentList = new Array(closureArgumentNames.length);\n for (var i = 0, l = closureArgumentNames.length; i < l; i++) closureArgumentList[i] = closure[closureArgumentNames[i]];\n }\n var constructor = this._create_rebindable_named_function(name, argumentNames, body, closureArgumentNames);\n result = constructor.apply(null, closureArgumentList);\n return result;\n }, _create_rebindable_named_function: function (name, argumentNames, body, closureArgNames) {\n var strictPrefix = \"\\\"use strict\\\";\\r\\n\";\n var uriPrefix = \"\", escapedFunctionIdentifier = \"\";\n if (name) {\n uriPrefix = \"//# sourceURL=https://mono-wasm.invalid/\" + name + \"\\r\\n\";\n escapedFunctionIdentifier = name;\n } else {escapedFunctionIdentifier = \"unnamed\";}\n var rawFunctionText = \"function \" + escapedFunctionIdentifier + \"(\" + argumentNames.join(\", \") + \") {\\r\\n\" + body + \"\\r\\n};\\r\\n\";\n var lineBreakRE = /\\r(\\n?)/g;\n rawFunctionText = uriPrefix + strictPrefix + rawFunctionText.replace(lineBreakRE, \"\\r\\n \") + ` return ${escapedFunctionIdentifier};\\r\\n`;\n var result = null, keys = null;\n if (closureArgNames) {keys = closureArgNames.concat([rawFunctionText]);} else {keys = [rawFunctionText];}\n result = Function.apply(Function, keys);\n return result;\n }, _create_primitive_converters: function () {\n var result = new Map;\n result.set(\"m\", { steps: [{}], size: 0 });\n result.set(\"s\", { steps: [{ convert: this.js_string_to_mono_string.bind(this) }], size: 0, needs_root: true });\n result.set(\"S\", { steps: [{ convert: this.js_string_to_mono_string_interned.bind(this) }], size: 0, needs_root: true });\n result.set(\"o\", { steps: [{ convert: this._js_to_mono_obj.bind(this, false) }], size: 0, needs_root: true });\n result.set(\"u\", { steps: [{ convert: this._js_to_mono_uri.bind(this, false) }], size: 0, needs_root: true });\n result.set(\"j\", { steps: [{ convert: this.js_to_mono_enum.bind(this), indirect: \"i32\" }], size: 8 });\n result.set(\"i\", { steps: [{ indirect: \"i32\" }], size: 8 });\n result.set(\"l\", { steps: [{ indirect: \"i64\" }], size: 8 });\n result.set(\"f\", { steps: [{ indirect: \"float\" }], size: 8 });\n result.set(\"d\", { steps: [{ indirect: \"double\" }], size: 8 });\n this._primitive_converters = result;\n return result;\n }, _create_converter_for_marshal_string: function (args_marshal) {\n var primitiveConverters = this._primitive_converters;\n if (!primitiveConverters) primitiveConverters = this._create_primitive_converters();\n var steps = [];\n var size = 0;\n var is_result_definitely_unmarshaled = false, is_result_possibly_unmarshaled = false, result_unmarshaled_if_argc = -1, needs_root_buffer = false;\n for (var i = 0; i < args_marshal.length; ++i) {\n var key = args_marshal[i];\n if (i === args_marshal.length - 1) {\n if (key === \"!\") {\n is_result_definitely_unmarshaled = true;\n continue;\n } else if (key === \"m\") {\n is_result_possibly_unmarshaled = true;\n result_unmarshaled_if_argc = args_marshal.length - 1;\n }\n } else if (key === \"!\") throw new Error(\"! must be at the end of the signature\");\n var conv = primitiveConverters.get(key);\n if (!conv) throw new Error(\"Unknown parameter type \" + type);\n var localStep = Object.create(conv.steps[0]);\n localStep.size = conv.size;\n if (conv.needs_root) needs_root_buffer = true;\n localStep.needs_root = conv.needs_root;\n localStep.key = args_marshal[i];\n steps.push(localStep);\n size += conv.size;\n }\n return { steps: steps, size: size, args_marshal: args_marshal, is_result_definitely_unmarshaled: is_result_definitely_unmarshaled, is_result_possibly_unmarshaled: is_result_possibly_unmarshaled, result_unmarshaled_if_argc: result_unmarshaled_if_argc, needs_root_buffer: needs_root_buffer };\n }, _get_converter_for_marshal_string: function (args_marshal) {\n if (!this._signature_converters) this._signature_converters = new Map;\n var converter = this._signature_converters.get(args_marshal);\n if (!converter) {\n converter = this._create_converter_for_marshal_string(args_marshal);\n this._signature_converters.set(args_marshal, converter);\n }\n return converter;\n }, _compile_converter_for_marshal_string: function (args_marshal) {\n var converter = this._get_converter_for_marshal_string(args_marshal);\n if (typeof converter.args_marshal !== \"string\") throw new Error(\"Corrupt converter for '\" + args_marshal + \"'\");\n if (converter.compiled_function && converter.compiled_variadic_function) return converter;\n var converterName = args_marshal.replace(\"!\", \"_result_unmarshaled\");\n converter.name = converterName;\n var body = [];\n var argumentNames = [\"buffer\", \"rootBuffer\", \"method\"];\n var bufferSizeBytes = converter.size + args_marshal.length * 4 + 16;\n var rootBufferSize = args_marshal.length;\n var indirectBaseOffset = ((args_marshal.length * 4 + 7) / 8 | 0) * 8;\n var closure = {};\n var indirectLocalOffset = 0;\n body.push(`if (!buffer) buffer = Module._malloc (${bufferSizeBytes});`, `var indirectStart = buffer + ${indirectBaseOffset};`, \"var indirect32 = (indirectStart / 4) | 0, indirect64 = (indirectStart / 8) | 0;\", \"var buffer32 = (buffer / 4) | 0;\", \"\");\n for (let i = 0; i < converter.steps.length; i++) {\n var step = converter.steps[i];\n var closureKey = \"step\" + i;\n var valueKey = \"value\" + i;\n var argKey = \"arg\" + i;\n argumentNames.push(argKey);\n if (step.convert) {\n closure[closureKey] = step.convert;\n body.push(`var ${valueKey} = ${closureKey}(${argKey}, method, ${i});`);\n } else {body.push(`var ${valueKey} = ${argKey};`);}\n if (step.needs_root) body.push(`rootBuffer.set (${i}, ${valueKey});`);\n if (step.indirect) {\n var heapArrayName = null;\n switch (step.indirect) {\n case\"u32\":\n heapArrayName = \"HEAPU32\";\n break;\n case\"i32\":\n heapArrayName = \"HEAP32\";\n break;\n case\"float\":\n heapArrayName = \"HEAPF32\";\n break;\n case\"double\":\n body.push(`Module.HEAPF64[indirect64 + ${indirectLocalOffset / 8}] = ${valueKey};`);\n break;\n case\"i64\":\n body.push(`Module.setValue (indirectStart + ${indirectLocalOffset}, ${valueKey}, 'i64');`);\n break;\n default:\n throw new Error(\"Unimplemented indirect type: \" + step.indirect);\n }\n if (heapArrayName) body.push(`Module.${heapArrayName}[indirect32 + ${indirectLocalOffset / 4}] = ${valueKey};`);\n body.push(`Module.HEAP32[buffer32 + ${i}] = indirectStart + ${indirectLocalOffset};`, \"\");\n indirectLocalOffset += step.size;\n } else {\n body.push(`Module.HEAP32[buffer32 + ${i}] = ${valueKey};`, \"\");\n indirectLocalOffset += 4;\n }\n }\n body.push(\"return buffer;\");\n var bodyJs = body.join(\"\\r\\n\"), compiledFunction = null, compiledVariadicFunction = null;\n try {\n compiledFunction = this._create_named_function(\"converter_\" + converterName, argumentNames, bodyJs, closure);\n converter.compiled_function = compiledFunction;\n } catch (exc) {\n converter.compiled_function = null;\n console.warn(\"compiling converter failed for\", bodyJs, \"with error\", exc);\n throw exc;\n }\n argumentNames = [\"existingBuffer\", \"rootBuffer\", \"method\", \"args\"];\n closure = { converter: compiledFunction };\n body = [\"return converter(\", \" existingBuffer, rootBuffer, method,\"];\n for (let i = 0; i < converter.steps.length; i++) {body.push(\" args[\" + i + (i == converter.steps.length - 1 ? \"]\" : \"], \"));}\n body.push(\");\");\n bodyJs = body.join(\"\\r\\n\");\n try {\n compiledVariadicFunction = this._create_named_function(\"variadic_converter_\" + converterName, argumentNames, bodyJs, closure);\n converter.compiled_variadic_function = compiledVariadicFunction;\n } catch (exc) {\n converter.compiled_variadic_function = null;\n console.warn(\"compiling converter failed for\", bodyJs, \"with error\", exc);\n throw exc;\n }\n converter.scratchRootBuffer = null;\n converter.scratchBuffer = 0 | 0;\n return converter;\n }, _verify_args_for_method_call: function (args_marshal, args) {\n var has_args = args && typeof args === \"object\" && args.length > 0;\n var has_args_marshal = typeof args_marshal === \"string\";\n if (has_args) {if (!has_args_marshal) throw new Error(\"No signature provided for method call.\"); else if (args.length > args_marshal.length) throw new Error(\"Too many parameter values. Expected at most \" + args_marshal.length + \" value(s) for signature \" + args_marshal);}\n return has_args_marshal && has_args;\n }, _get_buffer_for_method_call: function (converter) {\n if (!converter) return 0;\n var result = converter.scratchBuffer;\n converter.scratchBuffer = 0;\n return result;\n }, _get_args_root_buffer_for_method_call: function (converter) {\n if (!converter) return null;\n if (!converter.needs_root_buffer) return null;\n var result;\n if (converter.scratchRootBuffer) {\n result = converter.scratchRootBuffer;\n converter.scratchRootBuffer = null;\n } else {\n result = MONO.mono_wasm_new_root_buffer(converter.steps.length);\n result.converter = converter;\n }\n return result;\n }, _release_args_root_buffer_from_method_call: function (converter, argsRootBuffer) {\n if (!argsRootBuffer || !converter) return;\n if (!converter.scratchRootBuffer) {\n argsRootBuffer.clear();\n converter.scratchRootBuffer = argsRootBuffer;\n } else {argsRootBuffer.release();}\n }, _release_buffer_from_method_call: function (converter, buffer) {\n if (!converter || !buffer) return;\n if (!converter.scratchBuffer) converter.scratchBuffer = buffer | 0; else Module._free(buffer | 0);\n }, _convert_exception_for_method_call: function (result, exception) {\n if (exception === 0) return null;\n var msg = this.conv_string(result);\n var err = new Error(msg);\n return err;\n }, _maybe_produce_signature_warning: function (converter) {\n if (converter.has_warned_about_signature) return;\n console.warn(\"MONO_WASM: Deprecated raw return value signature: '\" + converter.args_marshal + \"'. End the signature with '!' instead of 'm'.\");\n converter.has_warned_about_signature = true;\n }, _decide_if_result_is_marshaled: function (converter, argc) {\n if (!converter) return true;\n if (converter.is_result_possibly_unmarshaled && argc === converter.result_unmarshaled_if_argc) {\n if (argc < converter.result_unmarshaled_if_argc) throw new Error([\"Expected >= \", converter.result_unmarshaled_if_argc, \"argument(s) but got\", argc, \"for signature \" + converter.args_marshal].join(\" \"));\n this._maybe_produce_signature_warning(converter);\n return false;\n } else {\n if (argc < converter.steps.length) throw new Error([\"Expected\", converter.steps.length, \"argument(s) but got\", argc, \"for signature \" + converter.args_marshal].join(\" \"));\n return !converter.is_result_definitely_unmarshaled;\n }\n }, call_method: function (method, this_arg, args_marshal, args) {\n this.bindings_lazy_init();\n this_arg = this_arg | 0;\n if ((method | 0) !== method) throw new Error(`method must be an address in the native heap, but was '${method}'`);\n if (!method) throw new Error(\"no method specified\");\n var needs_converter = this._verify_args_for_method_call(args_marshal, args);\n var buffer = 0, converter = null, argsRootBuffer = null;\n var is_result_marshaled = true;\n if (needs_converter) {\n converter = this._compile_converter_for_marshal_string(args_marshal);\n is_result_marshaled = this._decide_if_result_is_marshaled(converter, args.length);\n argsRootBuffer = this._get_args_root_buffer_for_method_call(converter);\n var scratchBuffer = this._get_buffer_for_method_call(converter);\n buffer = converter.compiled_variadic_function(scratchBuffer, argsRootBuffer, method, args);\n }\n return this._call_method_with_converted_args(method, this_arg, converter, buffer, is_result_marshaled, argsRootBuffer);\n }, _handle_exception_for_call: function (converter, buffer, resultRoot, exceptionRoot, argsRootBuffer) {\n var exc = this._convert_exception_for_method_call(resultRoot.value, exceptionRoot.value);\n if (!exc) return;\n this._teardown_after_call(converter, buffer, resultRoot, exceptionRoot, argsRootBuffer);\n throw exc;\n }, _handle_exception_and_produce_result_for_call: function (converter, buffer, resultRoot, exceptionRoot, argsRootBuffer, is_result_marshaled) {\n this._handle_exception_for_call(converter, buffer, resultRoot, exceptionRoot, argsRootBuffer);\n if (is_result_marshaled) result = this._unbox_mono_obj_root(resultRoot); else result = resultRoot.value;\n this._teardown_after_call(converter, buffer, resultRoot, exceptionRoot, argsRootBuffer);\n return result;\n }, _teardown_after_call: function (converter, buffer, resultRoot, exceptionRoot, argsRootBuffer) {\n this._release_args_root_buffer_from_method_call(converter, argsRootBuffer);\n this._release_buffer_from_method_call(converter, buffer | 0);\n if (resultRoot) resultRoot.release();\n if (exceptionRoot) exceptionRoot.release();\n }, _get_method_description: function (method) {\n if (!this._method_descriptions) this._method_descriptions = new Map;\n var result = this._method_descriptions.get(method);\n if (!result) result = \"method#\" + method;\n return result;\n }, _call_method_with_converted_args: function (method, this_arg, converter, buffer, is_result_marshaled, argsRootBuffer) {\n var resultRoot = MONO.mono_wasm_new_root(), exceptionRoot = MONO.mono_wasm_new_root();\n resultRoot.value = this.invoke_method(method, this_arg, buffer, exceptionRoot.get_address());\n return this._handle_exception_and_produce_result_for_call(converter, buffer, resultRoot, exceptionRoot, argsRootBuffer, is_result_marshaled);\n }, bind_method: function (method, this_arg, args_marshal, friendly_name) {\n this.bindings_lazy_init();\n this_arg = this_arg | 0;\n var converter = null;\n if (typeof args_marshal === \"string\") converter = this._compile_converter_for_marshal_string(args_marshal);\n var closure = { library_mono: MONO, binding_support: this, method: method, this_arg: this_arg };\n var converterKey = \"converter_\" + converter.name;\n if (converter) closure[converterKey] = converter;\n var argumentNames = [];\n var body = [\"var resultRoot = library_mono.mono_wasm_new_root (), exceptionRoot = library_mono.mono_wasm_new_root ();\", \"\"];\n if (converter) {\n body.push(`var argsRootBuffer = binding_support._get_args_root_buffer_for_method_call (${converterKey});`, `var scratchBuffer = binding_support._get_buffer_for_method_call (${converterKey});`, `var buffer = ${converterKey}.compiled_function (`, \" scratchBuffer, argsRootBuffer, method,\");\n for (var i = 0; i < converter.steps.length; i++) {\n var argName = \"arg\" + i;\n argumentNames.push(argName);\n body.push(\" \" + argName + (i == converter.steps.length - 1 ? \"\" : \", \"));\n }\n body.push(\");\");\n } else {body.push(\"var argsRootBuffer = null, buffer = 0;\");}\n if (converter.is_result_definitely_unmarshaled) {body.push(\"var is_result_marshaled = false;\");} else if (converter.is_result_possibly_unmarshaled) {body.push(`var is_result_marshaled = arguments.length !== ${converter.result_unmarshaled_if_argc};`);} else {body.push(\"var is_result_marshaled = true;\");}\n body.push(\"\", \"resultRoot.value = binding_support.invoke_method (method, this_arg, buffer, exceptionRoot.get_address ());\", `binding_support._handle_exception_for_call (${converterKey}, buffer, resultRoot, exceptionRoot, argsRootBuffer);`, \"\", \"var result = undefined;\", \"if (!is_result_marshaled) \", \" result = resultRoot.value;\", \"else if (resultRoot.value !== 0) {\", \" var resultType = binding_support.mono_wasm_try_unbox_primitive_and_get_type (resultRoot.value, buffer);\", \" switch (resultType) {\", \" case 1:\", \" result = Module.HEAP32[buffer / 4]; break;\", \" case 25:\", \" result = Module.HEAPU32[buffer / 4]; break;\", \" case 24:\", \" result = Module.HEAPF32[buffer / 4]; break;\", \" case 2:\", \" result = Module.HEAPF64[buffer / 8]; break;\", \" case 8:\", \" result = (Module.HEAP32[buffer / 4]) !== 0; break;\", \" case 28:\", \" result = String.fromCharCode(Module.HEAP32[buffer / 4]); break;\", \" default:\", \" result = binding_support._unbox_mono_obj_root_with_known_nonprimitive_type (resultRoot, resultType); break;\", \" }\", \"}\", \"\", `binding_support._teardown_after_call (${converterKey}, buffer, resultRoot, exceptionRoot, argsRootBuffer);`, \"return result;\");\n bodyJs = body.join(\"\\r\\n\");\n if (friendly_name) {\n var escapeRE = /[^A-Za-z0-9_]/g;\n friendly_name = friendly_name.replace(escapeRE, \"_\");\n }\n var displayName = \"managed_\" + (friendly_name || method);\n if (this_arg) displayName += \"_with_this_\" + this_arg;\n return this._create_named_function(displayName, argumentNames, bodyJs, closure);\n }, resolve_method_fqn: function (fqn) {\n this.bindings_lazy_init();\n var assembly = fqn.substring(fqn.indexOf(\"[\") + 1, fqn.indexOf(\"]\")).trim();\n fqn = fqn.substring(fqn.indexOf(\"]\") + 1).trim();\n var methodname = fqn.substring(fqn.indexOf(\":\") + 1);\n fqn = fqn.substring(0, fqn.indexOf(\":\")).trim();\n var namespace = \"\";\n var classname = fqn;\n if (fqn.indexOf(\".\") != -1) {\n var idx = fqn.lastIndexOf(\".\");\n namespace = fqn.substring(0, idx);\n classname = fqn.substring(idx + 1);\n }\n if (!assembly.trim()) throw new Error(\"No assembly name specified\");\n if (!classname.trim()) throw new Error(\"No class name specified\");\n if (!methodname.trim()) throw new Error(\"No method name specified\");\n var asm = this.assembly_load(assembly);\n if (!asm) throw new Error(\"Could not find assembly: \" + assembly);\n var klass = this.find_class(asm, namespace, classname);\n if (!klass) throw new Error(\"Could not find class: \" + namespace + \":\" + classname + \" in assembly \" + assembly);\n var method = this.find_method(klass, methodname, -1);\n if (!method) throw new Error(\"Could not find method: \" + methodname);\n return method;\n }, call_static_method: function (fqn, args, signature) {\n this.bindings_lazy_init();\n var method = this.resolve_method_fqn(fqn);\n if (typeof signature === \"undefined\") signature = Module.mono_method_get_call_signature(method);\n return this.call_method(method, null, signature, args);\n }, bind_static_method: function (fqn, signature) {\n this.bindings_lazy_init();\n var method = this.resolve_method_fqn(fqn);\n if (typeof signature === \"undefined\") signature = Module.mono_method_get_call_signature(method);\n return BINDING.bind_method(method, null, signature, fqn);\n }, bind_assembly_entry_point: function (assembly, signature) {\n this.bindings_lazy_init();\n var asm = this.assembly_load(assembly);\n if (!asm) throw new Error(\"Could not find assembly: \" + assembly);\n var method = this.assembly_get_entry_point(asm);\n if (!method) throw new Error(\"Could not find entry point for assembly: \" + assembly);\n if (typeof signature === \"undefined\") signature = Module.mono_method_get_call_signature(method);\n return function () {\n try {\n var args = [...arguments];\n if (args.length > 0 && Array.isArray(args[0])) args[0] = BINDING.js_array_to_mono_array(args[0], true, false);\n let result = BINDING.call_method(method, null, signature, args);\n return Promise.resolve(result);\n } catch (error) {return Promise.reject(error);}\n };\n }, call_assembly_entry_point: function (assembly, args, signature) {return this.bind_assembly_entry_point(assembly, signature)(...args);}, mono_wasm_get_jsobj_from_js_handle: function (js_handle) {\n if (js_handle > 0) return this._cs_owned_objects_by_js_handle[js_handle];\n return null;\n }, mono_wasm_get_js_handle: function (js_obj) {\n if (js_obj[BINDING.cs_owned_js_handle_symbol]) {return js_obj[BINDING.cs_owned_js_handle_symbol];}\n var js_handle = this._js_handle_free_list.length ? this._js_handle_free_list.pop() : this._next_js_handle++;\n this._cs_owned_objects_by_js_handle[js_handle] = js_obj;\n js_obj[BINDING.cs_owned_js_handle_symbol] = js_handle;\n return js_handle;\n }, _mono_wasm_release_js_handle: function (js_handle) {\n var obj = BINDING._cs_owned_objects_by_js_handle[js_handle];\n if (typeof obj !== \"undefined\" && obj !== null) {\n if (globalThis === obj) return obj;\n if (typeof obj[BINDING.cs_owned_js_handle_symbol] !== \"undefined\") {obj[BINDING.cs_owned_js_handle_symbol] = undefined;}\n BINDING._cs_owned_objects_by_js_handle[js_handle] = undefined;\n BINDING._js_handle_free_list.push(js_handle);\n }\n return obj;\n }\n };\n function _mono_wasm_add_event_listener(objHandle, name, listener_gc_handle, optionsHandle) {\n var nameRoot = MONO.mono_wasm_new_root(name);\n try {\n BINDING.bindings_lazy_init();\n var sName = BINDING.conv_string(nameRoot.value);\n var obj = BINDING.mono_wasm_get_jsobj_from_js_handle(objHandle);\n if (!obj) throw new Error(\"ERR09: Invalid JS object handle for '\" + sName + \"'\");\n const prevent_timer_throttling = !BINDING.isChromium || obj.constructor.name !== \"WebSocket\" ? null : () => MONO.prevent_timer_throttling(0);\n var listener = BINDING._wrap_delegate_gc_handle_as_function(listener_gc_handle, prevent_timer_throttling);\n if (!listener) throw new Error(\"ERR10: Invalid listener gc_handle\");\n var options = optionsHandle ? BINDING.mono_wasm_get_jsobj_from_js_handle(optionsHandle) : null;\n if (!BINDING._use_finalization_registry) {listener[BINDING.listener_registration_count_symbol] = listener[BINDING.listener_registration_count_symbol] ? listener[BINDING.listener_registration_count_symbol] + 1 : 1;}\n if (options) obj.addEventListener(sName, listener, options); else obj.addEventListener(sName, listener);\n return 0;\n } catch (exc) {return BINDING.js_string_to_mono_string(exc.message);} finally {nameRoot.release();}\n }\n function _mono_wasm_asm_loaded(assembly_name, assembly_ptr, assembly_len, pdb_ptr, pdb_len) {\n if (MONO.mono_wasm_runtime_is_ready !== true) return;\n const assembly_name_str = assembly_name !== 0 ? Module.UTF8ToString(assembly_name).concat(\".dll\") : \"\";\n const assembly_data = new Uint8Array(Module.HEAPU8.buffer, assembly_ptr, assembly_len);\n const assembly_b64 = MONO._base64Converter.toBase64StringImpl(assembly_data);\n let pdb_b64;\n if (pdb_ptr) {\n const pdb_data = new Uint8Array(Module.HEAPU8.buffer, pdb_ptr, pdb_len);\n pdb_b64 = MONO._base64Converter.toBase64StringImpl(pdb_data);\n }\n MONO.mono_wasm_raise_debug_event({ eventName: \"AssemblyLoaded\", assembly_name: assembly_name_str, assembly_b64: assembly_b64, pdb_b64: pdb_b64 });\n }\n function _mono_wasm_create_cs_owned_object(core_name, args, is_exception) {\n var argsRoot = MONO.mono_wasm_new_root(args), nameRoot = MONO.mono_wasm_new_root(core_name);\n try {\n BINDING.bindings_lazy_init();\n var js_name = BINDING.conv_string(nameRoot.value);\n if (!js_name) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"Invalid name @\" + nameRoot.value);\n }\n var coreObj = globalThis[js_name];\n if (coreObj === null || typeof coreObj === \"undefined\") {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"JavaScript host object '\" + js_name + \"' not found.\");\n }\n var js_args = BINDING._mono_array_root_to_js_array(argsRoot);\n try {\n var allocator = function (constructor, js_args) {\n var argsList = new Array;\n argsList[0] = constructor;\n if (js_args) argsList = argsList.concat(js_args);\n var tempCtor = constructor.bind.apply(constructor, argsList);\n var js_obj = new tempCtor;\n return js_obj;\n };\n var js_obj = allocator(coreObj, js_args);\n var js_handle = BINDING.mono_wasm_get_js_handle(js_obj);\n return BINDING._js_to_mono_obj(false, js_handle);\n } catch (e) {\n var res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || res === undefined) res = \"Error allocating object.\";\n return BINDING.js_string_to_mono_string(res);\n }\n } finally {\n argsRoot.release();\n nameRoot.release();\n }\n }\n function _mono_wasm_fire_debugger_agent_message() {debugger}\n function _mono_wasm_get_by_index(js_handle, property_index, is_exception) {\n BINDING.bindings_lazy_init();\n var obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR03: Invalid JS object handle '\" + js_handle + \"' while getting [\" + property_index + \"]\");\n }\n try {\n var m = obj[property_index];\n return BINDING._js_to_mono_obj(true, m);\n } catch (e) {\n var res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || typeof res === \"undefined\") res = \"unknown exception\";\n return BINDING.js_string_to_mono_string(res);\n }\n }\n function _mono_wasm_get_global_object(global_name, is_exception) {\n var nameRoot = MONO.mono_wasm_new_root(global_name);\n try {\n BINDING.bindings_lazy_init();\n var js_name = BINDING.conv_string(nameRoot.value);\n var globalObj;\n if (!js_name) {globalObj = globalThis;} else {globalObj = globalThis[js_name];}\n if (globalObj === null || typeof globalObj === undefined) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"Global object '\" + js_name + \"' not found.\");\n }\n return BINDING._js_to_mono_obj(true, globalObj);\n } finally {nameRoot.release();}\n }\n function _mono_wasm_get_object_property(js_handle, property_name, is_exception) {\n BINDING.bindings_lazy_init();\n var nameRoot = MONO.mono_wasm_new_root(property_name);\n try {\n var js_name = BINDING.conv_string(nameRoot.value);\n if (!js_name) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"Invalid property name object '\" + nameRoot.value + \"'\");\n }\n var obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR01: Invalid JS object handle '\" + js_handle + \"' while geting '\" + js_name + \"'\");\n }\n var res;\n try {\n var m = obj[js_name];\n return BINDING._js_to_mono_obj(true, m);\n } catch (e) {\n var res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || typeof res === \"undefined\") res = \"unknown exception\";\n return BINDING.js_string_to_mono_string(res);\n }\n } finally {nameRoot.release();}\n }\n var DOTNET = { conv_string: function (mono_obj) {return MONO.string_decoder.copy(mono_obj);} };\n function _mono_wasm_invoke_js_blazor(exceptionMessage, callInfo, arg0, arg1, arg2) {\n var mono_string = globalThis._mono_string_cached || (globalThis._mono_string_cached = Module.cwrap(\"mono_wasm_string_from_js\", \"number\", [\"string\"]));\n try {\n var blazorExports = globalThis.Blazor;\n if (!blazorExports) {throw new Error(\"The blazor.webassembly.js library is not loaded.\");}\n return blazorExports._internal.invokeJSFromDotNet(callInfo, arg0, arg1, arg2);\n } catch (ex) {\n var exceptionJsString = ex.message + \"\\n\" + ex.stack;\n var exceptionSystemString = mono_string(exceptionJsString);\n setValue(exceptionMessage, exceptionSystemString, \"i32\");\n return 0;\n }\n }\n function _mono_wasm_invoke_js_marshalled(exceptionMessage, asyncHandleLongPtr, functionName, argsJson, treatResultAsVoid) {\n var mono_string = globalThis._mono_string_cached || (globalThis._mono_string_cached = Module.cwrap(\"mono_wasm_string_from_js\", \"number\", [\"string\"]));\n try {\n var u32Index = asyncHandleLongPtr >> 2;\n var asyncHandleJsNumber = Module.HEAPU32[u32Index + 1] * 4294967296 + Module.HEAPU32[u32Index];\n var funcNameJsString = DOTNET.conv_string(functionName);\n var argsJsonJsString = argsJson && DOTNET.conv_string(argsJson);\n var dotNetExports = globaThis.DotNet;\n if (!dotNetExports) {throw new Error(\"The Microsoft.JSInterop.js library is not loaded.\");}\n if (asyncHandleJsNumber) {\n dotNetExports.jsCallDispatcher.beginInvokeJSFromDotNet(asyncHandleJsNumber, funcNameJsString, argsJsonJsString, treatResultAsVoid);\n return 0;\n } else {\n var resultJson = dotNetExports.jsCallDispatcher.invokeJSFromDotNet(funcNameJsString, argsJsonJsString, treatResultAsVoid);\n return resultJson === null ? 0 : mono_string(resultJson);\n }\n } catch (ex) {\n var exceptionJsString = ex.message + \"\\n\" + ex.stack;\n var exceptionSystemString = mono_string(exceptionJsString);\n setValue(exceptionMessage, exceptionSystemString, \"i32\");\n return 0;\n }\n }\n function _mono_wasm_invoke_js_unmarshalled(exceptionMessage, funcName, arg0, arg1, arg2) {\n try {\n var funcNameJsString = DOTNET.conv_string(funcName);\n var dotNetExports = globalThis.DotNet;\n if (!dotNetExports) {throw new Error(\"The Microsoft.JSInterop.js library is not loaded.\");}\n var funcInstance = dotNetExports.jsCallDispatcher.findJSFunction(funcNameJsString);\n return funcInstance.call(null, arg0, arg1, arg2);\n } catch (ex) {\n var exceptionJsString = ex.message + \"\\n\" + ex.stack;\n var mono_string = Module.cwrap(\"mono_wasm_string_from_js\", \"number\", [\"string\"]);\n var exceptionSystemString = mono_string(exceptionJsString);\n setValue(exceptionMessage, exceptionSystemString, \"i32\");\n return 0;\n }\n }\n function _mono_wasm_invoke_js_with_args(js_handle, method_name, args, is_exception) {\n let argsRoot = MONO.mono_wasm_new_root(args), nameRoot = MONO.mono_wasm_new_root(method_name);\n try {\n BINDING.bindings_lazy_init();\n var js_name = BINDING.conv_string(nameRoot.value);\n if (!js_name || typeof js_name !== \"string\") {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR12: Invalid method name object '\" + nameRoot.value + \"'\");\n }\n var obj = BINDING.get_js_obj(js_handle);\n if (!obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR13: Invalid JS object handle '\" + js_handle + \"' while invoking '\" + js_name + \"'\");\n }\n var js_args = BINDING._mono_array_root_to_js_array(argsRoot);\n var res;\n try {\n var m = obj[js_name];\n if (typeof m === \"undefined\") throw new Error(\"Method: '\" + js_name + \"' not found for: '\" + Object.prototype.toString.call(obj) + \"'\");\n var res = m.apply(obj, js_args);\n return BINDING._js_to_mono_obj(true, res);\n } catch (e) {\n var res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || res === undefined) res = \"unknown exception\";\n return BINDING.js_string_to_mono_string(res);\n }\n } finally {\n argsRoot.release();\n nameRoot.release();\n }\n }\n function _mono_wasm_release_cs_owned_object(js_handle) {\n BINDING.bindings_lazy_init();\n BINDING._mono_wasm_release_js_handle(js_handle);\n }\n function _mono_wasm_remove_event_listener(objHandle, name, listener_gc_handle, capture) {\n var nameRoot = MONO.mono_wasm_new_root(name);\n try {\n BINDING.bindings_lazy_init();\n var obj = BINDING.mono_wasm_get_jsobj_from_js_handle(objHandle);\n if (!obj) throw new Error(\"ERR11: Invalid JS object handle\");\n var listener = BINDING._lookup_js_owned_object(listener_gc_handle);\n if (!listener) return;\n var sName = BINDING.conv_string(nameRoot.value);\n obj.removeEventListener(sName, listener, !!capture);\n if (!BINDING._use_finalization_registry) {\n listener[BINDING.listener_registration_count_symbol]--;\n if (listener[BINDING.listener_registration_count_symbol] === 0) {\n BINDING._js_owned_object_table.delete(listener_gc_handle);\n BINDING._release_js_owned_object_by_gc_handle(listener_gc_handle);\n }\n }\n return 0;\n } catch (exc) {return BINDING.js_string_to_mono_string(exc.message);} finally {nameRoot.release();}\n }\n function _mono_wasm_set_by_index(js_handle, property_index, value, is_exception) {\n var valueRoot = MONO.mono_wasm_new_root(value);\n try {\n BINDING.bindings_lazy_init();\n var obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR04: Invalid JS object handle '\" + js_handle + \"' while setting [\" + property_index + \"]\");\n }\n var js_value = BINDING._unbox_mono_obj_root(valueRoot);\n try {\n obj[property_index] = js_value;\n return true;\n } catch (e) {\n var res = e.toString();\n setValue(is_exception, 1, \"i32\");\n if (res === null || typeof res === \"undefined\") res = \"unknown exception\";\n return BINDING.js_string_to_mono_string(res);\n }\n } finally {valueRoot.release();}\n }\n function _mono_wasm_set_object_property(js_handle, property_name, value, createIfNotExist, hasOwnProperty, is_exception) {\n var valueRoot = MONO.mono_wasm_new_root(value), nameRoot = MONO.mono_wasm_new_root(property_name);\n try {\n BINDING.bindings_lazy_init();\n var property = BINDING.conv_string(nameRoot.value);\n if (!property) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"Invalid property name object '\" + property_name + \"'\");\n }\n var js_obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!js_obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR02: Invalid JS object handle '\" + js_handle + \"' while setting '\" + property + \"'\");\n }\n var result = false;\n var js_value = BINDING._unbox_mono_obj_root(valueRoot);\n if (createIfNotExist) {\n js_obj[property] = js_value;\n result = true;\n } else {\n result = false;\n if (!createIfNotExist) {if (!js_obj.hasOwnProperty(property)) return false;}\n if (hasOwnProperty === true) {\n if (js_obj.hasOwnProperty(property)) {\n js_obj[property] = js_value;\n result = true;\n }\n } else {\n js_obj[property] = js_value;\n result = true;\n }\n }\n return BINDING._box_js_bool(result);\n } finally {\n nameRoot.release();\n valueRoot.release();\n }\n }\n function _mono_wasm_typed_array_copy_from(js_handle, pinned_array, begin, end, bytes_per_element, is_exception) {\n BINDING.bindings_lazy_init();\n var js_obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!js_obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR08: Invalid JS object handle '\" + js_handle + \"'\");\n }\n var res = BINDING.typedarray_copy_from(js_obj, pinned_array, begin, end, bytes_per_element);\n return BINDING._js_to_mono_obj(false, res);\n }\n function _mono_wasm_typed_array_copy_to(js_handle, pinned_array, begin, end, bytes_per_element, is_exception) {\n BINDING.bindings_lazy_init();\n var js_obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!js_obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR07: Invalid JS object handle '\" + js_handle + \"'\");\n }\n var res = BINDING.typedarray_copy_to(js_obj, pinned_array, begin, end, bytes_per_element);\n return BINDING._js_to_mono_obj(false, res);\n }\n function _mono_wasm_typed_array_from(pinned_array, begin, end, bytes_per_element, type, is_exception) {\n BINDING.bindings_lazy_init();\n var res = BINDING.typed_array_from(pinned_array, begin, end, bytes_per_element, type);\n return BINDING._js_to_mono_obj(true, res);\n }\n function _mono_wasm_typed_array_to_array(js_handle, is_exception) {\n BINDING.bindings_lazy_init();\n var js_obj = BINDING.mono_wasm_get_jsobj_from_js_handle(js_handle);\n if (!js_obj) {\n setValue(is_exception, 1, \"i32\");\n return BINDING.js_string_to_mono_string(\"ERR06: Invalid JS object handle '\" + js_handle + \"'\");\n }\n return BINDING.js_typed_array_to_array(js_obj, false);\n }\n function _schedule_background_exec() {\n ++MONO.pump_count;\n if (typeof globalThis.setTimeout === \"function\") {globalThis.setTimeout(MONO.pump_message, 0);}\n }\n function _setTempRet0(val) {setTempRet0(val);}\n function __isLeapYear(year) {return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);}\n function __arraySum(array, index) {\n var sum = 0;\n for (var i = 0; i <= index; sum += array[i++]) {}\n return sum;\n }\n var __MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n var __MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n function __addDays(date, days) {\n var newDate = new Date(date.getTime());\n while (days > 0) {\n var leap = __isLeapYear(newDate.getFullYear());\n var currentMonth = newDate.getMonth();\n var daysInCurrentMonth = (leap ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR)[currentMonth];\n if (days > daysInCurrentMonth - newDate.getDate()) {\n days -= daysInCurrentMonth - newDate.getDate() + 1;\n newDate.setDate(1);\n if (currentMonth < 11) {newDate.setMonth(currentMonth + 1);} else {\n newDate.setMonth(0);\n newDate.setFullYear(newDate.getFullYear() + 1);\n }\n } else {\n newDate.setDate(newDate.getDate() + days);\n return newDate;\n }\n }\n return newDate;\n }\n function _strftime(s, maxsize, format, tm) {\n var tm_zone = HEAP32[tm + 40 >> 2];\n var date = { tm_sec: HEAP32[tm >> 2], tm_min: HEAP32[tm + 4 >> 2], tm_hour: HEAP32[tm + 8 >> 2], tm_mday: HEAP32[tm + 12 >> 2], tm_mon: HEAP32[tm + 16 >> 2], tm_year: HEAP32[tm + 20 >> 2], tm_wday: HEAP32[tm + 24 >> 2], tm_yday: HEAP32[tm + 28 >> 2], tm_isdst: HEAP32[tm + 32 >> 2], tm_gmtoff: HEAP32[tm + 36 >> 2], tm_zone: tm_zone ? UTF8ToString(tm_zone) : \"\" };\n var pattern = UTF8ToString(format);\n var EXPANSION_RULES_1 = { \"%c\": \"%a %b %d %H:%M:%S %Y\", \"%D\": \"%m/%d/%y\", \"%F\": \"%Y-%m-%d\", \"%h\": \"%b\", \"%r\": \"%I:%M:%S %p\", \"%R\": \"%H:%M\", \"%T\": \"%H:%M:%S\", \"%x\": \"%m/%d/%y\", \"%X\": \"%H:%M:%S\", \"%Ec\": \"%c\", \"%EC\": \"%C\", \"%Ex\": \"%m/%d/%y\", \"%EX\": \"%H:%M:%S\", \"%Ey\": \"%y\", \"%EY\": \"%Y\", \"%Od\": \"%d\", \"%Oe\": \"%e\", \"%OH\": \"%H\", \"%OI\": \"%I\", \"%Om\": \"%m\", \"%OM\": \"%M\", \"%OS\": \"%S\", \"%Ou\": \"%u\", \"%OU\": \"%U\", \"%OV\": \"%V\", \"%Ow\": \"%w\", \"%OW\": \"%W\", \"%Oy\": \"%y\" };\n for (var rule in EXPANSION_RULES_1) {pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_1[rule]);}\n var WEEKDAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n var MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n function leadingSomething(value, digits, character) {\n var str = typeof value === \"number\" ? value.toString() : value || \"\";\n while (str.length < digits) {str = character[0] + str;}\n return str;\n }\n function leadingNulls(value, digits) {return leadingSomething(value, digits, \"0\");}\n function compareByDay(date1, date2) {\n function sgn(value) {return value < 0 ? -1 : value > 0 ? 1 : 0;}\n var compare;\n if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {compare = sgn(date1.getDate() - date2.getDate());}}\n return compare;\n }\n function getFirstWeekStartDate(janFourth) {\n switch (janFourth.getDay()) {\n case 0:\n return new Date(janFourth.getFullYear() - 1, 11, 29);\n case 1:\n return janFourth;\n case 2:\n return new Date(janFourth.getFullYear(), 0, 3);\n case 3:\n return new Date(janFourth.getFullYear(), 0, 2);\n case 4:\n return new Date(janFourth.getFullYear(), 0, 1);\n case 5:\n return new Date(janFourth.getFullYear() - 1, 11, 31);\n case 6:\n return new Date(janFourth.getFullYear() - 1, 11, 30);\n }\n }\n function getWeekBasedYear(date) {\n var thisDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);\n var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {return thisDate.getFullYear() + 1;} else {return thisDate.getFullYear();}} else {return thisDate.getFullYear() - 1;}\n }\n var EXPANSION_RULES_2 = {\n \"%a\": function (date) {return WEEKDAYS[date.tm_wday].substring(0, 3);}, \"%A\": function (date) {return WEEKDAYS[date.tm_wday];}, \"%b\": function (date) {return MONTHS[date.tm_mon].substring(0, 3);}, \"%B\": function (date) {return MONTHS[date.tm_mon];}, \"%C\": function (date) {\n var year = date.tm_year + 1900;\n return leadingNulls(year / 100 | 0, 2);\n }, \"%d\": function (date) {return leadingNulls(date.tm_mday, 2);}, \"%e\": function (date) {return leadingSomething(date.tm_mday, 2, \" \");}, \"%g\": function (date) {return getWeekBasedYear(date).toString().substring(2);}, \"%G\": function (date) {return getWeekBasedYear(date);}, \"%H\": function (date) {return leadingNulls(date.tm_hour, 2);}, \"%I\": function (date) {\n var twelveHour = date.tm_hour;\n if (twelveHour == 0) twelveHour = 12; else if (twelveHour > 12) twelveHour -= 12;\n return leadingNulls(twelveHour, 2);\n }, \"%j\": function (date) {return leadingNulls(date.tm_mday + __arraySum(__isLeapYear(date.tm_year + 1900) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, date.tm_mon - 1), 3);}, \"%m\": function (date) {return leadingNulls(date.tm_mon + 1, 2);}, \"%M\": function (date) {return leadingNulls(date.tm_min, 2);}, \"%n\": function () {return \"\\n\";}, \"%p\": function (date) {if (date.tm_hour >= 0 && date.tm_hour < 12) {return \"AM\";} else {return \"PM\";}}, \"%S\": function (date) {return leadingNulls(date.tm_sec, 2);}, \"%t\": function () {return \"\\t\";}, \"%u\": function (date) {return date.tm_wday || 7;}, \"%U\": function (date) {\n var janFirst = new Date(date.tm_year + 1900, 0, 1);\n var firstSunday = janFirst.getDay() === 0 ? janFirst : __addDays(janFirst, 7 - janFirst.getDay());\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstSunday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstSundayUntilEndJanuary = 31 - firstSunday.getDate();\n var days = firstSundayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstSunday, janFirst) === 0 ? \"01\" : \"00\";\n }, \"%V\": function (date) {\n var janFourthThisYear = new Date(date.tm_year + 1900, 0, 4);\n var janFourthNextYear = new Date(date.tm_year + 1901, 0, 4);\n var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);\n var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);\n var endDate = __addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);\n if (compareByDay(endDate, firstWeekStartThisYear) < 0) {return \"53\";}\n if (compareByDay(firstWeekStartNextYear, endDate) <= 0) {return \"01\";}\n var daysDifference;\n if (firstWeekStartThisYear.getFullYear() < date.tm_year + 1900) {daysDifference = date.tm_yday + 32 - firstWeekStartThisYear.getDate();} else {daysDifference = date.tm_yday + 1 - firstWeekStartThisYear.getDate();}\n return leadingNulls(Math.ceil(daysDifference / 7), 2);\n }, \"%w\": function (date) {return date.tm_wday;}, \"%W\": function (date) {\n var janFirst = new Date(date.tm_year, 0, 1);\n var firstMonday = janFirst.getDay() === 1 ? janFirst : __addDays(janFirst, janFirst.getDay() === 0 ? 1 : 7 - janFirst.getDay() + 1);\n var endDate = new Date(date.tm_year + 1900, date.tm_mon, date.tm_mday);\n if (compareByDay(firstMonday, endDate) < 0) {\n var februaryFirstUntilEndMonth = __arraySum(__isLeapYear(endDate.getFullYear()) ? __MONTH_DAYS_LEAP : __MONTH_DAYS_REGULAR, endDate.getMonth() - 1) - 31;\n var firstMondayUntilEndJanuary = 31 - firstMonday.getDate();\n var days = firstMondayUntilEndJanuary + februaryFirstUntilEndMonth + endDate.getDate();\n return leadingNulls(Math.ceil(days / 7), 2);\n }\n return compareByDay(firstMonday, janFirst) === 0 ? \"01\" : \"00\";\n }, \"%y\": function (date) {return (date.tm_year + 1900).toString().substring(2);}, \"%Y\": function (date) {return date.tm_year + 1900;}, \"%z\": function (date) {\n var off = date.tm_gmtoff;\n var ahead = off >= 0;\n off = Math.abs(off) / 60;\n off = off / 60 * 100 + off % 60;\n return (ahead ? \"+\" : \"-\") + String(\"0000\" + off).slice(-4);\n }, \"%Z\": function (date) {return date.tm_zone;}, \"%%\": function () {return \"%\";}\n };\n for (var rule in EXPANSION_RULES_2) {if (pattern.includes(rule)) {pattern = pattern.replace(new RegExp(rule, \"g\"), EXPANSION_RULES_2[rule](date));}}\n var bytes = intArrayFromString(pattern, false);\n if (bytes.length > maxsize) {return 0;}\n writeArrayToMemory(bytes, s);\n return bytes.length - 1;\n }\n function _time(ptr) {\n var ret = Date.now() / 1e3 | 0;\n if (ptr) {HEAP32[ptr >> 2] = ret;}\n return ret;\n }\n var FSNode = function (parent, name, mode, rdev) {\n if (!parent) {parent = this;}\n this.parent = parent;\n this.mount = parent.mount;\n this.mounted = null;\n this.id = FS.nextInode++;\n this.name = name;\n this.mode = mode;\n this.node_ops = {};\n this.stream_ops = {};\n this.rdev = rdev;\n };\n var readMode = 292 | 73;\n var writeMode = 146;\n Object.defineProperties(FSNode.prototype, { read: { get: function () {return (this.mode & readMode) === readMode;}, set: function (val) {val ? this.mode |= readMode : this.mode &= ~readMode;} }, write: { get: function () {return (this.mode & writeMode) === writeMode;}, set: function (val) {val ? this.mode |= writeMode : this.mode &= ~writeMode;} }, isFolder: { get: function () {return FS.isDir(this.mode);} }, isDevice: { get: function () {return FS.isChrdev(this.mode);} } });\n FS.FSNode = FSNode;\n FS.staticInit();\n Module[\"FS_createPath\"] = FS.createPath;\n Module[\"FS_createDataFile\"] = FS.createDataFile;\n Module[\"FS_createPath\"] = FS.createPath;\n Module[\"FS_createDataFile\"] = FS.createDataFile;\n Module[\"FS_createPreloadedFile\"] = FS.createPreloadedFile;\n Module[\"FS_createLazyFile\"] = FS.createLazyFile;\n Module[\"FS_createDevice\"] = FS.createDevice;\n Module[\"FS_unlink\"] = FS.unlink;\n MONO.export_functions(Module);\n BINDING.export_functions(Module);\n var ASSERTIONS = false;\n function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n }\n var asmLibraryArg = {\n \"__assert_fail\": ___assert_fail, \"__clock_gettime\": ___clock_gettime, \"__cxa_allocate_exception\": ___cxa_allocate_exception, \"__cxa_begin_catch\": ___cxa_begin_catch, \"__cxa_end_catch\": ___cxa_end_catch, \"__cxa_find_matching_catch_3\": ___cxa_find_matching_catch_3, \"__cxa_throw\": ___cxa_throw, \"__resumeException\": ___resumeException, \"__sys_access\": ___sys_access, \"__sys_chdir\": ___sys_chdir, \"__sys_chmod\": ___sys_chmod, \"__sys_connect\": ___sys_connect, \"__sys_fadvise64_64\": ___sys_fadvise64_64, \"__sys_fchmod\": ___sys_fchmod, \"__sys_fcntl64\": ___sys_fcntl64, \"__sys_fstat64\": ___sys_fstat64, \"__sys_fstatfs64\": ___sys_fstatfs64, \"__sys_ftruncate64\": ___sys_ftruncate64, \"__sys_getcwd\": ___sys_getcwd, \"__sys_getdents64\": ___sys_getdents64, \"__sys_getpid\": ___sys_getpid, \"__sys_getrusage\": ___sys_getrusage, \"__sys_ioctl\": ___sys_ioctl, \"__sys_link\": ___sys_link, \"__sys_lstat64\": ___sys_lstat64, \"__sys_madvise1\": ___sys_madvise1, \"__sys_mkdir\": ___sys_mkdir, \"__sys_mmap2\": ___sys_mmap2, \"__sys_msync\": ___sys_msync, \"__sys_munmap\": ___sys_munmap, \"__sys_open\": ___sys_open, \"__sys_readlink\": ___sys_readlink, \"__sys_recvfrom\": ___sys_recvfrom, \"__sys_rename\": ___sys_rename, \"__sys_rmdir\": ___sys_rmdir, \"__sys_sendto\": ___sys_sendto, \"__sys_setsockopt\": ___sys_setsockopt, \"__sys_shutdown\": ___sys_shutdown, \"__sys_socket\": ___sys_socket, \"__sys_stat64\": ___sys_stat64, \"__sys_symlink\": ___sys_symlink, \"__sys_unlink\": ___sys_unlink, \"__sys_utimensat\": ___sys_utimensat, \"abort\": _abort, \"clock_getres\": _clock_getres, \"clock_gettime\": _clock_gettime, \"compile_function\": compile_function, \"difftime\": _difftime, \"dotnet_browser_entropy\": _dotnet_browser_entropy, \"emscripten_asm_const_int\": _emscripten_asm_const_int, \"emscripten_get_heap_max\": _emscripten_get_heap_max, \"emscripten_memcpy_big\": _emscripten_memcpy_big, \"emscripten_resize_heap\": _emscripten_resize_heap, \"emscripten_thread_sleep\": _emscripten_thread_sleep, \"environ_get\": _environ_get, \"environ_sizes_get\": _environ_sizes_get, \"exit\": _exit, \"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, \"flock\": _flock, \"gai_strerror\": _gai_strerror, \"getTempRet0\": _getTempRet0, \"gettimeofday\": _gettimeofday, \"gmtime_r\": _gmtime_r, \"invoke_vi\": invoke_vi, \"llvm_eh_typeid_for\": _llvm_eh_typeid_for, \"localtime_r\": _localtime_r, \"mono_set_timeout\": _mono_set_timeout, \"mono_wasm_add_event_listener\": _mono_wasm_add_event_listener, \"mono_wasm_asm_loaded\": _mono_wasm_asm_loaded, \"mono_wasm_create_cs_owned_object\": _mono_wasm_create_cs_owned_object, \"mono_wasm_fire_debugger_agent_message\": _mono_wasm_fire_debugger_agent_message, \"mono_wasm_get_by_index\": _mono_wasm_get_by_index, \"mono_wasm_get_global_object\": _mono_wasm_get_global_object, \"mono_wasm_get_object_property\": _mono_wasm_get_object_property, \"mono_wasm_invoke_js_blazor\": _mono_wasm_invoke_js_blazor, \"mono_wasm_invoke_js_marshalled\": _mono_wasm_invoke_js_marshalled, \"mono_wasm_invoke_js_unmarshalled\": _mono_wasm_invoke_js_unmarshalled, \"mono_wasm_invoke_js_with_args\": _mono_wasm_invoke_js_with_args, \"mono_wasm_release_cs_owned_object\": _mono_wasm_release_cs_owned_object, \"mono_wasm_remove_event_listener\": _mono_wasm_remove_event_listener, \"mono_wasm_set_by_index\": _mono_wasm_set_by_index, \"mono_wasm_set_object_property\": _mono_wasm_set_object_property, \"mono_wasm_typed_array_copy_from\": _mono_wasm_typed_array_copy_from, \"mono_wasm_typed_array_copy_to\": _mono_wasm_typed_array_copy_to, \"mono_wasm_typed_array_from\": _mono_wasm_typed_array_from, \"mono_wasm_typed_array_to_array\": _mono_wasm_typed_array_to_array, \"schedule_background_exec\": _schedule_background_exec, \"setTempRet0\": _setTempRet0, \"strftime\": _strftime, \"time\": _time, \"tzset\": _tzset\n };\n var asm = createWasm();\n var ___wasm_call_ctors = Module[\"___wasm_call_ctors\"] = function () {return (___wasm_call_ctors = Module[\"___wasm_call_ctors\"] = Module[\"asm\"][\"__wasm_call_ctors\"]).apply(null, arguments);};\n var _mono_wasm_register_root = Module[\"_mono_wasm_register_root\"] = function () {return (_mono_wasm_register_root = Module[\"_mono_wasm_register_root\"] = Module[\"asm\"][\"mono_wasm_register_root\"]).apply(null, arguments);};\n var _mono_wasm_deregister_root = Module[\"_mono_wasm_deregister_root\"] = function () {return (_mono_wasm_deregister_root = Module[\"_mono_wasm_deregister_root\"] = Module[\"asm\"][\"mono_wasm_deregister_root\"]).apply(null, arguments);};\n var _mono_wasm_add_assembly = Module[\"_mono_wasm_add_assembly\"] = function () {return (_mono_wasm_add_assembly = Module[\"_mono_wasm_add_assembly\"] = Module[\"asm\"][\"mono_wasm_add_assembly\"]).apply(null, arguments);};\n var _mono_wasm_add_satellite_assembly = Module[\"_mono_wasm_add_satellite_assembly\"] = function () {return (_mono_wasm_add_satellite_assembly = Module[\"_mono_wasm_add_satellite_assembly\"] = Module[\"asm\"][\"mono_wasm_add_satellite_assembly\"]).apply(null, arguments);};\n var _mono_wasm_setenv = Module[\"_mono_wasm_setenv\"] = function () {return (_mono_wasm_setenv = Module[\"_mono_wasm_setenv\"] = Module[\"asm\"][\"mono_wasm_setenv\"]).apply(null, arguments);};\n var _free = Module[\"_free\"] = function () {return (_free = Module[\"_free\"] = Module[\"asm\"][\"free\"]).apply(null, arguments);};\n var _mono_wasm_register_bundled_satellite_assemblies = Module[\"_mono_wasm_register_bundled_satellite_assemblies\"] = function () {return (_mono_wasm_register_bundled_satellite_assemblies = Module[\"_mono_wasm_register_bundled_satellite_assemblies\"] = Module[\"asm\"][\"mono_wasm_register_bundled_satellite_assemblies\"]).apply(null, arguments);};\n var _mono_wasm_load_runtime = Module[\"_mono_wasm_load_runtime\"] = function () {return (_mono_wasm_load_runtime = Module[\"_mono_wasm_load_runtime\"] = Module[\"asm\"][\"mono_wasm_load_runtime\"]).apply(null, arguments);};\n var _malloc = Module[\"_malloc\"] = function () {return (_malloc = Module[\"_malloc\"] = Module[\"asm\"][\"malloc\"]).apply(null, arguments);};\n var _mono_wasm_assembly_load = Module[\"_mono_wasm_assembly_load\"] = function () {return (_mono_wasm_assembly_load = Module[\"_mono_wasm_assembly_load\"] = Module[\"asm\"][\"mono_wasm_assembly_load\"]).apply(null, arguments);};\n var _mono_wasm_find_corlib_class = Module[\"_mono_wasm_find_corlib_class\"] = function () {return (_mono_wasm_find_corlib_class = Module[\"_mono_wasm_find_corlib_class\"] = Module[\"asm\"][\"mono_wasm_find_corlib_class\"]).apply(null, arguments);};\n var _mono_wasm_assembly_find_class = Module[\"_mono_wasm_assembly_find_class\"] = function () {return (_mono_wasm_assembly_find_class = Module[\"_mono_wasm_assembly_find_class\"] = Module[\"asm\"][\"mono_wasm_assembly_find_class\"]).apply(null, arguments);};\n var _mono_wasm_assembly_find_method = Module[\"_mono_wasm_assembly_find_method\"] = function () {return (_mono_wasm_assembly_find_method = Module[\"_mono_wasm_assembly_find_method\"] = Module[\"asm\"][\"mono_wasm_assembly_find_method\"]).apply(null, arguments);};\n var _mono_wasm_get_delegate_invoke = Module[\"_mono_wasm_get_delegate_invoke\"] = function () {return (_mono_wasm_get_delegate_invoke = Module[\"_mono_wasm_get_delegate_invoke\"] = Module[\"asm\"][\"mono_wasm_get_delegate_invoke\"]).apply(null, arguments);};\n var _mono_wasm_box_primitive = Module[\"_mono_wasm_box_primitive\"] = function () {return (_mono_wasm_box_primitive = Module[\"_mono_wasm_box_primitive\"] = Module[\"asm\"][\"mono_wasm_box_primitive\"]).apply(null, arguments);};\n var _mono_wasm_invoke_method = Module[\"_mono_wasm_invoke_method\"] = function () {return (_mono_wasm_invoke_method = Module[\"_mono_wasm_invoke_method\"] = Module[\"asm\"][\"mono_wasm_invoke_method\"]).apply(null, arguments);};\n var _mono_wasm_assembly_get_entry_point = Module[\"_mono_wasm_assembly_get_entry_point\"] = function () {return (_mono_wasm_assembly_get_entry_point = Module[\"_mono_wasm_assembly_get_entry_point\"] = Module[\"asm\"][\"mono_wasm_assembly_get_entry_point\"]).apply(null, arguments);};\n var _mono_wasm_string_get_utf8 = Module[\"_mono_wasm_string_get_utf8\"] = function () {return (_mono_wasm_string_get_utf8 = Module[\"_mono_wasm_string_get_utf8\"] = Module[\"asm\"][\"mono_wasm_string_get_utf8\"]).apply(null, arguments);};\n var _mono_wasm_string_convert = Module[\"_mono_wasm_string_convert\"] = function () {return (_mono_wasm_string_convert = Module[\"_mono_wasm_string_convert\"] = Module[\"asm\"][\"mono_wasm_string_convert\"]).apply(null, arguments);};\n var _mono_wasm_string_from_js = Module[\"_mono_wasm_string_from_js\"] = function () {return (_mono_wasm_string_from_js = Module[\"_mono_wasm_string_from_js\"] = Module[\"asm\"][\"mono_wasm_string_from_js\"]).apply(null, arguments);};\n var _mono_wasm_string_from_utf16 = Module[\"_mono_wasm_string_from_utf16\"] = function () {return (_mono_wasm_string_from_utf16 = Module[\"_mono_wasm_string_from_utf16\"] = Module[\"asm\"][\"mono_wasm_string_from_utf16\"]).apply(null, arguments);};\n var _mono_wasm_get_obj_type = Module[\"_mono_wasm_get_obj_type\"] = function () {return (_mono_wasm_get_obj_type = Module[\"_mono_wasm_get_obj_type\"] = Module[\"asm\"][\"mono_wasm_get_obj_type\"]).apply(null, arguments);};\n var _mono_wasm_try_unbox_primitive_and_get_type = Module[\"_mono_wasm_try_unbox_primitive_and_get_type\"] = function () {return (_mono_wasm_try_unbox_primitive_and_get_type = Module[\"_mono_wasm_try_unbox_primitive_and_get_type\"] = Module[\"asm\"][\"mono_wasm_try_unbox_primitive_and_get_type\"]).apply(null, arguments);};\n var _mono_unbox_int = Module[\"_mono_unbox_int\"] = function () {return (_mono_unbox_int = Module[\"_mono_unbox_int\"] = Module[\"asm\"][\"mono_unbox_int\"]).apply(null, arguments);};\n var _mono_wasm_array_length = Module[\"_mono_wasm_array_length\"] = function () {return (_mono_wasm_array_length = Module[\"_mono_wasm_array_length\"] = Module[\"asm\"][\"mono_wasm_array_length\"]).apply(null, arguments);};\n var _mono_wasm_array_get = Module[\"_mono_wasm_array_get\"] = function () {return (_mono_wasm_array_get = Module[\"_mono_wasm_array_get\"] = Module[\"asm\"][\"mono_wasm_array_get\"]).apply(null, arguments);};\n var _mono_wasm_obj_array_new = Module[\"_mono_wasm_obj_array_new\"] = function () {return (_mono_wasm_obj_array_new = Module[\"_mono_wasm_obj_array_new\"] = Module[\"asm\"][\"mono_wasm_obj_array_new\"]).apply(null, arguments);};\n var _mono_wasm_obj_array_set = Module[\"_mono_wasm_obj_array_set\"] = function () {return (_mono_wasm_obj_array_set = Module[\"_mono_wasm_obj_array_set\"] = Module[\"asm\"][\"mono_wasm_obj_array_set\"]).apply(null, arguments);};\n var _mono_wasm_string_array_new = Module[\"_mono_wasm_string_array_new\"] = function () {return (_mono_wasm_string_array_new = Module[\"_mono_wasm_string_array_new\"] = Module[\"asm\"][\"mono_wasm_string_array_new\"]).apply(null, arguments);};\n var _mono_wasm_exec_regression = Module[\"_mono_wasm_exec_regression\"] = function () {return (_mono_wasm_exec_regression = Module[\"_mono_wasm_exec_regression\"] = Module[\"asm\"][\"mono_wasm_exec_regression\"]).apply(null, arguments);};\n var _mono_wasm_exit = Module[\"_mono_wasm_exit\"] = function () {return (_mono_wasm_exit = Module[\"_mono_wasm_exit\"] = Module[\"asm\"][\"mono_wasm_exit\"]).apply(null, arguments);};\n var _mono_wasm_set_main_args = Module[\"_mono_wasm_set_main_args\"] = function () {return (_mono_wasm_set_main_args = Module[\"_mono_wasm_set_main_args\"] = Module[\"asm\"][\"mono_wasm_set_main_args\"]).apply(null, arguments);};\n var _mono_wasm_strdup = Module[\"_mono_wasm_strdup\"] = function () {return (_mono_wasm_strdup = Module[\"_mono_wasm_strdup\"] = Module[\"asm\"][\"mono_wasm_strdup\"]).apply(null, arguments);};\n var _mono_wasm_parse_runtime_options = Module[\"_mono_wasm_parse_runtime_options\"] = function () {return (_mono_wasm_parse_runtime_options = Module[\"_mono_wasm_parse_runtime_options\"] = Module[\"asm\"][\"mono_wasm_parse_runtime_options\"]).apply(null, arguments);};\n var _mono_wasm_enable_on_demand_gc = Module[\"_mono_wasm_enable_on_demand_gc\"] = function () {return (_mono_wasm_enable_on_demand_gc = Module[\"_mono_wasm_enable_on_demand_gc\"] = Module[\"asm\"][\"mono_wasm_enable_on_demand_gc\"]).apply(null, arguments);};\n var _mono_wasm_intern_string = Module[\"_mono_wasm_intern_string\"] = function () {return (_mono_wasm_intern_string = Module[\"_mono_wasm_intern_string\"] = Module[\"asm\"][\"mono_wasm_intern_string\"]).apply(null, arguments);};\n var _mono_wasm_string_get_data = Module[\"_mono_wasm_string_get_data\"] = function () {return (_mono_wasm_string_get_data = Module[\"_mono_wasm_string_get_data\"] = Module[\"asm\"][\"mono_wasm_string_get_data\"]).apply(null, arguments);};\n var _mono_wasm_typed_array_new = Module[\"_mono_wasm_typed_array_new\"] = function () {return (_mono_wasm_typed_array_new = Module[\"_mono_wasm_typed_array_new\"] = Module[\"asm\"][\"mono_wasm_typed_array_new\"]).apply(null, arguments);};\n var _mono_wasm_unbox_enum = Module[\"_mono_wasm_unbox_enum\"] = function () {return (_mono_wasm_unbox_enum = Module[\"_mono_wasm_unbox_enum\"] = Module[\"asm\"][\"mono_wasm_unbox_enum\"]).apply(null, arguments);};\n var _memset = Module[\"_memset\"] = function () {return (_memset = Module[\"_memset\"] = Module[\"asm\"][\"memset\"]).apply(null, arguments);};\n var ___errno_location = Module[\"___errno_location\"] = function () {return (___errno_location = Module[\"___errno_location\"] = Module[\"asm\"][\"__errno_location\"]).apply(null, arguments);};\n var _putchar = Module[\"_putchar\"] = function () {return (_putchar = Module[\"_putchar\"] = Module[\"asm\"][\"putchar\"]).apply(null, arguments);};\n var _mono_background_exec = Module[\"_mono_background_exec\"] = function () {return (_mono_background_exec = Module[\"_mono_background_exec\"] = Module[\"asm\"][\"mono_background_exec\"]).apply(null, arguments);};\n var _mono_wasm_get_icudt_name = Module[\"_mono_wasm_get_icudt_name\"] = function () {return (_mono_wasm_get_icudt_name = Module[\"_mono_wasm_get_icudt_name\"] = Module[\"asm\"][\"mono_wasm_get_icudt_name\"]).apply(null, arguments);};\n var _mono_wasm_load_icu_data = Module[\"_mono_wasm_load_icu_data\"] = function () {return (_mono_wasm_load_icu_data = Module[\"_mono_wasm_load_icu_data\"] = Module[\"asm\"][\"mono_wasm_load_icu_data\"]).apply(null, arguments);};\n var _mono_print_method_from_ip = Module[\"_mono_print_method_from_ip\"] = function () {return (_mono_print_method_from_ip = Module[\"_mono_print_method_from_ip\"] = Module[\"asm\"][\"mono_print_method_from_ip\"]).apply(null, arguments);};\n var _mono_set_timeout_exec = Module[\"_mono_set_timeout_exec\"] = function () {return (_mono_set_timeout_exec = Module[\"_mono_set_timeout_exec\"] = Module[\"asm\"][\"mono_set_timeout_exec\"]).apply(null, arguments);};\n var _ntohs = Module[\"_ntohs\"] = function () {return (_ntohs = Module[\"_ntohs\"] = Module[\"asm\"][\"ntohs\"]).apply(null, arguments);};\n var _htons = Module[\"_htons\"] = function () {return (_htons = Module[\"_htons\"] = Module[\"asm\"][\"htons\"]).apply(null, arguments);};\n var _mono_wasm_set_is_debugger_attached = Module[\"_mono_wasm_set_is_debugger_attached\"] = function () {return (_mono_wasm_set_is_debugger_attached = Module[\"_mono_wasm_set_is_debugger_attached\"] = Module[\"asm\"][\"mono_wasm_set_is_debugger_attached\"]).apply(null, arguments);};\n var _mono_wasm_send_dbg_command_with_parms = Module[\"_mono_wasm_send_dbg_command_with_parms\"] = function () {return (_mono_wasm_send_dbg_command_with_parms = Module[\"_mono_wasm_send_dbg_command_with_parms\"] = Module[\"asm\"][\"mono_wasm_send_dbg_command_with_parms\"]).apply(null, arguments);};\n var _mono_wasm_send_dbg_command = Module[\"_mono_wasm_send_dbg_command\"] = function () {return (_mono_wasm_send_dbg_command = Module[\"_mono_wasm_send_dbg_command\"] = Module[\"asm\"][\"mono_wasm_send_dbg_command\"]).apply(null, arguments);};\n var _emscripten_main_thread_process_queued_calls = Module[\"_emscripten_main_thread_process_queued_calls\"] = function () {return (_emscripten_main_thread_process_queued_calls = Module[\"_emscripten_main_thread_process_queued_calls\"] = Module[\"asm\"][\"emscripten_main_thread_process_queued_calls\"]).apply(null, arguments);};\n var _htonl = Module[\"_htonl\"] = function () {return (_htonl = Module[\"_htonl\"] = Module[\"asm\"][\"htonl\"]).apply(null, arguments);};\n var __get_tzname = Module[\"__get_tzname\"] = function () {return (__get_tzname = Module[\"__get_tzname\"] = Module[\"asm\"][\"_get_tzname\"]).apply(null, arguments);};\n var __get_daylight = Module[\"__get_daylight\"] = function () {return (__get_daylight = Module[\"__get_daylight\"] = Module[\"asm\"][\"_get_daylight\"]).apply(null, arguments);};\n var __get_timezone = Module[\"__get_timezone\"] = function () {return (__get_timezone = Module[\"__get_timezone\"] = Module[\"asm\"][\"_get_timezone\"]).apply(null, arguments);};\n var stackSave = Module[\"stackSave\"] = function () {return (stackSave = Module[\"stackSave\"] = Module[\"asm\"][\"stackSave\"]).apply(null, arguments);};\n var stackRestore = Module[\"stackRestore\"] = function () {return (stackRestore = Module[\"stackRestore\"] = Module[\"asm\"][\"stackRestore\"]).apply(null, arguments);};\n var stackAlloc = Module[\"stackAlloc\"] = function () {return (stackAlloc = Module[\"stackAlloc\"] = Module[\"asm\"][\"stackAlloc\"]).apply(null, arguments);};\n var _setThrew = Module[\"_setThrew\"] = function () {return (_setThrew = Module[\"_setThrew\"] = Module[\"asm\"][\"setThrew\"]).apply(null, arguments);};\n var ___cxa_can_catch = Module[\"___cxa_can_catch\"] = function () {return (___cxa_can_catch = Module[\"___cxa_can_catch\"] = Module[\"asm\"][\"__cxa_can_catch\"]).apply(null, arguments);};\n var ___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = function () {return (___cxa_is_pointer_type = Module[\"___cxa_is_pointer_type\"] = Module[\"asm\"][\"__cxa_is_pointer_type\"]).apply(null, arguments);};\n var _memalign = Module[\"_memalign\"] = function () {return (_memalign = Module[\"_memalign\"] = Module[\"asm\"][\"memalign\"]).apply(null, arguments);};\n var dynCall_iijj = Module[\"dynCall_iijj\"] = function () {return (dynCall_iijj = Module[\"dynCall_iijj\"] = Module[\"asm\"][\"dynCall_iijj\"]).apply(null, arguments);};\n var dynCall_iij = Module[\"dynCall_iij\"] = function () {return (dynCall_iij = Module[\"dynCall_iij\"] = Module[\"asm\"][\"dynCall_iij\"]).apply(null, arguments);};\n var dynCall_ji = Module[\"dynCall_ji\"] = function () {return (dynCall_ji = Module[\"dynCall_ji\"] = Module[\"asm\"][\"dynCall_ji\"]).apply(null, arguments);};\n var dynCall_j = Module[\"dynCall_j\"] = function () {return (dynCall_j = Module[\"dynCall_j\"] = Module[\"asm\"][\"dynCall_j\"]).apply(null, arguments);};\n var dynCall_iijji = Module[\"dynCall_iijji\"] = function () {return (dynCall_iijji = Module[\"dynCall_iijji\"] = Module[\"asm\"][\"dynCall_iijji\"]).apply(null, arguments);};\n var dynCall_jiji = Module[\"dynCall_jiji\"] = function () {return (dynCall_jiji = Module[\"dynCall_jiji\"] = Module[\"asm\"][\"dynCall_jiji\"]).apply(null, arguments);};\n var dynCall_iiji = Module[\"dynCall_iiji\"] = function () {return (dynCall_iiji = Module[\"dynCall_iiji\"] = Module[\"asm\"][\"dynCall_iiji\"]).apply(null, arguments);};\n var dynCall_iijiiij = Module[\"dynCall_iijiiij\"] = function () {return (dynCall_iijiiij = Module[\"dynCall_iijiiij\"] = Module[\"asm\"][\"dynCall_iijiiij\"]).apply(null, arguments);};\n var dynCall_iiiij = Module[\"dynCall_iiiij\"] = function () {return (dynCall_iiiij = Module[\"dynCall_iiiij\"] = Module[\"asm\"][\"dynCall_iiiij\"]).apply(null, arguments);};\n var dynCall_jiiij = Module[\"dynCall_jiiij\"] = function () {return (dynCall_jiiij = Module[\"dynCall_jiiij\"] = Module[\"asm\"][\"dynCall_jiiij\"]).apply(null, arguments);};\n var dynCall_viiijjii = Module[\"dynCall_viiijjii\"] = function () {return (dynCall_viiijjii = Module[\"dynCall_viiijjii\"] = Module[\"asm\"][\"dynCall_viiijjii\"]).apply(null, arguments);};\n var dynCall_jd = Module[\"dynCall_jd\"] = function () {return (dynCall_jd = Module[\"dynCall_jd\"] = Module[\"asm\"][\"dynCall_jd\"]).apply(null, arguments);};\n var dynCall_jf = Module[\"dynCall_jf\"] = function () {return (dynCall_jf = Module[\"dynCall_jf\"] = Module[\"asm\"][\"dynCall_jf\"]).apply(null, arguments);};\n var dynCall_vijj = Module[\"dynCall_vijj\"] = function () {return (dynCall_vijj = Module[\"dynCall_vijj\"] = Module[\"asm\"][\"dynCall_vijj\"]).apply(null, arguments);};\n var dynCall_iiijiiii = Module[\"dynCall_iiijiiii\"] = function () {return (dynCall_iiijiiii = Module[\"dynCall_iiijiiii\"] = Module[\"asm\"][\"dynCall_iiijiiii\"]).apply(null, arguments);};\n var dynCall_vj = Module[\"dynCall_vj\"] = function () {return (dynCall_vj = Module[\"dynCall_vj\"] = Module[\"asm\"][\"dynCall_vj\"]).apply(null, arguments);};\n var dynCall_jiiiii = Module[\"dynCall_jiiiii\"] = function () {return (dynCall_jiiiii = Module[\"dynCall_jiiiii\"] = Module[\"asm\"][\"dynCall_jiiiii\"]).apply(null, arguments);};\n var dynCall_iji = Module[\"dynCall_iji\"] = function () {return (dynCall_iji = Module[\"dynCall_iji\"] = Module[\"asm\"][\"dynCall_iji\"]).apply(null, arguments);};\n var dynCall_ij = Module[\"dynCall_ij\"] = function () {return (dynCall_ij = Module[\"dynCall_ij\"] = Module[\"asm\"][\"dynCall_ij\"]).apply(null, arguments);};\n var dynCall_jij = Module[\"dynCall_jij\"] = function () {return (dynCall_jij = Module[\"dynCall_jij\"] = Module[\"asm\"][\"dynCall_jij\"]).apply(null, arguments);};\n var dynCall_jijj = Module[\"dynCall_jijj\"] = function () {return (dynCall_jijj = Module[\"dynCall_jijj\"] = Module[\"asm\"][\"dynCall_jijj\"]).apply(null, arguments);};\n var dynCall_iijjiii = Module[\"dynCall_iijjiii\"] = function () {return (dynCall_iijjiii = Module[\"dynCall_iijjiii\"] = Module[\"asm\"][\"dynCall_iijjiii\"]).apply(null, arguments);};\n var dynCall_vijjjii = Module[\"dynCall_vijjjii\"] = function () {return (dynCall_vijjjii = Module[\"dynCall_vijjjii\"] = Module[\"asm\"][\"dynCall_vijjjii\"]).apply(null, arguments);};\n var dynCall_iijii = Module[\"dynCall_iijii\"] = function () {return (dynCall_iijii = Module[\"dynCall_iijii\"] = Module[\"asm\"][\"dynCall_iijii\"]).apply(null, arguments);};\n var dynCall_iijiii = Module[\"dynCall_iijiii\"] = function () {return (dynCall_iijiii = Module[\"dynCall_iijiii\"] = Module[\"asm\"][\"dynCall_iijiii\"]).apply(null, arguments);};\n var dynCall_vijiiii = Module[\"dynCall_vijiiii\"] = function () {return (dynCall_vijiiii = Module[\"dynCall_vijiiii\"] = Module[\"asm\"][\"dynCall_vijiiii\"]).apply(null, arguments);};\n var dynCall_iijiiii = Module[\"dynCall_iijiiii\"] = function () {return (dynCall_iijiiii = Module[\"dynCall_iijiiii\"] = Module[\"asm\"][\"dynCall_iijiiii\"]).apply(null, arguments);};\n var dynCall_vij = Module[\"dynCall_vij\"] = function () {return (dynCall_vij = Module[\"dynCall_vij\"] = Module[\"asm\"][\"dynCall_vij\"]).apply(null, arguments);};\n var dynCall_jii = Module[\"dynCall_jii\"] = function () {return (dynCall_jii = Module[\"dynCall_jii\"] = Module[\"asm\"][\"dynCall_jii\"]).apply(null, arguments);};\n var dynCall_jiiiiiiiii = Module[\"dynCall_jiiiiiiiii\"] = function () {return (dynCall_jiiiiiiiii = Module[\"dynCall_jiiiiiiiii\"] = Module[\"asm\"][\"dynCall_jiiiiiiiii\"]).apply(null, arguments);};\n var dynCall_jj = Module[\"dynCall_jj\"] = function () {return (dynCall_jj = Module[\"dynCall_jj\"] = Module[\"asm\"][\"dynCall_jj\"]).apply(null, arguments);};\n var dynCall_iiijiiiii = Module[\"dynCall_iiijiiiii\"] = function () {return (dynCall_iiijiiiii = Module[\"dynCall_iiijiiiii\"] = Module[\"asm\"][\"dynCall_iiijiiiii\"]).apply(null, arguments);};\n function invoke_vi(index, a1) {\n var sp = stackSave();\n try {wasmTable.get(index)(a1);} catch (e) {\n stackRestore(sp);\n if (e !== e + 0 && e !== \"longjmp\") throw e;\n _setThrew(1, 0);\n }\n }\n Module[\"ccall\"] = ccall;\n Module[\"cwrap\"] = cwrap;\n Module[\"setValue\"] = setValue;\n Module[\"getValue\"] = getValue;\n Module[\"UTF8ArrayToString\"] = UTF8ArrayToString;\n Module[\"UTF8ToString\"] = UTF8ToString;\n Module[\"addRunDependency\"] = addRunDependency;\n Module[\"removeRunDependency\"] = removeRunDependency;\n Module[\"FS_createPath\"] = FS.createPath;\n Module[\"FS_createDataFile\"] = FS.createDataFile;\n Module[\"FS_createPreloadedFile\"] = FS.createPreloadedFile;\n Module[\"FS_createLazyFile\"] = FS.createLazyFile;\n Module[\"FS_createDevice\"] = FS.createDevice;\n Module[\"FS_unlink\"] = FS.unlink;\n Module[\"addFunction\"] = addFunction;\n Module[\"MONO\"] = MONO;\n Module[\"BINDING\"] = BINDING;\n var calledRun;\n function ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n }\n dependenciesFulfilled = function runCaller() {\n if (!calledRun) run();\n if (!calledRun) dependenciesFulfilled = runCaller;\n };\n function run(args) {\n args = args || arguments_;\n if (runDependencies > 0) {return;}\n preRun();\n if (runDependencies > 0) {return;}\n function doRun() {\n if (calledRun) return;\n calledRun = true;\n Module[\"calledRun\"] = true;\n if (ABORT) return;\n initRuntime();\n readyPromiseResolve(Module);\n if (Module[\"onRuntimeInitialized\"]) Module[\"onRuntimeInitialized\"]();\n postRun();\n }\n if (Module[\"setStatus\"]) {\n Module[\"setStatus\"](\"Running...\");\n setTimeout(function () {\n setTimeout(function () {Module[\"setStatus\"](\"\");}, 1);\n doRun();\n }, 1);\n } else {doRun();}\n }\n Module[\"run\"] = run;\n function exit(status, implicit) {\n EXITSTATUS = status;\n if (implicit && keepRuntimeAlive() && status === 0) {return;}\n if (keepRuntimeAlive()) {} else {\n exitRuntime();\n if (Module[\"onExit\"]) Module[\"onExit\"](status);\n ABORT = true;\n }\n quit_(status, new ExitStatus(status));\n }\n if (Module[\"preInit\"]) {\n if (typeof Module[\"preInit\"] == \"function\") Module[\"preInit\"] = [Module[\"preInit\"]];\n while (Module[\"preInit\"].length > 0) {Module[\"preInit\"].pop()();}\n }\n run();\n\n return Module.ready;\n }\n );\n})();\nif (typeof exports === \"object\" && typeof module === \"object\")\n module.exports = Module;\nelse if (typeof define === \"function\" && define[\"amd\"])\n define([], function () { return Module; });\nelse if (typeof exports === \"object\")\n exports[\"Module\"] = Module;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export let wasm: DotNetModule;\n\nexport interface DotNetModule extends EmscriptenModule {\n MONO: any,\n BINDING: any,\n ccall(ident: string,\n returnType: Emscripten.JSType | null,\n argTypes: Emscripten.JSType[],\n args: Emscripten.TypeCompatibleWithC[],\n opts?: Emscripten.CCallOpts): any;\n}\n\nexport function initializeWasm(wasmBinary: Uint8Array): Promise<void> {\n return new Promise<void>(resolve => {\n // \"Module\" global is expected in the emscripten's autogenerated js wrapper.\n globalThis.Module = wasm = {\n wasmBinary: wasmBinary,\n onRuntimeInitialized: resolve\n } as any;\n require(\"../native/dotnet.js\")(wasm);\n });\n}\n\nexport function destroyWasm(): void {\n // https://github.com/Elringus/DotNetJS/issues/22\n // EM.ccall(\"emscripten_force_exit\", null, [\"number\"], [0]);\n}\n","// Source: https://github.com/dotnet/aspnetcore/blob/main/src/JSInterop/Microsoft.JSInterop.JS/src/src/Microsoft.JSInterop.ts\n// Why: Microsoft is not planning to support any environment, except browser: https://github.com/dotnet/aspnetcore/issues/38208\n// Changes:\n// 1. Replaced `window` with `global` (webpack resolves to the correct global).\n// 2. Removed `import` statement at line #70 (causing warnings when repacking, eg in WebExtension sample).\n// 3. Removed `Blob` case in createJSStreamReference (Blob is from DOM lib).\n// 4. Throw on DotNetStream::arrayBuffer (Response is from DOM lib).\n\nexport namespace DotNet {\n (global as any).DotNet = DotNet; // Ensure reachable from anywhere\n\n export type JsonReviver = ((key: any, value: any) => any);\n const jsonRevivers: JsonReviver[] = [];\n\n const byteArraysToBeRevived = new Map<number, Uint8Array>();\n const pendingDotNetToJSStreams = new Map<number, PendingStream>();\n\n const jsObjectIdKey = \"__jsObjectId\";\n const dotNetObjectRefKey = \"__dotNetObject\";\n const byteArrayRefKey = \"__byte[]\";\n const dotNetStreamRefKey = \"__dotNetStream\";\n const jsStreamReferenceLengthKey = \"__jsStreamReferenceLength\";\n\n class JSObject {\n _cachedFunctions: Map<string, Function>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(private _jsObject: any) {\n this._cachedFunctions = new Map<string, Function>();\n }\n\n public findFunction(identifier: string) {\n const cachedFunction = this._cachedFunctions.get(identifier);\n\n if (cachedFunction) {\n return cachedFunction;\n }\n\n let result: any = this._jsObject;\n let lastSegmentValue: any;\n\n identifier.split(\".\").forEach(segment => {\n if (segment in result) {\n lastSegmentValue = result;\n result = result[segment];\n } else {\n throw new Error(`Could not find '${identifier}' ('${segment}' was undefined).`);\n }\n });\n\n if (result instanceof Function) {\n result = result.bind(lastSegmentValue);\n this._cachedFunctions.set(identifier, result);\n return result;\n }\n\n throw new Error(`The value '${identifier}' is not a function.`);\n }\n\n public getWrappedObject() {\n return this._jsObject;\n }\n }\n\n const pendingAsyncCalls: { [id: number]: PendingAsyncCall<any> } = {};\n const windowJSObjectId = 0;\n const cachedJSObjectsById: { [id: number]: JSObject } = {\n [windowJSObjectId]: new JSObject(global)\n };\n\n // cachedJSObjectsById[windowJSObjectId]._cachedFunctions.set(\"import\", (url: any) => {\n //\n // // In most cases developers will want to resolve dynamic imports relative to the base HREF.\n // // However since we're the one calling the import keyword, they would be resolved relative to\n // // this framework bundle URL. Fix this by providing an absolute URL.\n // if (typeof url === \"string\" && url.startsWith(\"./\")) {\n // url = document.baseURI + url.substr(2);\n // }\n //\n // return import(/* webpackIgnore: true */ url);\n // });\n\n let nextAsyncCallId = 1; // Start at 1 because zero signals \"no response needed\"\n let nextJsObjectId = 1; // Start at 1 because zero is reserved for \"window\"\n\n let dotNetDispatcher: DotNetCallDispatcher | null = null;\n\n /**\n * Sets the specified .NET call dispatcher as the current instance so that it will be used\n * for future invocations.\n *\n * @param dispatcher An object that can dispatch calls from JavaScript to a .NET runtime.\n */\n export function attachDispatcher(dispatcher: DotNetCallDispatcher) {\n dotNetDispatcher = dispatcher;\n }\n\n /**\n * Adds a JSON reviver callback that will be used when parsing arguments received from .NET.\n * @param reviver The reviver to add.\n */\n export function attachReviver(reviver: JsonReviver) {\n jsonRevivers.push(reviver);\n }\n\n /**\n * Invokes the specified .NET public method synchronously. Not all hosting scenarios support\n * synchronous invocation, so if possible use invokeMethodAsync instead.\n *\n * @param assemblyName The short name (without key/version or .dll extension) of the .NET assembly containing the method.\n * @param methodIdentifier The identifier of the method to invoke. The method must have a [JSInvokable] attribute specifying this identifier.\n * @param args Arguments to pass to the method, each of which must be JSON-serializable.\n * @returns The result of the operation.\n */\n export function invokeMethod<T>(assemblyName: string, methodIdentifier: string, ...args: any[]): T {\n return invokePossibleInstanceMethod<T>(assemblyName, methodIdentifier, null, args);\n }\n\n /**\n * Invokes the specified .NET public method asynchronously.\n *\n * @param assemblyName The short name (without key/version or .dll extension) of the .NET assembly containing the method.\n * @param methodIdentifier The identifier of the method to invoke. The method must have a [JSInvokable] attribute specifying this identifier.\n * @param args Arguments to pass to the method, each of which must be JSON-serializable.\n * @returns A promise representing the result of the operation.\n */\n export function invokeMethodAsync<T>(assemblyName: string, methodIdentifier: string, ...args: any[]): Promise<T> {\n return invokePossibleInstanceMethodAsync(assemblyName, methodIdentifier, null, args);\n }\n\n /**\n * Creates a JavaScript object reference that can be passed to .NET via interop calls.\n *\n * @param jsObject The JavaScript Object used to create the JavaScript object reference.\n * @returns The JavaScript object reference (this will be the same instance as the given object).\n * @throws Error if the given value is not an Object.\n */\n export function createJSObjectReference(jsObject: any): any {\n if (jsObject && typeof jsObject === \"object\") {\n cachedJSObjectsById[nextJsObjectId] = new JSObject(jsObject);\n\n const result = {\n [jsObjectIdKey]: nextJsObjectId\n };\n\n nextJsObjectId++;\n\n return result;\n }\n\n throw new Error(`Cannot create a JSObjectReference from the value '${jsObject}'.`);\n }\n\n /**\n * Creates a JavaScript data reference that can be passed to .NET via interop calls.\n *\n * @param streamReference The ArrayBufferView or Blob used to create the JavaScript stream reference.\n * @returns The JavaScript data reference (this will be the same instance as the given object).\n * @throws Error if the given value is not an Object or doesn't have a valid byteLength.\n */\n export function createJSStreamReference(streamReference: ArrayBuffer | ArrayBufferView | any): any {\n let length = -1;\n\n // If we're given a raw Array Buffer, we interpret it as a `Uint8Array` as\n // ArrayBuffers' aren't directly readable.\n if (streamReference instanceof ArrayBuffer) {\n streamReference = new Uint8Array(streamReference);\n }\n\n if (streamReference.buffer instanceof ArrayBuffer) {\n if (streamReference.byteLength === undefined) {\n throw new Error(`Cannot create a JSStreamReference from the value '${streamReference}' as it doesn't have a byteLength.`);\n }\n length = streamReference.byteLength;\n } else {\n throw new Error(\"Supplied value is not a typed array.\");\n }\n\n const result: any = {\n [jsStreamReferenceLengthKey]: length\n };\n\n try {\n const jsObjectReference = createJSObjectReference(streamReference);\n result[jsObjectIdKey] = jsObjectReference[jsObjectIdKey];\n }\n catch (error) {\n throw new Error(`Cannot create a JSStreamReference from the value '${streamReference}'.`);\n }\n\n return result;\n }\n\n /**\n * Disposes the given JavaScript object reference.\n *\n * @param jsObjectReference The JavaScript Object reference.\n */\n export function disposeJSObjectReference(jsObjectReference: any): void {\n const id = jsObjectReference && jsObjectReference[jsObjectIdKey];\n\n if (typeof id === \"number\") {\n disposeJSObjectReferenceById(id);\n }\n }\n\n /**\n * Parses the given JSON string using revivers to restore args passed from .NET to JS.\n *\n * @param json The JSON stirng to parse.\n */\n function parseJsonWithRevivers(json: string): any {\n return json ? JSON.parse(json, (key, initialValue) => {\n // Invoke each reviver in order, passing the output from the previous reviver,\n // so that each one gets a chance to transform the value\n\n return jsonRevivers.reduce(\n (latestValue, reviver) => reviver(key, latestValue),\n initialValue\n );\n }) : null;\n }\n\n function invokePossibleInstanceMethod<T>(assemblyName: string | null, methodIdentifier: string, dotNetObjectId: number | null, args: any[] | null): T {\n const dispatcher = getRequiredDispatcher();\n if (dispatcher.invokeDotNetFromJS) {\n const argsJson = stringifyArgs(args);\n const resultJson = dispatcher.invokeDotNetFromJS(assemblyName, methodIdentifier, dotNetObjectId, argsJson);\n return resultJson ? parseJsonWithRevivers(resultJson) : null;\n }\n\n throw new Error(\"The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.\");\n }\n\n function invokePossibleInstanceMethodAsync<T>(assemblyName: string | null, methodIdentifier: string, dotNetObjectId: number | null, args: any[] | null): Promise<T> {\n if (assemblyName && dotNetObjectId) {\n throw new Error(`For instance method calls, assemblyName should be null. Received '${assemblyName}'.`);\n }\n\n const asyncCallId = nextAsyncCallId++;\n const resultPromise = new Promise<T>((resolve, reject) => {\n pendingAsyncCalls[asyncCallId] = { resolve, reject };\n });\n\n try {\n const argsJson = stringifyArgs(args);\n getRequiredDispatcher().beginInvokeDotNetFromJS(asyncCallId, assemblyName, methodIdentifier, dotNetObjectId, argsJson);\n }\n catch (ex) {\n // Synchronous failure\n completePendingCall(asyncCallId, false, ex);\n }\n\n return resultPromise;\n }\n\n function getRequiredDispatcher(): DotNetCallDispatcher {\n if (dotNetDispatcher !== null) {\n return dotNetDispatcher;\n }\n\n throw new Error(\"No .NET call dispatcher has been set.\");\n }\n\n function completePendingCall(asyncCallId: number, success: boolean, resultOrError: any) {\n if (!pendingAsyncCalls.hasOwnProperty(asyncCallId)) {\n throw new Error(`There is no pending async call with ID ${asyncCallId}.`);\n }\n\n const asyncCall = pendingAsyncCalls[asyncCallId];\n delete pendingAsyncCalls[asyncCallId];\n if (success) {\n asyncCall.resolve(resultOrError);\n } else {\n asyncCall.reject(resultOrError);\n }\n }\n\n interface PendingAsyncCall<T> {\n resolve: (value?: T | PromiseLike<T>) => void;\n reject: (reason?: any) => void;\n }\n\n /**\n * Represents the type of result expected from a JS interop call.\n */\n // eslint-disable-next-line no-shadow\n export enum JSCallResultType {\n Default = 0,\n JSObjectReference = 1,\n JSStreamReference = 2,\n JSVoidResult = 3,\n }\n\n /**\n * Represents the ability to dispatch calls from JavaScript to a .NET runtime.\n */\n export interface DotNetCallDispatcher {\n /**\n * Optional. If implemented, invoked by the runtime to perform a synchronous call to a .NET method.\n *\n * @param assemblyName The short name (without key/version or .dll extension) of the .NET assembly holding the method to invoke. The value may be null when invoking instance methods.\n * @param methodIdentifier The identifier of the method to invoke. The method must have a [JSInvokable] attribute specifying this identifier.\n * @param dotNetObjectId If given, the call will be to an instance method on the specified DotNetObject. Pass null or undefined to call static methods.\n * @param argsJson JSON representation of arguments to pass to the method.\n * @returns JSON representation of the result of the invocation.\n */\n invokeDotNetFromJS?(assemblyName: string | null, methodIdentifier: string, dotNetObjectId: number | null, argsJson: string): string | null;\n\n /**\n * Invoked by the runtime to begin an asynchronous call to a .NET method.\n *\n * @param callId A value identifying the asynchronous operation. This value should be passed back in a later call from .NET to JS.\n * @param assemblyName The short name (without key/version or .dll extension) of the .NET assembly holding the method to invoke. The value may be null when invoking instance methods.\n * @param methodIdentifier The identifier of the method to invoke. The method must have a [JSInvokable] attribute specifying this identifier.\n * @param dotNetObjectId If given, the call will be to an instance method on the specified DotNetObject. Pass null to call static methods.\n * @param argsJson JSON representation of arguments to pass to the method.\n */\n beginInvokeDotNetFromJS(callId: number, assemblyName: string | null, methodIdentifier: string, dotNetObjectId: number | null, argsJson: string): void;\n\n /**\n * Invoked by the runtime to complete an asynchronous JavaScript function call started from .NET\n *\n * @param callId A value identifying the asynchronous operation.\n * @param succeded Whether the operation succeeded or not.\n * @param resultOrError The serialized result or the serialized error from the async operation.\n */\n endInvokeJSFromDotNet(callId: number, succeeded: boolean, resultOrError: any): void;\n\n /**\n * Invoked by the runtime to transfer a byte array from JS to .NET.\n * @param id The identifier for the byte array used during revival.\n * @param data The byte array being transferred for eventual revival.\n */\n sendByteArray(id: number, data: Uint8Array): void;\n }\n\n /**\n * Receives incoming calls from .NET and dispatches them to JavaScript.\n */\n export const jsCallDispatcher = {\n /**\n * Finds the JavaScript function matching the specified identifier.\n *\n * @param identifier Identifies the globally-reachable function to be returned.\n * @param targetInstanceId The instance ID of the target JS object.\n * @returns A Function instance.\n */\n findJSFunction, // Note that this is used by the JS interop code inside Mono WebAssembly itself\n\n /**\n * Disposes the JavaScript object reference with the specified object ID.\n *\n * @param id The ID of the JavaScript object reference.\n */\n disposeJSObjectReferenceById,\n\n /**\n * Invokes the specified synchronous JavaScript function.\n *\n * @param identifier Identifies the globally-reachable function to invoke.\n * @param argsJson JSON representation of arguments to be passed to the function.\n * @param resultType The type of result expected from the JS interop call.\n * @param targetInstanceId The instance ID of the target JS object.\n * @returns JSON representation of the invocation result.\n */\n invokeJSFromDotNet: (identifier: string, argsJson: string, resultType: JSCallResultType, targetInstanceId: number) => {\n const returnValue = findJSFunction(identifier, targetInstanceId).apply(null, parseJsonWithRevivers(argsJson));\n const result = createJSCallResult(returnValue, resultType);\n\n return result === null || result === undefined\n ? null\n : stringifyArgs(result);\n },\n\n /**\n * Invokes the specified synchronous or asynchronous JavaScript function.\n *\n * @param asyncHandle A value identifying the asynchronous operation. This value will be passed back in a later call to endInvokeJSFromDotNet.\n * @param identifier Identifies the globally-reachable function to invoke.\n * @param argsJson JSON representation of arguments to be passed to the function.\n * @param resultType The type of result expected from the JS interop call.\n * @param targetInstanceId The ID of the target JS object instance.\n */\n beginInvokeJSFromDotNet: (asyncHandle: number, identifier: string, argsJson: string, resultType: JSCallResultType, targetInstanceId: number): void => {\n // Coerce synchronous functions into async ones, plus treat\n // synchronous exceptions the same as async ones\n const promise = new Promise<any>(resolve => {\n const synchronousResultOrPromise = findJSFunction(identifier, targetInstanceId).apply(null, parseJsonWithRevivers(argsJson));\n resolve(synchronousResultOrPromise);\n });\n\n // We only listen for a result if the caller wants to be notified about it\n if (asyncHandle) {\n // On completion, dispatch result back to .NET\n // Not using \"await\" because it codegens a lot of boilerplate\n promise.then(\n result => getRequiredDispatcher().endInvokeJSFromDotNet(asyncHandle, true, stringifyArgs([\n asyncHandle,\n true,\n createJSCallResult(result, resultType)\n ])),\n error => getRequiredDispatcher().endInvokeJSFromDotNet(asyncHandle, false, JSON.stringify([\n asyncHandle,\n false,\n formatError(error)\n ]))\n );\n }\n },\n\n /**\n * Receives notification that an async call from JS to .NET has completed.\n * @param asyncCallId The identifier supplied in an earlier call to beginInvokeDotNetFromJS.\n * @param success A flag to indicate whether the operation completed successfully.\n * @param resultJsonOrExceptionMessage Either the operation result as JSON, or an error message.\n */\n endInvokeDotNetFromJS: (asyncCallId: string, success: boolean, resultJsonOrExceptionMessage: string): void => {\n const resultOrError = success\n ? parseJsonWithRevivers(resultJsonOrExceptionMessage)\n : new Error(resultJsonOrExceptionMessage);\n completePendingCall(parseInt(asyncCallId, 10), success, resultOrError);\n },\n\n /**\n * Receives notification that a byte array is being transferred from .NET to JS.\n * @param id The identifier for the byte array used during revival.\n * @param data The byte array being transferred for eventual revival.\n */\n receiveByteArray: (id: number, data: Uint8Array): void => {\n byteArraysToBeRevived.set(id, data);\n },\n\n /**\n * Supplies a stream of data being sent from .NET.\n *\n * @param streamId The identifier previously passed to JSRuntime's BeginTransmittingStream in .NET code\n * @param stream The stream data.\n */\n supplyDotNetStream: (streamId: number, stream: ReadableStream) => {\n if (pendingDotNetToJSStreams.has(streamId)) {\n // The receiver is already waiting, so we can resolve the promise now and stop tracking this\n const pendingStream = pendingDotNetToJSStreams.get(streamId)!;\n pendingDotNetToJSStreams.delete(streamId);\n pendingStream.resolve!(stream);\n } else {\n // The receiver hasn't started waiting yet, so track a pre-completed entry it can attach to later\n const pendingStream = new PendingStream();\n pendingStream.resolve!(stream);\n pendingDotNetToJSStreams.set(streamId, pendingStream);\n }\n }\n };\n\n function formatError(error: Error | string): string {\n if (error instanceof Error) {\n return `${error.message}\\n${error.stack}`;\n }\n\n return error ? error.toString() : \"null\";\n }\n\n function findJSFunction(identifier: string, targetInstanceId: number): Function {\n const targetInstance = cachedJSObjectsById[targetInstanceId];\n\n if (targetInstance) {\n return targetInstance.findFunction(identifier);\n }\n\n throw new Error(`JS object instance with ID ${targetInstanceId} does not exist (has it been disposed?).`);\n }\n\n function disposeJSObjectReferenceById(id: number) {\n delete cachedJSObjectsById[id];\n }\n\n export class DotNetObject {\n // eslint-disable-next-line no-empty-function\n constructor(private _id: number) {\n }\n\n public invokeMethod<T>(methodIdentifier: string, ...args: any[]): T {\n return invokePossibleInstanceMethod<T>(null, methodIdentifier, this._id, args);\n }\n\n public invokeMethodAsync<T>(methodIdentifier: string, ...args: any[]): Promise<T> {\n return invokePossibleInstanceMethodAsync<T>(null, methodIdentifier, this._id, args);\n }\n\n public dispose() {\n const promise = invokePossibleInstanceMethodAsync<any>(null, \"__Dispose\", this._id, null);\n promise.catch(error => console.error(error));\n }\n\n public serializeAsArg() {\n return { __dotNetObject: this._id };\n }\n }\n\n attachReviver(function reviveReference(key: any, value: any) {\n if (value && typeof value === \"object\") {\n if (value.hasOwnProperty(dotNetObjectRefKey)) {\n return new DotNetObject(value[dotNetObjectRefKey]);\n } else if (value.hasOwnProperty(jsObjectIdKey)) {\n const id = value[jsObjectIdKey];\n const jsObject = cachedJSObjectsById[id];\n\n if (jsObject) {\n return jsObject.getWrappedObject();\n }\n\n throw new Error(`JS object instance with Id '${id}' does not exist. It may have been disposed.`);\n } else if (value.hasOwnProperty(byteArrayRefKey)) {\n const index = value[byteArrayRefKey];\n const byteArray = byteArraysToBeRevived.get(index);\n if (byteArray === undefined) {\n throw new Error(`Byte array index '${index}' does not exist.`);\n }\n byteArraysToBeRevived.delete(index);\n\n return byteArray;\n } else if (value.hasOwnProperty(dotNetStreamRefKey)) {\n return new DotNetStream(value[dotNetStreamRefKey]);\n }\n }\n\n // Unrecognized - let another reviver handle it\n return value;\n });\n\n class DotNetStream {\n private _streamPromise: Promise<ReadableStream>;\n\n constructor(streamId: number) {\n // This constructor runs when we're JSON-deserializing some value from the .NET side.\n // At this point we might already have started receiving the stream, or maybe it will come later.\n // We have to handle both possible orderings, but we can count on it coming eventually because\n // it's not something the developer gets to control, and it would be an error if it doesn't.\n if (pendingDotNetToJSStreams.has(streamId)) {\n // We've already started receiving the stream, so no longer need to track it as pending\n this._streamPromise = pendingDotNetToJSStreams.get(streamId)!.streamPromise!;\n pendingDotNetToJSStreams.delete(streamId);\n } else {\n // We haven't started receiving it yet, so add an entry to track it as pending\n const pendingStream = new PendingStream();\n pendingDotNetToJSStreams.set(streamId, pendingStream);\n this._streamPromise = pendingStream.streamPromise;\n }\n }\n\n /**\n * Supplies a readable stream of data being sent from .NET.\n */\n stream(): Promise<ReadableStream> {\n return this._streamPromise;\n }\n\n /**\n * Supplies a array buffer of data being sent from .NET.\n * Note there is a JavaScript limit on the size of the ArrayBuffer equal to approximately 2GB.\n */\n async arrayBuffer(): Promise<ArrayBuffer> {\n throw Error(\"Streaming from .NET is not supported.\");\n // return new Response(await this.stream()).arrayBuffer();\n }\n }\n\n class PendingStream {\n streamPromise: Promise<ReadableStream>;\n\n resolve?: (value: ReadableStream) => void;\n\n reject?: (reason: any) => void;\n\n constructor() {\n this.streamPromise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n }\n\n function createJSCallResult(returnValue: any, resultType: JSCallResultType) {\n switch (resultType) {\n case JSCallResultType.Default:\n return returnValue;\n case JSCallResultType.JSObjectReference:\n return createJSObjectReference(returnValue);\n case JSCallResultType.JSStreamReference:\n return createJSStreamReference(returnValue);\n case JSCallResultType.JSVoidResult:\n return null;\n default:\n throw new Error(`Invalid JS call result type '${resultType}'.`);\n }\n }\n\n let nextByteArrayIndex = 0;\n function stringifyArgs(args: any[] | null) {\n nextByteArrayIndex = 0;\n return JSON.stringify(args, argReplacer);\n }\n\n function argReplacer(key: string, value: any) {\n if (value instanceof DotNetObject) {\n return value.serializeAsArg();\n } else if (value instanceof Uint8Array) {\n dotNetDispatcher!.sendByteArray(nextByteArrayIndex, value);\n const jsonValue = { [byteArrayRefKey]: nextByteArrayIndex };\n nextByteArrayIndex++;\n return jsonValue;\n }\n\n return value;\n }\n}\n","interface HeapLock {\n release();\n}\n\nexport let currentHeapLock: ManagedHeapLock | null = null;\n\nexport function assertHeapNotLocked() {\n if (currentHeapLock)\n throw Error(\"Heap is currently locked.\");\n}\n\nclass ManagedHeapLock implements HeapLock {\n stringCache = new Map<number, string | null>();\n\n private postReleaseActions?: Function[];\n\n release() {\n if (currentHeapLock !== this)\n throw Error(\"Trying to release a lock which isn't current.\");\n\n currentHeapLock = null;\n\n while (this.postReleaseActions?.length) {\n const nextQueuedAction = this.postReleaseActions.shift()!;\n nextQueuedAction();\n assertHeapNotLocked();\n }\n }\n}\n","// Based on https://github.com/dotnet/aspnetcore/blob/release/6.0/src/Components/Web.JS/src/Platform/Mono/MonoPlatform.ts\n\nimport { DotNet } from \"./dotnet-js-interop\";\nimport { assertHeapNotLocked, currentHeapLock } from \"./heap-lock\";\nimport { wasm } from \"./wasm\";\nimport { getBootStatus, BootStatus } from \"./boot\";\n\nconst uint64HighOrderShift = Math.pow(2, 32);\n\nlet invokeDotNet;\nlet beginInvokeDotNet;\nlet endInvokeJS;\nlet notifyByteArrayAvailable;\nlet transferredArray: Uint8Array | null = null;\n\nexport function initializeInterop(): void {\n bindMethods();\n DotNet.attachDispatcher(createDispatcher());\n assignBlazorGlobals();\n}\n\nexport const invoke: <T>(assembly: string, method: string, ...args: any[]) => T = whenBooted(DotNet.invokeMethod);\nexport const invokeAsync: <T>(assembly: string, method: string, ...args: any[]) => Promise<T> = whenBooted(DotNet.invokeMethodAsync);\nexport const createObjectReference: (object: any) => any = whenBooted(DotNet.createJSObjectReference);\nexport const disposeObjectReference: (objectReference: any) => void = whenBooted(DotNet.disposeJSObjectReference);\nexport const createStreamReference: (buffer: Uint8Array | any) => any = whenBooted(DotNet.createJSStreamReference);\n\nfunction whenBooted<T extends Function>(fn: T): T {\n return <any>function (...args) {\n const status = getBootStatus();\n if (status !== BootStatus.Booted)\n throw Error(`Can't interop until .NET runtime is booted. Current status: ${status}.`);\n return fn(...args);\n };\n}\n\nfunction bindMethods(): void {\n invokeDotNet = bindStaticMethod(\"Microsoft.AspNetCore.Components.WebAssembly\",\n \"Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime\", \"InvokeDotNet\");\n beginInvokeDotNet = bindStaticMethod(\"Microsoft.AspNetCore.Components.WebAssembly\",\n \"Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime\", \"BeginInvokeDotNet\");\n endInvokeJS = bindStaticMethod(\"Microsoft.AspNetCore.Components.WebAssembly\",\n \"Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime\", \"EndInvokeJS\");\n notifyByteArrayAvailable = bindStaticMethod(\"Microsoft.AspNetCore.Components.WebAssembly\",\n \"Microsoft.AspNetCore.Components.WebAssembly.Services.DefaultWebAssemblyJSRuntime\", \"NotifyByteArrayAvailable\");\n}\n\nfunction createDispatcher(): DotNet.DotNetCallDispatcher {\n return {\n invokeDotNetFromJS: invokeDotNetFromJS,\n beginInvokeDotNetFromJS: beginInvokeDotNetFromJS,\n endInvokeJSFromDotNet: endInvokeJSFromDotNet,\n sendByteArray: sendByteArray\n };\n}\n\nfunction assignBlazorGlobals(): void {\n // \"Blazor\" global is required by mono wasm runtime.\n // https://github.com/dotnet/runtime/blob/release/6.0/src/mono/wasm/runtime/dotnet_support.js#L15\n globalThis.Blazor = {\n _internal: {\n invokeJSFromDotNet: invokeJSFromDotNet,\n endInvokeDotNetFromJS: endInvokeDotNetFromJS,\n receiveByteArray: receiveByteArray,\n retrieveByteArray: retrieveByteArray,\n // https://github.com/dotnet/aspnetcore/blob/release/6.0/src/Components/Web.JS/src/GlobalExports.ts#L79\n getJSDataStreamChunk: (data, pos, size) => new Uint8Array(data.buffer, data.byteOffset + pos, size)\n }\n };\n}\n\nfunction bindStaticMethod(assembly: string, typeName: string, method: string) {\n const fqn = `[${assembly}] ${typeName}:${method}`;\n return wasm.BINDING.bind_static_method(fqn);\n}\n\nfunction invokeJSFromDotNet(callInfo, arg0, arg1, arg2): any {\n const functionId = readHeapObject(callInfo, 0)!;\n const resultType = readHeapInt32(callInfo, 4);\n const callArgs = readHeapObject(callInfo, 8);\n const targetId = readHeapUint64(callInfo, 20);\n\n if (callArgs == null) {\n const func = DotNet.jsCallDispatcher.findJSFunction(functionId, targetId);\n return func.call(null, arg0, arg1, arg2);\n }\n\n const callHandle = readHeapUint64(callInfo, 12);\n if (callHandle !== 0) {\n DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(callHandle, functionId, callArgs, resultType, targetId);\n return 0;\n } else {\n const resultJson = DotNet.jsCallDispatcher.invokeJSFromDotNet(functionId, callArgs, resultType, targetId)!;\n return resultJson === null ? 0 : wasm.BINDING.js_string_to_mono_string(resultJson);\n }\n}\n\nfunction invokeDotNetFromJS(assemblyName, methodIdentifier, dotNetObjectId, argsJson): string {\n assertHeapNotLocked();\n const assemblyNameOrNull = assemblyName ? assemblyName : null;\n const objectIdOrNull = dotNetObjectId ? dotNetObjectId.toString() : null;\n return invokeDotNet(assemblyNameOrNull, methodIdentifier, objectIdOrNull, argsJson) as string;\n}\n\nfunction beginInvokeDotNetFromJS(callId, assemblyName, methodIdentifier, dotNetObjectId, argsJson) {\n assertHeapNotLocked();\n const assemblyNameOrObjectId: string = dotNetObjectId ? dotNetObjectId.toString() : assemblyName;\n beginInvokeDotNet(callId.toString(), assemblyNameOrObjectId, methodIdentifier, argsJson);\n}\n\nfunction endInvokeDotNetFromJS(callId, success, resultJsonOrErrorMessage): void {\n const callIdString = wasm.BINDING.conv_string(callId)!;\n const successBool = (success as any as number) !== 0;\n const resultJsonOrErrorMessageString = wasm.BINDING.conv_string(resultJsonOrErrorMessage)!;\n DotNet.jsCallDispatcher.endInvokeDotNetFromJS(callIdString, successBool, resultJsonOrErrorMessageString);\n}\n\nfunction endInvokeJSFromDotNet(asyncHandle, succeeded, serializedArgs): void {\n endInvokeJS(serializedArgs);\n}\n\nfunction receiveByteArray(id, data): void {\n const idLong = id as any as number;\n const dataByteArray = toUint8Array(data);\n DotNet.jsCallDispatcher.receiveByteArray(idLong, dataByteArray);\n}\n\nfunction retrieveByteArray() {\n return wasm.BINDING.js_typed_array_to_array(transferredArray);\n}\n\nfunction sendByteArray(id: number, data: Uint8Array): void {\n transferredArray = data;\n notifyByteArrayAvailable(id);\n}\n\nfunction toUint8Array(array): Uint8Array {\n const dataPtr = getArrayDataPointer(array);\n const length = getValueI32(dataPtr);\n const uint8Array = new Uint8Array(length);\n uint8Array.set(wasm.HEAPU8.subarray(dataPtr + 4, dataPtr + 4 + length));\n return uint8Array;\n}\n\nfunction readHeapObject(baseAddress, fieldOffset) {\n const fieldValue = getValueI32((baseAddress as any as number) + (fieldOffset || 0)) as any;\n return fieldValue === 0 ? null : decodeString(fieldValue);\n}\n\nfunction decodeString(fieldValue) {\n let decodedString: string | null | undefined;\n if (currentHeapLock) {\n decodedString = currentHeapLock.stringCache.get(fieldValue);\n if (decodedString === undefined) {\n decodedString = wasm.BINDING.conv_string(fieldValue);\n currentHeapLock.stringCache.set(fieldValue, decodedString as any);\n }\n } else decodedString = wasm.BINDING.conv_string(fieldValue);\n return decodedString;\n}\n\nfunction getValueI32(ptr: number) {\n return wasm.HEAP32[ptr >> 2];\n}\n\nfunction getValueU64(ptr: number) {\n const heapU32Index = ptr >> 2;\n const highPart = wasm.HEAPU32[heapU32Index + 1];\n return (highPart * uint64HighOrderShift) + wasm.HEAPU32[heapU32Index];\n}\n\nfunction readHeapInt32(baseAddress, fieldOffset): number {\n return getValueI32((baseAddress as any as number) + fieldOffset);\n}\n\nfunction readHeapUint64(baseAddress, fieldOffset): number {\n return getValueU64((baseAddress as any as number) + fieldOffset);\n}\n\nfunction getArrayDataPointer<T>(array): number {\n return <number><any>array + 12;\n}\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.2';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import { wasm } from \"./wasm\";\r\nimport { Base64 } from \"js-base64\";\r\n\r\nexport interface Assembly {\r\n name: string;\r\n data: Uint8Array | string;\r\n}\r\n\r\nexport function initializeMono(assemblies: Assembly[]): void {\r\n assemblies.forEach(loadAssembly);\r\n wasm.ccall(\"mono_wasm_load_runtime\", null, [\"string\", \"number\"], [\"\", 0]);\r\n wasm.MONO.mono_wasm_runtime_ready();\r\n wasm.MONO.mono_wasm_setenv(\"TZ\", \"UTC\");\r\n wasm.MONO.mono_wasm_setenv(\"DOTNET_SYSTEM_GLOBALIZATION_INVARIANT\", \"1\");\r\n injectCrypto();\r\n}\r\n\r\nexport async function callEntryPoint(assemblyName: string): Promise<any> {\r\n await wasm.BINDING.call_assembly_entry_point(assemblyName, [[]], \"m\");\r\n}\r\n\r\nfunction loadAssembly(assembly: Assembly): void {\r\n const dataLength = assembly.data.length;\r\n const heapAddress = wasm._malloc(dataLength);\r\n const heapMemory = new Uint8Array(wasm.HEAPU8.buffer, heapAddress, dataLength);\r\n const data = typeof assembly.data === \"string\" ? Base64.toUint8Array(assembly.data) : assembly.data;\r\n heapMemory.set(data);\r\n wasm.ccall(\"mono_wasm_add_assembly\", null, [\"string\", \"number\", \"number\"], [assembly.name, heapAddress, dataLength]);\r\n}\r\n\r\nfunction injectCrypto(): void {\r\n if (typeof crypto === \"object\" && typeof crypto[\"getRandomValues\"] === \"function\") return;\r\n // https://github.com/Elringus/DotNetJS/issues/17\r\n globalThis.crypto = {\r\n getRandomValues: buffer => {\r\n for (let i = 0; i < buffer.length; i++)\r\n buffer[i] = (Math.random() * 256) | 0;\r\n }\r\n } as any;\r\n}\r\n","import { initializeWasm, destroyWasm } from \"./wasm\";\r\nimport { initializeInterop } from \"./interop\";\r\nimport { Assembly, initializeMono, callEntryPoint } from \"./mono\";\r\nimport { Base64 } from \"js-base64\";\r\n\r\nexport interface BootData {\r\n wasm: Uint8Array | string;\r\n assemblies: Assembly[];\r\n entryAssemblyName: string;\r\n}\r\n\r\nexport enum BootStatus {\r\n Standby = \"Standby\",\r\n Booting = \"Booting\",\r\n Terminating = \"Terminating\",\r\n Booted = \"Booted\"\r\n}\r\n\r\nlet bootStatus: BootStatus = BootStatus.Standby;\r\n\r\nexport function getBootStatus(): BootStatus {\r\n return bootStatus;\r\n}\r\n\r\nexport async function boot(bootData: BootData): Promise<void> {\r\n validateBootData(bootData);\r\n transitionBootStatus(BootStatus.Standby, BootStatus.Booting);\r\n await initializeWasm(getWasmBinary(bootData.wasm));\r\n initializeMono(bootData.assemblies);\r\n initializeInterop();\r\n await callEntryPoint(bootData.entryAssemblyName);\r\n transitionBootStatus(BootStatus.Booting, BootStatus.Booted);\r\n}\r\n\r\nexport function terminate(): Promise<void> {\r\n transitionBootStatus(BootStatus.Booted, BootStatus.Terminating);\r\n destroyWasm();\r\n transitionBootStatus(BootStatus.Terminating, BootStatus.Standby);\r\n return Promise.resolve();\r\n}\r\n\r\nfunction transitionBootStatus(from: BootStatus, to: BootStatus): void {\r\n if (from !== bootStatus)\r\n throw Error(`Invalid boot status. Expected: ${from}. Actual: ${bootStatus}.`);\r\n bootStatus = to;\r\n}\r\n\r\nfunction getWasmBinary(wasm: Uint8Array | string) {\r\n return typeof wasm === \"string\" ? Base64.toUint8Array(wasm) : wasm;\r\n}\r\n\r\nfunction validateBootData(data: BootData): void {\r\n if (data == null)\r\n throw Error(\"Boot data is missing.\");\r\n if (data.wasm == null || data.wasm.length == 0)\r\n throw Error(\"Wasm binary is missing.\");\r\n for (const assembly of data.assemblies)\r\n if (assembly.data == null || assembly.data.length == 0)\r\n throw Error(`${assembly.name} assembly data is invalid.`);\r\n}\r\n","import { boot, getBootStatus, terminate, BootStatus, BootData } from \"./boot\";\nimport { invoke, invokeAsync, createObjectReference, disposeObjectReference, createStreamReference } from \"./interop\";\nimport { Assembly } from \"./mono\";\nimport { Event } from \"./event\";\n\nexport const dotnet = {\n Event: Event,\n BootStatus: BootStatus,\n getBootStatus: getBootStatus,\n boot: boot,\n terminate: terminate,\n invoke: invoke,\n invokeAsync: invokeAsync,\n createObjectReference: createObjectReference,\n disposeObjectReference: disposeObjectReference,\n createStreamReference: createStreamReference\n};\n\nexport {\n BootStatus,\n BootData,\n Assembly\n};\n\nexport {\n boot,\n getBootStatus,\n terminate,\n invoke,\n invokeAsync,\n createObjectReference,\n disposeObjectReference,\n createStreamReference\n};\n","export class Event<T extends any[]> implements EventBroadcaster<T>, EventSubscriber<T> {\n private readonly handlers = new Array<(...args: [...T]) => void>();\n\n public broadcast(...args: [...T]) {\n for (const handler of this.handlers)\n handler(...args);\n }\n\n public subscribe(handler: (...args: [...T]) => void) {\n this.handlers.push(handler);\n }\n\n public unsubscribe(handler: (...args: [...T]) => void) {\n const index = this.handlers.indexOf(handler);\n if (index >= 0) this.handlers.splice(index, 1);\n }\n}\n\nexport interface EventBroadcaster<T extends any[]> {\n broadcast: (...args: [...T]) => void;\n}\n\nexport interface EventSubscriber<T extends any[]> {\n subscribe: (handler: (...args: [...T]) => void) => void;\n unsubscribe: (handler: (...args: [...T]) => void) => void;\n}\n"],"names":["root","factory","exports","module","define","amd","this","Module","_scriptDir","document","currentScript","src","undefined","readyPromiseResolve","readyPromiseReject","Promise","resolve","reject","moduleOverrides","key","hasOwnProperty","arguments_","thisProgram","quit_","status","toThrow","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","scriptDirectory","read_","readAsync","readBinary","setWindowTitle","locateFile","path","self","location","href","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","Uint8Array","response","onload","onerror","title","out","console","log","bind","err","warn","STACK_ALIGN","alignMemory","size","factor","Math","ceil","warnOnce","text","shown","convertJsFunctionToWasm","func","sig","WebAssembly","Function","typeNames","type","parameters","results","i","length","push","typeSection","sigRet","slice","sigParam","typeCodes","concat","bytes","Instance","freeTableIndexes","functionsInTableMap","getEmptyTableSlot","pop","wasmTable","grow","RangeError","addFunctionWasm","WeakMap","item","get","set","has","ret","TypeError","wrapped","addFunction","tempRet0","setTempRet0","value","getTempRet0","wasmBinary","noExitRuntime","wasmMemory","setValue","ptr","noSafe","charAt","HEAP8","HEAP16","HEAP32","tempI64","tempDouble","abs","min","floor","HEAPF32","HEAPF64","abort","getValue","ABORT","EXITSTATUS","assert","condition","getCFunc","ident","ccall","returnType","argTypes","args","opts","toC","str","len","stringToUTF8","stackAlloc","arr","writeArrayToMemory","cArgs","stack","converter","stackSave","apply","UTF8ToString","Boolean","convertReturnValue","stackRestore","cwrap","numericArgs","every","arguments","ALLOC_STACK","UTF8Decoder","TextDecoder","UTF8ArrayToString","heap","idx","maxBytesToRead","endIdx","endPtr","subarray","decode","u0","u1","u2","String","fromCharCode","ch","HEAPU8","stringToUTF8Array","outIdx","maxBytesToWrite","startIdx","u","charCodeAt","outPtr","lengthBytesUTF8","UTF16Decoder","buffer","HEAPU16","HEAPU32","stringToUTF16","startPtr","numCharsToWrite","codeUnit","allocateUTF8","_malloc","array","writeAsciiToMemory","dontAddNull","alignUp","x","multiple","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","INITIAL_MEMORY","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATPOSTRUN__","runtimeInitialized","runtimeExited","preRun","addOnPreRun","shift","callRuntimeCallbacks","initRuntime","FS","init","initialized","TTY","SOCKFS","mount","exitRuntime","postRun","addOnPostRun","cb","unshift","addOnInit","runDependencies","runDependencyWatcher","dependenciesFulfilled","getUniqueRunDependency","id","addRunDependency","removeRunDependency","clearInterval","callback","what","e","RuntimeError","dataURIPrefix","isDataURI","filename","startsWith","wasmBinaryFile","getBinary","file","getBinaryPromise","fetch","then","credentials","catch","createWasm","info","asmLibraryArg","receiveInstance","instance","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","binary","instantiate","reason","instantiateStreaming","ASM_CONSTS","$0","$1","MONO","string_decoder","$2","js_str","copy","res","eval","toString","buff","$3","$4","log_level","message","isFatal","domain","dataPtr","logging","trace","error","debug","level","debugger","mono_wasm_add_dbg_command_received","compile_function","snippet_ptr","is_exception","data","wrapper","funcFactory","Error","BINDING","js_to_mono_obj","callbacks","arg","demangle","demangleAll","replace","y","jsStackTrace","runtimeKeepaliveCounter","_emscripten_get_now","keepRuntimeAlive","___assert_fail","line","_emscripten_get_now_is_monotonic","setErrNo","___errno_location","_clock_gettime","clk_id","tp","now","Date","___clock_gettime","a0","a1","ExceptionInfoAttrs","DESTRUCTOR_OFFSET","REFCOUNT_OFFSET","TYPE_OFFSET","CAUGHT_OFFSET","RETHROWN_OFFSET","SIZE","___cxa_allocate_exception","ExceptionInfo","excPtr","set_type","get_type","set_destructor","destructor","get_destructor","set_refcount","refcount","set_caught","caught","get_caught","set_rethrown","rethrown","get_rethrown","add_ref","release_ref","prev","CatchInfo","free","_free","set_base_ptr","basePtr","get_base_ptr","set_adjusted_ptr","adjustedPtr","get_adjusted_ptr","get_exception_ptr","___cxa_is_pointer_type","get_exception_info","adjusted","exceptionCaught","exception_addRef","uncaughtExceptionCount","___cxa_begin_catch","catchInfo","exceptionLast","___cxa_free_exception","exception_decRef","___cxa_end_catch","_setThrew","___resumeException","catchInfoPtr","___cxa_find_matching_catch_3","thrown","thrownType","typeArray","Array","prototype","call","stackTop","exceptionThrowBuf","caughtType","___cxa_can_catch","___cxa_throw","PATH","splitPath","exec","normalizeArray","parts","allowAboveRoot","up","last","splice","normalize","isAbsolute","trailingSlash","split","filter","p","join","dirname","dir","basename","lastSlash","extname","paths","join2","l","r","getRandomDevice","crypto","randomBuffer","getRandomValues","PATH_FS","resolvedPath","resolvedAbsolute","cwd","relative","from","to","trim","start","end","fromParts","toParts","samePartsLength","outputParts","ttys","shutdown","register","dev","ops","input","output","registerDevice","stream_ops","stream","tty","node","rdev","ErrnoError","seekable","close","flush","read","offset","pos","get_char","bytesRead","timestamp","write","put_char","default_tty_ops","window","prompt","readline","intArrayFromString","val","default_tty1_ops","mmapAlloc","alignedSize","MEMFS","ops_table","createNode","parent","name","mode","isBlkdev","isFIFO","getattr","node_ops","setattr","lookup","mknod","rename","unlink","rmdir","readdir","symlink","llseek","allocate","mmap","msync","link","readlink","chrdev","chrdev_stream_ops","isDir","contents","isFile","usedBytes","isLink","isChrdev","getFileDataAsTypedArray","expandFileStorage","newCapacity","prevCapacity","max","oldContents","resizeFileStorage","newSize","attr","ino","nlink","uid","gid","atime","mtime","ctime","blksize","blocks","genericErrors","old_node","new_dir","new_name","new_node","lookupNode","entries","newname","oldpath","position","canOwn","whence","address","prot","flags","allocated","byteOffset","mmapFlags","mounts","devices","streams","nextInode","nameTable","currentPath","ignorePermissions","trackingDelegate","tracking","openFlags","READ","WRITE","filesystems","syncFSRequests","lookupPath","defaults","follow_mount","recurse_count","current","current_path","islast","isMountpoint","mounted","follow","count","getPath","isRoot","mountpoint","hashName","parentid","hash","hashAddNode","name_next","hashRemoveNode","errCode","mayLookup","nodeName","FSNode","destroyNode","isSocket","flagModes","modeStringToFlags","flagsToPermissionString","flag","perms","nodePermissions","includes","mayCreate","mayDelete","isdir","errno","mayOpen","MAX_OPEN_FDS","nextfd","fd_start","fd_end","fd","getStream","createStream","FSStream","object","isRead","isWrite","isAppend","newStream","closeStream","device","getDevice","major","minor","makedev","ma","mi","getMounts","check","m","syncfs","populate","completed","doCallback","done","errored","forEach","pseudo","mountRoot","unmount","Object","keys","next","create","mkdir","mkdirTree","dirs","d","mkdev","newpath","old_path","new_path","old_dir","old_dirname","new_dirname","old_name","stat","dontFollow","lstat","chmod","lchmod","fchmod","chown","lchown","fchown","truncate","ftruncate","utime","created","ungotten","readFiles","trackingFlags","isClosed","getdents","seeking","bytesWritten","munmap","ioctl","cmd","readFile","encoding","writeFile","actualNumBytes","ArrayBuffer","isView","byteLength","chdir","createDefaultDirectories","createDefaultDevices","random_device","createDevice","createSpecialDirectories","proc_self","createStandardStreams","ensureErrnoError","setErrno","constructor","code","staticInit","quit","fflush","getMode","canRead","canWrite","findObject","dontResolveLastLink","analyzePath","exists","parentExists","parentPath","parentObject","createPath","reverse","part","createFile","properties","createDataFile","forceLoadFile","obj","isDevice","isFolder","createLazyFile","LazyUint8Array","lengthKnown","chunks","chunkOffset","chunkSize","chunkNum","getter","setDataGetter","cacheLength","header","datalength","Number","getResponseHeader","hasByteServing","usesGzip","lazyArray","setRequestHeader","overrideMimeType","doXHR","_length","_chunkSize","defineProperties","fn","createPreloadedFile","dontCreateFile","preFinish","Browser","fullname","dep","processData","byteArray","finish","handled","plugin","asyncLoad","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","DB_NAME","pathname","DB_VERSION","DB_STORE_NAME","saveFilesToDB","openRequest","onupgradeneeded","createObjectStore","onsuccess","transaction","files","objectStore","ok","fail","total","putRequest","put","loadFilesFromDB","db","getRequest","SYSCALLS","mappings","DEFAULT_POLLMASK","umask","calculateAt","dirfd","allowEmpty","dirstream","doStat","getTime","doMsync","addr","doMkdir","doMknod","doReadlink","bufsize","endChar","doAccess","amode","doDup","suggestFD","suggest","doReadv","iov","iovcnt","curr","doWritev","varargs","getStr","getStreamFromFD","get64","low","high","___sys_access","___sys_chdir","___sys_chmod","ERRNO_CODES","EPERM","ENOENT","ESRCH","EINTR","EIO","ENXIO","E2BIG","ENOEXEC","EBADF","ECHILD","EAGAIN","EWOULDBLOCK","ENOMEM","EACCES","EFAULT","ENOTBLK","EBUSY","EEXIST","EXDEV","ENODEV","ENOTDIR","EISDIR","EINVAL","ENFILE","EMFILE","ENOTTY","ETXTBSY","EFBIG","ENOSPC","ESPIPE","EROFS","EMLINK","EPIPE","EDOM","ERANGE","ENOMSG","EIDRM","ECHRNG","EL2NSYNC","EL3HLT","EL3RST","ELNRNG","EUNATCH","ENOCSI","EL2HLT","EDEADLK","ENOLCK","EBADE","EBADR","EXFULL","ENOANO","EBADRQC","EBADSLT","EDEADLOCK","EBFONT","ENOSTR","ENODATA","ETIME","ENOSR","ENONET","ENOPKG","EREMOTE","ENOLINK","EADV","ESRMNT","ECOMM","EPROTO","EMULTIHOP","EDOTDOT","EBADMSG","ENOTUNIQ","EBADFD","EREMCHG","ELIBACC","ELIBBAD","ELIBSCN","ELIBMAX","ELIBEXEC","ENOSYS","ENOTEMPTY","ENAMETOOLONG","ELOOP","EOPNOTSUPP","EPFNOSUPPORT","ECONNRESET","ENOBUFS","EAFNOSUPPORT","EPROTOTYPE","ENOTSOCK","ENOPROTOOPT","ESHUTDOWN","ECONNREFUSED","EADDRINUSE","ECONNABORTED","ENETUNREACH","ENETDOWN","ETIMEDOUT","EHOSTDOWN","EHOSTUNREACH","EINPROGRESS","EALREADY","EDESTADDRREQ","EMSGSIZE","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EADDRNOTAVAIL","ENETRESET","EISCONN","ENOTCONN","ETOOMANYREFS","EUSERS","EDQUOT","ESTALE","ENOTSUP","ENOMEDIUM","EILSEQ","EOVERFLOW","ECANCELED","ENOTRECOVERABLE","EOWNERDEAD","ESTRPIPE","_callbacks","event","emit","param","createSocket","family","protocol","sock","server","peers","pending","recv_queue","sock_ops","websocket_sock_ops","nextname","getSocket","poll","request","msg","recvmsg","sendmsg","createPeer","port","ws","_socket","remoteAddress","remotePort","parseInt","runtimeConfig","subProtocols","WebSocket","binaryType","peer","socket","dgram_send_queue","addPeer","handlePeerEvents","sport","getPeer","removePeer","first","handleOpen","queued","handleMessage","TextEncoder","encode","wasfirst","newport","on","onopen","onclose","onmessage","mask","dest","daddr","dport","readyState","CLOSING","CLOSED","OPEN","saddr","listen","connect","CONNECTING","backlog","accept","listensock","newsock","getname","queuedLength","queuedOffset","queuedBuffer","bytesRemaining","getSocketFromFD","inetNtop4","inetNtop6","ints","word","longest","lastzero","zstart","hasipv4","v4part","_ntohs","readSockaddr","sa","salen","getSocketAddress","addrp","addrlen","allowNull","DNS","lookup_addr","___sys_connect","___sys_fadvise64_64","advice","___sys_fchmod","___sys_fcntl64","___sys_fstat64","___sys_fstatfs64","___sys_statfs64","___sys_ftruncate64","zero","___sys_getcwd","___sys_getdents64","dirp","struct_size","off","child","___sys_getpid","___sys_getrusage","who","usage","_memset","___sys_ioctl","op","argp","___sys_link","___sys_lstat64","___sys_madvise1","___sys_mkdir","syscallMmap2","_memalign","malloc","___sys_mmap2","___sys_msync","syscallMunmap","___sys_munmap","___sys_open","___sys_readlink","inetPton4","b","tmp","isNaN","jstoi_q","inetPton6","words","w","z","test","RegExp","_htons","writeSockaddr","address_map","addrs","names","lookup_name","___sys_recvfrom","___sys_rename","___sys_rmdir","___sys_sendto","addr_len","___sys_setsockopt","___sys_shutdown","how","___sys_socket","___sys_stat64","___sys_symlink","target","linkpath","___sys_unlink","___sys_utimensat","times","seconds","nanoseconds","_abort","_emscripten_get_now_res","_clock_getres","nsec","_difftime","time1","time0","DOTNETENTROPY","batchedQuotaMax","getBatchedRandomValues","bufferLength","view","_dotnet_browser_entropy","readAsmConstArgsArray","readAsmConstArgs","sigPtr","double","_emscripten_asm_const_int","argbuf","_emscripten_get_heap_max","_emscripten_memcpy_big","num","copyWithin","emscripten_realloc_buffer","_emscripten_resize_heap","requestedSize","oldSize","maxHeapSize","cutDown","overGrownHeapSize","_emscripten_thread_sleep","msecs","ENV","getExecutableName","getEnvStrings","strings","env","navigator","languages","_environ_get","__environ","environ_buf","bufSize","string","_environ_sizes_get","penviron_count","penviron_buf_size","_exit","exit","_fd_close","_fd_fdstat_get","pbuf","_fd_pread","offset_low","offset_high","pnum","_fd_pwrite","_fd_read","_fd_seek","newOffset","DOUBLE_LIMIT","_fd_sync","fsync","_fd_write","_flock","operation","GAI_ERRNO_MESSAGES","_gai_strerror","buflen","_getTempRet0","_gettimeofday","_gmtime_r","time","tmPtr","date","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCMonth","getUTCFullYear","getUTCDay","UTC","yday","GMTString","_llvm_eh_typeid_for","_tzset","called","currentYear","getFullYear","winter","summer","winterOffset","getTimezoneOffset","summerOffset","stdTimezoneOffset","__get_timezone","__get_daylight","winterName","extractZone","summerName","winterNamePtr","summerNamePtr","__get_tzname","match","toTimeString","_localtime_r","getSeconds","getMinutes","getHours","getDate","getMonth","getDay","dst","zonePtr","pump_count","timeout_queue","spread_timers_maximum","_vt_stack","mono_wasm_runtime_is_ready","mono_wasm_ignore_pdb_load_errors","_id_table","pump_message","mono_background_exec","export_functions","prevent_timer_throttling","mono_wasm_set_timeout_exec","mono_load_runtime_and_bcl","mono_load_runtime_and_bcl_args","mono_wasm_load_bytes_into_heap","mono_wasm_load_icu_data","mono_wasm_get_icudt_name","mono_wasm_globalization_init","mono_wasm_get_loaded_files","mono_wasm_new_root_buffer","mono_wasm_new_root_buffer_from_pointer","mono_wasm_new_root","mono_wasm_new_roots","mono_wasm_release_roots","mono_wasm_load_config","_base64Converter","_base64Table","_makeByteReader","index","endpoint","nextByte","defineProperty","configurable","enumerable","toBase64StringImpl","inArray","reader","ch1","ch2","ch3","bits","equalsCount","sum","_mono_wasm_root_buffer_prototype","_throw_index_out_of_range","_check_in_range","__count","get_address","__offset","get_address_32","__offset32","_unsafe_get","_unsafe_set","clear","_zero_region","release","__ownsAllocation","mono_wasm_deregister_root","__handle","_scratch_root_buffer","_scratch_root_free_indices","_scratch_root_free_indices_count","_scratch_root_free_instances","_mono_wasm_root_prototype","__buffer","__index","valueOf","_mono_wasm_release_scratch_index","_mono_wasm_claim_scratch_index","maxScratchRoots","sizeBytes","fill","capacity","mono_wasm_register_root","capacityBytes","count_or_values","isArray","mono_text_decoder","mono_string","mono_wasm_string_root","mono_wasm_string_get_data","mono_wasm_string_decoder_buffer","ppChars","pLengthBytes","pIsInterned","mono_wasm_empty_string","lengthBytes","pChars","isInterned","interned_string_table","Map","save","subArray","SharedArrayBuffer","char","res_ok","buffer_len","assembly_data","buffer_obj","commands_received","mono_wasm_malloc_and_set_debug_buffer","command_parameters","_debugger_buffer_len","_debugger_buffer","_debugger_heap_bytes","_base64_to_uint8","mono_wasm_send_dbg_command_with_parms","command_set","command","valtype","newvalue","_c_fn_table","mono_wasm_send_dbg_command_with_parms_wrapper","remove","mono_wasm_send_dbg_command","mono_wasm_send_dbg_command_wrapper","mono_wasm_get_dbg_command_info","_get_cfo_res_details","objectId","_call_function_res_cache","real_obj","descriptors","getOwnPropertyDescriptors","accessorPropertiesOnly","k","Reflect","deleteProperty","res_details","new_obj","prop_desc","assign","description","className","__value_as_json_string__","JSON","stringify","mono_wasm_get_details","_cache_call_function_res","_next_call_function_res_id","mono_wasm_release_object","_create_proxy_from_object_id","details","items","map","dimensionsDetails","proxy","prop","commandSet","newValue","mono_wasm_call_function_on","objId","fn_args","a","fn_eval_str","functionDeclaration","fn_res","subtype","returnByValue","getPrototypeOf","fn_res_id","_clear_per_step_state","_next_id_var","mono_wasm_debugger_resume","mono_wasm_detach_debugger","mono_wasm_set_is_debugger_attached","_register_c_fn","_register_c_var_fn","ret_type","params","var_info","_fixup_name_value_objects","mono_wasm_runtime_ready","delete","globalThis","dotnetDebugger","mono_wasm_setenv","wasm_setenv","mono_wasm_set_runtime_options","options","wasm_parse_runtime_options","argv","wasm_strdup","aindex","mono_wasm_init_aot_profiler","write_at","send_to","mono_wasm_init_coverage_profiler","_apply_configuration_from_args","environment_variables","runtime_options","aot_profiler_options","coverage_profiler_options","_get_fetch_file_cb_from_args","fetch_file_cb","fs","asset","readFileSync","resolve_func2","arrayBuffer","_handle_loaded_asset","ctx","blob","tracing","virtualName","virtual_path","behavior","loaded_files","loaded_assets","parentDirectory","fileName","mono_wasm_load_data_archive","mono_wasm_add_assembly","findIndex","element","num_icu_assets_loaded_successfully","mono_wasm_add_satellite_assembly","culture","unused_vfs_prefix","deploy_prefix","debug_level","file_list","loaded_cb","assembly_root","assets","file_name","endsWith","_load_assets_and_runtime","exc","memoryOffset","_finalize_startup","loaded_files_with_debug_info","load_runtime","globalization_mode","ex","print","wasm_exit","tz","Intl","DateTimeFormat","resolvedOptions","timeZone","enable_debugging","assembly_list","runtime_assets","runtime_asset_sources","diagnostic_tracing","pending_count","onPendingRequestComplete","processFetchResponseBuffer","attemptNextSource","sourceIndex","sourcesList","load_remote","remote_sources","handleFetchResponse","is_optional","attemptUrl","sourcePrefix","invariantMode","mono_wasm_get_loaded_asset_table","base64String","byteCharacters","atob","byteNumbers","prefix","dataview","DataView","getUint32","manifest","manifestSize","manifestContent","parse","folders","Set","row","directory","add","folder","mono_wasm_raise_debug_event","eventName","async","configFilePath","config","configRaw","json","mono_set_timeout_exec","desired_reach_time","schedule","setTimeout","_mono_set_timeout","timeout","lastScheduleTimeoutId","clearTimeout","BINDING_ASM","_cs_owned_objects_by_js_handle","_js_handle_free_list","_next_js_handle","mono_wasm_marshal_enum_as_int","mono_bindings_init","binding_asm","bind_method","call_method","mono_method_get_call_signature","resolve_method_fqn","bind_static_method","call_static_method","bind_assembly_entry_point","call_assembly_entry_point","mono_intern_string","bindings_lazy_init","wasm_type_symbol","Symbol","for","js_owned_gc_handle_symbol","cs_owned_js_handle_symbol","delegate_invoke_symbol","delegate_invoke_signature_symbol","listener_registration_count_symbol","Uint8ClampedArray","assembly_load","find_corlib_class","find_class","_find_method","invoke_method","mono_string_get_utf8","mono_wasm_string_from_utf16","mono_get_obj_type","mono_array_length","mono_array_get","mono_obj_array_new","mono_obj_array_set","mono_wasm_register_bundled_satellite_assemblies","mono_wasm_try_unbox_primitive_and_get_type","mono_wasm_box_primitive","mono_wasm_intern_string","assembly_get_entry_point","mono_wasm_get_delegate_invoke","mono_wasm_string_array_new","_box_buffer","_unbox_buffer","_class_int32","_class_uint32","_class_double","_class_boolean","mono_typed_array_new","binding_fqn_asm","substring","binding_fqn_class","binding_module","namespace","classname","wasm_runtime_class","get_method","method_name","find_method","bind_runtime_method","signature","method","get_call_sig","_get_cs_owned_object_by_js_handle","_get_cs_owned_object_js_handle","_try_get_cs_owned_object_js_handle","_create_cs_owned_proxy","_get_js_owned_object_by_gc_handle","_get_js_owned_object_gc_handle","_release_js_owned_object_by_gc_handle","_create_tcs","_set_tcs_result","_set_tcs_failure","_get_tcs_task","_setup_js_cont","_object_to_string","_get_date_value","_create_date_time","_create_uri","_is_simple_array","_are_promises_supported","isThenable","js_obj","isChromium","nav","userAgentData","brands","some","brand","userAgent","_empty_string","_empty_string_ptr","_interned_string_full_root_buffers","_interned_string_current_root_buffer","_interned_string_current_root_buffer_count","_interned_js_string_table","_js_owned_object_table","_use_finalization_registry","FinalizationRegistry","_use_weak_ref","WeakRef","_js_owned_object_registry","_js_owned_object_finalized","gc_handle","_lookup_js_owned_object","wr","deref","_register_js_owned_object","_wrap_js_thenable_as_task","thenable","thenable_js_handle","mono_wasm_get_js_handle","tcs_gc_handle","_mono_wasm_release_js_handle","_unbox_task_root_as_promise","cont_obj","_unbox_ref_type_root_as_js_object","js_handle","mono_wasm_get_jsobj_from_js_handle","_wrap_delegate_root_as_function","_wrap_delegate_gc_handle_as_function","after_listener_callback","delegateRoot","get_js_owned_object_by_gc_handle","js_string_to_mono_string_interned","_store_string_in_intern_table","internIt","rootBuffer","keyFor","js_string_to_mono_string_new","js_string_to_mono_string","interned","buffer16","klass","n","_method_descriptions","get_js_obj","_get_string_from_intern_table","mono_obj","conv_string","is_nested_array","ele","mono_array_to_js_array","mono_array","arrayRoot","_mono_array_root_to_js_array","elemRoot","_unbox_mono_obj_root","js_array_to_mono_array","js_array","asString","should_add_in_flight","_js_to_mono_obj","unbox_mono_obj","_unbox_cs_owned_root_as_js_object","_unbox_mono_obj_root_with_known_nonprimitive_type","dateValue","js_typedarray_to_heap","typedArray","numBytes","BYTES_PER_ELEMENT","heapBytes","_box_js_int","_box_js_uint","_box_js_double","_box_js_bool","_js_to_mono_uri","_extract_mono_obj","get_cs_owned_object_by_js_handle","wasm_type","wasm_type_id","has_backing_array_buffer","js_typed_array_to_array","arrayType","bufferArray","typedarray_copy_to","typed_array","pinned_array","begin","bytes_per_element","num_of_bytes","view_bytes","typedarray_copy_from","typed_array_from","newTypedArray","js_to_mono_enum","parmIdx","instanceRoot","_create_named_function","argumentNames","body","closure","closureArgumentList","closureArgumentNames","_create_rebindable_named_function","closureArgNames","uriPrefix","escapedFunctionIdentifier","rawFunctionText","_create_primitive_converters","steps","convert","needs_root","indirect","_primitive_converters","_create_converter_for_marshal_string","args_marshal","primitiveConverters","is_result_definitely_unmarshaled","is_result_possibly_unmarshaled","result_unmarshaled_if_argc","needs_root_buffer","conv","localStep","_get_converter_for_marshal_string","_signature_converters","_compile_converter_for_marshal_string","compiled_function","compiled_variadic_function","converterName","bufferSizeBytes","indirectBaseOffset","indirectLocalOffset","step","closureKey","valueKey","argKey","heapArrayName","bodyJs","compiledFunction","compiledVariadicFunction","scratchRootBuffer","scratchBuffer","_verify_args_for_method_call","has_args","has_args_marshal","_get_buffer_for_method_call","_get_args_root_buffer_for_method_call","_release_args_root_buffer_from_method_call","argsRootBuffer","_release_buffer_from_method_call","_convert_exception_for_method_call","exception","_maybe_produce_signature_warning","has_warned_about_signature","_decide_if_result_is_marshaled","argc","this_arg","is_result_marshaled","_call_method_with_converted_args","_handle_exception_for_call","resultRoot","exceptionRoot","_teardown_after_call","_handle_exception_and_produce_result_for_call","_get_method_description","friendly_name","library_mono","binding_support","converterKey","argName","displayName","fqn","assembly","methodname","asm","_mono_wasm_add_event_listener","objHandle","listener_gc_handle","optionsHandle","nameRoot","sName","listener","addEventListener","_mono_wasm_asm_loaded","assembly_name","assembly_ptr","assembly_len","pdb_ptr","pdb_len","assembly_name_str","assembly_b64","pdb_b64","pdb_data","_mono_wasm_create_cs_owned_object","core_name","argsRoot","js_name","coreObj","js_args","argsList","allocator","_mono_wasm_fire_debugger_agent_message","_mono_wasm_get_by_index","property_index","_mono_wasm_get_global_object","global_name","globalObj","_mono_wasm_get_object_property","property_name","DOTNET","_mono_wasm_invoke_js_blazor","exceptionMessage","callInfo","arg0","arg1","arg2","_mono_string_cached","blazorExports","Blazor","_internal","invokeJSFromDotNet","_mono_wasm_invoke_js_marshalled","asyncHandleLongPtr","functionName","argsJson","treatResultAsVoid","u32Index","asyncHandleJsNumber","funcNameJsString","argsJsonJsString","dotNetExports","globaThis","DotNet","jsCallDispatcher","beginInvokeJSFromDotNet","resultJson","_mono_wasm_invoke_js_unmarshalled","funcName","findJSFunction","exceptionJsString","_mono_wasm_invoke_js_with_args","_mono_wasm_release_cs_owned_object","_mono_wasm_remove_event_listener","capture","removeEventListener","_mono_wasm_set_by_index","valueRoot","js_value","_mono_wasm_set_object_property","createIfNotExist","property","_mono_wasm_typed_array_copy_from","_mono_wasm_typed_array_copy_to","_mono_wasm_typed_array_from","_mono_wasm_typed_array_to_array","_schedule_background_exec","_setTempRet0","__isLeapYear","year","__arraySum","__MONTH_DAYS_LEAP","__MONTH_DAYS_REGULAR","__addDays","days","newDate","leap","currentMonth","daysInCurrentMonth","setDate","setMonth","setFullYear","_strftime","s","maxsize","format","tm","tm_zone","tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","tm_isdst","tm_gmtoff","pattern","EXPANSION_RULES_1","rule","WEEKDAYS","MONTHS","leadingSomething","digits","character","leadingNulls","compareByDay","date1","date2","sgn","compare","getFirstWeekStartDate","janFourth","getWeekBasedYear","thisDate","janFourthThisYear","janFourthNextYear","firstWeekStartThisYear","firstWeekStartNextYear","EXPANSION_RULES_2","twelveHour","janFirst","firstSunday","endDate","februaryFirstUntilEndMonth","daysDifference","firstMonday","ahead","_time","readMode","writeMode","ASSERTIONS","stringy","u8array","numBytesWritten","___wasm_call_ctors","_mono_wasm_register_root","_mono_wasm_deregister_root","_mono_wasm_add_assembly","_mono_wasm_add_satellite_assembly","_mono_wasm_setenv","_mono_wasm_register_bundled_satellite_assemblies","_mono_wasm_load_runtime","_mono_wasm_assembly_load","_mono_wasm_find_corlib_class","_mono_wasm_assembly_find_class","_mono_wasm_assembly_find_method","_mono_wasm_get_delegate_invoke","_mono_wasm_box_primitive","_mono_wasm_invoke_method","_mono_wasm_assembly_get_entry_point","_mono_wasm_string_get_utf8","_mono_wasm_string_convert","_mono_wasm_string_from_js","_mono_wasm_string_from_utf16","_mono_wasm_get_obj_type","_mono_wasm_try_unbox_primitive_and_get_type","_mono_unbox_int","_mono_wasm_array_length","_mono_wasm_array_get","_mono_wasm_obj_array_new","_mono_wasm_obj_array_set","_mono_wasm_string_array_new","_mono_wasm_exec_regression","_mono_wasm_exit","_mono_wasm_set_main_args","_mono_wasm_strdup","_mono_wasm_parse_runtime_options","_mono_wasm_enable_on_demand_gc","_mono_wasm_intern_string","_mono_wasm_string_get_data","_mono_wasm_typed_array_new","_mono_wasm_unbox_enum","_putchar","_mono_background_exec","_mono_wasm_get_icudt_name","_mono_wasm_load_icu_data","_mono_print_method_from_ip","_mono_set_timeout_exec","_mono_wasm_set_is_debugger_attached","_mono_wasm_send_dbg_command_with_parms","_mono_wasm_send_dbg_command","_emscripten_main_thread_process_queued_calls","_htonl","dynCall_iijj","dynCall_iij","dynCall_ji","dynCall_j","dynCall_iijji","dynCall_jiji","dynCall_iiji","dynCall_iijiiij","dynCall_iiiij","dynCall_jiiij","dynCall_viiijjii","dynCall_jd","dynCall_jf","dynCall_vijj","dynCall_iiijiiii","dynCall_vj","dynCall_jiiiii","dynCall_iji","dynCall_ij","dynCall_jij","dynCall_jijj","dynCall_iijjiii","dynCall_vijjjii","dynCall_iijii","dynCall_iijiii","dynCall_vijiiii","dynCall_iijiiii","dynCall_vij","dynCall_jii","dynCall_jiiiiiiiii","dynCall_jj","dynCall_iiijiiiii","calledRun","invoke_vi","sp","ExitStatus","run","doRun","implicit","runCaller","ready","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","definition","o","g","wasm","jsonRevivers","byteArraysToBeRevived","pendingDotNetToJSStreams","jsObjectIdKey","byteArrayRefKey","JSObject","_jsObject","_cachedFunctions","findFunction","identifier","cachedFunction","lastSegmentValue","segment","getWrappedObject","pendingAsyncCalls","cachedJSObjectsById","JSCallResultType","nextAsyncCallId","nextJsObjectId","dotNetDispatcher","attachReviver","reviver","createJSObjectReference","jsObject","createJSStreamReference","streamReference","jsObjectReference","parseJsonWithRevivers","initialValue","reduce","latestValue","invokePossibleInstanceMethod","assemblyName","methodIdentifier","dotNetObjectId","dispatcher","getRequiredDispatcher","invokeDotNetFromJS","stringifyArgs","invokePossibleInstanceMethodAsync","asyncCallId","resultPromise","beginInvokeDotNetFromJS","completePendingCall","success","resultOrError","asyncCall","formatError","targetInstanceId","targetInstance","disposeJSObjectReferenceById","attachDispatcher","invokeMethod","invokeMethodAsync","disposeJSObjectReference","resultType","createJSCallResult","asyncHandle","promise","endInvokeJSFromDotNet","endInvokeDotNetFromJS","resultJsonOrExceptionMessage","receiveByteArray","supplyDotNetStream","streamId","pendingStream","PendingStream","DotNetObject","_id","dispose","serializeAsArg","__dotNetObject","DotNetStream","_streamPromise","streamPromise","returnValue","Default","JSObjectReference","JSStreamReference","JSVoidResult","nextByteArrayIndex","argReplacer","sendByteArray","jsonValue","currentHeapLock","assertHeapNotLocked","uint64HighOrderShift","pow","invokeDotNet","beginInvokeDotNet","endInvokeJS","notifyByteArrayAvailable","transferredArray","invoke","whenBooted","invokeAsync","createObjectReference","disposeObjectReference","createStreamReference","getBootStatus","BootStatus","Booted","bindStaticMethod","typeName","functionId","readHeapObject","getValueI32","callArgs","targetId","readHeapUint64","callHandle","assemblyNameOrNull","objectIdOrNull","callId","assemblyNameOrObjectId","resultJsonOrErrorMessage","callIdString","successBool","resultJsonOrErrorMessageString","succeeded","serializedArgs","idLong","dataByteArray","getArrayDataPointer","uint8Array","toUint8Array","retrieveByteArray","baseAddress","fieldOffset","fieldValue","decodedString","decodeString","heapU32Index","getValueU64","_hasatob","_hasBuffer","Buffer","b64tab","tab","c","b64re","_fromCC","_U8Afrom","it","_tidyB64","_atob","asc","u24","r1","r2","bin","_toUint8Array","_unURI","m0","gBase64","loadAssembly","dataLength","heapAddress","heapMemory","bootStatus","Standby","transitionBootStatus","dotnet","Event","handlers","broadcast","handler","subscribe","unsubscribe","boot","bootData","assemblies","validateBootData","Booting","getWasmBinary","onRuntimeInitialized","random","getJSDataStreamChunk","callEntryPoint","entryAssemblyName","terminate","Terminating"],"sourceRoot":""}