From eebb7e1f4cb580cf18e04c0786417892e7b5ff8c Mon Sep 17 00:00:00 2001 From: rustdesk Date: Sat, 29 Jan 2022 15:55:00 +0800 Subject: [PATCH] safer navigator.pop --- lib/common.dart | 2 ++ lib/web_model.dart | 6 +----- web/LibYUV.js | 3 --- web/LibYUV.wasm | Bin 18588 -> 0 bytes web/index.html | 5 ++--- web/yuv.wasm | Bin 0 -> 8573 bytes 6 files changed, 5 insertions(+), 11 deletions(-) delete mode 100644 web/LibYUV.js delete mode 100644 web/LibYUV.wasm create mode 100755 web/yuv.wasm diff --git a/lib/common.dart b/lib/common.dart index c2fdb0709..93d7cca58 100644 --- a/lib/common.dart +++ b/lib/common.dart @@ -32,6 +32,7 @@ void Function() loadingCancelCallback; void showLoading(String text, BuildContext context) { if (_hasDialog && context != null) { Navigator.pop(context); + _hasDialog = false; } dismissLoading(); if (isAndroid) { @@ -122,6 +123,7 @@ void msgbox(String type, String title, String text, BuildContext context, dismissLoading(); if (_hasDialog) { Navigator.pop(context); + _hasDialog = false; } final buttons = [ Expanded(child: Container()), diff --git a/lib/web_model.dart b/lib/web_model.dart index f3ccc26c5..a6d5033ae 100644 --- a/lib/web_model.dart +++ b/lib/web_model.dart @@ -6,11 +6,7 @@ class PlatformFFI { static void clearRgbaFrame() {} static Uint8List getRgba() { - var data = js.context.callMethod('getRgba'); - if (data != null) { - return Uint8List.sublistView(data); - } - return null; + return js.context.callMethod('getRgba'); } static Future getVersion() async { diff --git a/web/LibYUV.js b/web/LibYUV.js deleted file mode 100644 index 79240fced..000000000 --- a/web/LibYUV.js +++ /dev/null @@ -1,3 +0,0 @@ -var LibYUV=function(){var _scriptDir="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;return"undefined"!=typeof __filename&&(_scriptDir=_scriptDir||__filename),function(LibYUV){function locateFile(path){return Module.locateFile?Module.locateFile(path,scriptDirectory):scriptDirectory+path}function warnOnce(text){warnOnce.shown||(warnOnce.shown={}),warnOnce.shown[text]||(warnOnce.shown[text]=1,err(text))}function assert(condition,text){condition||abort("Assertion failed: "+text)}function getCFunc(ident){var func=Module["_"+ident];return assert(func,"Cannot call unknown function "+ident+", make sure it is exported"),func}function ccall(ident,returnType,argTypes,args){function convertReturnValue(ret){return"string"===returnType?UTF8ToString(ret):"boolean"===returnType?Boolean(ret):ret}var toC={string:function(str){var ret=0;if(null!==str&&void 0!==str&&0!==str){var len=(str.length<<2)+1;ret=stackAlloc(len),stringToUTF8(str,ret,len)}return ret},array:function(arr){var ret=stackAlloc(arr.length);return writeArrayToMemory(arr,ret),ret}},func=getCFunc(ident),cArgs=[],stack=0;if(assert("array"!==returnType,'Return type should not be "array".'),args)for(var i=0;args.length>i;i++){var converter=toC[argTypes[i]];converter?(0===stack&&(stack=stackSave()),cArgs[i]=converter(args[i])):cArgs[i]=args[i]}var ret=func.apply(null,cArgs);return ret=convertReturnValue(ret),0!==stack&&stackRestore(stack),ret}function cwrap(ident,returnType,argTypes,opts){return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}function UTF8ArrayToString(heap,idx,maxBytesToRead){for(var endIdx=idx+maxBytesToRead,endPtr=idx;heap[endPtr]&&!(endPtr>=endIdx);)++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder)return UTF8Decoder.decode(heap.subarray(idx,endPtr));for(var str="";endPtr>idx;){var u0=heap[idx++];if(128&u0){var u1=63&heap[idx++];if(192!=(224&u0)){var u2=63&heap[idx++];if(224==(240&u0)?u0=(15&u0)<<12|u1<<6|u2:(240!=(248&u0)&&warnOnce("Invalid UTF-8 leading byte 0x"+u0.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),u0=(7&u0)<<18|u1<<12|u2<<6|63&heap[idx++]),65536>u0)str+=String.fromCharCode(u0);else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|1023&ch)}}else str+=String.fromCharCode((31&u0)<<6|u1)}else str+=String.fromCharCode(u0)}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;for(var startIdx=outIdx,endIdx=outIdx+maxBytesToWrite-1,i=0;str.length>i;++i){var u=str.charCodeAt(i);if(u>=55296&&57343>=u){var u1=str.charCodeAt(++i);u=65536+((1023&u)<<10)|1023&u1}if(127>=u){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(2047>=u){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6,heap[outIdx++]=128|63&u}else if(65535>=u){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12,heap[outIdx++]=128|63&u>>6,heap[outIdx++]=128|63&u}else{if(outIdx+3>=endIdx)break;u>=2097152&&warnOnce("Invalid Unicode code point 0x"+u.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x1FFFFF)."),heap[outIdx++]=240|u>>18,heap[outIdx++]=128|63&u>>12,heap[outIdx++]=128|63&u>>6,heap[outIdx++]=128|63&u}}return heap[outIdx]=0,outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return assert("number"==typeof maxBytesToWrite,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){assert(array.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),HEAP8.set(array,buffer)}function alignUp(x,multiple){return x%multiple>0&&(x+=multiple-x%multiple),x}function updateGlobalBufferAndViews(buf){buffer=buf,Module.HEAP8=HEAP8=new Int8Array(buf),Module.HEAP16=HEAP16=new Int16Array(buf),Module.HEAP32=HEAP32=new Int32Array(buf),Module.HEAPU8=HEAPU8=new Uint8Array(buf),Module.HEAPU16=HEAPU16=new Uint16Array(buf),Module.HEAPU32=HEAPU32=new Uint32Array(buf),Module.HEAPF32=HEAPF32=new Float32Array(buf),Module.HEAPF64=HEAPF64=new Float64Array(buf)}function writeStackCookie(){var max=_emscripten_stack_get_end();assert(0==(3&max)),HEAPU32[(max>>2)+1]=34821223,HEAPU32[(max>>2)+2]=2310721022,HEAP32[0]=1668509029}function checkStackCookie(){if(!ABORT){var max=_emscripten_stack_get_end(),cookie1=HEAPU32[(max>>2)+1],cookie2=HEAPU32[(max>>2)+2];(34821223!=cookie1||2310721022!=cookie2)&&abort("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+cookie2.toString(16)+" "+cookie1.toString(16)),1668509029!==HEAP32[0]&&abort("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){checkStackCookie(),assert(!runtimeInitialized),runtimeInitialized=!0,___set_stack_limits(_emscripten_stack_get_base(),_emscripten_stack_get_end()),callRuntimeCallbacks(__ATINIT__)}function preMain(){checkStackCookie(),callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(checkStackCookie(),Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function addRunDependency(id){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),id?(assert(!runDependencyTracking[id]),runDependencyTracking[id]=1,null===runDependencyWatcher&&"undefined"!=typeof setInterval&&(runDependencyWatcher=setInterval(function(){if(ABORT)return clearInterval(runDependencyWatcher),runDependencyWatcher=null,void 0;var shown=!1;for(var dep in runDependencyTracking)shown||(shown=!0,err("still waiting on run dependencies:")),err("dependency: "+dep);shown&&err("(end of list)")},1e4))):err("warning: run dependency added without ID")}function removeRunDependency(id){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),id?(assert(runDependencyTracking[id]),delete runDependencyTracking[id]):err("warning: run dependency removed without ID"),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var callback=dependenciesFulfilled;dependenciesFulfilled=null,callback()}}function abort(what){Module.onAbort&&Module.onAbort(what),what+="",err(what),ABORT=!0,EXITSTATUS=1;var output="abort("+what+") at "+stackTrace();what=output;var e=new WebAssembly.RuntimeError(what);throw readyPromiseReject(e),e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):0===str.indexOf(prefix)}function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}function createExportWrapper(name,fixedasm){return function(){var displayName=name,asm=fixedasm;return fixedasm||(asm=Module.asm),assert(runtimeInitialized,"native function `"+displayName+"` called before runtime initialization"),assert(!runtimeExited,"native function `"+displayName+"` called after runtime exit (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),asm[name]||assert(asm[name],"exported native function `"+displayName+"` not found"),asm[name].apply(null,arguments)}}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary)return new Uint8Array(wasmBinary);if(readBinary)return readBinary(file);throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if("function"==typeof fetch&&!isFileURI(wasmBinaryFile))return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response.ok)throw"failed to load wasm binary file at '"+wasmBinaryFile+"'";return response.arrayBuffer()}).catch(function(){return getBinary(wasmBinaryFile)});if(readAsync)return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){function receiveInstance(instance){var exports=instance.exports;Module.asm=exports,wasmMemory=Module.asm.memory,assert(wasmMemory,"memory not found in wasm exports"),updateGlobalBufferAndViews(wasmMemory.buffer),wasmTable=Module.asm.__indirect_function_table,assert(wasmTable,"table not found in wasm exports"),removeRunDependency("wasm-instantiate")}function receiveInstantiatedSource(output){assert(Module===trueModule,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),trueModule=null,receiveInstance(output.instance)}function instantiateArrayBuffer(receiver){return console.log("instantiateArrayBuffer"),getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason),isFileURI(wasmBinaryFile)&&err("warning: Loading from a file URI ("+wasmBinaryFile+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing"),abort(reason)})}function instantiateAsync(){return wasmBinary||"function"!=typeof WebAssembly.instantiateStreaming||isDataURI(wasmBinaryFile)||isFileURI(wasmBinaryFile)||"function"!=typeof fetch?instantiateArrayBuffer(receiveInstantiatedSource):fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){return err("wasm streaming compile failed: "+reason),err("falling back to ArrayBuffer instantiation"),instantiateArrayBuffer(receiveInstantiatedSource)})})}console.log("createWasm");var info={env:asmLibraryArg,wasi_snapshot_preview1:asmLibraryArg};addRunDependency("wasm-instantiate");var trueModule=Module;if(Module.instantiateWasm)try{var exports=Module.instantiateWasm(info,receiveInstance);return exports}catch(e){return err("Module.instantiateWasm callback failed with error: "+e),!1}return instantiateAsync().catch(readyPromiseReject),{}}function callRuntimeCallbacks(callbacks){for(;callbacks.length>0;){var callback=callbacks.shift();if("function"!=typeof callback){var func=callback.func;"number"==typeof func?void 0===callback.arg?wasmTable.get(func)():wasmTable.get(func)(callback.arg):func(void 0===callback.arg?null:callback.arg)}else callback(Module)}}function demangle(func){return warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var error=Error();if(!error.stack){try{throw Error()}catch(e){error=e}if(!error.stack)return"(no stack trace available)"}return""+error.stack}function stackTrace(){var js=jsStackTrace();return Module.extraStackTrace&&(js+="\n"+Module.extraStackTrace()),demangleAll(js)}function ___handle_stack_overflow(){abort("stack overflow")}function _abort(){abort()}function _emscripten_get_heap_size(){return HEAPU8.length}function emscripten_realloc_buffer(size){try{return wasmMemory.grow(size-buffer.byteLength+65535>>>16),updateGlobalBufferAndViews(wasmMemory.buffer),1}catch(e){console.error("emscripten_realloc_buffer: Attempted to grow heap from "+buffer.byteLength+" bytes to "+size+" bytes, but got error: "+e)}}function _emscripten_resize_heap(requestedSize){var oldSize=_emscripten_get_heap_size();assert(requestedSize>oldSize);var maxHeapSize=2147483648;if(requestedSize>maxHeapSize)return err("Cannot enlarge memory, asked to go up to "+requestedSize+" bytes, but the limit is "+maxHeapSize+" bytes!"),!1;for(var cutDown=1;4>=cutDown;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536)),t0=_emscripten_get_now(),replacement=emscripten_realloc_buffer(newSize),t1=_emscripten_get_now();if(console.log("Heap resize call from "+oldSize+" to "+newSize+" took "+(t1-t0)+" msecs. Success: "+!!replacement),replacement)return!0}return err("Failed to grow the heap from "+oldSize+" bytes to "+newSize+" bytes, not enough memory!"),!1}function ExitStatus(status){this.name="ExitStatus",this.message="Program terminated with exit("+status+")",this.status=status}function stackCheckInit(){_emscripten_stack_init(),writeStackCookie()}function run(args){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT||(initRuntime(),preMain(),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),assert(!Module._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]'),postRun()))}args=args||arguments_,runDependencies>0||(stackCheckInit(),preRun(),runDependencies>0||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),doRun()},1)):doRun(),checkStackCookie()))}LibYUV=LibYUV||{};var readyPromiseResolve,readyPromiseReject,Module=LibYUV!==void 0?LibYUV:{};Module.ready=new Promise(function(resolve,reject){readyPromiseResolve=resolve,readyPromiseReject=reject}),Object.getOwnPropertyDescriptor(Module.ready,"_malloc")||(Object.defineProperty(Module.ready,"_malloc",{configurable:!0,get:function(){abort("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_malloc",{configurable:!0,set:function(){abort("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_free")||(Object.defineProperty(Module.ready,"_free",{configurable:!0,get:function(){abort("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_free",{configurable:!0,set:function(){abort("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_ConvertRGBA88882YUV420P")||(Object.defineProperty(Module.ready,"_ConvertRGBA88882YUV420P",{configurable:!0,get:function(){abort("You are getting _ConvertRGBA88882YUV420P on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_ConvertRGBA88882YUV420P",{configurable:!0,set:function(){abort("You are setting _ConvertRGBA88882YUV420P on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_ConvertYUV420P2RGBA8888")||(Object.defineProperty(Module.ready,"_ConvertYUV420P2RGBA8888",{configurable:!0,get:function(){abort("You are getting _ConvertYUV420P2RGBA8888 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_ConvertYUV420P2RGBA8888",{configurable:!0,set:function(){abort("You are setting _ConvertYUV420P2RGBA8888 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_I420ToABGR")||(Object.defineProperty(Module.ready,"_I420ToABGR",{configurable:!0,get:function(){abort("You are getting _I420ToABGR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_I420ToABGR",{configurable:!0,set:function(){abort("You are setting _I420ToABGR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_ABGRToI420")||(Object.defineProperty(Module.ready,"_ABGRToI420",{configurable:!0,get:function(){abort("You are getting _ABGRToI420 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_ABGRToI420",{configurable:!0,set:function(){abort("You are setting _ABGRToI420 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_emscripten_stack_get_end")||(Object.defineProperty(Module.ready,"_emscripten_stack_get_end",{configurable:!0,get:function(){abort("You are getting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_emscripten_stack_get_end",{configurable:!0,set:function(){abort("You are setting _emscripten_stack_get_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_emscripten_stack_get_free")||(Object.defineProperty(Module.ready,"_emscripten_stack_get_free",{configurable:!0,get:function(){abort("You are getting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_emscripten_stack_get_free",{configurable:!0,set:function(){abort("You are setting _emscripten_stack_get_free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_emscripten_stack_init")||(Object.defineProperty(Module.ready,"_emscripten_stack_init",{configurable:!0,get:function(){abort("You are getting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_emscripten_stack_init",{configurable:!0,set:function(){abort("You are setting _emscripten_stack_init on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_emscripten_stack_get_base")||(Object.defineProperty(Module.ready,"_emscripten_stack_get_base",{configurable:!0,get:function(){abort("You are getting _emscripten_stack_get_base on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_emscripten_stack_get_base",{configurable:!0,set:function(){abort("You are setting _emscripten_stack_get_base on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_stackSave")||(Object.defineProperty(Module.ready,"_stackSave",{configurable:!0,get:function(){abort("You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_stackSave",{configurable:!0,set:function(){abort("You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_stackRestore")||(Object.defineProperty(Module.ready,"_stackRestore",{configurable:!0,get:function(){abort("You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_stackRestore",{configurable:!0,set:function(){abort("You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_stackAlloc")||(Object.defineProperty(Module.ready,"_stackAlloc",{configurable:!0,get:function(){abort("You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_stackAlloc",{configurable:!0,set:function(){abort("You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"___wasm_call_ctors")||(Object.defineProperty(Module.ready,"___wasm_call_ctors",{configurable:!0,get:function(){abort("You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"___wasm_call_ctors",{configurable:!0,set:function(){abort("You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"_fflush")||(Object.defineProperty(Module.ready,"_fflush",{configurable:!0,get:function(){abort("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"_fflush",{configurable:!0,set:function(){abort("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"___errno_location")||(Object.defineProperty(Module.ready,"___errno_location",{configurable:!0,get:function(){abort("You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"___errno_location",{configurable:!0,set:function(){abort("You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})),Object.getOwnPropertyDescriptor(Module.ready,"onRuntimeInitialized")||(Object.defineProperty(Module.ready,"onRuntimeInitialized",{configurable:!0,get:function(){abort("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(Module.ready,"onRuntimeInitialized",{configurable:!0,set:function(){abort("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var key,moduleOverrides={};for(key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var arguments_=[],thisProgram="./this.program",quit_=function(status,toThrow){throw toThrow},ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER,Module.ENVIRONMENT)throw Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var read_,readAsync,readBinary,setWindowTitle,nodeFS,nodePath,scriptDirectory="";if(ENVIRONMENT_IS_NODE)scriptDirectory=ENVIRONMENT_IS_WORKER?require("path").dirname(scriptDirectory)+"/":__dirname+"/",read_=function(filename,binary){return nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),filename=nodePath.normalize(filename),nodeFS.readFileSync(filename,binary?null:"utf8")},readBinary=function readBinary(filename){var ret=read_(filename,!0);return ret.buffer||(ret=new Uint8Array(ret)),assert(ret.buffer),ret},process.argv.length>1&&(thisProgram=process.argv[1].replace(/\\/g,"/")),arguments_=process.argv.slice(2),process.on("uncaughtException",function(ex){if(!(ex instanceof ExitStatus))throw ex}),process.on("unhandledRejection",abort),quit_=function(status){process.exit(status)},Module.inspect=function(){return"[Emscripten Module object]"};else if(ENVIRONMENT_IS_SHELL)"undefined"!=typeof read&&(read_=function(f){return read(f)}),readBinary=function readBinary(f){var data;return"function"==typeof readbuffer?new Uint8Array(readbuffer(f)):(data=read(f,"binary"),assert("object"==typeof data),data)},"undefined"!=typeof scriptArgs?arguments_=scriptArgs:"undefined"!=typeof arguments&&(arguments_=arguments),"function"==typeof quit&&(quit_=function(status){quit(status)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw Error("environment detection error");ENVIRONMENT_IS_WORKER?scriptDirectory=self.location.href:"undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),_scriptDir&&(scriptDirectory=_scriptDir),scriptDirectory=0!==scriptDirectory.indexOf("blob:")?scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1):"",read_=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.send(null),xhr.responseText},ENVIRONMENT_IS_WORKER&&(readBinary=function(url){var xhr=new XMLHttpRequest;return xhr.open("GET",url,!1),xhr.responseType="arraybuffer",xhr.send(null),new Uint8Array(xhr.response)}),readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="arraybuffer",xhr.onload=function(){return 200==xhr.status||0==xhr.status&&xhr.response?(onload(xhr.response),void 0):(onerror(),void 0)},xhr.onerror=onerror,xhr.send(null)},setWindowTitle=function(title){document.title=title}}Module.print||console.log.bind(console);var err=Module.printErr||console.warn.bind(console);for(key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=null,Module.arguments&&(arguments_=Module.arguments),Object.getOwnPropertyDescriptor(Module,"arguments")||Object.defineProperty(Module,"arguments",{configurable:!0,get:function(){abort("Module.arguments has been replaced with plain arguments_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.thisProgram&&(thisProgram=Module.thisProgram),Object.getOwnPropertyDescriptor(Module,"thisProgram")||Object.defineProperty(Module,"thisProgram",{configurable:!0,get:function(){abort("Module.thisProgram has been replaced with plain thisProgram (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.quit&&(quit_=Module.quit),Object.getOwnPropertyDescriptor(Module,"quit")||Object.defineProperty(Module,"quit",{configurable:!0,get:function(){abort("Module.quit has been replaced with plain quit_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),assert(Module.memoryInitializerPrefixURL===void 0,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),assert(Module.pthreadMainPrefixURL===void 0,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),assert(Module.cdInitializerPrefixURL===void 0,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),assert(Module.filePackagePrefixURL===void 0,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),assert(Module.read===void 0,"Module.read option was removed (modify read_ in JS)"),assert(Module.readAsync===void 0,"Module.readAsync option was removed (modify readAsync in JS)"),assert(Module.readBinary===void 0,"Module.readBinary option was removed (modify readBinary in JS)"),assert(Module.setWindowTitle===void 0,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),assert(Module.TOTAL_MEMORY===void 0,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY"),Object.getOwnPropertyDescriptor(Module,"read")||Object.defineProperty(Module,"read",{configurable:!0,get:function(){abort("Module.read has been replaced with plain read_ (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"readAsync")||Object.defineProperty(Module,"readAsync",{configurable:!0,get:function(){abort("Module.readAsync has been replaced with plain readAsync (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"readBinary")||Object.defineProperty(Module,"readBinary",{configurable:!0,get:function(){abort("Module.readBinary has been replaced with plain readBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Object.getOwnPropertyDescriptor(Module,"setWindowTitle")||Object.defineProperty(Module,"setWindowTitle",{configurable:!0,get:function(){abort("Module.setWindowTitle has been replaced with plain setWindowTitle (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}});var wasmBinary;Module.wasmBinary&&(wasmBinary=Module.wasmBinary),Object.getOwnPropertyDescriptor(Module,"wasmBinary")||Object.defineProperty(Module,"wasmBinary",{configurable:!0,get:function(){abort("Module.wasmBinary has been replaced with plain wasmBinary (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),Module.noExitRuntime||!0,Object.getOwnPropertyDescriptor(Module,"noExitRuntime")||Object.defineProperty(Module,"noExitRuntime",{configurable:!0,get:function(){abort("Module.noExitRuntime has been replaced with plain noExitRuntime (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),"object"!=typeof WebAssembly&&abort("no native wasm support detected"); -var wasmMemory,EXITSTATUS,ABORT=!1,UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,TOTAL_STACK=5242880;Module.TOTAL_STACK&&assert(TOTAL_STACK===Module.TOTAL_STACK,"the stack size can no longer be determined at runtime");var INITIAL_MEMORY=Module.INITIAL_MEMORY||16777216;Object.getOwnPropertyDescriptor(Module,"INITIAL_MEMORY")||Object.defineProperty(Module,"INITIAL_MEMORY",{configurable:!0,get:function(){abort("Module.INITIAL_MEMORY has been replaced with plain INITIAL_MEMORY (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}}),assert(INITIAL_MEMORY>=TOTAL_STACK,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+INITIAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),assert("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),assert(!Module.wasmMemory,"Use of `wasmMemory` detected. Use -s IMPORTED_MEMORY to define wasmMemory externally"),assert(16777216==INITIAL_MEMORY,"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically");var wasmTable;(function(){var h16=new Int16Array(1),h8=new Int8Array(h16.buffer);if(h16[0]=25459,115!==h8[0]||99!==h8[1])throw"Runtime error: expected the system to be little-endian!"})();var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;__ATINIT__.push({func:function(){___wasm_call_ctors()}}),assert(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),assert(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null,runDependencyTracking={};Module.preloadedImages={},Module.preloadedAudios={};var FS={error:function(){abort("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1")},init:function(){FS.error()},createDataFile:function(){FS.error()},createPreloadedFile:function(){FS.error()},createLazyFile:function(){FS.error()},open:function(){FS.error()},mkdev:function(){FS.error()},registerDevice:function(){FS.error()},analyzePath:function(){FS.error()},loadFilesFromDB:function(){FS.error()},ErrnoError:function(){FS.error()}};Module.FS_createDataFile=FS.createDataFile,Module.FS_createPreloadedFile=FS.createPreloadedFile;var dataURIPrefix="data:application/octet-stream;base64,",fileURIPrefix="file://",wasmBinaryFile="LibYUV.wasm";isDataURI(wasmBinaryFile)||(wasmBinaryFile=locateFile(wasmBinaryFile));var _emscripten_get_now;_emscripten_get_now=ENVIRONMENT_IS_NODE?function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof dateNow?dateNow:function(){return performance.now()};var asmLibraryArg={__handle_stack_overflow:___handle_stack_overflow,abort:_abort,emscripten_resize_heap:_emscripten_resize_heap};createWasm();var ___wasm_call_ctors=Module.___wasm_call_ctors=createExportWrapper("__wasm_call_ctors");Module._ConvertRGBA88882YUV420P=createExportWrapper("ConvertRGBA88882YUV420P"),Module._ABGRToI420=createExportWrapper("ABGRToI420"),Module._ConvertYUV420P2RGBA8888=createExportWrapper("ConvertYUV420P2RGBA8888"),Module._I420ToABGR=createExportWrapper("I420ToABGR"),Module._malloc=createExportWrapper("malloc"),Module._free=createExportWrapper("free"),Module.___errno_location=createExportWrapper("__errno_location"),Module._fflush=createExportWrapper("fflush");var stackSave=Module.stackSave=createExportWrapper("stackSave"),stackRestore=Module.stackRestore=createExportWrapper("stackRestore"),stackAlloc=Module.stackAlloc=createExportWrapper("stackAlloc"),_emscripten_stack_init=Module._emscripten_stack_init=function(){return(_emscripten_stack_init=Module._emscripten_stack_init=Module.asm.emscripten_stack_init).apply(null,arguments)},_emscripten_stack_get_free=Module._emscripten_stack_get_free=function(){return(_emscripten_stack_get_free=Module._emscripten_stack_get_free=Module.asm.emscripten_stack_get_free).apply(null,arguments)},_emscripten_stack_get_base=Module._emscripten_stack_get_base=function(){return(_emscripten_stack_get_base=Module._emscripten_stack_get_base=Module.asm.emscripten_stack_get_base).apply(null,arguments)},_emscripten_stack_get_end=Module._emscripten_stack_get_end=function(){return(_emscripten_stack_get_end=Module._emscripten_stack_get_end=Module.asm.emscripten_stack_get_end).apply(null,arguments)},___set_stack_limits=Module.___set_stack_limits=createExportWrapper("__set_stack_limits");Object.getOwnPropertyDescriptor(Module,"intArrayFromString")||(Module.intArrayFromString=function(){abort("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"intArrayToString")||(Module.intArrayToString=function(){abort("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.ccall=ccall,Module.cwrap=cwrap,Object.getOwnPropertyDescriptor(Module,"setValue")||(Module.setValue=function(){abort("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getValue")||(Module.getValue=function(){abort("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocate")||(Module.allocate=function(){abort("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF8ArrayToString")||(Module.UTF8ArrayToString=function(){abort("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF8ToString")||(Module.UTF8ToString=function(){abort("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF8Array")||(Module.stringToUTF8Array=function(){abort("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF8")||(Module.stringToUTF8=function(){abort("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF8")||(Module.lengthBytesUTF8=function(){abort("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackTrace")||(Module.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPreRun")||(Module.addOnPreRun=function(){abort("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnInit")||(Module.addOnInit=function(){abort("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPreMain")||(Module.addOnPreMain=function(){abort("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnExit")||(Module.addOnExit=function(){abort("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addOnPostRun")||(Module.addOnPostRun=function(){abort("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeStringToMemory")||(Module.writeStringToMemory=function(){abort("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeArrayToMemory")||(Module.writeArrayToMemory=function(){abort("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeAsciiToMemory")||(Module.writeAsciiToMemory=function(){abort("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addRunDependency")||(Module.addRunDependency=function(){abort("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"removeRunDependency")||(Module.removeRunDependency=function(){abort("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_createFolder")||(Module.FS_createFolder=function(){abort("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"FS_createPath")||(Module.FS_createPath=function(){abort("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_createDataFile")||(Module.FS_createDataFile=function(){abort("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_createPreloadedFile")||(Module.FS_createPreloadedFile=function(){abort("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_createLazyFile")||(Module.FS_createLazyFile=function(){abort("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_createLink")||(Module.FS_createLink=function(){abort("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"FS_createDevice")||(Module.FS_createDevice=function(){abort("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"FS_unlink")||(Module.FS_unlink=function(){abort("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(Module,"getLEB")||(Module.getLEB=function(){abort("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFunctionTables")||(Module.getFunctionTables=function(){abort("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"alignFunctionTables")||(Module.alignFunctionTables=function(){abort("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerFunctions")||(Module.registerFunctions=function(){abort("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"addFunction")||(Module.addFunction=function(){abort("'addFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"removeFunction")||(Module.removeFunction=function(){abort("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFuncWrapper")||(Module.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"prettyPrint")||(Module.prettyPrint=function(){abort("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"makeBigInt")||(Module.makeBigInt=function(){abort("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCall")||(Module.dynCall=function(){abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getCompilerSetting")||(Module.getCompilerSetting=function(){abort("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"print")||(Module.print=function(){abort("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"printErr")||(Module.printErr=function(){abort("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getTempRet0")||(Module.getTempRet0=function(){abort("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setTempRet0")||(Module.setTempRet0=function(){abort("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"callMain")||(Module.callMain=function(){abort("'callMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"abort")||(Module.abort=function(){abort("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToNewUTF8")||(Module.stringToNewUTF8=function(){abort("'stringToNewUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setFileTime")||(Module.setFileTime=function(){abort("'setFileTime' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscripten_realloc_buffer")||(Module.emscripten_realloc_buffer=function(){abort("'emscripten_realloc_buffer' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ENV")||(Module.ENV=function(){abort("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ERRNO_CODES")||(Module.ERRNO_CODES=function(){abort("'ERRNO_CODES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ERRNO_MESSAGES")||(Module.ERRNO_MESSAGES=function(){abort("'ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setErrNo")||(Module.setErrNo=function(){abort("'setErrNo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"inetPton4")||(Module.inetPton4=function(){abort("'inetPton4' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"inetNtop4")||(Module.inetNtop4=function(){abort("'inetNtop4' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"inetPton6")||(Module.inetPton6=function(){abort("'inetPton6' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"inetNtop6")||(Module.inetNtop6=function(){abort("'inetNtop6' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readSockaddr")||(Module.readSockaddr=function(){abort("'readSockaddr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeSockaddr")||(Module.writeSockaddr=function(){abort("'writeSockaddr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"DNS")||(Module.DNS=function(){abort("'DNS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getHostByName")||(Module.getHostByName=function(){abort("'getHostByName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GAI_ERRNO_MESSAGES")||(Module.GAI_ERRNO_MESSAGES=function(){abort("'GAI_ERRNO_MESSAGES' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Protocols")||(Module.Protocols=function(){abort("'Protocols' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Sockets")||(Module.Sockets=function(){abort("'Sockets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getRandomDevice")||(Module.getRandomDevice=function(){abort("'getRandomDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"traverseStack")||(Module.traverseStack=function(){abort("'traverseStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UNWIND_CACHE")||(Module.UNWIND_CACHE=function(){abort("'UNWIND_CACHE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"withBuiltinMalloc")||(Module.withBuiltinMalloc=function(){abort("'withBuiltinMalloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readAsmConstArgsArray")||(Module.readAsmConstArgsArray=function(){abort("'readAsmConstArgsArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readAsmConstArgs")||(Module.readAsmConstArgs=function(){abort("'readAsmConstArgs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"mainThreadEM_ASM")||(Module.mainThreadEM_ASM=function(){abort("'mainThreadEM_ASM' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jstoi_q")||(Module.jstoi_q=function(){abort("'jstoi_q' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jstoi_s")||(Module.jstoi_s=function(){abort("'jstoi_s' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getExecutableName")||(Module.getExecutableName=function(){abort("'getExecutableName' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"listenOnce")||(Module.listenOnce=function(){abort("'listenOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"autoResumeAudioContext")||(Module.autoResumeAudioContext=function(){abort("'autoResumeAudioContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCallLegacy")||(Module.dynCallLegacy=function(){abort("'dynCallLegacy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getDynCaller")||(Module.getDynCaller=function(){abort("'getDynCaller' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"dynCall")||(Module.dynCall=function(){abort("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"callRuntimeCallbacks")||(Module.callRuntimeCallbacks=function(){abort("'callRuntimeCallbacks' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"reallyNegative")||(Module.reallyNegative=function(){abort("'reallyNegative' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"unSign")||(Module.unSign=function(){abort("'unSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"reSign")||(Module.reSign=function(){abort("'reSign' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"formatString")||(Module.formatString=function(){abort("'formatString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PATH")||(Module.PATH=function(){abort("'PATH' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PATH_FS")||(Module.PATH_FS=function(){abort("'PATH_FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SYSCALLS")||(Module.SYSCALLS=function(){abort("'SYSCALLS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"syscallMmap2")||(Module.syscallMmap2=function(){abort("'syscallMmap2' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"syscallMunmap")||(Module.syscallMunmap=function(){abort("'syscallMunmap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getSocketFromFD")||(Module.getSocketFromFD=function(){abort("'getSocketFromFD' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getSocketAddress")||(Module.getSocketAddress=function(){abort("'getSocketAddress' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"JSEvents")||(Module.JSEvents=function(){abort("'JSEvents' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerKeyEventCallback")||(Module.registerKeyEventCallback=function(){abort("'registerKeyEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"specialHTMLTargets")||(Module.specialHTMLTargets=function(){abort("'specialHTMLTargets' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"maybeCStringToJsString")||(Module.maybeCStringToJsString=function(){abort("'maybeCStringToJsString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"findEventTarget")||(Module.findEventTarget=function(){abort("'findEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"findCanvasEventTarget")||(Module.findCanvasEventTarget=function(){abort("'findCanvasEventTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getBoundingClientRect")||(Module.getBoundingClientRect=function(){abort("'getBoundingClientRect' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillMouseEventData")||(Module.fillMouseEventData=function(){abort("'fillMouseEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerMouseEventCallback")||(Module.registerMouseEventCallback=function(){abort("'registerMouseEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerWheelEventCallback")||(Module.registerWheelEventCallback=function(){abort("'registerWheelEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerUiEventCallback")||(Module.registerUiEventCallback=function(){abort("'registerUiEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerFocusEventCallback")||(Module.registerFocusEventCallback=function(){abort("'registerFocusEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillDeviceOrientationEventData")||(Module.fillDeviceOrientationEventData=function(){abort("'fillDeviceOrientationEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerDeviceOrientationEventCallback")||(Module.registerDeviceOrientationEventCallback=function(){abort("'registerDeviceOrientationEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillDeviceMotionEventData")||(Module.fillDeviceMotionEventData=function(){abort("'fillDeviceMotionEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerDeviceMotionEventCallback")||(Module.registerDeviceMotionEventCallback=function(){abort("'registerDeviceMotionEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"screenOrientation")||(Module.screenOrientation=function(){abort("'screenOrientation' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillOrientationChangeEventData")||(Module.fillOrientationChangeEventData=function(){abort("'fillOrientationChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerOrientationChangeEventCallback")||(Module.registerOrientationChangeEventCallback=function(){abort("'registerOrientationChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillFullscreenChangeEventData")||(Module.fillFullscreenChangeEventData=function(){abort("'fillFullscreenChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerFullscreenChangeEventCallback")||(Module.registerFullscreenChangeEventCallback=function(){abort("'registerFullscreenChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerRestoreOldStyle")||(Module.registerRestoreOldStyle=function(){abort("'registerRestoreOldStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"hideEverythingExceptGivenElement")||(Module.hideEverythingExceptGivenElement=function(){abort("'hideEverythingExceptGivenElement' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"restoreHiddenElements")||(Module.restoreHiddenElements=function(){abort("'restoreHiddenElements' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setLetterbox")||(Module.setLetterbox=function(){abort("'setLetterbox' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"currentFullscreenStrategy")||(Module.currentFullscreenStrategy=function(){abort("'currentFullscreenStrategy' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"restoreOldWindowedStyle")||(Module.restoreOldWindowedStyle=function(){abort("'restoreOldWindowedStyle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"softFullscreenResizeWebGLRenderTarget")||(Module.softFullscreenResizeWebGLRenderTarget=function(){abort("'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"doRequestFullscreen")||(Module.doRequestFullscreen=function(){abort("'doRequestFullscreen' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillPointerlockChangeEventData")||(Module.fillPointerlockChangeEventData=function(){abort("'fillPointerlockChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerPointerlockChangeEventCallback")||(Module.registerPointerlockChangeEventCallback=function(){abort("'registerPointerlockChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerPointerlockErrorEventCallback")||(Module.registerPointerlockErrorEventCallback=function(){abort("'registerPointerlockErrorEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"requestPointerLock")||(Module.requestPointerLock=function(){abort("'requestPointerLock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillVisibilityChangeEventData")||(Module.fillVisibilityChangeEventData=function(){abort("'fillVisibilityChangeEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerVisibilityChangeEventCallback")||(Module.registerVisibilityChangeEventCallback=function(){abort("'registerVisibilityChangeEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerTouchEventCallback")||(Module.registerTouchEventCallback=function(){abort("'registerTouchEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"fillGamepadEventData")||(Module.fillGamepadEventData=function(){abort("'fillGamepadEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerGamepadEventCallback")||(Module.registerGamepadEventCallback=function(){abort("'registerGamepadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerBeforeUnloadEventCallback")||(Module.registerBeforeUnloadEventCallback=function(){abort("'registerBeforeUnloadEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)") -}),Object.getOwnPropertyDescriptor(Module,"fillBatteryEventData")||(Module.fillBatteryEventData=function(){abort("'fillBatteryEventData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"battery")||(Module.battery=function(){abort("'battery' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"registerBatteryEventCallback")||(Module.registerBatteryEventCallback=function(){abort("'registerBatteryEventCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setCanvasElementSize")||(Module.setCanvasElementSize=function(){abort("'setCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getCanvasElementSize")||(Module.getCanvasElementSize=function(){abort("'getCanvasElementSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"polyfillSetImmediate")||(Module.polyfillSetImmediate=function(){abort("'polyfillSetImmediate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"demangle")||(Module.demangle=function(){abort("'demangle' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"demangleAll")||(Module.demangleAll=function(){abort("'demangleAll' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"jsStackTrace")||(Module.jsStackTrace=function(){abort("'jsStackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackTrace")||(Module.stackTrace=function(){abort("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getEnvStrings")||(Module.getEnvStrings=function(){abort("'getEnvStrings' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"checkWasiClock")||(Module.checkWasiClock=function(){abort("'checkWasiClock' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"flush_NO_FILESYSTEM")||(Module.flush_NO_FILESYSTEM=function(){abort("'flush_NO_FILESYSTEM' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64")||(Module.writeI53ToI64=function(){abort("'writeI53ToI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64Clamped")||(Module.writeI53ToI64Clamped=function(){abort("'writeI53ToI64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToI64Signaling")||(Module.writeI53ToI64Signaling=function(){abort("'writeI53ToI64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToU64Clamped")||(Module.writeI53ToU64Clamped=function(){abort("'writeI53ToU64Clamped' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeI53ToU64Signaling")||(Module.writeI53ToU64Signaling=function(){abort("'writeI53ToU64Signaling' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readI53FromI64")||(Module.readI53FromI64=function(){abort("'readI53FromI64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"readI53FromU64")||(Module.readI53FromU64=function(){abort("'readI53FromU64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"convertI32PairToI53")||(Module.convertI32PairToI53=function(){abort("'convertI32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"convertU32PairToI53")||(Module.convertU32PairToI53=function(){abort("'convertU32PairToI53' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"uncaughtExceptionCount")||(Module.uncaughtExceptionCount=function(){abort("'uncaughtExceptionCount' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exceptionLast")||(Module.exceptionLast=function(){abort("'exceptionLast' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exceptionCaught")||(Module.exceptionCaught=function(){abort("'exceptionCaught' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ExceptionInfoAttrs")||(Module.ExceptionInfoAttrs=function(){abort("'ExceptionInfoAttrs' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"ExceptionInfo")||(Module.ExceptionInfo=function(){abort("'ExceptionInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"CatchInfo")||(Module.CatchInfo=function(){abort("'CatchInfo' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exception_addRef")||(Module.exception_addRef=function(){abort("'exception_addRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"exception_decRef")||(Module.exception_decRef=function(){abort("'exception_decRef' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"Browser")||(Module.Browser=function(){abort("'Browser' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"funcWrappers")||(Module.funcWrappers=function(){abort("'funcWrappers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"getFuncWrapper")||(Module.getFuncWrapper=function(){abort("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"setMainLoop")||(Module.setMainLoop=function(){abort("'setMainLoop' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"FS")||(Module.FS=function(){abort("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"mmapAlloc")||(Module.mmapAlloc=function(){abort("'mmapAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"MEMFS")||(Module.MEMFS=function(){abort("'MEMFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"TTY")||(Module.TTY=function(){abort("'TTY' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"PIPEFS")||(Module.PIPEFS=function(){abort("'PIPEFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SOCKFS")||(Module.SOCKFS=function(){abort("'SOCKFS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"_setNetworkCallback")||(Module._setNetworkCallback=function(){abort("'_setNetworkCallback' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"tempFixedLengthArray")||(Module.tempFixedLengthArray=function(){abort("'tempFixedLengthArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"miniTempWebGLFloatBuffers")||(Module.miniTempWebGLFloatBuffers=function(){abort("'miniTempWebGLFloatBuffers' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"heapObjectForWebGLType")||(Module.heapObjectForWebGLType=function(){abort("'heapObjectForWebGLType' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"heapAccessShiftForWebGLHeap")||(Module.heapAccessShiftForWebGLHeap=function(){abort("'heapAccessShiftForWebGLHeap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GL")||(Module.GL=function(){abort("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGet")||(Module.emscriptenWebGLGet=function(){abort("'emscriptenWebGLGet' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"computeUnpackAlignedImageSize")||(Module.computeUnpackAlignedImageSize=function(){abort("'computeUnpackAlignedImageSize' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetTexPixelData")||(Module.emscriptenWebGLGetTexPixelData=function(){abort("'emscriptenWebGLGetTexPixelData' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetUniform")||(Module.emscriptenWebGLGetUniform=function(){abort("'emscriptenWebGLGetUniform' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"emscriptenWebGLGetVertexAttrib")||(Module.emscriptenWebGLGetVertexAttrib=function(){abort("'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"writeGLArray")||(Module.writeGLArray=function(){abort("'writeGLArray' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"AL")||(Module.AL=function(){abort("'AL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_unicode")||(Module.SDL_unicode=function(){abort("'SDL_unicode' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_ttfContext")||(Module.SDL_ttfContext=function(){abort("'SDL_ttfContext' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_audio")||(Module.SDL_audio=function(){abort("'SDL_audio' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL")||(Module.SDL=function(){abort("'SDL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"SDL_gfx")||(Module.SDL_gfx=function(){abort("'SDL_gfx' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLUT")||(Module.GLUT=function(){abort("'GLUT' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"EGL")||(Module.EGL=function(){abort("'EGL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLFW_Window")||(Module.GLFW_Window=function(){abort("'GLFW_Window' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLFW")||(Module.GLFW=function(){abort("'GLFW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"GLEW")||(Module.GLEW=function(){abort("'GLEW' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"IDBStore")||(Module.IDBStore=function(){abort("'IDBStore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"runAndAbortIfError")||(Module.runAndAbortIfError=function(){abort("'runAndAbortIfError' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"warnOnce")||(Module.warnOnce=function(){abort("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackSave")||(Module.stackSave=function(){abort("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackRestore")||(Module.stackRestore=function(){abort("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stackAlloc")||(Module.stackAlloc=function(){abort("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"AsciiToString")||(Module.AsciiToString=function(){abort("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToAscii")||(Module.stringToAscii=function(){abort("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF16ToString")||(Module.UTF16ToString=function(){abort("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF16")||(Module.stringToUTF16=function(){abort("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF16")||(Module.lengthBytesUTF16=function(){abort("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"UTF32ToString")||(Module.UTF32ToString=function(){abort("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"stringToUTF32")||(Module.stringToUTF32=function(){abort("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"lengthBytesUTF32")||(Module.lengthBytesUTF32=function(){abort("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocateUTF8")||(Module.allocateUTF8=function(){abort("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(Module,"allocateUTF8OnStack")||(Module.allocateUTF8OnStack=function(){abort("'allocateUTF8OnStack' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Module.writeStackCookie=writeStackCookie,Module.checkStackCookie=checkStackCookie,Object.getOwnPropertyDescriptor(Module,"ALLOC_NORMAL")||Object.defineProperty(Module,"ALLOC_NORMAL",{configurable:!0,get:function(){abort("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(Module,"ALLOC_STACK")||Object.defineProperty(Module,"ALLOC_STACK",{configurable:!0,get:function(){abort("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}});var calledRun;if(dependenciesFulfilled=function runCaller(){calledRun||run(),calledRun||(dependenciesFulfilled=runCaller)},Module.run=run,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();return Module.onRuntimeInitialized=window.onRuntimeInitialized,run(),LibYUV}}();"object"==typeof exports&&"object"==typeof module?module.exports=LibYUV:"function"==typeof define&&define.amd?define([],function(){return LibYUV}):"object"==typeof exports&&(exports.LibYUV=LibYUV); \ No newline at end of file diff --git a/web/LibYUV.wasm b/web/LibYUV.wasm deleted file mode 100644 index d30220dd62b91999e2f1443f84f0737750bab9ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18588 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 diff --git a/web/index.html b/web/index.html index 81f860b7f..7de28baf4 100644 --- a/web/index.html +++ b/web/index.html @@ -32,9 +32,8 @@ RustDesk - - - + +