@grame/faustwasm 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -0
- package/assets/standalone/faust-ui/index.css +414 -0
- package/assets/standalone/faust-ui/index.css.map +1 -0
- package/assets/standalone/faust-ui/index.d.ts +1 -0
- package/assets/standalone/faust-ui/index.js +3478 -0
- package/assets/standalone/faust-ui/index.js.map +1 -0
- package/assets/standalone/faustwasm/index.d.ts +1252 -0
- package/assets/standalone/faustwasm/index.js +3772 -0
- package/assets/standalone/faustwasm/index.js.map +7 -0
- package/assets/standalone/index.html +73 -0
- package/assets/standalone/index.js +198 -0
- package/assets/standalone/types.d.ts +9 -0
- package/dist/cjs/index.d.ts +1252 -0
- package/dist/cjs/index.js +3752 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs-bundle/index.d.ts +1259 -0
- package/dist/cjs-bundle/index.js +11507 -0
- package/dist/cjs-bundle/index.js.map +7 -0
- package/dist/esm/index.d.ts +1252 -0
- package/dist/esm/index.js +3772 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm-bundle/index.d.ts +1259 -0
- package/dist/esm-bundle/index.js +11495 -0
- package/dist/esm-bundle/index.js.map +7 -0
- package/fileutils.js +40 -0
- package/libfaust-wasm/libfaust-wasm.d.cts +3 -0
- package/libfaust-wasm/libfaust-wasm.d.ts +3 -0
- package/libfaust-wasm/libfaust-wasm.data +0 -0
- package/libfaust-wasm/libfaust-wasm.data.d.ts +2 -0
- package/libfaust-wasm/libfaust-wasm.js +21 -0
- package/libfaust-wasm/libfaust-wasm.wasm +0 -0
- package/libfaust-wasm/libfaust-wasm.wasm.d.ts +2 -0
- package/library.md +91 -0
- package/package.json +43 -0
- package/postbuild-bundled.js +11 -0
- package/postbuild.js +63 -0
- package/prebuild-bundled.js +11 -0
- package/rsrc/overview.png +0 -0
- package/rsrc/overview.xlsx +0 -0
- package/scripts/faust2sndfile.js +43 -0
- package/scripts/faust2svg.js +17 -0
- package/scripts/faust2wasm.js +29 -0
- package/src/FaustAudioWorkletNode.ts +264 -0
- package/src/FaustAudioWorkletProcessor.ts +273 -0
- package/src/FaustCompiler.ts +252 -0
- package/src/FaustDspGenerator.ts +498 -0
- package/src/FaustDspInstance.ts +141 -0
- package/src/FaustFFTAudioWorkletProcessor.ts +554 -0
- package/src/FaustOfflineProcessor.ts +141 -0
- package/src/FaustScriptProcessorNode.ts +80 -0
- package/src/FaustSvgDiagrams.ts +37 -0
- package/src/FaustWasmInstantiator.ts +202 -0
- package/src/FaustWebAudioDsp.ts +1060 -0
- package/src/LibFaust.ts +57 -0
- package/src/WavDecoder.ts +207 -0
- package/src/WavEncoder.ts +204 -0
- package/src/copyWebStandaloneAssets.d.ts +3 -0
- package/src/copyWebStandaloneAssets.js +20 -0
- package/src/exports-bundle.ts +5 -0
- package/src/exports.ts +24 -0
- package/src/faust2svgFiles.d.ts +3 -0
- package/src/faust2svgFiles.js +43 -0
- package/src/faust2wasmFiles.d.ts +5 -0
- package/src/faust2wasmFiles.js +93 -0
- package/src/faust2wavFiles.d.ts +3 -0
- package/src/faust2wavFiles.js +58 -0
- package/src/index-bundle-iife.ts +7 -0
- package/src/index-bundle.ts +5 -0
- package/src/index.ts +5 -0
- package/src/instantiateFaustModule.ts +32 -0
- package/src/instantiateFaustModuleFromFile.ts +57 -0
- package/src/types.ts +234 -0
- package/test/clarinet.dsp +1 -0
- package/test/faustlive-wasm/faust-ui/index.css +414 -0
- package/test/faustlive-wasm/faust-ui/index.css.map +1 -0
- package/test/faustlive-wasm/faust-ui/index.d.ts +1 -0
- package/test/faustlive-wasm/faust-ui/index.js +3478 -0
- package/test/faustlive-wasm/faust-ui/index.js.map +1 -0
- package/test/faustlive-wasm/faustwasm/index.d.ts +1252 -0
- package/test/faustlive-wasm/faustwasm/index.js +3772 -0
- package/test/faustlive-wasm/faustwasm/index.js.map +7 -0
- package/test/faustlive-wasm/index.css +97 -0
- package/test/faustlive-wasm/index.html +130 -0
- package/test/faustlive-wasm/index.js +638 -0
- package/test/guitar.dsp +1 -0
- package/test/guitar1.dsp +2 -0
- package/test/libfaust-in-worklet/index.html +13 -0
- package/test/libfaust-in-worklet/index.js +40 -0
- package/test/mono.dsp +8 -0
- package/test/node/test.js +17 -0
- package/test/noise.dsp +3 -0
- package/test/organ.dsp +5 -0
- package/test/organ1.dsp +6 -0
- package/test/osc.dsp +4 -0
- package/test/osc2.dsp +5 -0
- package/test/osc3.dsp +4 -0
- package/test/p-dj.dsp +4 -0
- package/test/poly.dsp +13 -0
- package/test/rev.dsp +2 -0
- package/test/t1.dsp +1 -0
- package/test/web/fft.html +87 -0
- package/test/web/fft1.html +88 -0
- package/test/web/fft2.html +114 -0
- package/test/web/fftw.js +1907 -0
- package/test/web/index.html +12 -0
- package/test/web/index.js +235 -0
- package/test/web/kissfft.js +904 -0
- package/test/web/mono.html +46 -0
- package/test/web/poly-key.html +62 -0
- package/test/web/poly.html +59 -0
- package/tsconfig.json +22 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../libfaust-wasm/libfaust-wasm.cjs", "../../node_modules/tslib/tslib.js", "../../node_modules/@aws-crypto/sha256-js/src/constants.ts", "../../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts", "../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/pureJs.js", "../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/whatwgEncodingApi.js", "../../node_modules/@aws-sdk/util-utf8-browser/dist-cjs/index.js", "../../node_modules/@aws-crypto/util/src/convertToBuffer.ts", "../../node_modules/@aws-crypto/util/src/isEmptyData.ts", "../../node_modules/@aws-crypto/util/src/numToUint8.ts", "../../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts", "../../node_modules/@aws-crypto/util/src/index.ts", "../../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts", "../../node_modules/@aws-crypto/sha256-js/src/index.ts", "../../src/exports-bundle.ts", "../../src/instantiateFaustModule.ts", "../../src/instantiateFaustModuleFromFile.ts", "../../src/FaustAudioWorkletProcessor.ts", "../../src/FaustFFTAudioWorkletProcessor.ts", "../../src/FaustCompiler.ts", "../../src/FaustDspInstance.ts", "../../src/FaustWasmInstantiator.ts", "../../src/FaustWebAudioDsp.ts", "../../src/FaustOfflineProcessor.ts", "../../src/FaustSvgDiagrams.ts", "../../src/LibFaust.ts", "../../src/WavEncoder.ts", "../../src/WavDecoder.ts", "../../src/FaustAudioWorkletNode.ts", "../../src/FaustScriptProcessorNode.ts", "../../src/FaustDspGenerator.ts", "../../src/index-bundle-iife.ts"],
|
|
4
|
+
"sourcesContent": ["\nvar FaustModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(FaustModule) {\n FaustModule = FaustModule || {};\n\nvar Module=typeof FaustModule!==\"undefined\"?FaustModule:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_main\")){Object.defineProperty(Module[\"ready\"],\"_main\",{configurable:true,get:function(){abort(\"You are getting _main 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\"],\"_main\",{configurable:true,set:function(){abort(\"You are setting _main 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_emscripten_stack_get_end\")){Object.defineProperty(Module[\"ready\"],\"_emscripten_stack_get_end\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_emscripten_stack_get_free\")){Object.defineProperty(Module[\"ready\"],\"_emscripten_stack_get_free\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_emscripten_stack_init\")){Object.defineProperty(Module[\"ready\"],\"_emscripten_stack_init\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_stackSave\")){Object.defineProperty(Module[\"ready\"],\"_stackSave\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_stackRestore\")){Object.defineProperty(Module[\"ready\"],\"_stackRestore\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_stackAlloc\")){Object.defineProperty(Module[\"ready\"],\"_stackAlloc\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"___wasm_call_ctors\")){Object.defineProperty(Module[\"ready\"],\"___wasm_call_ctors\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_fflush\")){Object.defineProperty(Module[\"ready\"],\"_fflush\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"___errno_location\")){Object.defineProperty(Module[\"ready\"],\"___errno_location\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_malloc\")){Object.defineProperty(Module[\"ready\"],\"_malloc\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_free\")){Object.defineProperty(Module[\"ready\"],\"_free\",{configurable:true,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:true,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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"__get_tzname\")){Object.defineProperty(Module[\"ready\"],\"__get_tzname\",{configurable:true,get:function(){abort(\"You are getting __get_tzname 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\"],\"__get_tzname\",{configurable:true,set:function(){abort(\"You are setting __get_tzname 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"__get_daylight\")){Object.defineProperty(Module[\"ready\"],\"__get_daylight\",{configurable:true,get:function(){abort(\"You are getting __get_daylight 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\"],\"__get_daylight\",{configurable:true,set:function(){abort(\"You are setting __get_daylight 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"__get_timezone\")){Object.defineProperty(Module[\"ready\"],\"__get_timezone\",{configurable:true,get:function(){abort(\"You are getting __get_timezone 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\"],\"__get_timezone\",{configurable:true,set:function(){abort(\"You are setting __get_timezone 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_ntohs\")){Object.defineProperty(Module[\"ready\"],\"_ntohs\",{configurable:true,get:function(){abort(\"You are getting _ntohs 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\"],\"_ntohs\",{configurable:true,set:function(){abort(\"You are setting _ntohs 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"_htons\")){Object.defineProperty(Module[\"ready\"],\"_htons\",{configurable:true,get:function(){abort(\"You are getting _htons 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\"],\"_htons\",{configurable:true,set:function(){abort(\"You are setting _htons 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"___getTypeName\")){Object.defineProperty(Module[\"ready\"],\"___getTypeName\",{configurable:true,get:function(){abort(\"You are getting ___getTypeName 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\"],\"___getTypeName\",{configurable:true,set:function(){abort(\"You are setting ___getTypeName 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"___embind_register_native_and_builtin_types\")){Object.defineProperty(Module[\"ready\"],\"___embind_register_native_and_builtin_types\",{configurable:true,get:function(){abort(\"You are getting ___embind_register_native_and_builtin_types 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\"],\"___embind_register_native_and_builtin_types\",{configurable:true,set:function(){abort(\"You are setting ___embind_register_native_and_builtin_types 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\")}})}if(!Object.getOwnPropertyDescriptor(Module[\"ready\"],\"onRuntimeInitialized\")){Object.defineProperty(Module[\"ready\"],\"onRuntimeInitialized\",{configurable:true,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:true,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\")}})}if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH=\"\";if(typeof window===\"object\"){PACKAGE_PATH=window[\"encodeURIComponent\"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}else if(typeof process===\"undefined\"&&typeof location!==\"undefined\"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf(\"/\"))+\"/\")}var PACKAGE_NAME=\"libfaust-wasm.data\";var REMOTE_PACKAGE_BASE=\"libfaust-wasm.data\";if(typeof Module[\"locateFilePackage\"]===\"function\"&&!Module[\"locateFile\"]){Module[\"locateFile\"]=Module[\"locateFilePackage\"];err(\"warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)\")}var REMOTE_PACKAGE_NAME=Module[\"locateFile\"]?Module[\"locateFile\"](REMOTE_PACKAGE_BASE,\"\"):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata[\"remote_package_size\"];var PACKAGE_UUID=metadata[\"package_uuid\"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){require(\"fs\").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open(\"GET\",packageName,true);xhr.responseType=\"arraybuffer\";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module[\"setStatus\"])Module[\"setStatus\"](\"Downloading data... (\"+loaded+\"/\"+total+\")\")}else if(!Module.dataFileDownloads){if(Module[\"setStatus\"])Module[\"setStatus\"](\"Downloading data...\")}};xhr.onerror=function(event){throw new Error(\"NetworkError for: \"+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+\" : \"+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error(\"package error:\",error)}var fetchedCallback=null;var fetched=Module[\"getPreloadedPackage\"]?Module[\"getPreloadedPackage\"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module[\"FS_createPath\"](\"/\",\"usr\",true,true);Module[\"FS_createPath\"](\"/usr\",\"rsrc\",true,true);Module[\"FS_createPath\"](\"/usr\",\"share\",true,true);Module[\"FS_createPath\"](\"/usr/share\",\"faust\",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module[\"addRunDependency\"](\"fp \"+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module[\"FS_createDataFile\"](this.name,null,byteArray,true,true,true);Module[\"removeRunDependency\"](\"fp \"+that.name);this.requests[this.name]=null}};var files=metadata[\"files\"];for(var i=0;i<files.length;++i){new DataRequest(files[i][\"start\"],files[i][\"end\"],files[i][\"audio\"]||0).open(\"GET\",files[i][\"filename\"])}function processPackageData(arrayBuffer){assert(arrayBuffer,\"Loading data file failed.\");assert(arrayBuffer instanceof ArrayBuffer,\"bad input to processPackageData\");var byteArray=new Uint8Array(arrayBuffer);DataRequest.prototype.byteArray=byteArray;var files=metadata[\"files\"];for(var i=0;i<files.length;++i){DataRequest.prototype.requests[files[i].filename].onload()}Module[\"removeRunDependency\"](\"datafile_libfaust-wasm.data\")}Module[\"addRunDependency\"](\"datafile_libfaust-wasm.data\");if(!Module.preloadResults)Module.preloadResults={};Module.preloadResults[PACKAGE_NAME]={fromCache:false};if(fetched){processPackageData(fetched);fetched=null}else{fetchedCallback=processPackageData}}if(Module[\"calledRun\"]){runWithFS()}else{if(!Module[\"preRun\"])Module[\"preRun\"]=[];Module[\"preRun\"].push(runWithFS)}};loadPackage({\"files\":[{\"filename\":\"/usr/rsrc/mixer64.wasm\",\"start\":0,\"end\":399},{\"filename\":\"/usr/rsrc/mixer32.wasm\",\"start\":399,\"end\":786},{\"filename\":\"/usr/share/faust/hoa.lib\",\"start\":786,\"end\":43585},{\"filename\":\"/usr/share/faust/compressors.lib\",\"start\":43585,\"end\":108354},{\"filename\":\"/usr/share/faust/basics.lib\",\"start\":108354,\"end\":193543},{\"filename\":\"/usr/share/faust/dx7.lib\",\"start\":193543,\"end\":262646},{\"filename\":\"/usr/share/faust/analyzers.lib\",\"start\":262646,\"end\":300143},{\"filename\":\"/usr/share/faust/spats.lib\",\"start\":300143,\"end\":306142},{\"filename\":\"/usr/share/faust/envelopes.lib\",\"start\":306142,\"end\":318174},{\"filename\":\"/usr/share/faust/oscillators.lib\",\"start\":318174,\"end\":372403},{\"filename\":\"/usr/share/faust/mi.lib\",\"start\":372403,\"end\":389683},{\"filename\":\"/usr/share/faust/misceffects.lib\",\"start\":389683,\"end\":413512},{\"filename\":\"/usr/share/faust/version.lib\",\"start\":413512,\"end\":414422},{\"filename\":\"/usr/share/faust/webaudio.lib\",\"start\":414422,\"end\":426541},{\"filename\":\"/usr/share/faust/math.lib\",\"start\":426541,\"end\":448019},{\"filename\":\"/usr/share/faust/stdfaust.lib\",\"start\":448019,\"end\":449289},{\"filename\":\"/usr/share/faust/filter.lib\",\"start\":449289,\"end\":514675},{\"filename\":\"/usr/share/faust/delays.lib\",\"start\":514675,\"end\":529797},{\"filename\":\"/usr/share/faust/routes.lib\",\"start\":529797,\"end\":538362},{\"filename\":\"/usr/share/faust/soundfiles.lib\",\"start\":538362,\"end\":547723},{\"filename\":\"/usr/share/faust/tonestacks.lib\",\"start\":547723,\"end\":560077},{\"filename\":\"/usr/share/faust/aanl.lib\",\"start\":560077,\"end\":587965},{\"filename\":\"/usr/share/faust/wdmodels.lib\",\"start\":587965,\"end\":677918},{\"filename\":\"/usr/share/faust/all.lib\",\"start\":677918,\"end\":678934},{\"filename\":\"/usr/share/faust/music.lib\",\"start\":678934,\"end\":697368},{\"filename\":\"/usr/share/faust/tubes.lib\",\"start\":697368,\"end\":1047157},{\"filename\":\"/usr/share/faust/effect.lib\",\"start\":1047157,\"end\":1116187},{\"filename\":\"/usr/share/faust/vaeffects.lib\",\"start\":1116187,\"end\":1152084},{\"filename\":\"/usr/share/faust/maxmsp.lib\",\"start\":1152084,\"end\":1160258},{\"filename\":\"/usr/share/faust/platform.lib\",\"start\":1160258,\"end\":1163389},{\"filename\":\"/usr/share/faust/synths.lib\",\"start\":1163389,\"end\":1174784},{\"filename\":\"/usr/share/faust/sf.lib\",\"start\":1174784,\"end\":1175850},{\"filename\":\"/usr/share/faust/fds.lib\",\"start\":1175850,\"end\":1196409},{\"filename\":\"/usr/share/faust/reducemaps.lib\",\"start\":1196409,\"end\":1201245},{\"filename\":\"/usr/share/faust/phaflangers.lib\",\"start\":1201245,\"end\":1211269},{\"filename\":\"/usr/share/faust/filters.lib\",\"start\":1211269,\"end\":1326816},{\"filename\":\"/usr/share/faust/signals.lib\",\"start\":1326816,\"end\":1343232},{\"filename\":\"/usr/share/faust/instruments.lib\",\"start\":1343232,\"end\":1352627},{\"filename\":\"/usr/share/faust/quantizers.lib\",\"start\":1352627,\"end\":1362482},{\"filename\":\"/usr/share/faust/noises.lib\",\"start\":1362482,\"end\":1378568},{\"filename\":\"/usr/share/faust/oscillator.lib\",\"start\":1378568,\"end\":1398419},{\"filename\":\"/usr/share/faust/interpolators.lib\",\"start\":1398419,\"end\":1423366},{\"filename\":\"/usr/share/faust/demos.lib\",\"start\":1423366,\"end\":1488556},{\"filename\":\"/usr/share/faust/reverbs.lib\",\"start\":1488556,\"end\":1526062},{\"filename\":\"/usr/share/faust/physmodels.lib\",\"start\":1526062,\"end\":1697410},{\"filename\":\"/usr/share/faust/maths.lib\",\"start\":1697410,\"end\":1719516}],\"remote_package_size\":1719516,\"package_uuid\":\"8a30cc40-6fd6-469f-8c6c-6fbbc4e756d0\"})})();var necessaryPreJSTasks=Module[\"preRun\"].slice();if(!Module[\"preRun\"])throw\"Module.preRun should exist because file support used it; did a pre-js delete it?\";necessaryPreJSTasks.forEach(function(task){if(Module[\"preRun\"].indexOf(task)<0)throw\"All preRun tasks that exist before user pre-js code should remain after; did you replace Module or modify Module.preRun?\"});var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window===\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";var ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module[\"ENVIRONMENT\"]){throw new 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 scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exiting due to exception: \"+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(!(typeof process===\"object\"&&typeof require===\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);nodeFS[\"readFile\"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(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\",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process===\"object\"&&typeof require===\"function\"||typeof window===\"object\"||typeof importScripts===\"function\")throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(function(){onload(readBinary(f))},0)};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status,toThrow){logExceptionOnExit(toThrow);quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!==\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(!(typeof window===\"object\"||typeof importScripts===\"function\"))throw new Error(\"not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)\");{read_=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{throw new Error(\"environment detection error\")}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(!Object.getOwnPropertyDescriptor(Module,\"arguments\")){Object.defineProperty(Module,\"arguments\",{configurable:true,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)\")}})}if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(!Object.getOwnPropertyDescriptor(Module,\"thisProgram\")){Object.defineProperty(Module,\"thisProgram\",{configurable:true,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)\")}})}if(Module[\"quit\"])quit_=Module[\"quit\"];if(!Object.getOwnPropertyDescriptor(Module,\"quit\")){Object.defineProperty(Module,\"quit\",{configurable:true,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(typeof Module[\"memoryInitializerPrefixURL\"]===\"undefined\",\"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"pthreadMainPrefixURL\"]===\"undefined\",\"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"cdInitializerPrefixURL\"]===\"undefined\",\"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"filePackagePrefixURL\"]===\"undefined\",\"Module.filePackagePrefixURL option was removed, use Module.locateFile instead\");assert(typeof Module[\"read\"]===\"undefined\",\"Module.read option was removed (modify read_ in JS)\");assert(typeof Module[\"readAsync\"]===\"undefined\",\"Module.readAsync option was removed (modify readAsync in JS)\");assert(typeof Module[\"readBinary\"]===\"undefined\",\"Module.readBinary option was removed (modify readBinary in JS)\");assert(typeof Module[\"setWindowTitle\"]===\"undefined\",\"Module.setWindowTitle option was removed (modify setWindowTitle in JS)\");assert(typeof Module[\"TOTAL_MEMORY\"]===\"undefined\",\"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY\");if(!Object.getOwnPropertyDescriptor(Module,\"read\")){Object.defineProperty(Module,\"read\",{configurable:true,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)\")}})}if(!Object.getOwnPropertyDescriptor(Module,\"readAsync\")){Object.defineProperty(Module,\"readAsync\",{configurable:true,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)\")}})}if(!Object.getOwnPropertyDescriptor(Module,\"readBinary\")){Object.defineProperty(Module,\"readBinary\",{configurable:true,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)\")}})}if(!Object.getOwnPropertyDescriptor(Module,\"setWindowTitle\")){Object.defineProperty(Module,\"setWindowTitle\",{configurable:true,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)\")}})}assert(!ENVIRONMENT_IS_SHELL,\"shell environment detected but not enabled at build time. Add 'shell' to `-s ENVIRONMENT` to enable.\");function getPointerSize(){return 4}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function===\"function\"){var typeNames={\"i\":\"i32\",\"j\":\"i64\",\"f\":\"f32\",\"d\":\"f64\"};var type={parameters:[],results:sig[0]==\"v\"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={\"i\":127,\"j\":126,\"f\":125,\"d\":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet==\"v\"){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;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]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{\"e\":{\"f\":func}});var wrappedFunc=instance.exports[\"f\"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function getEmptyTableSlot(){if(freeTableIndexes.length){return freeTableIndexes.pop()}try{wasmTable.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw\"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.\"}return wasmTable.length-1}function updateTableMap(offset,count){for(var i=offset;i<offset+count;i++){var item=getWasmTableEntry(i);if(item){functionsInTableMap.set(item,i)}}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];if(!Object.getOwnPropertyDescriptor(Module,\"wasmBinary\")){Object.defineProperty(Module,\"wasmBinary\",{configurable:true,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)\")}})}var noExitRuntime=Module[\"noExitRuntime\"]||true;if(!Object.getOwnPropertyDescriptor(Module,\"noExitRuntime\")){Object.defineProperty(Module,\"noExitRuntime\",{configurable:true,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)\")}})}if(typeof WebAssembly!==\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;assert(returnType!==\"array\",'Return type should not be \"array\".');if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}var ALLOC_STACK=1;function allocate(slab,allocator){var ret;assert(typeof allocator===\"number\",\"allocate no longer takes a type argument\");assert(typeof slab!==\"number\",\"allocate no longer takes a number as arg0\");if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{if((u0&248)!=240)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=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;if(u>1114111)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-0x10FFFF).\");heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){assert(typeof maxBytesToWrite==\"number\",\"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){assert(ptr%2==0,\"Pointer passed to UTF16ToString must be aligned to two bytes!\");var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){assert(outPtr%2==0,\"Pointer passed to stringToUTF16 must be aligned to two bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){assert(ptr%4==0,\"Pointer passed to UTF32ToString must be aligned to four bytes!\");var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){assert(outPtr%4==0,\"Pointer passed to stringToUTF32 must be aligned to four bytes!\");assert(typeof maxBytesToWrite==\"number\",\"stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!\");if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}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 writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){assert(str.charCodeAt(i)===(str.charCodeAt(i)&255));HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;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)}var TOTAL_STACK=5242880;if(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;if(!Object.getOwnPropertyDescriptor(Module,\"INITIAL_MEMORY\")){Object.defineProperty(Module,\"INITIAL_MEMORY\",{configurable:true,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(typeof Int32Array!==\"undefined\"&&typeof Float64Array!==\"undefined\"&&Int32Array.prototype.subarray!==undefined&&Int32Array.prototype.set!==undefined,\"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(INITIAL_MEMORY==16777216,\"Detected runtime INITIAL_MEMORY setting. Use -s IMPORTED_MEMORY to define wasmMemory dynamically\");var wasmTable;function writeStackCookie(){var max=_emscripten_stack_get_end();assert((max&3)==0);HEAP32[max+4>>2]=34821223;HEAP32[max+8>>2]=2310721022;HEAP32[0]=1668509029}function checkStackCookie(){if(ABORT)return;var max=_emscripten_stack_get_end();var cookie1=HEAPU32[max+4>>2];var cookie2=HEAPU32[max+8>>2];if(cookie1!=34821223||cookie2!=2310721022){abort(\"Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x2135467, but received 0x\"+cookie2.toString(16)+\" \"+cookie1.toString(16))}if(HEAP32[0]!==1668509029)abort(\"Runtime error: The application has corrupted its heap memory area (address zero)!\")}(function(){var h16=new Int16Array(1);var h8=new Int8Array(h16.buffer);h16[0]=25459;if(h8[0]!==115||h8[1]!==99)throw\"Runtime error: expected the system to be little-endian! (Run with -s SUPPORT_BIG_ENDIAN=1 to bypass)\"})();var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){checkStackCookie();assert(!runtimeInitialized);runtimeInitialized=true;if(!Module[\"noFSInit\"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);callRuntimeCallbacks(__ATINIT__)}function exitRuntime(){checkStackCookie();runtimeExited=true}function postRun(){checkStackCookie();if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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;var runDependencyWatcher=null;var dependenciesFulfilled=null;var runDependencyTracking={};function getUniqueRunDependency(id){var orig=id;while(1){if(!runDependencyTracking[id])return id;id=orig+Math.random()}}function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(!runDependencyTracking[id]);runDependencyTracking[id]=1;if(runDependencyWatcher===null&&typeof setInterval!==\"undefined\"){runDependencyWatcher=setInterval(function(){if(ABORT){clearInterval(runDependencyWatcher);runDependencyWatcher=null;return}var shown=false;for(var dep in runDependencyTracking){if(!shown){shown=true;err(\"still waiting on run dependencies:\")}err(\"dependency: \"+dep)}if(shown){err(\"(end of list)\")}},1e4)}}else{err(\"warning: run dependency added without ID\")}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(id){assert(runDependencyTracking[id]);delete runDependencyTracking[id]}else{err(\"warning: run dependency removed without ID\")}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){{if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}function createExportWrapper(name,fixedasm){return function(){var displayName=name;var asm=fixedasm;if(!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)\");if(!asm[name]){assert(asm[name],\"exported native function `\"+displayName+\"` not found\")}return asm[name].apply(null,arguments)}}var wasmBinaryFile;wasmBinaryFile=\"libfaust-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{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(typeof fetch===\"function\"&&!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)})}else{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(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){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\");addOnInit(Module[\"asm\"][\"__wasm_call_ctors\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");var trueModule=Module;function receiveInstantiationResult(result){assert(Module===trueModule,\"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?\");trueModule=null;receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);if(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(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;var ASM_CONSTS={150640:function($0){var dsp_code=\"\";try{var xmlhttp=new XMLHttpRequest;xmlhttp.open(\"GET\",Module.UTF8ToString($0),false);xmlhttp.send();if(xmlhttp.status==200){dsp_code=xmlhttp.responseText}}catch(e){console.log(e)}return allocate(intArrayFromString(dsp_code),\"i8\",ALLOC_STACK)}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){warnOnce(\"warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling\");return 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+\"]\"})}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}assert(wasmTable.get(funcPtr)==func,\"JavaScript-side Wasm function table mirror is out of date!\");return func}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return\"(no stack trace available)\"}}return error.stack.toString()}function setWasmTableEntry(idx,func){wasmTable.set(idx,func);wasmTableMirror[idx]=func}function ___assert_fail(condition,filename,line,func){abort(\"Assertion failed: \"+UTF8ToString(condition)+\", at: \"+[filename?UTF8ToString(filename):\"unknown filename\",line,func?UTF8ToString(func):\"unknown function\"])}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}function _atexit(func,arg){}function ___cxa_atexit(a0,a1){return _atexit(a0,a1)}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-16;this.set_type=function(type){HEAP32[this.ptr+4>>2]=type};this.get_type=function(){return HEAP32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;assert(prev>0);return prev===1}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr+\" - Exception catching is disabled, this exception cannot be caught. Compile with -s NO_DISABLE_EXCEPTION_CATCHING or -s EXCEPTION_CATCHING_ALLOWED=[..] to catch.\"}function _tzset_impl(){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[__get_timezone()>>2]=stdTimezoneOffset*60;HEAP32[__get_daylight()>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\\(([A-Za-z ]+)\\)$/);return match?match[1]:\"GMT\"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset<winterOffset){HEAP32[__get_tzname()>>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _tzset(){if(_tzset.called)return;_tzset.called=true;_tzset_impl()}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function ___localtime_r(a0,a1){return _localtime_r(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";path=PATH.normalize(path);path=path.replace(/\\/$/,\"\");var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};function getRandomDevice(){if(typeof crypto===\"object\"&&typeof crypto[\"getRandomValues\"]===\"function\"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require(\"crypto\");return function(){return crypto_module[\"randomBytes\"](1)[0]}}catch(e){}}return function(){abort(\"no cryptographic support found for randomDevice. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };\")}}var PATH_FS={resolve:function(){var resolvedPath=\"\",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!==\"string\"){throw new TypeError(\"Arguments to path.resolve must be strings\")}else if(!path){return\"\"}resolvedPath=path+\"/\"+resolvedPath;resolvedAbsolute=path.charAt(0)===\"/\"}resolvedPath=PATH.normalizeArray(resolvedPath.split(\"/\").filter(function(p){return!!p}),!resolvedAbsolute).join(\"/\");return(resolvedAbsolute?\"/\":\"\")+resolvedPath||\".\"},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!==\"\")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!==\"\")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split(\"/\"));var toParts=trim(to.split(\"/\"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push(\"..\")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join(\"/\")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},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){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().includes(\"EOF\"))bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString(\"utf-8\")}else{result=null}}else if(typeof window!=\"undefined\"&&typeof window.prompt==\"function\"){result=window.prompt(\"Input: \");if(result!==null){result+=\"\\n\"}}else if(typeof readline==\"function\"){result=readline();if(result!==null){result+=\"\\n\"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort(\"internal error: mmapAlloc called but `memalign` native symbol not exported\")}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,\"/\",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}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}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},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){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[\".\",\"..\"];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){assert(!(buffer instanceof ArrayBuffer));if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){assert(position===0,\"canOwn must imply no weird position inside the file\");node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){if(address!==0){throw new FS.ErrnoError(28)}if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{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)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};function asyncLoad(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency(\"al \"+url):\"\";readAsync(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file \"'+url+'\" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file \"'+url+'\" failed.'}});if(dep)addRunDependency(dep)}var ERRNO_MESSAGES={0:\"Success\",1:\"Arg list too long\",2:\"Permission denied\",3:\"Address already in use\",4:\"Address not available\",5:\"Address family not supported by protocol family\",6:\"No more processes\",7:\"Socket already connected\",8:\"Bad file number\",9:\"Trying to read unreadable message\",10:\"Mount device busy\",11:\"Operation canceled\",12:\"No children\",13:\"Connection aborted\",14:\"Connection refused\",15:\"Connection reset by peer\",16:\"File locking deadlock error\",17:\"Destination address required\",18:\"Math arg out of domain of func\",19:\"Quota exceeded\",20:\"File exists\",21:\"Bad address\",22:\"File too large\",23:\"Host is unreachable\",24:\"Identifier removed\",25:\"Illegal byte sequence\",26:\"Connection already in progress\",27:\"Interrupted system call\",28:\"Invalid argument\",29:\"I/O error\",30:\"Socket is already connected\",31:\"Is a directory\",32:\"Too many symbolic links\",33:\"Too many open files\",34:\"Too many links\",35:\"Message too long\",36:\"Multihop attempted\",37:\"File or path name too long\",38:\"Network interface is not configured\",39:\"Connection reset by network\",40:\"Network is unreachable\",41:\"Too many open files in system\",42:\"No buffer space available\",43:\"No such device\",44:\"No such file or directory\",45:\"Exec format error\",46:\"No record locks available\",47:\"The link has been severed\",48:\"Not enough core\",49:\"No message of desired type\",50:\"Protocol not available\",51:\"No space left on device\",52:\"Function not implemented\",53:\"Socket is not connected\",54:\"Not a directory\",55:\"Directory not empty\",56:\"State not recoverable\",57:\"Socket operation on non-socket\",59:\"Not a typewriter\",60:\"No such device or address\",61:\"Value too large for defined data type\",62:\"Previous owner died\",63:\"Not super-user\",64:\"Broken pipe\",65:\"Protocol error\",66:\"Unknown protocol\",67:\"Protocol wrong type for socket\",68:\"Math result not representable\",69:\"Read only file system\",70:\"Illegal seek\",71:\"No such process\",72:\"Stale file handle\",73:\"Connection timed out\",74:\"Text file busy\",75:\"Cross-device link\",100:\"Device not a stream\",101:\"Bad font file fmt\",102:\"Invalid slot\",103:\"Invalid request code\",104:\"No anode\",105:\"Block device required\",106:\"Channel number out of range\",107:\"Level 3 halted\",108:\"Level 3 reset\",109:\"Link number out of range\",110:\"Protocol driver not attached\",111:\"No CSI structure available\",112:\"Level 2 halted\",113:\"Invalid exchange\",114:\"Invalid request descriptor\",115:\"Exchange full\",116:\"No data (for no delay io)\",117:\"Timer expired\",118:\"Out of streams resources\",119:\"Machine is not on the network\",120:\"Package not installed\",121:\"The object is remote\",122:\"Advertise error\",123:\"Srmount error\",124:\"Communication error on send\",125:\"Cross mount point (not really error)\",126:\"Given log. name not unique\",127:\"f.d. invalid for this operation\",128:\"Remote address changed\",129:\"Can access a needed shared lib\",130:\"Accessing a corrupted shared lib\",131:\".lib section in a.out corrupted\",132:\"Attempting to link in too many libs\",133:\"Attempting to exec a shared library\",135:\"Streams pipe error\",136:\"Too many users\",137:\"Socket type not supported\",138:\"Not supported\",139:\"Protocol family not supported\",140:\"Can't send after socket shutdown\",141:\"Too many references\",142:\"Host is down\",148:\"No medium (in tape drive)\",156:\"Level 2 not synchronized\"};var ERRNO_CODES={};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:\"/\",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:\"\",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),false);var current=FS.root;var current_path=\"/\";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!==\"/\"?mount+\"/\"+path:mount+path}path=path?node.name+\"/\"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){assert(typeof parent===\"object\");var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},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){var flags=FS.flagModes[str];if(typeof flags===\"undefined\"){throw new Error(\"Unknown file open mode: \"+str)}return flags},flagsToPermissionString:function(flag){var perms=[\"r\",\"w\",\"rw\"][flag&3];if(flag&512){perms+=\"w\"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes(\"r\")&&!(node.mode&292)){return 2}else if(perms.includes(\"w\")&&!(node.mode&146)){return 2}else if(perms.includes(\"x\")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,\"x\");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,\"wx\")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,\"wx\");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!==\"r\"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};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}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},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){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate===\"function\"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(\"warning: \"+FS.syncFSRequests+\" FS.syncfs operations in flight at once, probably just doing extra work\")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){if(typeof type===\"string\"){throw type}var root=mountpoint===\"/\";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name===\".\"||name===\"..\"){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split(\"/\");var d=\"\";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+=\"/\"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev===\"undefined\"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!==\".\"){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path===\"string\"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,\"w\");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===\"\"){throw new FS.ErrnoError(44)}flags=typeof flags===\"string\"?FS.modeStringToFlags(flags):flags;mode=typeof mode===\"undefined\"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path===\"object\"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),id:node.id,flags:flags,mode:node.mode,seekable:true,position:0,stream_ops:node.stream_ops,node_ops:node.node_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module[\"logReadFiles\"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!==\"undefined\";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||0;opts.encoding=opts.encoding||\"binary\";if(opts.encoding!==\"utf8\"&&opts.encoding!==\"binary\"){throw new Error('Invalid encoding type \"'+opts.encoding+'\"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding===\"utf8\"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding===\"binary\"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data===\"string\"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error(\"Unsupported data type\")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,\"x\");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir(\"/tmp\");FS.mkdir(\"/home\");FS.mkdir(\"/home/web_user\")},createDefaultDevices:function(){FS.mkdir(\"/dev\");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev(\"/dev/null\",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev(\"/dev/tty\",FS.makedev(5,0));FS.mkdev(\"/dev/tty1\",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice(\"/dev\",\"random\",random_device);FS.createDevice(\"/dev\",\"urandom\",random_device);FS.mkdir(\"/dev/shm\");FS.mkdir(\"/dev/shm/tmp\")},createSpecialDirectories:function(){FS.mkdir(\"/proc\");var proc_self=FS.mkdir(\"/proc/self\");FS.mkdir(\"/proc/self/fd\");FS.mount({mount:function(){var node=FS.createNode(proc_self,\"fd\",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:\"fake\"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},\"/proc/self/fd\")},createStandardStreams:function(){if(Module[\"stdin\"]){FS.createDevice(\"/dev\",\"stdin\",Module[\"stdin\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdin\")}if(Module[\"stdout\"]){FS.createDevice(\"/dev\",\"stdout\",null,Module[\"stdout\"])}else{FS.symlink(\"/dev/tty\",\"/dev/stdout\")}if(Module[\"stderr\"]){FS.createDevice(\"/dev\",\"stderr\",null,Module[\"stderr\"])}else{FS.symlink(\"/dev/tty1\",\"/dev/stderr\")}var stdin=FS.open(\"/dev/stdin\",0);var stdout=FS.open(\"/dev/stdout\",1);var stderr=FS.open(\"/dev/stderr\",1);assert(stdin.fd===0,\"invalid handle for stdin (\"+stdin.fd+\")\");assert(stdout.fd===1,\"invalid handle for stdout (\"+stdout.fd+\")\");assert(stderr.fd===2,\"invalid handle for stderr (\"+stderr.fd+\")\")},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno;for(var key in ERRNO_CODES){if(ERRNO_CODES[key]===errno){this.code=key;break}}};this.setErrno(errno);this.message=ERRNO_MESSAGES[errno];if(this.stack){Object.defineProperty(this,\"stack\",{value:(new Error).stack,writable:true});this.stack=demangleAll(this.stack)}};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=\"<generic error, no stack>\"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},\"/\");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={\"MEMFS\":MEMFS}},init:function(input,output,error){assert(!FS.init.initialized,\"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)\");FS.init.initialized=true;FS.ensureErrnoError();Module[\"stdin\"]=input||Module[\"stdin\"];Module[\"stdout\"]=output||Module[\"stdout\"];Module[\"stderr\"]=error||Module[\"stderr\"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module[\"_fflush\"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path===\"/\"}catch(e){ret.error=e.errno}return ret},createPath:function(parent,path,canRead,canWrite){parent=typeof parent===\"string\"?parent:FS.getPath(parent);var parts=path.split(\"/\").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data===\"string\"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent===\"string\"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{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){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;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_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error(\"Cannot load without read() or XMLHttpRequest.\")}},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open(\"HEAD\",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);var datalength=Number(xhr.getResponseHeader(\"Content-length\"));var header;var hasByteServing=(header=xhr.getResponseHeader(\"Accept-Ranges\"))&&header===\"bytes\";var usesGzip=(header=xhr.getResponseHeader(\"Content-Encoding\"))&&header===\"gzip\";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error(\"invalid range (\"+from+\", \"+to+\") or no bytes requested!\");if(to>datalength-1)throw new Error(\"only \"+datalength+\" bytes available! programmer error!\");var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);if(datalength!==chunkSize)xhr.setRequestHeader(\"Range\",\"bytes=\"+from+\"-\"+to);if(typeof Uint8Array!=\"undefined\")xhr.responseType=\"arraybuffer\";if(xhr.overrideMimeType){xhr.overrideMimeType(\"text/plain; charset=x-user-defined\")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error(\"Couldn't load \"+url+\". Status: \"+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||\"\",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]===\"undefined\"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]===\"undefined\")throw new Error(\"doXHR failed!\");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out(\"LazyFiles on gzip forces download of the whole file when length is accessed\")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!==\"undefined\"){if(!ENVIRONMENT_IS_WORKER)throw\"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc\";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(\"cp \"+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module[\"preloadPlugins\"].forEach(function(plugin){if(handled)return;if(plugin[\"canHandle\"](fullname)){plugin[\"handle\"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url==\"string\"){asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},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){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out(\"creating db\");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],\"readwrite\");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],\"readonly\")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},absolutePath:function(){abort(\"FS.absolutePath has been removed; use PATH_FS.resolve instead\")},createFolder:function(){abort(\"FS.createFolder has been removed; use FS.mkdir instead\")},createLink:function(){abort(\"FS.createLink has been removed; use FS.symlink instead\")},joinPath:function(){abort(\"FS.joinPath has been removed; use PATH.join instead\")},mmapAlloc:function(){abort(\"FS.mmapAlloc has been replaced by the top level function mmapAlloc\")},standardizePath:function(){abort(\"FS.standardizePath has been removed; use PATH.normalize instead\")}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(path[0]===\"/\"){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;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];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;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];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]===\"/\")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms=\"\";if(amode&4)perms+=\"r\";if(amode&2)perms+=\"w\";if(amode&1)perms+=\"x\";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){assert(SYSCALLS.varargs!=undefined);SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){if(low>=0)assert(high===0);else assert(high===-1);return low}};function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){try{assert(nfds<=64,\"nfds must be less than or equal to 64\");assert(!exceptfds,\"exceptfds not supported\");var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var SOCKFS={mount:function(mount){Module[\"websocket\"]=Module[\"websocket\"]&&\"object\"===typeof Module[\"websocket\"]?Module[\"websocket\"]:{};Module[\"websocket\"]._callbacks={};Module[\"websocket\"][\"on\"]=function(event,callback){if(\"function\"===typeof callback){this._callbacks[event]=callback}return this};Module[\"websocket\"].emit=function(event,param){if(\"function\"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,\"/\",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(protocol){assert(streaming==(protocol==6))}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return\"socket[\"+SOCKFS.nextname.current+++\"]\"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr===\"object\"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\\/\\/([^:]+):(\\d+)/.exec(ws.url);if(!result){throw new Error(\"WebSocket URL must be in the format ws(s)://address:port\")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module[\"websocket\"]&&\"object\"===typeof Module[\"websocket\"];var url=\"ws:#\".replace(\"#\",\"//\");if(runtimeConfig){if(\"string\"===typeof Module[\"websocket\"][\"url\"]){url=Module[\"websocket\"][\"url\"]}}if(url===\"ws://\"||url===\"wss://\"){var parts=addr.split(\"/\");url=url+parts[0]+\":\"+port+\"/\"+parts.slice(1).join(\"/\")}var subProtocols=\"binary\";if(runtimeConfig){if(\"string\"===typeof Module[\"websocket\"][\"subprotocol\"]){subProtocols=Module[\"websocket\"][\"subprotocol\"]}}var opts=undefined;if(subProtocols!==\"null\"){subProtocols=subProtocols.replace(/^ +| +$/g,\"\").split(/ *, */);opts=ENVIRONMENT_IS_NODE?{\"protocol\":subProtocols.toString()}:subProtocols}if(runtimeConfig&&null===Module[\"websocket\"][\"subprotocol\"]){subProtocols=\"null\";opts=undefined}var WebSocketConstructor;if(ENVIRONMENT_IS_NODE){WebSocketConstructor=require(\"ws\")}else{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType=\"arraybuffer\"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!==\"undefined\"){peer.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]))}return peer},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){var first=true;var handleOpen=function(){Module[\"websocket\"].emit(\"open\",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data===\"string\"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]===\"p\".charCodeAt(0)&&data[5]===\"o\".charCodeAt(0)&&data[6]===\"r\".charCodeAt(0)&&data[7]===\"t\".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module[\"websocket\"].emit(\"message\",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on(\"open\",handleOpen);peer.socket.on(\"message\",function(data,flags){if(!flags.binary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on(\"close\",function(){Module[\"websocket\"].emit(\"close\",sock.stream.fd)});peer.socket.on(\"error\",function(error){sock.error=14;Module[\"websocket\"].emit(\"error\",[sock.stream.fd,sock.error,\"ECONNREFUSED: Connection refused\"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module[\"websocket\"].emit(\"close\",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module[\"websocket\"].emit(\"error\",[sock.stream.fd,sock.error,\"ECONNREFUSED: Connection refused\"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i<peers.length;i++){var peer=sock.peers[peers[i]];try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind:function(sock,addr,port){if(typeof sock.saddr!==\"undefined\"||typeof sock.sport!==\"undefined\"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==138)throw e}}},connect:function(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!==\"undefined\"&&typeof sock.dport!==\"undefined\"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else{throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;throw new FS.ErrnoError(26)},listen:function(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}if(sock.server){throw new FS.ErrnoError(28)}var WebSocketServer=require(\"ws\").Server;var host=sock.saddr;sock.server=new WebSocketServer({host:host,port:sock.sport});Module[\"websocket\"].emit(\"listen\",sock.stream.fd);sock.server.on(\"connection\",function(ws){if(sock.type===1){var newsock=SOCKFS.createSocket(sock.family,sock.type,sock.protocol);var peer=SOCKFS.websocket_sock_ops.createPeer(newsock,ws);newsock.daddr=peer.addr;newsock.dport=peer.port;sock.pending.push(newsock);Module[\"websocket\"].emit(\"connection\",newsock.stream.fd)}else{SOCKFS.websocket_sock_ops.createPeer(sock,ws);Module[\"websocket\"].emit(\"connection\",sock.stream.fd)}});sock.server.on(\"closed\",function(){Module[\"websocket\"].emit(\"close\",sock.stream.fd);sock.server=null});sock.server.on(\"error\",function(error){sock.error=23;Module[\"websocket\"].emit(\"error\",[sock.stream.fd,sock.error,\"EHOSTUNREACH: Host is unreachable\"])})},accept:function(listensock){if(!listensock.server){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname:function(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr:addr,port:port}},sendmsg:function(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(6)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data;data=buffer.slice(offset,offset+length);if(sock.type===2){if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}dest.dgram_send_queue.push(data);return length}}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg:function(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}else{throw new FS.ErrnoError(6)}}else{throw new FS.ErrnoError(6)}}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function inetNtop4(addr){return(addr&255)+\".\"+(addr>>8&255)+\".\"+(addr>>16&255)+\".\"+(addr>>24&255)}function inetNtop6(ints){var str=\"\";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part=\"\";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str=\"::ffff:\";str+=v4part;return str}if(parts[5]===0){str=\"::\";if(v4part===\"0.0.0.0\")v4part=\"\";if(v4part===\"0.0.0.1\")v4part=\"1\";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=\":\";if(zstart===0)str+=\":\"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?\":\":\"\"}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function inetPton4(str){var b=str.split(\".\");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\\dA-F]{1,4}:(:|\\b)|){5}|([\\dA-F]{1,4}:){6})((([\\dA-F]{1,4}((?!\\3)::|:\\b|$))|(?!\\2\\3)){2}|(((2[0-4]|1\\d|[1-9])?\\d|25[0-5])\\.?\\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str===\"::\"){return[0,0,0,0,0,0,0,0]}if(str.startsWith(\"::\")){str=str.replace(\"::\",\"Z:\")}else{str=str.replace(\"::\",\":Z:\")}if(str.indexOf(\".\")>0){str=str.replace(new RegExp(\"[.]\",\"g\"),\":\");words=str.split(\":\");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(\":\")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]===\"string\"){if(words[w]===\"Z\"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,\"exceeded max address mappings of 65535\");addr=\"172.29.\"+(id&255)+\".\"+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___syscall_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size<cwdLengthInBytes+1)return-68;stringToUTF8(cwd,buf,size);return buf}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort(\"bad ioctl syscall \"+op)}}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_mkdir(path,mode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doMkdir(path,mode)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_readlink(path,buf,bufsize){try{path=SYSCALLS.getStr(path);return SYSCALLS.doReadlink(path,buf,bufsize)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);assert(sock.stream.fd<64);return sock.stream.fd}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(function(field){return field.getterReturnType}).concat(fieldRecords.map(function(field){return field.setterArgumentType}));whenDependentTypesAreResolved([structType],fieldTypes,function(fieldTypes){var fields={};fieldRecords.forEach(function(field,i){var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:function(ptr){return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:function(ptr,o){var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options){options=options||{};if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){cb()})}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=function(handle){return handle};return handle}finalizationRegistry=new FinalizationRegistry(function(info){console.warn(info.leakWarning.stack.replace(/^Error: /,\"\"));releaseClassHandle(info.$$)});attachFinalizer=function(handle){var $$=handle.$$;var info={$$:$$};var cls=$$.ptrType.registeredClass;info.leakWarning=new Error(\"Embind found a leaked C++ instance \"+cls.name+\" <0x\"+$$.ptr.toString(16)+\">.\\n\"+\"We'll free it automatically in this case, but this functionality is not reliable across various environments.\\n\"+\"Make sure to invoke .delete() manually once you're done with the instance instead.\\n\"+\"Originally allocated\");if(\"captureStackTrace\"in Error){Error.captureStackTrace(info.leakWarning,cls.constructor)}finalizationRegistry.register(handle,info,handle);return handle};detachFinalizer=function(handle){finalizationRegistry.unregister(handle)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+_embind_repr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){assert(\"dynCall_\"+sig in Module,\"bad function pointer type - no table for sig '\"+sig+\"'\");if(args&&args.length){assert(args.length===sig.substring(1).replace(/j/g,\"--\").length)}else{assert(sig.length==1)}var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}assert(getWasmTableEntry(ptr),\"missing table entry in dynCall: \"+ptr);return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){assert(sig.includes(\"j\"),\"getDynCaller should only be called with i64 sigs\");var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i<arguments.length;i++){argCache[i]=arguments[i]}return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!==\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAP32[(firstElement>>2)+i])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}var Emval={toValue:function(handle){if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:function(value){switch(value){case undefined:{return 1}case null:{return 2}case true:{return 3}case false:{return 4}default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<<bitshift>>>bitshift}}var isUnsignedType=name.includes(\"unsigned\");registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":function(destructors,value){if(typeof value!==\"number\"&&typeof value!==\"boolean\"){throw new TypeError('Cannot convert \"'+_embind_repr(value)+'\" to '+this.name)}if(value<minRange||value>maxRange){throw new TypeError('Passing a number \"'+_embind_repr(value)+'\" from JS side to C/C++ side to an argument of type \"'+name+'\", which is outside the valid range ['+minRange+\", \"+maxRange+\"]!\")}return isUnsignedType?value>>>0:value|0},\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[value+4+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var getLength;var valueIsOfTypeString=typeof value===\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){getLength=function(){return lengthBytesUTF8(value)}}else{getLength=function(){return value.length}}var length=getLength();var ptr=_malloc(4+length+1);HEAPU32[ptr>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+4+i]=value[i]}}}if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=function(){return HEAPU16};shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=function(){return HEAPU32};shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value===\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_take_value(type,argv){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](argv);return Emval.toHandle(v)}function _abort(){abort(\"native code called abort()\")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){assert(Array.isArray(readAsmConstArgsArray));assert(buf%16==0);readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){assert(ch===100||ch===102||ch===105);var readAsmConstArgsDouble=ch<105;if(readAsmConstArgsDouble&&buf&1)buf++;readAsmConstArgsArray.push(readAsmConstArgsDouble?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);if(!ASM_CONSTS.hasOwnProperty(code))abort(\"No EM_ASM constant found at address \"+code);return ASM_CONSTS[code].apply(null,args)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){err(\"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=HEAPU8.length;requestedSize=requestedSize>>>0;assert(requestedSize>oldSize);var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){err(\"Cannot enlarge memory, asked to go up to \"+requestedSize+\" bytes, but the limit is \"+maxHeapSize+\" bytes!\");return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}err(\"Failed to grow the heap from \"+oldSize+\" bytes to \"+newSize+\" bytes, not enough memory!\");return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator===\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);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];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function getHostByName(name){var ret=_malloc(20);var nameBuf=_malloc(name.length+1);stringToUTF8(name,nameBuf,name.length+1);HEAP32[ret>>2]=nameBuf;var aliasesBuf=_malloc(4);HEAP32[aliasesBuf>>2]=0;HEAP32[ret+4>>2]=aliasesBuf;var afinet=2;HEAP32[ret+8>>2]=afinet;HEAP32[ret+12>>2]=4;var addrListBuf=_malloc(12);HEAP32[addrListBuf>>2]=addrListBuf+8;HEAP32[addrListBuf+4>>2]=0;HEAP32[addrListBuf+8>>2]=inetPton4(DNS.lookup_name(name));HEAP32[ret+16>>2]=addrListBuf;return ret}function _gethostbyname(name){return getHostByName(UTF8ToString(name))}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];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):\"\"};var pattern=UTF8ToString(format);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\"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_1[rule])}var WEEKDAYS=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];var MONTHS=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"];function leadingSomething(value,digits,character){var str=typeof value===\"number\"?value.toString():value||\"\";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,\"0\")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={\"%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){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},\"%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){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},\"%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){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?\"01\":\"00\"},\"%V\":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return\"53\"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return\"01\"}var daysDifference;if(firstWeekStartThisYear.getFullYear()<date.tm_year+1900){daysDifference=date.tm_yday+32-firstWeekStartThisYear.getDate()}else{daysDifference=date.tm_yday+1-firstWeekStartThisYear.getDate()}return leadingNulls(Math.ceil(daysDifference/7),2)},\"%w\":function(date){return date.tm_wday},\"%W\":function(date){var janFirst=new Date(date.tm_year,0,1);var firstMonday=janFirst.getDay()===1?janFirst:__addDays(janFirst,janFirst.getDay()===0?1:7-janFirst.getDay()+1);var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstMonday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstMondayUntilEndJanuary=31-firstMonday.getDate();var days=firstMondayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstMonday,janFirst)===0?\"01\":\"00\"},\"%y\":function(date){return(date.tm_year+1900).toString().substring(2)},\"%Y\":function(date){return date.tm_year+1900},\"%z\":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?\"+\":\"-\")+String(\"0000\"+off).slice(-4)},\"%Z\":function(date){return date.tm_zone},\"%%\":function(){return\"%\"}};for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,\"g\"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;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)}}});FS.FSNode=FSNode;FS.staticInit();Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;Module[\"FS_createLazyFile\"]=FS.createLazyFile;Module[\"FS_createDevice\"]=FS.createDevice;Module[\"FS_unlink\"]=FS.unlink;ERRNO_CODES={\"EPERM\":63,\"ENOENT\":44,\"ESRCH\":71,\"EINTR\":27,\"EIO\":29,\"ENXIO\":60,\"E2BIG\":1,\"ENOEXEC\":45,\"EBADF\":8,\"ECHILD\":12,\"EAGAIN\":6,\"EWOULDBLOCK\":6,\"ENOMEM\":48,\"EACCES\":2,\"EFAULT\":21,\"ENOTBLK\":105,\"EBUSY\":10,\"EEXIST\":20,\"EXDEV\":75,\"ENODEV\":43,\"ENOTDIR\":54,\"EISDIR\":31,\"EINVAL\":28,\"ENFILE\":41,\"EMFILE\":33,\"ENOTTY\":59,\"ETXTBSY\":74,\"EFBIG\":22,\"ENOSPC\":51,\"ESPIPE\":70,\"EROFS\":69,\"EMLINK\":34,\"EPIPE\":64,\"EDOM\":18,\"ERANGE\":68,\"ENOMSG\":49,\"EIDRM\":24,\"ECHRNG\":106,\"EL2NSYNC\":156,\"EL3HLT\":107,\"EL3RST\":108,\"ELNRNG\":109,\"EUNATCH\":110,\"ENOCSI\":111,\"EL2HLT\":112,\"EDEADLK\":16,\"ENOLCK\":46,\"EBADE\":113,\"EBADR\":114,\"EXFULL\":115,\"ENOANO\":104,\"EBADRQC\":103,\"EBADSLT\":102,\"EDEADLOCK\":16,\"EBFONT\":101,\"ENOSTR\":100,\"ENODATA\":116,\"ETIME\":117,\"ENOSR\":118,\"ENONET\":119,\"ENOPKG\":120,\"EREMOTE\":121,\"ENOLINK\":47,\"EADV\":122,\"ESRMNT\":123,\"ECOMM\":124,\"EPROTO\":65,\"EMULTIHOP\":36,\"EDOTDOT\":125,\"EBADMSG\":9,\"ENOTUNIQ\":126,\"EBADFD\":127,\"EREMCHG\":128,\"ELIBACC\":129,\"ELIBBAD\":130,\"ELIBSCN\":131,\"ELIBMAX\":132,\"ELIBEXEC\":133,\"ENOSYS\":52,\"ENOTEMPTY\":55,\"ENAMETOOLONG\":37,\"ELOOP\":32,\"EOPNOTSUPP\":138,\"EPFNOSUPPORT\":139,\"ECONNRESET\":15,\"ENOBUFS\":42,\"EAFNOSUPPORT\":5,\"EPROTOTYPE\":67,\"ENOTSOCK\":57,\"ENOPROTOOPT\":50,\"ESHUTDOWN\":140,\"ECONNREFUSED\":14,\"EADDRINUSE\":3,\"ECONNABORTED\":13,\"ENETUNREACH\":40,\"ENETDOWN\":38,\"ETIMEDOUT\":73,\"EHOSTDOWN\":142,\"EHOSTUNREACH\":23,\"EINPROGRESS\":26,\"EALREADY\":7,\"EDESTADDRREQ\":17,\"EMSGSIZE\":35,\"EPROTONOSUPPORT\":66,\"ESOCKTNOSUPPORT\":137,\"EADDRNOTAVAIL\":4,\"ENETRESET\":39,\"EISCONN\":30,\"ENOTCONN\":53,\"ETOOMANYREFS\":141,\"EUSERS\":136,\"EDQUOT\":19,\"ESTALE\":72,\"ENOTSUP\":138,\"ENOMEDIUM\":148,\"EILSEQ\":25,\"EOVERFLOW\":61,\"ECANCELED\":11,\"ENOTRECOVERABLE\":56,\"EOWNERDEAD\":62,\"ESTRPIPE\":135};InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var ASSERTIONS=true;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var decodeBase64=typeof atob===\"function\"?atob:function(input){var keyStr=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";var output=\"\";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE===\"boolean\"&&ENVIRONMENT_IS_NODE){var buf=Buffer.from(s,\"base64\");return new Uint8Array(buf[\"buffer\"],buf[\"byteOffset\"],buf[\"byteLength\"])}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error(\"Converting base64 string to bytes failed.\")}}var asmLibraryArg={\"__assert_fail\":___assert_fail,\"__cxa_allocate_exception\":___cxa_allocate_exception,\"__cxa_atexit\":___cxa_atexit,\"__cxa_throw\":___cxa_throw,\"__localtime_r\":___localtime_r,\"__syscall__newselect\":___syscall__newselect,\"__syscall_chdir\":___syscall_chdir,\"__syscall_connect\":___syscall_connect,\"__syscall_fcntl64\":___syscall_fcntl64,\"__syscall_fstat64\":___syscall_fstat64,\"__syscall_getcwd\":___syscall_getcwd,\"__syscall_ioctl\":___syscall_ioctl,\"__syscall_mkdir\":___syscall_mkdir,\"__syscall_open\":___syscall_open,\"__syscall_readlink\":___syscall_readlink,\"__syscall_socket\":___syscall_socket,\"__syscall_stat64\":___syscall_stat64,\"_embind_finalize_value_object\":__embind_finalize_value_object,\"_embind_register_bigint\":__embind_register_bigint,\"_embind_register_bool\":__embind_register_bool,\"_embind_register_class\":__embind_register_class,\"_embind_register_class_class_function\":__embind_register_class_class_function,\"_embind_register_class_constructor\":__embind_register_class_constructor,\"_embind_register_class_function\":__embind_register_class_function,\"_embind_register_emval\":__embind_register_emval,\"_embind_register_float\":__embind_register_float,\"_embind_register_function\":__embind_register_function,\"_embind_register_integer\":__embind_register_integer,\"_embind_register_memory_view\":__embind_register_memory_view,\"_embind_register_std_string\":__embind_register_std_string,\"_embind_register_std_wstring\":__embind_register_std_wstring,\"_embind_register_value_object\":__embind_register_value_object,\"_embind_register_value_object_field\":__embind_register_value_object_field,\"_embind_register_void\":__embind_register_void,\"_emval_decref\":__emval_decref,\"_emval_incref\":__emval_incref,\"_emval_take_value\":__emval_take_value,\"abort\":_abort,\"emscripten_asm_const_int\":_emscripten_asm_const_int,\"emscripten_memcpy_big\":_emscripten_memcpy_big,\"emscripten_resize_heap\":_emscripten_resize_heap,\"environ_get\":_environ_get,\"environ_sizes_get\":_environ_sizes_get,\"fd_close\":_fd_close,\"fd_fdstat_get\":_fd_fdstat_get,\"fd_read\":_fd_read,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"gethostbyname\":_gethostbyname,\"gettimeofday\":_gettimeofday,\"setTempRet0\":_setTempRet0,\"strftime\":_strftime,\"strftime_l\":_strftime_l,\"time\":_time};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=createExportWrapper(\"__wasm_call_ctors\");var _malloc=Module[\"_malloc\"]=createExportWrapper(\"malloc\");var _free=Module[\"_free\"]=createExportWrapper(\"free\");var ___errno_location=Module[\"___errno_location\"]=createExportWrapper(\"__errno_location\");var _htons=Module[\"_htons\"]=createExportWrapper(\"htons\");var ___getTypeName=Module[\"___getTypeName\"]=createExportWrapper(\"__getTypeName\");var ___embind_register_native_and_builtin_types=Module[\"___embind_register_native_and_builtin_types\"]=createExportWrapper(\"__embind_register_native_and_builtin_types\");var _ntohs=Module[\"_ntohs\"]=createExportWrapper(\"ntohs\");var _fflush=Module[\"_fflush\"]=createExportWrapper(\"fflush\");var __get_tzname=Module[\"__get_tzname\"]=createExportWrapper(\"_get_tzname\");var __get_daylight=Module[\"__get_daylight\"]=createExportWrapper(\"_get_daylight\");var __get_timezone=Module[\"__get_timezone\"]=createExportWrapper(\"_get_timezone\");var stackSave=Module[\"stackSave\"]=createExportWrapper(\"stackSave\");var stackRestore=Module[\"stackRestore\"]=createExportWrapper(\"stackRestore\");var stackAlloc=Module[\"stackAlloc\"]=createExportWrapper(\"stackAlloc\");var _emscripten_stack_init=Module[\"_emscripten_stack_init\"]=function(){return(_emscripten_stack_init=Module[\"_emscripten_stack_init\"]=Module[\"asm\"][\"emscripten_stack_init\"]).apply(null,arguments)};var _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)};var _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)};var dynCall_iiij=Module[\"dynCall_iiij\"]=createExportWrapper(\"dynCall_iiij\");var dynCall_jiji=Module[\"dynCall_jiji\"]=createExportWrapper(\"dynCall_jiji\");var dynCall_iiiiij=Module[\"dynCall_iiiiij\"]=createExportWrapper(\"dynCall_iiiiij\");var dynCall_iiiiijj=Module[\"dynCall_iiiiijj\"]=createExportWrapper(\"dynCall_iiiiijj\");var dynCall_iiiiiijj=Module[\"dynCall_iiiiiijj\"]=createExportWrapper(\"dynCall_iiiiiijj\");var dynCall_viijii=Module[\"dynCall_viijii\"]=createExportWrapper(\"dynCall_viijii\");if(!Object.getOwnPropertyDescriptor(Module,\"intArrayFromString\"))Module[\"intArrayFromString\"]=function(){abort(\"'intArrayFromString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"intArrayToString\"))Module[\"intArrayToString\"]=function(){abort(\"'intArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ccall\"))Module[\"ccall\"]=function(){abort(\"'ccall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"cwrap\"))Module[\"cwrap\"]=function(){abort(\"'cwrap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setValue\"))Module[\"setValue\"]=function(){abort(\"'setValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getValue\"))Module[\"getValue\"]=function(){abort(\"'getValue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"allocate\"))Module[\"allocate\"]=function(){abort(\"'allocate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"UTF8ArrayToString\"))Module[\"UTF8ArrayToString\"]=function(){abort(\"'UTF8ArrayToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"UTF8ToString\"]=UTF8ToString;if(!Object.getOwnPropertyDescriptor(Module,\"stringToUTF8Array\"))Module[\"stringToUTF8Array\"]=function(){abort(\"'stringToUTF8Array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"stringToUTF8\"]=stringToUTF8;if(!Object.getOwnPropertyDescriptor(Module,\"lengthBytesUTF8\"))Module[\"lengthBytesUTF8\"]=function(){abort(\"'lengthBytesUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stackTrace\"))Module[\"stackTrace\"]=function(){abort(\"'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addOnPreRun\"))Module[\"addOnPreRun\"]=function(){abort(\"'addOnPreRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addOnInit\"))Module[\"addOnInit\"]=function(){abort(\"'addOnInit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addOnPreMain\"))Module[\"addOnPreMain\"]=function(){abort(\"'addOnPreMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addOnExit\"))Module[\"addOnExit\"]=function(){abort(\"'addOnExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addOnPostRun\"))Module[\"addOnPostRun\"]=function(){abort(\"'addOnPostRun' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeStringToMemory\"))Module[\"writeStringToMemory\"]=function(){abort(\"'writeStringToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeArrayToMemory\"))Module[\"writeArrayToMemory\"]=function(){abort(\"'writeArrayToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeAsciiToMemory\"))Module[\"writeAsciiToMemory\"]=function(){abort(\"'writeAsciiToMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"addRunDependency\"]=addRunDependency;Module[\"removeRunDependency\"]=removeRunDependency;if(!Object.getOwnPropertyDescriptor(Module,\"FS_createFolder\"))Module[\"FS_createFolder\"]=function(){abort(\"'FS_createFolder' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"FS_createPath\"]=FS.createPath;Module[\"FS_createDataFile\"]=FS.createDataFile;Module[\"FS_createPreloadedFile\"]=FS.createPreloadedFile;Module[\"FS_createLazyFile\"]=FS.createLazyFile;if(!Object.getOwnPropertyDescriptor(Module,\"FS_createLink\"))Module[\"FS_createLink\"]=function(){abort(\"'FS_createLink' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"FS_createDevice\"]=FS.createDevice;Module[\"FS_unlink\"]=FS.unlink;if(!Object.getOwnPropertyDescriptor(Module,\"getLEB\"))Module[\"getLEB\"]=function(){abort(\"'getLEB' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getFunctionTables\"))Module[\"getFunctionTables\"]=function(){abort(\"'getFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"alignFunctionTables\"))Module[\"alignFunctionTables\"]=function(){abort(\"'alignFunctionTables' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerFunctions\"))Module[\"registerFunctions\"]=function(){abort(\"'registerFunctions' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"addFunction\"))Module[\"addFunction\"]=function(){abort(\"'addFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"removeFunction\"))Module[\"removeFunction\"]=function(){abort(\"'removeFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getFuncWrapper\"))Module[\"getFuncWrapper\"]=function(){abort(\"'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"prettyPrint\"))Module[\"prettyPrint\"]=function(){abort(\"'prettyPrint' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"dynCall\"))Module[\"dynCall\"]=function(){abort(\"'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getCompilerSetting\"))Module[\"getCompilerSetting\"]=function(){abort(\"'getCompilerSetting' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"print\"))Module[\"print\"]=function(){abort(\"'print' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"printErr\"))Module[\"printErr\"]=function(){abort(\"'printErr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getTempRet0\"))Module[\"getTempRet0\"]=function(){abort(\"'getTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setTempRet0\"))Module[\"setTempRet0\"]=function(){abort(\"'setTempRet0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"callMain\"))Module[\"callMain\"]=function(){abort(\"'callMain' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"abort\"))Module[\"abort\"]=function(){abort(\"'abort' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"keepRuntimeAlive\"))Module[\"keepRuntimeAlive\"]=function(){abort(\"'keepRuntimeAlive' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"zeroMemory\"))Module[\"zeroMemory\"]=function(){abort(\"'zeroMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stringToNewUTF8\"))Module[\"stringToNewUTF8\"]=function(){abort(\"'stringToNewUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setFileTime\"))Module[\"setFileTime\"]=function(){abort(\"'setFileTime' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emscripten_realloc_buffer\"))Module[\"emscripten_realloc_buffer\"]=function(){abort(\"'emscripten_realloc_buffer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ENV\"))Module[\"ENV\"]=function(){abort(\"'ENV' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"withStackSave\"))Module[\"withStackSave\"]=function(){abort(\"'withStackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ERRNO_CODES\"))Module[\"ERRNO_CODES\"]=function(){abort(\"'ERRNO_CODES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ERRNO_MESSAGES\"))Module[\"ERRNO_MESSAGES\"]=function(){abort(\"'ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setErrNo\"))Module[\"setErrNo\"]=function(){abort(\"'setErrNo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"inetPton4\"))Module[\"inetPton4\"]=function(){abort(\"'inetPton4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"inetNtop4\"))Module[\"inetNtop4\"]=function(){abort(\"'inetNtop4' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"inetPton6\"))Module[\"inetPton6\"]=function(){abort(\"'inetPton6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"inetNtop6\"))Module[\"inetNtop6\"]=function(){abort(\"'inetNtop6' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readSockaddr\"))Module[\"readSockaddr\"]=function(){abort(\"'readSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeSockaddr\"))Module[\"writeSockaddr\"]=function(){abort(\"'writeSockaddr' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"DNS\"))Module[\"DNS\"]=function(){abort(\"'DNS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getHostByName\"))Module[\"getHostByName\"]=function(){abort(\"'getHostByName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GAI_ERRNO_MESSAGES\"))Module[\"GAI_ERRNO_MESSAGES\"]=function(){abort(\"'GAI_ERRNO_MESSAGES' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"Protocols\"))Module[\"Protocols\"]=function(){abort(\"'Protocols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"Sockets\"))Module[\"Sockets\"]=function(){abort(\"'Sockets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getRandomDevice\"))Module[\"getRandomDevice\"]=function(){abort(\"'getRandomDevice' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"traverseStack\"))Module[\"traverseStack\"]=function(){abort(\"'traverseStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"UNWIND_CACHE\"))Module[\"UNWIND_CACHE\"]=function(){abort(\"'UNWIND_CACHE' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readAsmConstArgsArray\"))Module[\"readAsmConstArgsArray\"]=function(){abort(\"'readAsmConstArgsArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readAsmConstArgs\"))Module[\"readAsmConstArgs\"]=function(){abort(\"'readAsmConstArgs' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"mainThreadEM_ASM\"))Module[\"mainThreadEM_ASM\"]=function(){abort(\"'mainThreadEM_ASM' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"jstoi_q\"))Module[\"jstoi_q\"]=function(){abort(\"'jstoi_q' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"jstoi_s\"))Module[\"jstoi_s\"]=function(){abort(\"'jstoi_s' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getExecutableName\"))Module[\"getExecutableName\"]=function(){abort(\"'getExecutableName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"listenOnce\"))Module[\"listenOnce\"]=function(){abort(\"'listenOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"autoResumeAudioContext\"))Module[\"autoResumeAudioContext\"]=function(){abort(\"'autoResumeAudioContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"dynCallLegacy\"))Module[\"dynCallLegacy\"]=function(){abort(\"'dynCallLegacy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getDynCaller\"))Module[\"getDynCaller\"]=function(){abort(\"'getDynCaller' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"dynCall\"))Module[\"dynCall\"]=function(){abort(\"'dynCall' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"callRuntimeCallbacks\"))Module[\"callRuntimeCallbacks\"]=function(){abort(\"'callRuntimeCallbacks' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"wasmTableMirror\"))Module[\"wasmTableMirror\"]=function(){abort(\"'wasmTableMirror' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setWasmTableEntry\"))Module[\"setWasmTableEntry\"]=function(){abort(\"'setWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getWasmTableEntry\"))Module[\"getWasmTableEntry\"]=function(){abort(\"'getWasmTableEntry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"handleException\"))Module[\"handleException\"]=function(){abort(\"'handleException' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"runtimeKeepalivePush\"))Module[\"runtimeKeepalivePush\"]=function(){abort(\"'runtimeKeepalivePush' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"runtimeKeepalivePop\"))Module[\"runtimeKeepalivePop\"]=function(){abort(\"'runtimeKeepalivePop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"callUserCallback\"))Module[\"callUserCallback\"]=function(){abort(\"'callUserCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"maybeExit\"))Module[\"maybeExit\"]=function(){abort(\"'maybeExit' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"safeSetTimeout\"))Module[\"safeSetTimeout\"]=function(){abort(\"'safeSetTimeout' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"asmjsMangle\"))Module[\"asmjsMangle\"]=function(){abort(\"'asmjsMangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"asyncLoad\"))Module[\"asyncLoad\"]=function(){abort(\"'asyncLoad' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"alignMemory\"))Module[\"alignMemory\"]=function(){abort(\"'alignMemory' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"mmapAlloc\"))Module[\"mmapAlloc\"]=function(){abort(\"'mmapAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"reallyNegative\"))Module[\"reallyNegative\"]=function(){abort(\"'reallyNegative' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"unSign\"))Module[\"unSign\"]=function(){abort(\"'unSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"reSign\"))Module[\"reSign\"]=function(){abort(\"'reSign' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"formatString\"))Module[\"formatString\"]=function(){abort(\"'formatString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"PATH\"))Module[\"PATH\"]=function(){abort(\"'PATH' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"PATH_FS\"))Module[\"PATH_FS\"]=function(){abort(\"'PATH_FS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SYSCALLS\"))Module[\"SYSCALLS\"]=function(){abort(\"'SYSCALLS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"syscallMmap2\"))Module[\"syscallMmap2\"]=function(){abort(\"'syscallMmap2' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"syscallMunmap\"))Module[\"syscallMunmap\"]=function(){abort(\"'syscallMunmap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getSocketFromFD\"))Module[\"getSocketFromFD\"]=function(){abort(\"'getSocketFromFD' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getSocketAddress\"))Module[\"getSocketAddress\"]=function(){abort(\"'getSocketAddress' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"JSEvents\"))Module[\"JSEvents\"]=function(){abort(\"'JSEvents' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerKeyEventCallback\"))Module[\"registerKeyEventCallback\"]=function(){abort(\"'registerKeyEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"specialHTMLTargets\"))Module[\"specialHTMLTargets\"]=function(){abort(\"'specialHTMLTargets' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"maybeCStringToJsString\"))Module[\"maybeCStringToJsString\"]=function(){abort(\"'maybeCStringToJsString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"findEventTarget\"))Module[\"findEventTarget\"]=function(){abort(\"'findEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"findCanvasEventTarget\"))Module[\"findCanvasEventTarget\"]=function(){abort(\"'findCanvasEventTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getBoundingClientRect\"))Module[\"getBoundingClientRect\"]=function(){abort(\"'getBoundingClientRect' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillMouseEventData\"))Module[\"fillMouseEventData\"]=function(){abort(\"'fillMouseEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerMouseEventCallback\"))Module[\"registerMouseEventCallback\"]=function(){abort(\"'registerMouseEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerWheelEventCallback\"))Module[\"registerWheelEventCallback\"]=function(){abort(\"'registerWheelEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerUiEventCallback\"))Module[\"registerUiEventCallback\"]=function(){abort(\"'registerUiEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerFocusEventCallback\"))Module[\"registerFocusEventCallback\"]=function(){abort(\"'registerFocusEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillDeviceOrientationEventData\"))Module[\"fillDeviceOrientationEventData\"]=function(){abort(\"'fillDeviceOrientationEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerDeviceOrientationEventCallback\"))Module[\"registerDeviceOrientationEventCallback\"]=function(){abort(\"'registerDeviceOrientationEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillDeviceMotionEventData\"))Module[\"fillDeviceMotionEventData\"]=function(){abort(\"'fillDeviceMotionEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerDeviceMotionEventCallback\"))Module[\"registerDeviceMotionEventCallback\"]=function(){abort(\"'registerDeviceMotionEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"screenOrientation\"))Module[\"screenOrientation\"]=function(){abort(\"'screenOrientation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillOrientationChangeEventData\"))Module[\"fillOrientationChangeEventData\"]=function(){abort(\"'fillOrientationChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerOrientationChangeEventCallback\"))Module[\"registerOrientationChangeEventCallback\"]=function(){abort(\"'registerOrientationChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillFullscreenChangeEventData\"))Module[\"fillFullscreenChangeEventData\"]=function(){abort(\"'fillFullscreenChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerFullscreenChangeEventCallback\"))Module[\"registerFullscreenChangeEventCallback\"]=function(){abort(\"'registerFullscreenChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerRestoreOldStyle\"))Module[\"registerRestoreOldStyle\"]=function(){abort(\"'registerRestoreOldStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"hideEverythingExceptGivenElement\"))Module[\"hideEverythingExceptGivenElement\"]=function(){abort(\"'hideEverythingExceptGivenElement' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"restoreHiddenElements\"))Module[\"restoreHiddenElements\"]=function(){abort(\"'restoreHiddenElements' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setLetterbox\"))Module[\"setLetterbox\"]=function(){abort(\"'setLetterbox' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"currentFullscreenStrategy\"))Module[\"currentFullscreenStrategy\"]=function(){abort(\"'currentFullscreenStrategy' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"restoreOldWindowedStyle\"))Module[\"restoreOldWindowedStyle\"]=function(){abort(\"'restoreOldWindowedStyle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"softFullscreenResizeWebGLRenderTarget\"))Module[\"softFullscreenResizeWebGLRenderTarget\"]=function(){abort(\"'softFullscreenResizeWebGLRenderTarget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"doRequestFullscreen\"))Module[\"doRequestFullscreen\"]=function(){abort(\"'doRequestFullscreen' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillPointerlockChangeEventData\"))Module[\"fillPointerlockChangeEventData\"]=function(){abort(\"'fillPointerlockChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerPointerlockChangeEventCallback\"))Module[\"registerPointerlockChangeEventCallback\"]=function(){abort(\"'registerPointerlockChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerPointerlockErrorEventCallback\"))Module[\"registerPointerlockErrorEventCallback\"]=function(){abort(\"'registerPointerlockErrorEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"requestPointerLock\"))Module[\"requestPointerLock\"]=function(){abort(\"'requestPointerLock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillVisibilityChangeEventData\"))Module[\"fillVisibilityChangeEventData\"]=function(){abort(\"'fillVisibilityChangeEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerVisibilityChangeEventCallback\"))Module[\"registerVisibilityChangeEventCallback\"]=function(){abort(\"'registerVisibilityChangeEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerTouchEventCallback\"))Module[\"registerTouchEventCallback\"]=function(){abort(\"'registerTouchEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillGamepadEventData\"))Module[\"fillGamepadEventData\"]=function(){abort(\"'fillGamepadEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerGamepadEventCallback\"))Module[\"registerGamepadEventCallback\"]=function(){abort(\"'registerGamepadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerBeforeUnloadEventCallback\"))Module[\"registerBeforeUnloadEventCallback\"]=function(){abort(\"'registerBeforeUnloadEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"fillBatteryEventData\"))Module[\"fillBatteryEventData\"]=function(){abort(\"'fillBatteryEventData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"battery\"))Module[\"battery\"]=function(){abort(\"'battery' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerBatteryEventCallback\"))Module[\"registerBatteryEventCallback\"]=function(){abort(\"'registerBatteryEventCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setCanvasElementSize\"))Module[\"setCanvasElementSize\"]=function(){abort(\"'setCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getCanvasElementSize\"))Module[\"getCanvasElementSize\"]=function(){abort(\"'getCanvasElementSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"demangle\"))Module[\"demangle\"]=function(){abort(\"'demangle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"demangleAll\"))Module[\"demangleAll\"]=function(){abort(\"'demangleAll' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"jsStackTrace\"))Module[\"jsStackTrace\"]=function(){abort(\"'jsStackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stackTrace\"))Module[\"stackTrace\"]=function(){abort(\"'stackTrace' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getEnvStrings\"))Module[\"getEnvStrings\"]=function(){abort(\"'getEnvStrings' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"checkWasiClock\"))Module[\"checkWasiClock\"]=function(){abort(\"'checkWasiClock' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeI53ToI64\"))Module[\"writeI53ToI64\"]=function(){abort(\"'writeI53ToI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeI53ToI64Clamped\"))Module[\"writeI53ToI64Clamped\"]=function(){abort(\"'writeI53ToI64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeI53ToI64Signaling\"))Module[\"writeI53ToI64Signaling\"]=function(){abort(\"'writeI53ToI64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeI53ToU64Clamped\"))Module[\"writeI53ToU64Clamped\"]=function(){abort(\"'writeI53ToU64Clamped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeI53ToU64Signaling\"))Module[\"writeI53ToU64Signaling\"]=function(){abort(\"'writeI53ToU64Signaling' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readI53FromI64\"))Module[\"readI53FromI64\"]=function(){abort(\"'readI53FromI64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readI53FromU64\"))Module[\"readI53FromU64\"]=function(){abort(\"'readI53FromU64' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"convertI32PairToI53\"))Module[\"convertI32PairToI53\"]=function(){abort(\"'convertI32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"convertU32PairToI53\"))Module[\"convertU32PairToI53\"]=function(){abort(\"'convertU32PairToI53' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setImmediateWrapped\"))Module[\"setImmediateWrapped\"]=function(){abort(\"'setImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"clearImmediateWrapped\"))Module[\"clearImmediateWrapped\"]=function(){abort(\"'clearImmediateWrapped' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"polyfillSetImmediate\"))Module[\"polyfillSetImmediate\"]=function(){abort(\"'polyfillSetImmediate' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"uncaughtExceptionCount\"))Module[\"uncaughtExceptionCount\"]=function(){abort(\"'uncaughtExceptionCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"exceptionLast\"))Module[\"exceptionLast\"]=function(){abort(\"'exceptionLast' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"exceptionCaught\"))Module[\"exceptionCaught\"]=function(){abort(\"'exceptionCaught' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ExceptionInfo\"))Module[\"ExceptionInfo\"]=function(){abort(\"'ExceptionInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"CatchInfo\"))Module[\"CatchInfo\"]=function(){abort(\"'CatchInfo' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"exception_addRef\"))Module[\"exception_addRef\"]=function(){abort(\"'exception_addRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"exception_decRef\"))Module[\"exception_decRef\"]=function(){abort(\"'exception_decRef' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"Browser\"))Module[\"Browser\"]=function(){abort(\"'Browser' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"funcWrappers\"))Module[\"funcWrappers\"]=function(){abort(\"'funcWrappers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getFuncWrapper\"))Module[\"getFuncWrapper\"]=function(){abort(\"'getFuncWrapper' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setMainLoop\"))Module[\"setMainLoop\"]=function(){abort(\"'setMainLoop' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"wget\"))Module[\"wget\"]=function(){abort(\"'wget' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"FS\"]=FS;if(!Object.getOwnPropertyDescriptor(Module,\"MEMFS\"))Module[\"MEMFS\"]=function(){abort(\"'MEMFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"TTY\"))Module[\"TTY\"]=function(){abort(\"'TTY' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"PIPEFS\"))Module[\"PIPEFS\"]=function(){abort(\"'PIPEFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SOCKFS\"))Module[\"SOCKFS\"]=function(){abort(\"'SOCKFS' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"_setNetworkCallback\"))Module[\"_setNetworkCallback\"]=function(){abort(\"'_setNetworkCallback' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"tempFixedLengthArray\"))Module[\"tempFixedLengthArray\"]=function(){abort(\"'tempFixedLengthArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"miniTempWebGLFloatBuffers\"))Module[\"miniTempWebGLFloatBuffers\"]=function(){abort(\"'miniTempWebGLFloatBuffers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"heapObjectForWebGLType\"))Module[\"heapObjectForWebGLType\"]=function(){abort(\"'heapObjectForWebGLType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"heapAccessShiftForWebGLHeap\"))Module[\"heapAccessShiftForWebGLHeap\"]=function(){abort(\"'heapAccessShiftForWebGLHeap' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GL\"))Module[\"GL\"]=function(){abort(\"'GL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emscriptenWebGLGet\"))Module[\"emscriptenWebGLGet\"]=function(){abort(\"'emscriptenWebGLGet' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"computeUnpackAlignedImageSize\"))Module[\"computeUnpackAlignedImageSize\"]=function(){abort(\"'computeUnpackAlignedImageSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emscriptenWebGLGetTexPixelData\"))Module[\"emscriptenWebGLGetTexPixelData\"]=function(){abort(\"'emscriptenWebGLGetTexPixelData' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emscriptenWebGLGetUniform\"))Module[\"emscriptenWebGLGetUniform\"]=function(){abort(\"'emscriptenWebGLGetUniform' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"webglGetUniformLocation\"))Module[\"webglGetUniformLocation\"]=function(){abort(\"'webglGetUniformLocation' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"webglPrepareUniformLocationsBeforeFirstUse\"))Module[\"webglPrepareUniformLocationsBeforeFirstUse\"]=function(){abort(\"'webglPrepareUniformLocationsBeforeFirstUse' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"webglGetLeftBracePos\"))Module[\"webglGetLeftBracePos\"]=function(){abort(\"'webglGetLeftBracePos' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emscriptenWebGLGetVertexAttrib\"))Module[\"emscriptenWebGLGetVertexAttrib\"]=function(){abort(\"'emscriptenWebGLGetVertexAttrib' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"writeGLArray\"))Module[\"writeGLArray\"]=function(){abort(\"'writeGLArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"AL\"))Module[\"AL\"]=function(){abort(\"'AL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SDL_unicode\"))Module[\"SDL_unicode\"]=function(){abort(\"'SDL_unicode' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SDL_ttfContext\"))Module[\"SDL_ttfContext\"]=function(){abort(\"'SDL_ttfContext' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SDL_audio\"))Module[\"SDL_audio\"]=function(){abort(\"'SDL_audio' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SDL\"))Module[\"SDL\"]=function(){abort(\"'SDL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"SDL_gfx\"))Module[\"SDL_gfx\"]=function(){abort(\"'SDL_gfx' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GLUT\"))Module[\"GLUT\"]=function(){abort(\"'GLUT' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"EGL\"))Module[\"EGL\"]=function(){abort(\"'EGL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GLFW_Window\"))Module[\"GLFW_Window\"]=function(){abort(\"'GLFW_Window' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GLFW\"))Module[\"GLFW\"]=function(){abort(\"'GLFW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"GLEW\"))Module[\"GLEW\"]=function(){abort(\"'GLEW' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"IDBStore\"))Module[\"IDBStore\"]=function(){abort(\"'IDBStore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"runAndAbortIfError\"))Module[\"runAndAbortIfError\"]=function(){abort(\"'runAndAbortIfError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_handle_array\"))Module[\"emval_handle_array\"]=function(){abort(\"'emval_handle_array' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_free_list\"))Module[\"emval_free_list\"]=function(){abort(\"'emval_free_list' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_symbols\"))Module[\"emval_symbols\"]=function(){abort(\"'emval_symbols' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"init_emval\"))Module[\"init_emval\"]=function(){abort(\"'init_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"count_emval_handles\"))Module[\"count_emval_handles\"]=function(){abort(\"'count_emval_handles' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"get_first_emval\"))Module[\"get_first_emval\"]=function(){abort(\"'get_first_emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getStringOrSymbol\"))Module[\"getStringOrSymbol\"]=function(){abort(\"'getStringOrSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"Emval\"))Module[\"Emval\"]=function(){abort(\"'Emval' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_newers\"))Module[\"emval_newers\"]=function(){abort(\"'emval_newers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"craftEmvalAllocator\"))Module[\"craftEmvalAllocator\"]=function(){abort(\"'craftEmvalAllocator' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_get_global\"))Module[\"emval_get_global\"]=function(){abort(\"'emval_get_global' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"emval_methodCallers\"))Module[\"emval_methodCallers\"]=function(){abort(\"'emval_methodCallers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"InternalError\"))Module[\"InternalError\"]=function(){abort(\"'InternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"BindingError\"))Module[\"BindingError\"]=function(){abort(\"'BindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"UnboundTypeError\"))Module[\"UnboundTypeError\"]=function(){abort(\"'UnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"PureVirtualError\"))Module[\"PureVirtualError\"]=function(){abort(\"'PureVirtualError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"init_embind\"))Module[\"init_embind\"]=function(){abort(\"'init_embind' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"throwInternalError\"))Module[\"throwInternalError\"]=function(){abort(\"'throwInternalError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"throwBindingError\"))Module[\"throwBindingError\"]=function(){abort(\"'throwBindingError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"throwUnboundTypeError\"))Module[\"throwUnboundTypeError\"]=function(){abort(\"'throwUnboundTypeError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ensureOverloadTable\"))Module[\"ensureOverloadTable\"]=function(){abort(\"'ensureOverloadTable' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"exposePublicSymbol\"))Module[\"exposePublicSymbol\"]=function(){abort(\"'exposePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"replacePublicSymbol\"))Module[\"replacePublicSymbol\"]=function(){abort(\"'replacePublicSymbol' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"extendError\"))Module[\"extendError\"]=function(){abort(\"'extendError' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"createNamedFunction\"))Module[\"createNamedFunction\"]=function(){abort(\"'createNamedFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registeredInstances\"))Module[\"registeredInstances\"]=function(){abort(\"'registeredInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getBasestPointer\"))Module[\"getBasestPointer\"]=function(){abort(\"'getBasestPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerInheritedInstance\"))Module[\"registerInheritedInstance\"]=function(){abort(\"'registerInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"unregisterInheritedInstance\"))Module[\"unregisterInheritedInstance\"]=function(){abort(\"'unregisterInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getInheritedInstance\"))Module[\"getInheritedInstance\"]=function(){abort(\"'getInheritedInstance' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getInheritedInstanceCount\"))Module[\"getInheritedInstanceCount\"]=function(){abort(\"'getInheritedInstanceCount' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getLiveInheritedInstances\"))Module[\"getLiveInheritedInstances\"]=function(){abort(\"'getLiveInheritedInstances' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registeredTypes\"))Module[\"registeredTypes\"]=function(){abort(\"'registeredTypes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"awaitingDependencies\"))Module[\"awaitingDependencies\"]=function(){abort(\"'awaitingDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"typeDependencies\"))Module[\"typeDependencies\"]=function(){abort(\"'typeDependencies' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registeredPointers\"))Module[\"registeredPointers\"]=function(){abort(\"'registeredPointers' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"registerType\"))Module[\"registerType\"]=function(){abort(\"'registerType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"whenDependentTypesAreResolved\"))Module[\"whenDependentTypesAreResolved\"]=function(){abort(\"'whenDependentTypesAreResolved' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"embind_charCodes\"))Module[\"embind_charCodes\"]=function(){abort(\"'embind_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"embind_init_charCodes\"))Module[\"embind_init_charCodes\"]=function(){abort(\"'embind_init_charCodes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"readLatin1String\"))Module[\"readLatin1String\"]=function(){abort(\"'readLatin1String' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getTypeName\"))Module[\"getTypeName\"]=function(){abort(\"'getTypeName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"heap32VectorToArray\"))Module[\"heap32VectorToArray\"]=function(){abort(\"'heap32VectorToArray' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"requireRegisteredType\"))Module[\"requireRegisteredType\"]=function(){abort(\"'requireRegisteredType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"getShiftFromSize\"))Module[\"getShiftFromSize\"]=function(){abort(\"'getShiftFromSize' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"integerReadValueFromPointer\"))Module[\"integerReadValueFromPointer\"]=function(){abort(\"'integerReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"enumReadValueFromPointer\"))Module[\"enumReadValueFromPointer\"]=function(){abort(\"'enumReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"floatReadValueFromPointer\"))Module[\"floatReadValueFromPointer\"]=function(){abort(\"'floatReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"simpleReadValueFromPointer\"))Module[\"simpleReadValueFromPointer\"]=function(){abort(\"'simpleReadValueFromPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"runDestructors\"))Module[\"runDestructors\"]=function(){abort(\"'runDestructors' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"new_\"))Module[\"new_\"]=function(){abort(\"'new_' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"craftInvokerFunction\"))Module[\"craftInvokerFunction\"]=function(){abort(\"'craftInvokerFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"embind__requireFunction\"))Module[\"embind__requireFunction\"]=function(){abort(\"'embind__requireFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"tupleRegistrations\"))Module[\"tupleRegistrations\"]=function(){abort(\"'tupleRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"structRegistrations\"))Module[\"structRegistrations\"]=function(){abort(\"'structRegistrations' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"genericPointerToWireType\"))Module[\"genericPointerToWireType\"]=function(){abort(\"'genericPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"constNoSmartPtrRawPointerToWireType\"))Module[\"constNoSmartPtrRawPointerToWireType\"]=function(){abort(\"'constNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"nonConstNoSmartPtrRawPointerToWireType\"))Module[\"nonConstNoSmartPtrRawPointerToWireType\"]=function(){abort(\"'nonConstNoSmartPtrRawPointerToWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"init_RegisteredPointer\"))Module[\"init_RegisteredPointer\"]=function(){abort(\"'init_RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredPointer\"))Module[\"RegisteredPointer\"]=function(){abort(\"'RegisteredPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredPointer_getPointee\"))Module[\"RegisteredPointer_getPointee\"]=function(){abort(\"'RegisteredPointer_getPointee' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredPointer_destructor\"))Module[\"RegisteredPointer_destructor\"]=function(){abort(\"'RegisteredPointer_destructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredPointer_deleteObject\"))Module[\"RegisteredPointer_deleteObject\"]=function(){abort(\"'RegisteredPointer_deleteObject' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredPointer_fromWireType\"))Module[\"RegisteredPointer_fromWireType\"]=function(){abort(\"'RegisteredPointer_fromWireType' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"runDestructor\"))Module[\"runDestructor\"]=function(){abort(\"'runDestructor' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"releaseClassHandle\"))Module[\"releaseClassHandle\"]=function(){abort(\"'releaseClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"finalizationRegistry\"))Module[\"finalizationRegistry\"]=function(){abort(\"'finalizationRegistry' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"detachFinalizer_deps\"))Module[\"detachFinalizer_deps\"]=function(){abort(\"'detachFinalizer_deps' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"detachFinalizer\"))Module[\"detachFinalizer\"]=function(){abort(\"'detachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"attachFinalizer\"))Module[\"attachFinalizer\"]=function(){abort(\"'attachFinalizer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"makeClassHandle\"))Module[\"makeClassHandle\"]=function(){abort(\"'makeClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"init_ClassHandle\"))Module[\"init_ClassHandle\"]=function(){abort(\"'init_ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle\"))Module[\"ClassHandle\"]=function(){abort(\"'ClassHandle' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle_isAliasOf\"))Module[\"ClassHandle_isAliasOf\"]=function(){abort(\"'ClassHandle_isAliasOf' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"throwInstanceAlreadyDeleted\"))Module[\"throwInstanceAlreadyDeleted\"]=function(){abort(\"'throwInstanceAlreadyDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle_clone\"))Module[\"ClassHandle_clone\"]=function(){abort(\"'ClassHandle_clone' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle_delete\"))Module[\"ClassHandle_delete\"]=function(){abort(\"'ClassHandle_delete' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"deletionQueue\"))Module[\"deletionQueue\"]=function(){abort(\"'deletionQueue' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle_isDeleted\"))Module[\"ClassHandle_isDeleted\"]=function(){abort(\"'ClassHandle_isDeleted' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"ClassHandle_deleteLater\"))Module[\"ClassHandle_deleteLater\"]=function(){abort(\"'ClassHandle_deleteLater' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"flushPendingDeletes\"))Module[\"flushPendingDeletes\"]=function(){abort(\"'flushPendingDeletes' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"delayFunction\"))Module[\"delayFunction\"]=function(){abort(\"'delayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"setDelayFunction\"))Module[\"setDelayFunction\"]=function(){abort(\"'setDelayFunction' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"RegisteredClass\"))Module[\"RegisteredClass\"]=function(){abort(\"'RegisteredClass' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"shallowCopyInternalPointer\"))Module[\"shallowCopyInternalPointer\"]=function(){abort(\"'shallowCopyInternalPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"downcastPointer\"))Module[\"downcastPointer\"]=function(){abort(\"'downcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"upcastPointer\"))Module[\"upcastPointer\"]=function(){abort(\"'upcastPointer' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"validateThis\"))Module[\"validateThis\"]=function(){abort(\"'validateThis' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"char_0\"))Module[\"char_0\"]=function(){abort(\"'char_0' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"char_9\"))Module[\"char_9\"]=function(){abort(\"'char_9' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"makeLegalFunctionName\"))Module[\"makeLegalFunctionName\"]=function(){abort(\"'makeLegalFunctionName' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"warnOnce\"))Module[\"warnOnce\"]=function(){abort(\"'warnOnce' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stackSave\"))Module[\"stackSave\"]=function(){abort(\"'stackSave' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stackRestore\"))Module[\"stackRestore\"]=function(){abort(\"'stackRestore' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stackAlloc\"))Module[\"stackAlloc\"]=function(){abort(\"'stackAlloc' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"AsciiToString\"))Module[\"AsciiToString\"]=function(){abort(\"'AsciiToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stringToAscii\"))Module[\"stringToAscii\"]=function(){abort(\"'stringToAscii' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"UTF16ToString\"))Module[\"UTF16ToString\"]=function(){abort(\"'UTF16ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stringToUTF16\"))Module[\"stringToUTF16\"]=function(){abort(\"'stringToUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"lengthBytesUTF16\"))Module[\"lengthBytesUTF16\"]=function(){abort(\"'lengthBytesUTF16' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"UTF32ToString\"))Module[\"UTF32ToString\"]=function(){abort(\"'UTF32ToString' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"stringToUTF32\"))Module[\"stringToUTF32\"]=function(){abort(\"'stringToUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"lengthBytesUTF32\"))Module[\"lengthBytesUTF32\"]=function(){abort(\"'lengthBytesUTF32' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"allocateUTF8\"))Module[\"allocateUTF8\"]=function(){abort(\"'allocateUTF8' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};if(!Object.getOwnPropertyDescriptor(Module,\"allocateUTF8OnStack\"))Module[\"allocateUTF8OnStack\"]=function(){abort(\"'allocateUTF8OnStack' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")};Module[\"writeStackCookie\"]=writeStackCookie;Module[\"checkStackCookie\"]=checkStackCookie;if(!Object.getOwnPropertyDescriptor(Module,\"ALLOC_NORMAL\"))Object.defineProperty(Module,\"ALLOC_NORMAL\",{configurable:true,get:function(){abort(\"'ALLOC_NORMAL' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")}});if(!Object.getOwnPropertyDescriptor(Module,\"ALLOC_STACK\"))Object.defineProperty(Module,\"ALLOC_STACK\",{configurable:true,get:function(){abort(\"'ALLOC_STACK' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)\")}});var calledRun;function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function stackCheckInit(){_emscripten_stack_init();writeStackCookie()}function run(args){args=args||arguments_;if(runDependencies>0){return}stackCheckInit();preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(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()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}checkStackCookie()}Module[\"run\"]=run;function checkUnflushedContent(){var oldOut=out;var oldErr=err;var has=false;out=err=function(x){has=true};try{var flush=Module[\"_fflush\"];if(flush)flush(0);[\"stdout\",\"stderr\"].forEach(function(name){var info=FS.analyzePath(\"/dev/\"+name);if(!info)return;var stream=info.object;var rdev=stream.rdev;var tty=TTY.ttys[rdev];if(tty&&tty.output&&tty.output.length){has=true}})}catch(e){}out=oldOut;err=oldErr;if(has){warnOnce(\"stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.\")}}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return FaustModule.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = FaustModule;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return FaustModule; });\nelse if (typeof exports === 'object')\n exports[\"FaustModule\"] = FaustModule;\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __createBinding = function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n };\r\n\r\n __exportStar = function (m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n };\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result[\"default\"] = mod;\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n", "import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\nexports.toUtf8 = toUtf8;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toUtf8 = exports.fromUtf8 = void 0;\nconst pureJs_1 = require(\"./pureJs\");\nconst whatwgEncodingApi_1 = require(\"./whatwgEncodingApi\");\nconst fromUtf8 = (input) => typeof TextEncoder === \"function\" ? (0, whatwgEncodingApi_1.fromUtf8)(input) : (0, pureJs_1.fromUtf8)(input);\nexports.fromUtf8 = fromUtf8;\nconst toUtf8 = (input) => typeof TextDecoder === \"function\" ? (0, whatwgEncodingApi_1.toUtf8)(input) : (0, pureJs_1.toUtf8)(input);\nexports.toUtf8 = toUtf8;\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n", "// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n", "import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise<Uint8Array> {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n", "export * from \"./jsSha256\";\n", "export { default as instantiateFaustModule } from \"./instantiateFaustModule\";\r\n\r\nexport * from \"./instantiateFaustModule\";\r\n\r\nexport * from \"./exports\";\r\n", "import factoryFn from \"../libfaust-wasm/libfaust-wasm.cjs\";\r\nimport wasmBinary from \"../libfaust-wasm/libfaust-wasm.wasm\";\r\nimport dataBinary from \"../libfaust-wasm/libfaust-wasm.data\";\r\n\r\nexport const FaustModuleFactoryFn = factoryFn;\r\nexport const FaustModuleFactoryWasm = wasmBinary;\r\nexport const FaustModuleFactoryData = dataBinary;\r\n\r\n/**\r\n * Instantiate `FaustModule` using bundled binaries. Module constructor and files can be overriden.\r\n */\r\nconst instantiateFaustModule = async (FaustModuleFactoryIn = factoryFn, dataBinaryIn = dataBinary, wasmBinaryIn = wasmBinary) => {\r\n const g = globalThis as any;\r\n if (g.AudioWorkletGlobalScope) {\r\n g.importScripts = () => {};\r\n g.self = { location: { href: \"\" } };\r\n }\r\n const faustModule = await FaustModuleFactoryIn({\r\n wasmBinary: wasmBinaryIn,\r\n getPreloadedPackage: (remotePackageName: string, remotePackageSize: number) => {\r\n if (remotePackageName === \"libfaust-wasm.data\") return dataBinaryIn.buffer;\r\n return new ArrayBuffer(0);\r\n }\r\n });\r\n if (g.AudioWorkletGlobalScope) {\r\n\t\tdelete g.importScripts;\r\n\t\tdelete g.self;\r\n }\r\n return faustModule;\r\n};\r\n\r\nexport default instantiateFaustModule;\r\n", "import type { FaustModuleFactory } from \"./types\";\n\n/**\n * Load libfaust-wasm files, than instantiate libFaust\n * @param jsFile path to `libfaust-wasm.js`\n * @param dataFile path to `libfaust-wasm.data`\n * @param wasmFile path to `libfaust-wasm.wasm`\n */\nconst instantiateFaustModuleFromFile = async (jsFile: string, dataFile = jsFile.replace(/c?js$/, \"data\"), wasmFile = jsFile.replace(/c?js$/, \"wasm\")) => {\n let FaustModule: FaustModuleFactory;\n let dataBinary: ArrayBuffer;\n let wasmBinary: Uint8Array | ArrayBuffer;\n const jsCodeHead = /var (.+) = \\(/;\n if (typeof window === \"object\") {\n let jsCode = await (await fetch(jsFile)).text();\n jsCode = `${jsCode}\nexport default ${jsCode.match(jsCodeHead)?.[1]};\n`;\n const jsFileMod = URL.createObjectURL(new Blob([jsCode], { type: \"text/javascript\" }));\n FaustModule = (await import(/* webpackIgnore: true */jsFileMod)).default;\n dataBinary = await (await fetch(dataFile)).arrayBuffer();\n wasmBinary = new Uint8Array(await (await fetch(wasmFile)).arrayBuffer());\n } else {\n const { promises: fs } = await import(\"fs\");\n const { pathToFileURL } = await import(\"url\");\n let jsCode = (await fs.readFile(jsFile, { encoding: \"utf-8\" }));\n jsCode = `\nimport process from \"process\";\nimport * as path from \"path\";\nimport { createRequire } from \"module\";\nimport { fileURLToPath } from \"url\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst __filename = fileURLToPath(import.meta.url);\nconst require = createRequire(import.meta.url);\n\n${jsCode}\n\nexport default ${jsCode.match(jsCodeHead)?.[1]};\n`;\n const jsFileMod = jsFile.replace(/c?js$/, \"mjs\");\n await fs.writeFile(jsFileMod, jsCode);\n FaustModule = (await import(/* webpackIgnore: true */pathToFileURL(jsFileMod).href)).default;\n await fs.unlink(jsFileMod);\n dataBinary = (await fs.readFile(dataFile)).buffer;\n wasmBinary = (await fs.readFile(wasmFile)).buffer;\n }\n const faustModule = await FaustModule({\n wasmBinary,\n getPreloadedPackage: (remotePackageName: string, remotePackageSize: number) => {\n if (remotePackageName === \"libfaust-wasm.data\") return dataBinary;\n return new ArrayBuffer(0);\n }});\n return faustModule;\n};\n\nexport default instantiateFaustModuleFromFile;\n", "import type FaustWasmInstantiator from \"./FaustWasmInstantiator\";\nimport type { FaustBaseWebAudioDsp, FaustWebAudioDspVoice, FaustMonoWebAudioDsp, FaustPolyWebAudioDsp } from \"./FaustWebAudioDsp\";\nimport type { AudioParamDescriptor, AudioWorkletGlobalScope, LooseFaustDspFactory, FaustDspMeta, FaustUIItem, AudioWorkletProcessor } from \"./types\";\n\n/**\n * Injected in the string to be compiled on AudioWorkletProcessor side\n */\nexport interface FaustData {\n processorName: string;\n dspName: string;\n dspMeta: FaustDspMeta;\n poly: boolean;\n effectMeta?: FaustDspMeta;\n};\nexport interface FaustAudioWorkletProcessorDependencies<Poly extends boolean = false> {\n FaustBaseWebAudioDsp: typeof FaustBaseWebAudioDsp;\n FaustMonoWebAudioDsp: Poly extends true ? undefined : typeof FaustMonoWebAudioDsp;\n FaustPolyWebAudioDsp: Poly extends true ? typeof FaustPolyWebAudioDsp : undefined;\n FaustWebAudioDspVoice: Poly extends true ? typeof FaustWebAudioDspVoice : undefined;\n FaustWasmInstantiator: typeof FaustWasmInstantiator;\n}\nexport interface FaustAudioWorkletNodeOptions<Poly extends boolean = false> extends AudioWorkletNodeOptions {\n processorOptions: Poly extends true ? FaustPolyAudioWorkletProcessorOptions : FaustMonoAudioWorkletProcessorOptions;\n}\nexport interface FaustMonoAudioWorkletNodeOptions extends AudioWorkletNodeOptions {\n processorOptions: FaustMonoAudioWorkletProcessorOptions;\n}\nexport interface FaustPolyAudioWorkletNodeOptions extends AudioWorkletNodeOptions {\n processorOptions: FaustPolyAudioWorkletProcessorOptions;\n}\nexport interface FaustAudioWorkletProcessorOptions {\n name: string;\n sampleSize: number;\n}\nexport interface FaustMonoAudioWorkletProcessorOptions extends FaustAudioWorkletProcessorOptions {\n factory: LooseFaustDspFactory;\n}\nexport interface FaustPolyAudioWorkletProcessorOptions extends FaustAudioWorkletProcessorOptions {\n voiceFactory: LooseFaustDspFactory;\n mixerModule: WebAssembly.Module;\n voices: number;\n effectFactory?: LooseFaustDspFactory;\n}\n\n\n// Dynamic AudioWorkletProcessor code generator\nconst getFaustAudioWorkletProcessor = <Poly extends boolean = false>(dependencies: FaustAudioWorkletProcessorDependencies<Poly>, faustData: FaustData, register = true): typeof AudioWorkletProcessor => {\n const { registerProcessor, AudioWorkletProcessor, sampleRate } = globalThis as unknown as AudioWorkletGlobalScope;\n\n const {\n FaustBaseWebAudioDsp,\n FaustWasmInstantiator\n } = dependencies;\n \n const {\n processorName,\n dspName,\n dspMeta,\n effectMeta,\n poly\n } = faustData;\n\n // Analyse voice JSON to generate AudioParam parameters\n const analysePolyParameters = (item: FaustUIItem): AudioParamDescriptor | null => {\n const polyKeywords = [\"/gate\", \"/freq\", \"/gain\", \"/key\", \"/vel\", \"/velocity\"];\n const isPolyReserved = \"address\" in item && !!polyKeywords.find(k => item.address.endsWith(k));\n if (poly && isPolyReserved) return null;\n if (item.type === \"vslider\" || item.type === \"hslider\" || item.type === \"nentry\") {\n return { name: item.address, defaultValue: item.init || 0, minValue: item.min || 0, maxValue: item.max || 0 };\n } else if (item.type === \"button\" || item.type === \"checkbox\") {\n return { name: item.address, defaultValue: item.init || 0, minValue: 0, maxValue: 1 };\n }\n return null;\n }\n\n /**\n * Base class for Monophonic and Polyphonic AudioWorkletProcessor\n */\n class FaustAudioWorkletProcessor<Poly extends boolean = false> extends AudioWorkletProcessor {\n\n // Use ! syntax when the field is not defined in the constructor\n protected fDSPCode!: Poly extends true ? FaustPolyWebAudioDsp : FaustMonoWebAudioDsp;\n\n protected paramValuesCache: Record<string, number> = {};\n\n constructor(options: FaustAudioWorkletNodeOptions<Poly>) {\n super(options);\n\n // Setup port message handling\n this.port.onmessage = (e: MessageEvent) => this.handleMessageAux(e);\n \n const { parameterDescriptors } = (this.constructor as typeof AudioWorkletProcessor);\n parameterDescriptors.forEach((pd) => {\n this.paramValuesCache[pd.name] = pd.defaultValue || 0;\n })\n }\n\n static get parameterDescriptors() {\n const params = [] as AudioParamDescriptor[];\n // Analyse voice JSON to generate AudioParam parameters\n const callback = (item: FaustUIItem) => {\n const param = analysePolyParameters(item);\n if (param) params.push(param);\n }\n FaustBaseWebAudioDsp.parseUI(dspMeta.ui, callback);\n // Analyse effect JSON to generate AudioParam parameters\n if (effectMeta) FaustBaseWebAudioDsp.parseUI(effectMeta.ui, callback);\n return params;\n }\n\n process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: { [key: string]: Float32Array }) {\n\n // Update controls (possibly needed for sample accurate control)\n for (const path in parameters) {\n const [paramValue] = parameters[path];\n if (paramValue !== this.paramValuesCache[path]) {\n this.fDSPCode.setParamValue(path, paramValue);\n this.paramValuesCache[path] = paramValue;\n }\n }\n\n return this.fDSPCode.compute(inputs[0], outputs[0]);\n }\n\n protected handleMessageAux(e: MessageEvent) { // use arrow function for binding\n const msg = e.data;\n\n switch (msg.type) {\n // Generic MIDI message\n case \"midi\": this.midiMessage(msg.data); break;\n // Typed MIDI message\n case \"ctrlChange\": this.ctrlChange(msg.data[0], msg.data[1], msg.data[2]); break;\n case \"pitchWheel\": this.pitchWheel(msg.data[0], msg.data[1]); break;\n // Generic data message\n case \"param\": this.setParamValue(msg.data.path, msg.data.value); break;\n // Plot handler set on demand\n case \"setPlotHandler\": {\n if (msg.data) {\n this.fDSPCode.setPlotHandler((output, index, events) => this.port.postMessage({ type: \"plot\", value: output, index, events }));\n } else {\n this.fDSPCode.setPlotHandler(null);\n }\n break;\n }\n case \"start\": {\n this.fDSPCode.start();\n break;\n }\n case \"stop\": {\n this.fDSPCode.stop();\n break;\n }\n case \"destroy\": {\n this.port.close();\n this.fDSPCode.destroy();\n break;\n }\n default:\n break;\n }\n }\n\n protected setParamValue(path: string, value: number) {\n this.fDSPCode.setParamValue(path, value);\n this.paramValuesCache[path] = value;\n }\n\n protected midiMessage(data: number[] | Uint8Array) {\n this.fDSPCode.midiMessage(data);\n }\n\n protected ctrlChange(channel: number, ctrl: number, value: number) {\n this.fDSPCode.ctrlChange(channel, ctrl, value);\n }\n\n protected pitchWheel(channel: number, wheel: number) {\n this.fDSPCode.pitchWheel(channel, wheel);\n }\n }\n\n /**\n * Monophonic AudioWorkletProcessor\n */\n class FaustMonoAudioWorkletProcessor extends FaustAudioWorkletProcessor<false> {\n\n constructor(options: FaustAudioWorkletNodeOptions) {\n super(options);\n const { FaustMonoWebAudioDsp } = dependencies as FaustAudioWorkletProcessorDependencies<false>;\n const { factory, sampleSize } = options.processorOptions;\n\n const instance = FaustWasmInstantiator.createSyncMonoDSPInstance(factory);\n // Create Monophonic DSP\n this.fDSPCode = new FaustMonoWebAudioDsp(instance, sampleRate, sampleSize, 128);\n\n // Setup output handler\n this.fDSPCode.setOutputParamHandler((path, value) => this.port.postMessage({ path, value, type: \"param\" }));\n\n this.fDSPCode.start();\n }\n }\n\n /**\n * Polyphonic AudioWorkletProcessor\n */\n class FaustPolyAudioWorkletProcessor extends FaustAudioWorkletProcessor<true> {\n\n constructor(options: FaustPolyAudioWorkletNodeOptions) {\n super(options);\n const { FaustPolyWebAudioDsp } = dependencies as FaustAudioWorkletProcessorDependencies<true>;\n\n const { voiceFactory, mixerModule, voices, effectFactory, sampleSize } = options.processorOptions;\n\n const instance = FaustWasmInstantiator.createSyncPolyDSPInstance(voiceFactory, mixerModule, voices, effectFactory);\n // Create Polyphonic DSP\n this.fDSPCode = new FaustPolyWebAudioDsp(instance, sampleRate, sampleSize, 128);\n\n // Setup port message handling\n this.port.onmessage = (e: MessageEvent) => this.handleMessageAux(e);\n\n // Setup output handler\n this.fDSPCode.setOutputParamHandler((path, value) => this.port.postMessage({ path, value, type: \"param\" }));\n\n this.fDSPCode.start();\n }\n\n protected midiMessage(data: number[] | Uint8Array) {\n const cmd = data[0] >> 4;\n const channel = data[0] & 0xf;\n const data1 = data[1];\n const data2 = data[2];\n if (cmd === 8 || (cmd === 9 && data2 === 0)) this.keyOff(channel, data1, data2);\n else if (cmd === 9) this.keyOn(channel, data1, data2);\n else super.midiMessage(data);\n }\n\n protected handleMessageAux = (e: MessageEvent) => { // use arrow function for binding\n const msg = e.data;\n switch (msg.type) {\n case \"keyOn\": this.keyOn(msg.data[0], msg.data[1], msg.data[2]); break;\n case \"keyOff\": this.keyOff(msg.data[0], msg.data[1], msg.data[2]); break;\n default:\n super.handleMessageAux(e);\n break;\n }\n }\n\n // Public API\n keyOn(channel: number, pitch: number, velocity: number) {\n this.fDSPCode.keyOn(channel, pitch, velocity);\n }\n\n keyOff(channel: number, pitch: number, velocity: number) {\n this.fDSPCode.keyOff(channel, pitch, velocity);\n }\n\n allNotesOff(hard: boolean) {\n this.fDSPCode.allNotesOff(hard);\n }\n }\n\n const Processor = poly ? FaustPolyAudioWorkletProcessor : FaustMonoAudioWorkletProcessor;\n if (register) {\n try {\n registerProcessor(processorName || dspName || (poly ? \"mydsp_poly\" : \"mydsp\"), Processor);\n } catch (error) {\n console.warn(error);\n }\n }\n\n return poly ? FaustPolyAudioWorkletProcessor : FaustMonoAudioWorkletProcessor;\n}\n\nexport default getFaustAudioWorkletProcessor;\n", "import type { FaustMonoDspInstance } from \"./FaustDspInstance\";\r\nimport type FaustWasmInstantiator from \"./FaustWasmInstantiator\";\r\nimport type { FaustBaseWebAudioDsp, FaustMonoWebAudioDsp, PlotHandler } from \"./FaustWebAudioDsp\";\r\nimport type { AudioParamDescriptor, AudioWorkletGlobalScope, LooseFaustDspFactory, FaustDspMeta, FaustUIItem, InterfaceFFT, TWindowFunction, Writeable, TypedArray, FFTUtils } from \"./types\";\r\n\r\nexport interface FaustFFTOptionsData {\r\n fftSize: number;\r\n fftOverlap: number;\r\n noIFFT: boolean;\r\n /** Index number of the default window function, leave undefined or -1 for rectangular (no windowing) */\r\n defaultWindowFunction: number;\r\n}\r\n\r\n/**\r\n * Injected in the string to be compiled on AudioWorkletProcessor side\r\n */\r\nexport interface FaustFFTData {\r\n processorName: string;\r\n dspName: string;\r\n dspMeta: FaustDspMeta;\r\n fftOptions?: Partial<FaustFFTOptionsData>;\r\n};\r\nexport interface FaustFFTAudioWorkletProcessorDependencies {\r\n FaustBaseWebAudioDsp: typeof FaustBaseWebAudioDsp;\r\n FaustMonoWebAudioDsp: typeof FaustMonoWebAudioDsp;\r\n FaustWasmInstantiator: typeof FaustWasmInstantiator;\r\n FFTUtils: typeof FFTUtils;\r\n}\r\nexport interface FaustFFTAudioWorkletNodeOptions extends AudioWorkletNodeOptions {\r\n processorOptions: FaustFFTAudioWorkletProcessorOptions;\r\n}\r\nexport interface FaustFFTAudioWorkletProcessorOptions {\r\n name: string;\r\n sampleSize: number;\r\n factory: LooseFaustDspFactory;\r\n}\r\n\r\n\r\n// Dynamic AudioWorkletProcessor code generator\r\nconst getFaustFFTAudioWorkletProcessor = (dependencies: FaustFFTAudioWorkletProcessorDependencies, faustData: FaustFFTData, register = true): typeof AudioWorkletProcessor => {\r\n const { registerProcessor, AudioWorkletProcessor, sampleRate } = globalThis as unknown as AudioWorkletGlobalScope;\r\n\r\n const {\r\n FaustBaseWebAudioDsp,\r\n FaustWasmInstantiator,\r\n FaustMonoWebAudioDsp,\r\n FFTUtils\r\n } = dependencies;\r\n \r\n const {\r\n processorName,\r\n dspName,\r\n dspMeta,\r\n fftOptions\r\n } = faustData;\r\n\r\n const {\r\n windowFunctions,\r\n getFFT,\r\n fftToSignal,\r\n signalToFFT,\r\n signalToNoFFT\r\n } = FFTUtils;\r\n\r\n /**\r\n * Ceil a number to multiple of another\r\n */\r\n const ceil = (x: number, to: number): number => (Math.abs(to) < 1 ? Math.ceil(x * (1 / to)) / (1 / to) : Math.ceil(x / to) * to);\r\n\r\n /**\r\n * Mod support wrapping with negative numbers\r\n */\r\n const mod = (x: number, y: number): number => (x % y + y) % y;\r\n\r\n const apply = (array: Writeable<ArrayLike<number>>, windowFunction: TWindowFunction) => {\r\n for (let i = 0; i < array.length; i++) {\r\n array[i] *= windowFunction(i, array.length);\r\n }\r\n };\r\n\r\n const fftParamKeywords = [\"/fftSize\", \"/fftHopSize\", \"/fftOverlap\", \"/windowFunction\", \"/noIFFT\"];\r\n\r\n /**\r\n * Copy buffer to another, support negative offset index\r\n */\r\n const setTypedArray = <T extends TypedArray = TypedArray>(to: T, from: T, offsetTo = 0, offsetFrom = 0) => {\r\n const toLength = to.length;\r\n const fromLength = from.length;\r\n const spillLength = Math.min(toLength, fromLength);\r\n let spilled = 0;\r\n let $to = mod(offsetTo, toLength) || 0;\r\n let $from = mod(offsetFrom, fromLength) || 0;\r\n while (spilled < spillLength) {\r\n const $spillLength = Math.min(spillLength - spilled, toLength - $to, fromLength - $from);\r\n const $fromEnd = $from + $spillLength;\r\n if ($from === 0 && $fromEnd === fromLength) to.set(from, $to);\r\n else to.set(from.subarray($from, $fromEnd), $to);\r\n $to = ($to + $spillLength) % toLength;\r\n $from = $fromEnd % fromLength;\r\n spilled += $spillLength;\r\n }\r\n return $to;\r\n };\r\n\r\n // Analyse JSON to generate AudioParam parameters\r\n const analyseParameters = (item: FaustUIItem): AudioParamDescriptor | null => {\r\n const isFFTReserved = \"address\" in item && !!fftParamKeywords.find(k => item.address.endsWith(k));\r\n if (isFFTReserved) return null;\r\n if (item.type === \"vslider\" || item.type === \"hslider\" || item.type === \"nentry\") {\r\n return { name: item.address, defaultValue: item.init || 0, minValue: item.min || 0, maxValue: item.max || 0 };\r\n } else if (item.type === \"button\" || item.type === \"checkbox\") {\r\n return { name: item.address, defaultValue: item.init || 0, minValue: 0, maxValue: 1 };\r\n }\r\n return null;\r\n }\r\n /**\r\n * Class for Faust FFT AudioWorkletProcessor\r\n */\r\n class FaustFFTAudioWorkletProcessor extends AudioWorkletProcessor {\r\n\r\n protected fDSPCode: FaustMonoWebAudioDsp;\r\n\r\n protected paramValuesCache: Record<string, number> = {};\r\n\r\n private dspInstance!: FaustMonoDspInstance;\r\n private sampleSize!: number;\r\n\r\n private destroyed = false;\r\n /** Pointer of next start sample to write of the FFT input window */\r\n private $inputWrite = 0;\r\n /** Pointer of next start sample to read of the FFT input window */\r\n private $inputRead = 0;\r\n /** Pointer of next start sample to write of the FFT output window */\r\n private $outputWrite = 0;\r\n /** Pointer of next start sample to read of the FFT output window */\r\n private $outputRead = 0;\r\n /** Not perform in IFFT when reconstruct the audio signal */\r\n private noIFFT = false;\r\n /** audio data from input, array of channels */\r\n private readonly fftInput: Float32Array[] = [];\r\n /** audio data for output, array of channels */\r\n private readonly fftOutput: Float32Array[] = [];\r\n /** Generated from the current window function */\r\n private window: Float32Array;\r\n /** Generated from the current window's rolling sum square */\r\n private windowSumSquare: Float32Array;\r\n \r\n /** FFT constructor */\r\n private FFT: typeof InterfaceFFT;\r\n /** Real FFT interface */\r\n private rfft: InterfaceFFT;\r\n /** Faust param name of fftHopSize */\r\n private fftHopSizeParam: string | undefined;\r\n /** FFT Overlaps, 1 means no overlap */\r\n private fftOverlap = 0;\r\n private fftHopSize = 0;\r\n private fftSize = 0;\r\n private fftBufferSize = 0;\r\n private fftProcessorZeros: Float32Array;\r\n private noIFFTBuffer: Float32Array;\r\n\r\n private fPlotHandler: PlotHandler | null = null;\r\n private fCachedEvents: { type: string; data: any }[] = [];\r\n private fBufferNum = 0;\r\n get fftProcessorBufferSize() {\r\n return this.fftSize / 2 + 1;\r\n }\r\n private windowFunction: TWindowFunction | null = null;\r\n\r\n constructor(options: FaustFFTAudioWorkletNodeOptions) {\r\n super(options);\r\n\r\n // Setup port message handling\r\n this.port.onmessage = (e: MessageEvent) => this.handleMessageAux(e);\r\n \r\n const { parameterDescriptors } = (this.constructor as typeof AudioWorkletProcessor);\r\n parameterDescriptors.forEach((pd) => {\r\n this.paramValuesCache[pd.name] = pd.defaultValue || 0;\r\n })\r\n\r\n const { factory, sampleSize } = options.processorOptions;\r\n\r\n this.dspInstance = FaustWasmInstantiator.createSyncMonoDSPInstance(factory);\r\n this.sampleSize = sampleSize;\r\n\r\n // Init the FFT constructor and the Faust FFT Processor\r\n this.initFFT();\r\n }\r\n\r\n async initFFT(): Promise<true> {\r\n // Use injected function to instantiate the FFT constructor\r\n this.FFT = await getFFT();\r\n // Init Faust FFT Processor\r\n await this.createFFTProcessor();\r\n return true;\r\n }\r\n\r\n static get parameterDescriptors() {\r\n const params = [] as AudioParamDescriptor[];\r\n // Analyse voice JSON to generate AudioParam parameters\r\n const callback = (item: FaustUIItem) => {\r\n const param = analyseParameters(item);\r\n if (param) params.push(param);\r\n }\r\n FaustBaseWebAudioDsp.parseUI(dspMeta.ui, callback);\r\n // Add to Faust parameters, FFT specified parameters\r\n return [\r\n ...params,\r\n {\r\n defaultValue: fftOptions?.fftSize || 1024,\r\n maxValue: 2 ** 32,\r\n minValue: 2,\r\n name: \"fftSize\"\r\n }, {\r\n defaultValue: fftOptions?.fftOverlap || 2,\r\n maxValue: 32,\r\n minValue: 1,\r\n name: \"fftOverlap\"\r\n }, {\r\n defaultValue: typeof fftOptions?.defaultWindowFunction === \"number\" ? fftOptions.defaultWindowFunction + 1 : 0,\r\n maxValue: windowFunctions?.length || 0,\r\n minValue: 0,\r\n name: \"windowFunction\"\r\n }, {\r\n defaultValue: +!!fftOptions?.noIFFT || 0,\r\n maxValue: 1,\r\n minValue: 0,\r\n name: \"noIFFT\"\r\n }\r\n ];\r\n }\r\n\r\n processFFT() {\r\n // Get the number of samples that need to proceed, from the input r/w pointers\r\n let samplesForFFT = mod(this.$inputWrite - this.$inputRead, this.fftBufferSize) || this.fftBufferSize;\r\n // Start process, until no more enough samples\r\n while (samplesForFFT >= this.fftSize) {\r\n let fftProcessorOutputs: Float32Array[] = [];\r\n // Faust processing, use a callback to avoid extra data copy\r\n this.fDSPCode.compute((inputs) => {\r\n // for each audio input channel, three Faust FFT input buffers can be generated (real, imag, FFT bin index)\r\n for (let i = 0; i < Math.min(this.fftInput.length, Math.ceil(inputs.length / 3)); i++) {\r\n // FFT forward, use a callback to avoid extra data copy\r\n const ffted = this.rfft.forward((fftBuffer) => {\r\n setTypedArray(fftBuffer, this.fftInput[i], 0, this.$inputRead);\r\n // Windowing the input\r\n for (let j = 0; j < fftBuffer.length; j++) {\r\n fftBuffer[j] *= this.window[j];\r\n }\r\n // data for FFT (fftBuffer) is prepared\r\n });\r\n // write FFTed spectral data to three Faust FFT input buffers (real, imag, FFT bin index)\r\n fftToSignal(ffted, inputs[i * 3], inputs[i * 3 + 1], inputs[i * 3 + 2]);\r\n // Faust inputs are prepared\r\n }\r\n // If the Faust DSP has more inputs, fill them (zeros or real/imag, fill FFT bin indexes)\r\n for (let i = this.fftInput.length * 3; i < inputs.length; i++) {\r\n if (i % 3 === 2) inputs[i].forEach((v, j) => inputs[i][j] = j);\r\n else inputs[i].fill(0);\r\n }\r\n }, (outputs) => {\r\n // Get the Faust DSP outputs\r\n fftProcessorOutputs = outputs as Float32Array[];\r\n });\r\n\r\n // Advance FFT input read pointers\r\n this.$inputRead += this.fftHopSize;\r\n this.$inputRead %= this.fftBufferSize;\r\n\r\n samplesForFFT -= this.fftHopSize;\r\n\r\n // Do inverse FFT on the processed data by Faust DSP, and write the reconstructed signal to the output buffer\r\n for (let i = 0; i < this.fftOutput.length; i++) {\r\n let iffted: Float32Array;\r\n // If noIFFT option in enabled, then no need to do inverse IFFT, use the injected function to convert\r\n if (this.noIFFT) {\r\n iffted = this.noIFFTBuffer;\r\n signalToNoFFT(fftProcessorOutputs[i * 2] || this.fftProcessorZeros, fftProcessorOutputs[i * 2 + 1] || this.fftProcessorZeros, iffted);\r\n } else {\r\n // FFT inverse, use a callback to avoid extra data copy\r\n iffted = this.rfft.inverse((ifftBuffer) => {\r\n // Convert the Faust DSP output (real/imag plans) to an array for inverse FFT\r\n signalToFFT(fftProcessorOutputs[i * 2] || this.fftProcessorZeros, fftProcessorOutputs[i * 2 + 1] || this.fftProcessorZeros, ifftBuffer);\r\n // ifftBuffer is prepared\r\n });\r\n }\r\n // Windowing the output\r\n for (let j = 0; j < iffted.length; j++) {\r\n iffted[j] *= this.window[j];\r\n }\r\n // Overlap-add, preparing the windowSumSquare array for reverse the windowing effect when output the audio\r\n let $: number;\r\n // First part, add the part that is overlaped with the previous window\r\n for (let j = 0; j < iffted.length - this.fftHopSize; j++) {\r\n $ = mod(this.$outputWrite + j, this.fftBufferSize);\r\n this.fftOutput[i][$] += iffted[j];\r\n if (i === 0) this.windowSumSquare[$] += this.noIFFT ? this.window[j] : this.window[j] ** 2;\r\n }\r\n // Second part, write directly to the output buffer\r\n for (let j = iffted.length - this.fftHopSize; j < iffted.length; j++) {\r\n $ = mod(this.$outputWrite + j, this.fftBufferSize);\r\n this.fftOutput[i][$] = iffted[j];\r\n if (i === 0) this.windowSumSquare[$] = this.noIFFT ? this.window[j] : this.window[j] ** 2;\r\n }\r\n }\r\n // Advance FFT output write pointers\r\n this.$outputWrite += this.fftHopSize;\r\n this.$outputWrite %= this.fftBufferSize;\r\n }\r\n }\r\n\r\n process(inputs: Float32Array[][], outputs: Float32Array[][], parameters: { [key: string]: Float32Array }) {\r\n\r\n if (this.destroyed) return false;\r\n if (!this.FFT) return true;\r\n const input = inputs[0];\r\n const output = outputs[0];\r\n const inputChannels = input?.length || 0;\r\n const outputChannels = output?.length || 0;\r\n // if (input.length === 0) return true;\r\n \r\n const bufferSize = input?.length ? Math.max(...input.map(c => c.length)) || 128 : 128;\r\n \r\n // Reset FFT and related buffers if necessary (checks in the resetFFT method)\r\n this.noIFFT = !!parameters.noIFFT[0];\r\n this.resetFFT(~~parameters.fftSize[0], ~~parameters.fftOverlap[0], ~~parameters.windowFunction[0], inputChannels, outputChannels, bufferSize);\r\n \r\n if (!this.fDSPCode) return true;\r\n \r\n for (const path in parameters) {\r\n if (!!fftParamKeywords.find(k => `/${path}`.endsWith(k))) continue;\r\n const [paramValue] = parameters[path];\r\n if (paramValue !== this.paramValuesCache[path]) {\r\n this.fDSPCode.setParamValue(path, paramValue);\r\n this.paramValuesCache[path] = paramValue;\r\n }\r\n }\r\n\r\n // Write audio input into fftInput buffer, advance pointers\r\n if (input?.length) {\r\n let $inputWrite = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n const inputWindow = this.fftInput[i];\r\n const channel = input[i].length ? input[i] : new Float32Array(bufferSize);\r\n $inputWrite = setTypedArray(inputWindow, channel, this.$inputWrite);\r\n }\r\n this.$inputWrite = $inputWrite;\r\n } else {\r\n this.$inputWrite += bufferSize;\r\n this.$inputWrite %= this.fftBufferSize;\r\n }\r\n \r\n // Do FFT if necessary\r\n this.processFFT();\r\n \r\n // Read from fftOutput buffer for audio output, applying windowSumSquare to reverse the doubled windowing effect\r\n for (let i = 0; i < output.length; i++) {\r\n setTypedArray(output[i], this.fftOutput[i], 0, this.$outputRead);\r\n // let a = 0;\r\n let div = 0;\r\n for (let j = 0; j < bufferSize; j++) {\r\n div = this.windowSumSquare[mod(this.$outputRead + j, this.fftBufferSize)];\r\n output[i][j] /= div < 1e-8 ? 1 : div;\r\n }\r\n }\r\n // Advance pointers\r\n this.$outputRead += bufferSize;\r\n this.$outputRead %= this.fftBufferSize;\r\n\r\n // plot\r\n if (this.fPlotHandler) {\r\n this.port.postMessage({ type: \"plot\", value: output, index: this.fBufferNum++, events: this.fCachedEvents });\r\n this.fCachedEvents = [];\r\n }\r\n return true;\r\n }\r\n\r\n protected handleMessageAux(e: MessageEvent) { // use arrow function for binding\r\n const msg = e.data;\r\n\r\n switch (msg.type) {\r\n // Generic MIDI message\r\n case \"midi\": this.midiMessage(msg.data); break;\r\n // Typed MIDI message\r\n case \"ctrlChange\": this.ctrlChange(msg.data[0], msg.data[1], msg.data[2]); break;\r\n case \"pitchWheel\": this.pitchWheel(msg.data[0], msg.data[1]); break;\r\n // Generic data message\r\n case \"param\": this.setParamValue(msg.data.path, msg.data.value); break;\r\n // Plot handler set on demand\r\n case \"setPlotHandler\": {\r\n if (msg.data) {\r\n this.fPlotHandler = (output, index, events) => {\r\n if (events) this.fCachedEvents.push(...events);\r\n };\r\n } else {\r\n this.fPlotHandler = null;\r\n }\r\n this.fDSPCode?.setPlotHandler(this.fPlotHandler);\r\n break;\r\n }\r\n case \"start\": {\r\n this.fDSPCode?.start();\r\n break;\r\n }\r\n case \"stop\": {\r\n this.fDSPCode?.stop();\r\n break;\r\n }\r\n case \"destroy\": {\r\n this.port.close();\r\n this.destroy();\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n protected setParamValue(path: string, value: number) {\r\n this.fDSPCode?.setParamValue(path, value);\r\n this.paramValuesCache[path] = value;\r\n }\r\n\r\n protected midiMessage(data: number[] | Uint8Array) {\r\n this.fDSPCode?.midiMessage(data);\r\n }\r\n\r\n protected ctrlChange(channel: number, ctrl: number, value: number) {\r\n this.fDSPCode?.ctrlChange(channel, ctrl, value);\r\n }\r\n\r\n protected pitchWheel(channel: number, wheel: number) {\r\n this.fDSPCode?.pitchWheel(channel, wheel);\r\n }\r\n\r\n resetFFT(sizeIn: number, overlapIn: number, windowFunctionIn: number, inputChannels: number, outputChannels: number, bufferSize: number) {\r\n const fftSize = ~~ceil(Math.max(2, sizeIn || 1024), 2);\r\n const fftOverlap = ~~Math.min(fftSize, Math.max(1, overlapIn));\r\n const fftHopSize = ~~Math.max(1, fftSize / fftOverlap);\r\n const latency = fftSize - Math.min(fftHopSize, bufferSize);\r\n let windowFunction: TWindowFunction | null = null;\r\n \r\n // set the window function from the injected list\r\n if (windowFunctionIn !== 0) {\r\n windowFunction = typeof windowFunctions === \"object\" ? windowFunctions[~~windowFunctionIn - 1] || null : null;\r\n }\r\n const fftSizeChanged = fftSize !== this.fftSize;\r\n\r\n const fftOverlapChanged = fftOverlap !== this.fftOverlap;\r\n // Reset FFT vars if the size is changed\r\n if (fftSizeChanged || fftOverlapChanged) {\r\n this.fftSize = fftSize;\r\n this.fftOverlap = fftOverlap;\r\n this.fftHopSize = fftHopSize;\r\n this.$inputWrite = 0;\r\n this.$inputRead = 0;\r\n this.$outputWrite = 0;\r\n this.$outputRead = -latency;\r\n this.fftBufferSize = Math.max(fftSize * 2 - this.fftHopSize, bufferSize * 2);\r\n if (!fftSizeChanged && this.fftHopSizeParam) this.fDSPCode?.setParamValue(this.fftHopSizeParam, this.fftHopSize);\r\n }\r\n\r\n // Reset the FFT interface and the Faust Processor\r\n if (fftSizeChanged) {\r\n this.rfft?.dispose();\r\n this.rfft = new this.FFT(fftSize);\r\n this.noIFFTBuffer = new Float32Array(this.fftSize);\r\n this.createFFTProcessor();\r\n }\r\n \r\n // Calculate a window from the window function, prepare the windowSumSquare buffer \r\n if (fftSizeChanged || fftOverlapChanged || windowFunction !== this.windowFunction) {\r\n this.windowFunction = windowFunction;\r\n this.window = new Float32Array(fftSize);\r\n this.window.fill(1);\r\n if (windowFunction) apply(this.window, windowFunction);\r\n this.windowSumSquare = new Float32Array(this.fftBufferSize);\r\n }\r\n\r\n // Reset FFT I/O buffers if necessary\r\n if (this.fftInput.length > inputChannels) {\r\n this.fftInput.splice(inputChannels);\r\n }\r\n if (this.fftOutput.length > outputChannels) {\r\n this.fftOutput.splice(outputChannels);\r\n }\r\n if (fftSizeChanged || fftOverlapChanged) {\r\n for (let i = 0; i < inputChannels; i++) {\r\n this.fftInput[i] = new Float32Array(this.fftBufferSize);\r\n }\r\n for (let i = 0; i < outputChannels; i++) {\r\n this.fftOutput[i] = new Float32Array(this.fftBufferSize);\r\n }\r\n } else {\r\n if (this.fftInput.length < inputChannels) {\r\n for (let i = this.fftInput.length; i < inputChannels; i++) {\r\n this.fftInput[i] = new Float32Array(this.fftBufferSize);\r\n }\r\n }\r\n if (this.fftOutput.length < outputChannels) {\r\n for (let i = this.fftOutput.length; i < outputChannels; i++) {\r\n this.fftOutput[i] = new Float32Array(this.fftBufferSize);\r\n }\r\n }\r\n }\r\n }\r\n async createFFTProcessor() {\r\n this.fDSPCode?.stop();\r\n this.fDSPCode?.destroy();\r\n\r\n // Create Monophonic DSP\r\n this.fDSPCode = new FaustMonoWebAudioDsp(this.dspInstance, sampleRate, this.sampleSize, this.fftProcessorBufferSize);\r\n\r\n // Setup output handler\r\n this.fDSPCode.setOutputParamHandler((path, value) => this.port.postMessage({ path, value, type: \"param\" }));\r\n this.fDSPCode.setPlotHandler(this.fPlotHandler);\r\n const params = this.fDSPCode.getParams();\r\n this.fDSPCode.start();\r\n // Write the cached parameters\r\n for (const path in this.paramValuesCache) {\r\n if (!!fftParamKeywords.find(k => `/${path}`.endsWith(k))) continue;\r\n this.fDSPCode.setParamValue(path, this.paramValuesCache[path])\r\n }\r\n // Write the FFT reverved parameters\r\n const fftSizeParam = params.find(s => s.endsWith(\"/fftSize\"));\r\n if (fftSizeParam) this.fDSPCode.setParamValue(fftSizeParam, this.fftSize);\r\n this.fftHopSizeParam = params.find(s => s.endsWith(\"/fftHopSize\"));\r\n if (this.fftHopSizeParam) this.fDSPCode.setParamValue(this.fftHopSizeParam, this.fftHopSize);\r\n // Prepare a array of zeros for furthur usage\r\n this.fftProcessorZeros = new Float32Array(this.fftProcessorBufferSize);\r\n }\r\n destroy() {\r\n this.fDSPCode?.stop();\r\n this.fDSPCode?.destroy();\r\n this.rfft?.dispose();\r\n this.destroyed = true;\r\n }\r\n\r\n }\r\n\r\n const Processor = FaustFFTAudioWorkletProcessor;\r\n if (register) {\r\n try {\r\n registerProcessor(processorName || dspName || \"myfftdsp\", Processor);\r\n } catch (error) {\r\n console.warn(error);\r\n }\r\n }\r\n\r\n return FaustFFTAudioWorkletProcessor;\r\n\r\n};\r\n\r\nexport default getFaustFFTAudioWorkletProcessor;\r\n", "import { Sha256 } from \"@aws-crypto/sha256-js\";\nimport type { ILibFaust } from \"./LibFaust\";\nimport type { FaustDspFactory, IntVector } from \"./types\";\n\nexport const ab2str = (buf: Uint8Array) => String.fromCharCode.apply(null, buf);\n\nexport const str2ab = (str: string) => {\n const buf = new ArrayBuffer(str.length);\n const bufView = new Uint8Array(buf);\n for (let i = 0, strLen = str.length; i < strLen; i++) {\n bufView[i] = str.charCodeAt(i);\n }\n return bufView;\n};\nconst sha256 = async (str: string) => {\n const sha256 = new Sha256();\n sha256.update(str);\n const hashArray = Array.from(await sha256.digest());\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n return hashHex;\n};\n\nexport interface IFaustCompiler {\n /**\n * Gives the Faust compiler version.\n * @return a version string\n */\n version(): string;\n\n /**\n * Gives the last compilation error.\n * @return an error string\n */\n getErrorMessage(): string;\n\n /**\n * Create a wasm factory from Faust code i.e. wasm compiled code, to be used to create monophonic instances. \n * This function is running asynchronously.\n *\n * @param name - an arbitrary name for the Faust factory\n * @param code - Faust dsp code\n * @param args - the compiler options\n * @returns returns the wasm factory\n */\n createMonoDSPFactory(name: string, code: string, args: string): Promise<FaustDspFactory | null>;\n\n /**\n * Create a wasm factory from Faust code i.e. wasm compiled code, to be used to create polyphonic instances. \n * This function is running asynchronously.\n *\n * @param name - an arbitrary name for the Faust factory\n * @param code - Faust dsp code\n * @param args - the compiler options\n * @returns returns the wasm factory\n */\n createPolyDSPFactory(name: string, code: string, args: string): Promise<FaustDspFactory | null>;\n\n /**\n * Delete a dsp factory.\n *\n * @param factory - the factory to be deleted\n */\n deleteDSPFactory(factory: FaustDspFactory): void;\n\n /**\n * Expand Faust code i.e. linearize included libraries.\n *\n * @param code - Faust dsp code\n * @param args - the compiler options\n * @returns returns the expanded dsp code\n */\n expandDSP(code: string, args: string): string | null;\n\n /**\n * Generates auxiliary files from Faust code. The output depends on the compiler options.\n *\n * @param name - an arbitrary name for the Faust module\n * @param code - Faust dsp code\n * @param args - the compiler options\n * @returns whether the generation actually succeded\n */\n generateAuxFiles(name: string, code: string, args: string): boolean;\n\n /**\n * Delete all factories.\n */\n deleteAllDSPFactories(): void;\n\n fs(): typeof FS;\n\n getAsyncInternalMixerModule(isDouble?: boolean): Promise<{ mixerBuffer: Uint8Array; mixerModule: WebAssembly.Module }>;\n getSyncInternalMixerModule(isDouble?: boolean): { mixerBuffer: Uint8Array; mixerModule: WebAssembly.Module };\n}\n\nclass FaustCompiler implements IFaustCompiler {\n private fLibFaust: ILibFaust;\n private fErrorMessage: string;\n private static gFactories: Map<string, FaustDspFactory> = new Map<string, FaustDspFactory>();\n private mixer32Buffer!: Uint8Array;\n private mixer64Buffer!: Uint8Array;\n private mixer32Module!: WebAssembly.Module;\n private mixer64Module!: WebAssembly.Module;\n\n /**\n * Get a stringified DSP factories table\n */\n static serializeDSPFactories() {\n const table: Record<string, { code: string, json: any; poly: boolean }> = {};\n this.gFactories.forEach((factory, shaKey) => {\n const { code, json, poly } = factory;\n table[shaKey] = { code: btoa(ab2str(code)), json: JSON.parse(json), poly };\n });\n return table;\n }\n /**\n * Get a stringified DSP factories table as string\n */\n static stringifyDSPFactories() {\n return JSON.stringify(this.serializeDSPFactories());\n }\n /**\n * Import a DSP factories table\n */\n static deserializeDSPFactories(table: Record<string, { code: string, json: any; poly: boolean }>) {\n const awaited: Promise<Map<string, FaustDspFactory>>[] = [];\n for (const shaKey in table) {\n const factory = table[shaKey];\n const { code, json, poly } = factory;\n const ab = str2ab(atob(code))\n awaited.push(WebAssembly.compile(ab).then(module => this.gFactories.set(shaKey, { shaKey, cfactory: 0, code: ab, module, json: JSON.stringify(json), poly })));\n }\n return Promise.all(awaited);\n }\n /**\n * Import a stringified DSP factories table\n */\n static importDSPFactories(tableStr: string) {\n const table: Record<string, { code: string, json: any; poly: boolean }> = JSON.parse(tableStr);\n return this.deserializeDSPFactories(table);\n }\n constructor(libFaust: ILibFaust) {\n this.fLibFaust = libFaust;\n this.fErrorMessage = \"\";\n }\n private intVec2intArray(vec: IntVector) {\n const size = vec.size();\n const ui8Code = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n ui8Code[i] = vec.get(i);\n }\n return ui8Code;\n }\n private async createDSPFactory(name: string, code: string, args: string, poly: boolean) {\n // Cleanup the cache\n if (FaustCompiler.gFactories.size > 10) {\n FaustCompiler.gFactories.clear();\n }\n\n // If code is already compiled, return the cached factory\n let shaKey = await sha256(name + code + args + (poly ? \"poly\" : \"mono\"));\n if (FaustCompiler.gFactories.has(shaKey)) {\n return FaustCompiler.gFactories.get(shaKey) || null;\n } else {\n try {\n // Can possibly raise a C++ exception catched by the second catch()\n const faustDspWasm = this.fLibFaust.createDSPFactory(name, code, args, !poly);\n const ui8Code = this.intVec2intArray(faustDspWasm.data);\n faustDspWasm.data.delete();\n const module = await WebAssembly.compile(ui8Code);\n const factory: FaustDspFactory = { shaKey, cfactory: faustDspWasm.cfactory, code: ui8Code, module, json: faustDspWasm.json, poly };\n // Factory C++ side can be deallocated immediately\n this.deleteDSPFactory(factory);\n // Keep the compiled factory in the cache\n FaustCompiler.gFactories.set(shaKey, factory);\n return factory;\n } catch (e) {\n this.fErrorMessage = this.fLibFaust.getErrorAfterException();\n // console.error(`=> exception raised while running createDSPFactory: ${this.fErrorMessage}`, e);\n this.fLibFaust.cleanupAfterException();\n throw this.fErrorMessage ? new Error(this.fErrorMessage) : e;\n }\n }\n }\n version() {\n return this.fLibFaust.version();\n }\n getErrorMessage() {\n return this.fErrorMessage;\n }\n async createMonoDSPFactory(name: string, code: string, args: string) {\n return this.createDSPFactory(name, code, args, false);\n }\n async createPolyDSPFactory(name: string, code: string, args: string) {\n return this.createDSPFactory(name, code, args, true);\n }\n deleteDSPFactory(factory: FaustDspFactory) {\n this.fLibFaust.deleteDSPFactory(factory.cfactory);\n factory.cfactory = 0;\n }\n expandDSP(code: string, args: string) {\n try {\n return this.fLibFaust.expandDSP(\"FaustDSP\", code, args);\n } catch (e) {\n this.fErrorMessage = this.fLibFaust.getErrorAfterException();\n // console.error(`=> exception raised while running expandDSP: ${this.fErrorMessage}`);\n this.fLibFaust.cleanupAfterException();\n throw this.fErrorMessage ? new Error(this.fErrorMessage) : e;\n }\n }\n generateAuxFiles(name: string, code: string, args: string) {\n try {\n return this.fLibFaust.generateAuxFiles(name, code, args);\n } catch (e) {\n this.fErrorMessage = this.fLibFaust.getErrorAfterException();\n // console.error(`=> exception raised while running generateAuxFiles: ${this.fErrorMessage}`);\n this.fLibFaust.cleanupAfterException();\n throw this.fErrorMessage ? new Error(this.fErrorMessage) : e;\n }\n }\n deleteAllDSPFactories(): void {\n this.fLibFaust.deleteAllDSPFactories();\n }\n fs() {\n return this.fLibFaust.fs();\n }\n async getAsyncInternalMixerModule(isDouble = false) {\n const bufferKey = isDouble ? \"mixer64Buffer\" : \"mixer32Buffer\";\n const moduleKey = isDouble ? \"mixer64Module\" : \"mixer32Module\";\n if (this[moduleKey]) return { mixerBuffer: this[bufferKey], mixerModule: this[moduleKey] };\n const path = isDouble ? \"/usr/rsrc/mixer64.wasm\" : \"/usr/rsrc/mixer32.wasm\";\n const mixerBuffer = this.fs().readFile(path, { encoding: \"binary\" });\n this[bufferKey] = mixerBuffer;\n // Compile mixer\n const mixerModule = await WebAssembly.compile(mixerBuffer);\n this[moduleKey] = mixerModule;\n return { mixerBuffer, mixerModule };\n }\n getSyncInternalMixerModule(isDouble = false) {\n const bufferKey = isDouble ? \"mixer64Buffer\" : \"mixer32Buffer\";\n const moduleKey = isDouble ? \"mixer64Module\" : \"mixer32Module\";\n if (this[moduleKey]) return { mixerBuffer: this[bufferKey], mixerModule: this[moduleKey] };\n const path = isDouble ? \"/usr/rsrc/mixer64.wasm\" : \"/usr/rsrc/mixer32.wasm\";\n const mixerBuffer = this.fs().readFile(path, { encoding: \"binary\" });\n this[bufferKey] = mixerBuffer;\n // Compile mixer\n const mixerModule = new WebAssembly.Module(mixerBuffer);\n this[moduleKey] = mixerModule;\n return { mixerBuffer, mixerModule };\n }\n}\n\nexport default FaustCompiler;\n", "/**\n * The Faust wasm instance interface.\n */\nexport interface IFaustDspInstance {\n /**\n * The dsp computation, to be called with successive input/output audio buffers.\n *\n * @param $dsp - the DSP pointer\n * @param count - the audio buffer size in frames\n * @param $inputs - the input audio buffer as in index in wasm memory\n * @param $output - the output audio buffer as in index in wasm memory\n */\n compute($dsp: number, count: number, $inputs: number, $output: number): void;\n\n /**\n * Give the number of inputs of a Faust wasm instance.\n * \n * @param $dsp - the DSP pointer\n */\n getNumInputs($dsp: number): number;\n\n /**\n * Give the number of outputs of a Faust wasm instance.\n * \n * @param $dsp - the DSP pointer\n */\n getNumOutputs($dsp: number): number;\n\n /**\n * Give a parameter current value.\n * \n * @param $dsp - the DSP pointer\n * @param index - the parameter index\n * @preturn the parameter value\n */\n getParamValue($dsp: number, index: number): number;\n\n /**\n * Give the Faust wasm instance sample rate.\n * \n * @param $dsp - the DSP pointer\n * @preturn the sample rate\n */\n getSampleRate($dsp: number): number;\n\n /**\n * Global init, calls the following methods:\n * - static class 'classInit': static tables initialization\n * - 'instanceInit': constants and instance state initialization\n *\n * @param $dsp - the DSP pointer\n * @param sampleRate - the sampling rate in Hertz\n */\n init($dsp: number, sampleRate: number): void;\n\n /** Init instance state (delay lines...).\n * \n * @param $dsp - the DSP pointer\n */\n instanceClear($dsp: number): void;\n\n /** Init instance constant state.\n * \n * @param $dsp - the DSP pointer\n * @param sampleRate - the sampling rate in Hertz\n */\n instanceConstants($dsp: number, sampleRate: number): void;\n\n /** Init instance state.\n * \n * @param $dsp - the DSP pointer\n * @param sampleRate - the sampling rate in Hertz\n */\n instanceInit($dsp: number, sampleRate: number): void;\n\n /** Init default control parameters values.\n * \n * @param $dsp - the DSP pointer\n */\n instanceResetUserInterface($dsp: number): void;\n\n /**\n * Set a parameter current value.\n * \n * @param $dsp - the DSP pointer\n * @param index - the parameter index\n * @param value - the parameter value\n */\n setParamValue($dsp: number, index: number, value: number): void;\n}\n\n/**\n * Mixer used in polyphonic mode.\n */\nexport interface IFaustMixerInstance {\n clearOutput(bufferSize: number, chans: number, $outputs: number): void;\n mixCheckVoice(bufferSize: number, chans: number, $inputs: number, $outputs: number): number;\n fadeOut(bufferSize: number, chans: number, $outputs: number): void;\n}\n\n/**\n * Monophonic instance.\n */\nexport interface FaustMonoDspInstance {\n memory: WebAssembly.Memory;\n api: IFaustDspInstance;\n json: string;\n}\n\n/**\n * Polyphonic instance.\n */\nexport interface FaustPolyDspInstance {\n memory: WebAssembly.Memory;\n voices: number;\n voiceAPI: IFaustDspInstance;\n effectAPI?: IFaustDspInstance;\n mixerAPI: IFaustMixerInstance;\n voiceJSON: string;\n effectJSON?: string;\n}\n\nclass FaustDspInstance implements IFaustDspInstance {\n private readonly fExports: IFaustDspInstance;\n\n constructor(exports: IFaustDspInstance) { this.fExports = exports; }\n\n compute($dsp: number, count: number, $input: number, $output: number) { this.fExports.compute($dsp, count, $input, $output); }\n getNumInputs($dsp: number) { return this.fExports.getNumInputs($dsp); }\n getNumOutputs($dsp: number) { return this.fExports.getNumOutputs($dsp); }\n getParamValue($dsp: number, index: number) { return this.fExports.getParamValue($dsp, index); }\n getSampleRate($dsp: number) { return this.fExports.getSampleRate($dsp); }\n init($dsp: number, sampleRate: number) { this.fExports.init($dsp, sampleRate); }\n instanceClear($dsp: number) { this.fExports.instanceClear($dsp); }\n instanceConstants($dsp: number, sampleRate: number) { this.fExports.instanceConstants($dsp, sampleRate); }\n instanceInit($dsp: number, sampleRate: number) { this.fExports.instanceInit($dsp, sampleRate); }\n instanceResetUserInterface($dsp: number) { this.fExports.instanceResetUserInterface($dsp); }\n setParamValue($dsp: number, index: number, value: number) { this.fExports.setParamValue($dsp, index, value); }\n}\n\nexport default FaustDspInstance;\n", "import FaustDspInstance, { FaustMonoDspInstance, FaustPolyDspInstance, IFaustDspInstance, IFaustMixerInstance } from \"./FaustDspInstance\";\nimport type { FaustDspFactory, FaustDspMeta, LooseFaustDspFactory } from \"./types\";\n\nclass FaustWasmInstantiator {\n private static createWasmImport(memory?: WebAssembly.Memory) {\n return {\n env: {\n memory: memory || new WebAssembly.Memory({ initial: 100 }),\n memoryBase: 0,\n tableBase: 0,\n // Integer version\n _abs: Math.abs,\n // Float version\n _acosf: Math.acos, _asinf: Math.asin, _atanf: Math.atan, _atan2f: Math.atan2,\n _ceilf: Math.ceil, _cosf: Math.cos, _expf: Math.exp, _floorf: Math.floor,\n _fmodf: (x: number, y: number) => x % y,\n _logf: Math.log, _log10f: Math.log10, _max_f: Math.max, _min_f: Math.min,\n _remainderf: (x: number, y: number) => x - Math.round(x / y) * y,\n _powf: Math.pow, _roundf: Math.fround, _sinf: Math.sin, _sqrtf: Math.sqrt, _tanf: Math.tan,\n _acoshf: Math.acosh, _asinhf: Math.asinh, _atanhf: Math.atanh,\n _coshf: Math.cosh, _sinhf: Math.sinh, _tanhf: Math.tanh,\n _isnanf: Number.isNaN, _isinff: (x: number) => !isFinite(x),\n _copysignf: (x: number, y: number) => (Math.sign(x) === Math.sign(y) ? x : -x),\n \n // Double version\n _acos: Math.acos, _asin: Math.asin, _atan: Math.atan, _atan2: Math.atan2,\n _ceil: Math.ceil, _cos: Math.cos, _exp: Math.exp, _floor: Math.floor,\n _fmod: (x: number, y: number) => x % y,\n _log: Math.log, _log10: Math.log10, _max_: Math.max, _min_: Math.min,\n _remainder: (x: number, y: number) => x - Math.round(x / y) * y,\n _pow: Math.pow, _round: Math.fround, _sin: Math.sin, _sqrt: Math.sqrt, _tan: Math.tan,\n _acosh: Math.acosh, _asinh: Math.asinh, _atanh: Math.atanh,\n _cosh: Math.cosh, _sinh: Math.sinh, _tanh: Math.tanh,\n _isnan: Number.isNaN, _isinf: (x: number) => !isFinite(x),\n _copysign: (x: number, y: number) => (Math.sign(x) === Math.sign(y) ? x : -x),\n \n table: new WebAssembly.Table({ initial: 0, element: \"anyfunc\" })\n }\n };\n }\n private static createWasmMemory(voicesIn: number, sampleSize: number, dspMeta: FaustDspMeta, effectMeta: FaustDspMeta, bufferSize: number) {\n // Hack : at least 4 voices (to avoid weird wasm memory bug?)\n const voices = Math.max(4, voicesIn);\n // Memory allocator\n const ptrSize = sampleSize; // Done on wast/wasm backend side\n const pow2limit = (x: number) => {\n let n = 65536; // Minimum = 64 kB\n while (n < x) { n *= 2; }\n return n;\n };\n const effectSize = effectMeta ? effectMeta.size : 0;\n let memorySize = pow2limit(\n effectSize\n + dspMeta.size * voices\n + (dspMeta.inputs + dspMeta.outputs * 2)\n * (ptrSize + bufferSize * sampleSize)\n ) / 65536;\n memorySize = Math.max(2, memorySize); // At least 2\n return new WebAssembly.Memory({ initial: memorySize, maximum: memorySize });\n };\n private static createMonoDSPInstanceAux(instance: WebAssembly.Instance, json: string) {\n const functions = instance.exports as IFaustDspInstance & WebAssembly.Exports;\n const api = new FaustDspInstance(functions);\n const memory: any = instance.exports.memory;\n return { memory, api, json } as FaustMonoDspInstance;\n }\n private static createMemoryAux(voices: number, voiceFactory: LooseFaustDspFactory, effectFactory?: LooseFaustDspFactory) {\n // Parse JSON to get 'size' and 'inputs/outputs' infos\n const voiceMeta: FaustDspMeta = JSON.parse(voiceFactory.json);\n const effectMeta: FaustDspMeta = (effectFactory && effectFactory.json) ? JSON.parse(effectFactory.json) : null;\n const sampleSize = voiceMeta.compile_options.match(\"-double\") ? 8 : 4;\n // Memory will be shared by voice, mixer and (possibly) effect instances\n return this.createWasmMemory(voices, sampleSize, voiceMeta, effectMeta, 8192);\n }\n private static createMixerAux(mixerModule: WebAssembly.Module, memory: WebAssembly.Memory) {\n // Create mixer instance\n const mixerImport = {\n imports: { print: console.log },\n memory: { memory }\n };\n const mixerInstance = new WebAssembly.Instance(mixerModule, mixerImport);\n const mixerFunctions = mixerInstance.exports as IFaustMixerInstance & WebAssembly.Exports;\n return mixerFunctions;\n }\n // Public API\n static async loadDSPFactory(wasmPath: string, jsonPath: string) {\n const wasmFile = await fetch(wasmPath);\n if (!wasmFile.ok) {\n throw new Error(`=> exception raised while running loadDSPFactory, file not found: ${wasmPath}`);\n }\n try {\n const wasmBuffer = await wasmFile.arrayBuffer();\n const module = await WebAssembly.compile(wasmBuffer);\n const jsonFile = await fetch(jsonPath);\n const json = await jsonFile.text();\n const meta: FaustDspMeta = JSON.parse(json);\n const cOptions = meta.compile_options;\n const poly = cOptions.indexOf('wasm-e') !== -1;\n return { cfactory: 0, code: new Uint8Array(wasmBuffer), module, json, poly } as FaustDspFactory;\n } catch (e) {\n // console.error(`=> exception raised while running loadDSPFactory: ${e}`);\n throw e;\n }\n }\n \n static async loadDSPMixer(mixerPath: string, fs?: typeof FS) {\n try {\n let mixerBuffer = null;\n if (fs) {\n mixerBuffer = fs.readFile(mixerPath, { encoding: \"binary\" });\n } else {\n const mixerFile = await fetch(mixerPath);\n mixerBuffer = await mixerFile.arrayBuffer();\n }\n // Compile mixer\n return WebAssembly.compile(mixerBuffer);\n } catch (e) {\n // console.error(`=> exception raised while running loadMixer: ${e}`);\n throw e;\n }\n }\n \n static async createAsyncMonoDSPInstance(factory: LooseFaustDspFactory) {\n const instance = await WebAssembly.instantiate(factory.module, this.createWasmImport());\n return this.createMonoDSPInstanceAux(instance, factory.json);\n }\n \n static createSyncMonoDSPInstance(factory: LooseFaustDspFactory) {\n const instance = new WebAssembly.Instance(factory.module, this.createWasmImport());\n return this.createMonoDSPInstanceAux(instance, factory.json);\n }\n \n static async createAsyncPolyDSPInstance(voiceFactory: LooseFaustDspFactory, mixerModule: WebAssembly.Module, voices: number, effectFactory?: LooseFaustDspFactory): Promise<FaustPolyDspInstance> {\n const memory = this.createMemoryAux(voices, voiceFactory, effectFactory);\n // Create voice \n const voiceInstance = await WebAssembly.instantiate(voiceFactory.module, this.createWasmImport(memory));\n const voiceFunctions = voiceInstance.exports as IFaustDspInstance & WebAssembly.Exports;\n const voiceAPI = new FaustDspInstance(voiceFunctions);\n // Create mixer\n const mixerAPI = this.createMixerAux(mixerModule, memory);\n \n // Possibly create effect instance \n if (effectFactory) {\n const effectInstance = await WebAssembly.instantiate(effectFactory.module, this.createWasmImport(memory));\n const effectFunctions = effectInstance.exports as IFaustDspInstance & WebAssembly.Exports;\n const effectAPI = new FaustDspInstance(effectFunctions);\n return {\n memory,\n voices,\n voiceAPI,\n effectAPI,\n mixerAPI,\n voiceJSON: voiceFactory.json,\n effectJSON: effectFactory.json\n };\n } else {\n return {\n memory,\n voices,\n voiceAPI,\n mixerAPI,\n voiceJSON: voiceFactory.json\n };\n }\n }\n \n static createSyncPolyDSPInstance(voiceFactory: LooseFaustDspFactory, mixerModule: WebAssembly.Module, voices: number, effectFactory?: LooseFaustDspFactory): FaustPolyDspInstance {\n const memory = this.createMemoryAux(voices, voiceFactory, effectFactory);\n // Create voice \n const voiceInstance = new WebAssembly.Instance(voiceFactory.module, this.createWasmImport(memory));\n const voiceFunctions = voiceInstance.exports as IFaustDspInstance & WebAssembly.Exports;\n const voiceAPI = new FaustDspInstance(voiceFunctions);\n // Create mixer\n const mixerAPI = this.createMixerAux(mixerModule, memory);\n \n // Possibly create effect instance \n if (effectFactory) {\n const effectInstance = new WebAssembly.Instance(effectFactory.module, this.createWasmImport(memory));\n const effectFunctions = effectInstance.exports as IFaustDspInstance & WebAssembly.Exports;\n const effectAPI = new FaustDspInstance(effectFunctions);\n return {\n memory,\n voices,\n voiceAPI,\n effectAPI,\n mixerAPI,\n voiceJSON: voiceFactory.json,\n effectJSON: effectFactory.json\n };\n } else {\n return {\n memory,\n voices,\n voiceAPI,\n mixerAPI,\n voiceJSON: voiceFactory.json\n };\n }\n }\n}\n\nexport default FaustWasmInstantiator;\n", "import type { FaustMonoDspInstance, FaustPolyDspInstance, IFaustDspInstance } from \"./FaustDspInstance\";\nimport type { FaustDspMeta, FaustUIDescriptor, FaustUIGroup, FaustUIInputItem, FaustUIItem } from \"./types\";\n\n// Public API\nexport type OutputParamHandler = (path: string, value: number) => void;\nexport type ComputeHandler = (buffer_size: number) => void;\nexport type PlotHandler = (plotted: Float32Array[] | Float64Array[], index: number, events?: { type: string; data: any }[]) => void;\nexport type MetadataHandler = (key: string, value: string) => void;\n\n// Implementation API\nexport type UIHandler = (item: FaustUIItem) => void;\n\n/**\n * DSP implementation: mimic the C++ 'dsp' class:\n * - adding MIDI control: metadata are decoded and incoming MIDI messages will control the associated controllers\n * - an output handler can be set to treat produced output controllers (like 'bargraph') \n * - regular controllers are handled using setParamValue/getParamValue\n */\nexport interface IFaustBaseWebAudioDsp {\n /**\n * Set the parameter output handler, to be called in the 'compute' method with output parameters (like bargraph).\n *\n * @param handler - the output handler\n */\n setOutputParamHandler(handler: OutputParamHandler | null): void;\n\n /**\n * Get the parameter output handler.\n *\n * @return the current output handler\n */\n getOutputParamHandler(): OutputParamHandler | null;\n\n /**\n * Set the compute handler, to be called in the 'compute' method with buffer size.\n *\n * @param handler - the compute handler\n */\n setComputeHandler(handler: ComputeHandler | null): void;\n\n /**\n * Get the compute handler.\n *\n * @return the current output handler\n */\n getComputeHandler(): ComputeHandler | null;\n\n /**\n * Set the plot handler, to be called in the 'compute' method with various info (see PlotHandler type).\n *\n * @param handler - the plot handler\n */\n setPlotHandler(handler: PlotHandler | null): void;\n\n /**\n * Get the plot handler.\n *\n * @return the current plot handler\n */\n getPlotHandler(): PlotHandler | null;\n\n /**\n * Return instance number of audio inputs.\n *\n * @return the instance number of audio inputs\n */\n getNumInputs(): number;\n\n /**\n * Return instance number of audio outputs.\n *\n * @return the instance number of audio outputs\n */\n getNumOutputs(): number;\n\n /**\n * DSP instance computation, to be called with successive input/output audio buffers, using their size.\n *\n * @param inputs - the input audio buffers\n * @param outputs - the output audio buffers\n */\n compute(inputs: Float32Array[], outputs: Float32Array[]): boolean;\n\n /**\n * Give a handler to be called on 'declare key value' kind of metadata.\n *\n * @param handler - the handler to be used\n */\n metadata(handler: MetadataHandler): void;\n\n /**\n * Handle untyped MIDI messages.\n *\n * @param data - and arry of MIDI bytes\n */\n midiMessage(data: number[] | Uint8Array): void;\n\n /**\n * Handle MIDI ctrlChange messages.\n *\n * @param channel - the MIDI channel (0..15, not used for now)\n * @param ctrl - the MIDI controller number (0..127)\n * @param value - the MIDI controller value (0..127)\n */\n ctrlChange(chan: number, ctrl: number, value: number): void;\n\n /**\n * Handle MIDI pitchWheel messages.\n *\n * @param channel - the MIDI channel (0..15, not used for now)\n * @param value - the MIDI controller value (0..16383)\n */\n pitchWheel(chan: number, value: number): void;\n\n /**\n * Set parameter value.\n *\n * @param path - the path to the wanted parameter (retrieved using 'getParams' method)\n * @param val - the float value for the wanted control\n */\n setParamValue(path: string, value: number): void;\n\n /**\n * Get parameter value.\n *\n * @param path - the path to the wanted parameter (retrieved using 'getParams' method)\n *\n * @return the float value\n */\n getParamValue(path: string): number;\n\n /**\n * Get the table of all input parameters paths.\n *\n * @return the table of all input parameters paths\n */\n getParams(): string[];\n\n /**\n * Get DSP JSON description with its UI and metadata as object.\n *\n * @return the DSP JSON description as object\n */\n getMeta(): FaustDspMeta;\n\n /**\n * Get DSP JSON description with its UI and metadata.\n *\n * @return the DSP JSON description\n */\n getJSON(): string;\n\n /**\n * Get DSP UI description.\n *\n * @return the DSP UI description\n */\n getUI(): FaustUIDescriptor;\n\n /**\n * Get DSP UI items description.\n *\n * @return the DSP UI items description\n */\n getDescriptors(): FaustUIInputItem[];\n\n /**\n * Start the DSP.\n */\n start(): void;\n\n /**\n * Stop the DSP.\n */\n stop(): void;\n\n /**\n * Destroy the DSP.\n */\n destroy(): void;\n}\n\nexport interface IFaustMonoWebAudioDsp extends IFaustBaseWebAudioDsp {}\nexport interface IFaustMonoWebAudioNode extends IFaustMonoWebAudioDsp, AudioNode {}\n\nexport interface IFaustPolyWebAudioDsp extends IFaustBaseWebAudioDsp {\n /**\n * Handle MIDI keyOn messages.\n *\n * @param channel - the MIDI channel (0..15, not used for now)\n * @param pitch - the MIDI pitch value (0..127)\n * @param velocity - the MIDI velocity value (0..127)\n */\n keyOn(channel: number, pitch: number, velocity: number): void;\n\n /**\n * Handle MIDI keyOff messages.\n *\n * @param channel - the MIDI channel (0..15, not used for now)\n * @param pitch - the MIDI pitch value (0..127)\n * @param velocity - the MIDI velocity value (0..127)\n */\n keyOff(channel: number, pitch: number, velocity: number): void;\n\n /**\n * Stop all playing notes.\n *\n * @param hard - whether to immediately stop notes or put them in release mode\n */\n allNotesOff(hard: boolean): void;\n}\nexport interface IFaustPolyWebAudioNode extends IFaustPolyWebAudioDsp, AudioNode {}\n\nexport class FaustBaseWebAudioDsp implements IFaustBaseWebAudioDsp {\n protected fOutputHandler: OutputParamHandler | null;\n protected fComputeHandler: ComputeHandler | null;\n\n // To handle MIDI events plot\n protected fPlotHandler: PlotHandler | null;\n protected fCachedEvents: { type: string; data: any }[];\n protected fBufferNum: number;\n\n protected fInChannels: Float32Array[] | Float64Array[];\n protected fOutChannels: Float32Array[] | Float64Array[];\n\n protected fOutputsTimer: number;\n\n // UI items path\n protected fInputsItems: string[];\n protected fOutputsItems: string[];\n protected fDescriptor: FaustUIInputItem[];\n\n // Buffers in wasm memory\n protected fAudioInputs!: number;\n protected fAudioOutputs!: number;\n\n protected fBufferSize: number;\n protected gPtrSize: number;\n protected gSampleSize: number;\n\n // MIDI handling\n protected fPitchwheelLabel: { path: string; min: number; max: number }[];\n protected fCtrlLabel: { path: string; min: number; max: number }[][];\n protected fPathTable: { [address: string]: number };\n protected fUICallback: UIHandler;\n\n protected fProcessing: boolean;\n\n protected fDestroyed: boolean;\n\n protected fJSONDsp!: FaustDspMeta;\n\n constructor(sampleSize: number, bufferSize: number) {\n this.fOutputHandler = null;\n this.fComputeHandler = null;\n\n // To handle MIDI events plot\n this.fCachedEvents = [];\n this.fBufferNum = 0;\n this.fPlotHandler = null;\n\n this.fBufferSize = bufferSize;\n\n this.fInChannels = [];\n this.fOutChannels = [];\n\n this.gPtrSize = sampleSize; // Done on wast/wasm backend side\n this.gSampleSize = sampleSize;\n\n this.fOutputsTimer = 5;\n this.fInputsItems = [];\n this.fOutputsItems = [];\n this.fDescriptor = [];\n\n this.fPitchwheelLabel = [];\n this.fCtrlLabel = new Array(128).fill(null).map(() => []);\n this.fPathTable = {};\n\n this.fProcessing = false;\n this.fDestroyed = false;\n\n this.fUICallback = (item: FaustUIItem) => {\n if (item.type === \"hbargraph\" || item.type === \"vbargraph\") {\n // Keep bargraph adresses\n this.fOutputsItems.push(item.address);\n this.fPathTable[item.address] = item.index;\n } else if (item.type === \"vslider\" || item.type === \"hslider\" || item.type === \"button\" || item.type === \"checkbox\" || item.type === \"nentry\") {\n // Keep inputs adresses\n this.fInputsItems.push(item.address);\n this.fPathTable[item.address] = item.index;\n this.fDescriptor.push(item);\n // Parse 'midi' metadata\n if (!item.meta) return;\n item.meta.forEach((meta) => {\n const { midi } = meta;\n if (!midi) return;\n const strMidi = midi.trim();\n if (strMidi === \"pitchwheel\") {\n this.fPitchwheelLabel.push({ path: item.address, min: item.min as number, max: item.max as number });\n } else {\n const matched = strMidi.match(/^ctrl\\s(\\d+)/);\n if (!matched) return;\n this.fCtrlLabel[parseInt(matched[1])].push({ path: item.address, min: item.min as number, max: item.max as number });\n }\n });\n }\n }\n }\n\n // Tools\n static remap(v: number, mn0: number, mx0: number, mn1: number, mx1: number) {\n return (v - mn0) / (mx0 - mn0) * (mx1 - mn1) + mn1;\n }\n\n // JSON parsing functions\n static parseUI(ui: FaustUIDescriptor, callback: (item: FaustUIItem) => any) {\n ui.forEach(group => this.parseGroup(group, callback));\n }\n\n static parseGroup(group: FaustUIGroup, callback: (item: FaustUIItem) => any) {\n if (group.items) {\n this.parseItems(group.items, callback);\n }\n }\n static parseItems(items: FaustUIItem[], callback: (item: FaustUIItem) => any) {\n items.forEach(item => this.parseItem(item, callback));\n }\n\n static parseItem(item: FaustUIItem, callback: (item: FaustUIItem) => any) {\n if (item.type === \"vgroup\" || item.type === \"hgroup\" || item.type === \"tgroup\") {\n this.parseItems(item.items, callback);\n } else {\n callback(item);\n }\n }\n\n protected updateOutputs() {\n if (this.fOutputsItems.length > 0 && this.fOutputHandler && this.fOutputsTimer-- === 0) {\n this.fOutputsTimer = 5;\n this.fOutputsItems.forEach(item => this.fOutputHandler?.(item, this.getParamValue(item)));\n }\n }\n\n // Public API\n metadata(handler: MetadataHandler) {\n if (this.fJSONDsp.meta) {\n this.fJSONDsp.meta.forEach(meta => handler(Object.keys(meta)[0], meta[Object.keys(meta)[0]]));\n }\n }\n\n compute(input: Float32Array[], output: Float32Array[]) {\n return false;\n }\n\n setOutputParamHandler(handler: OutputParamHandler | null) {\n this.fOutputHandler = handler;\n }\n getOutputParamHandler() {\n return this.fOutputHandler;\n }\n\n setComputeHandler(handler: ComputeHandler | null) {\n this.fComputeHandler = handler;\n }\n getComputeHandler() {\n return this.fComputeHandler;\n }\n\n setPlotHandler(handler: PlotHandler | null) {\n this.fPlotHandler = handler;\n }\n getPlotHandler() {\n return this.fPlotHandler;\n }\n\n getNumInputs() {\n return -1;\n }\n getNumOutputs() {\n return -1;\n }\n\n midiMessage(data: number[] | Uint8Array) {\n if (this.fPlotHandler) this.fCachedEvents.push({ data, type: \"midi\" });\n const cmd = data[0] >> 4;\n const channel = data[0] & 0xf;\n const data1 = data[1];\n const data2 = data[2];\n if (cmd === 11) return this.ctrlChange(channel, data1, data2);\n if (cmd === 14) return this.pitchWheel(channel, (data2 * 128.0 + data1));\n }\n\n ctrlChange(channel: number, ctrl: number, value: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"ctrlChange\", data: [channel, ctrl, value] });\n if (this.fCtrlLabel[ctrl].length) {\n this.fCtrlLabel[ctrl].forEach((ctrl) => {\n const { path } = ctrl;\n this.setParamValue(path, FaustBaseWebAudioDsp.remap(value, 0, 127, ctrl.min, ctrl.max));\n // Typically used to reflect parameter change on GUI\n if (this.fOutputHandler) this.fOutputHandler(path, this.getParamValue(path));\n });\n }\n }\n\n pitchWheel(channel: number, wheel: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"pitchWheel\", data: [channel, wheel] });\n this.fPitchwheelLabel.forEach((pw) => {\n this.setParamValue(pw.path, FaustBaseWebAudioDsp.remap(wheel, 0, 16383, pw.min, pw.max));\n // Typically used to reflect parameter change on GUI\n if (this.fOutputHandler) this.fOutputHandler(pw.path, this.getParamValue(pw.path));\n });\n }\n\n setParamValue(path: string, value: number) { }\n getParamValue(path: string) { return 0; }\n\n getParams() { return this.fInputsItems; }\n getMeta() { return this.fJSONDsp; }\n getJSON() { return JSON.stringify(this.getMeta()); }\n getUI() { return this.fJSONDsp.ui; }\n getDescriptors() { return this.fDescriptor; }\n\n start() {\n this.fProcessing = true;\n }\n\n stop() {\n this.fProcessing = false;\n }\n\n destroy() {\n this.fDestroyed = true;\n this.fOutputHandler = null;\n this.fComputeHandler = null;\n this.fPlotHandler = null;\n }\n}\n\nexport class FaustMonoWebAudioDsp extends FaustBaseWebAudioDsp implements IFaustMonoWebAudioDsp {\n\n private fInstance: FaustMonoDspInstance;\n private fDSP!: number;\n\n constructor(instance: FaustMonoDspInstance, sampleRate: number, sampleSize: number, bufferSize: number) {\n\n super(sampleSize, bufferSize);\n this.fInstance = instance;\n\n // Create JSON object\n this.fJSONDsp = JSON.parse(this.fInstance.json);\n\n // Setup GUI\n FaustBaseWebAudioDsp.parseUI(this.fJSONDsp.ui, this.fUICallback);\n\n // Setup wasm memory\n this.initMemory();\n\n // Init DSP\n this.fInstance.api.init(this.fDSP, sampleRate);\n }\n\n private initMemory() {\n\n // Start of DSP memory: Mono DSP is placed first with index 0\n this.fDSP = 0;\n\n // Audio buffer start at the end of DSP\n const $audio = this.fJSONDsp.size;\n\n // Setup audio pointers offset\n this.fAudioInputs = $audio;\n this.fAudioOutputs = this.fAudioInputs + this.getNumInputs() * this.gPtrSize;\n\n // Prepare wasm memory layout\n const $audioInputs = this.fAudioOutputs + this.getNumOutputs() * this.gPtrSize;\n const $audioOutputs = $audioInputs + this.getNumInputs() * this.fBufferSize * this.gSampleSize;\n\n const HEAP = this.fInstance.memory.buffer;\n const HEAP32 = new Int32Array(HEAP);\n const HEAPF = (this.gSampleSize === 4) ? new Float32Array(HEAP) : new Float64Array(HEAP);\n\n if (this.getNumInputs() > 0) {\n for (let chan = 0; chan < this.getNumInputs(); chan++) {\n HEAP32[(this.fAudioInputs >> 2) + chan] = $audioInputs + this.fBufferSize * this.gSampleSize * chan;\n }\n // Prepare Ins buffer tables\n const dspInChans = HEAP32.subarray(this.fAudioInputs >> 2, (this.fAudioInputs + this.getNumInputs() * this.gPtrSize) >> 2);\n for (let chan = 0; chan < this.getNumInputs(); chan++) {\n this.fInChannels[chan] = HEAPF.subarray(dspInChans[chan] >> Math.log2(this.gSampleSize), (dspInChans[chan] + this.fBufferSize * this.gSampleSize) >> Math.log2(this.gSampleSize));\n }\n }\n if (this.getNumOutputs() > 0) {\n for (let chan = 0; chan < this.getNumOutputs(); chan++) {\n HEAP32[(this.fAudioOutputs >> 2) + chan] = $audioOutputs + this.fBufferSize * this.gSampleSize * chan;\n }\n // Prepare Out buffer tables\n const dspOutChans = HEAP32.subarray(this.fAudioOutputs >> 2, (this.fAudioOutputs + this.getNumOutputs() * this.gPtrSize) >> 2);\n for (let chan = 0; chan < this.getNumOutputs(); chan++) {\n this.fOutChannels[chan] = HEAPF.subarray(dspOutChans[chan] >> Math.log2(this.gSampleSize), (dspOutChans[chan] + this.fBufferSize * this.gSampleSize) >> Math.log2(this.gSampleSize));\n }\n }\n }\n\n toString() {\n return `============== Mono Memory layout ==============\nthis.fBufferSize: ${this.fBufferSize}\nthis.fJSONDsp.size: ${this.fJSONDsp.size}\nthis.fAudioInputs: ${this.fAudioInputs}\nthis.fAudioOutputs: ${this.fAudioOutputs}\nthis.fDSP: ${this.fDSP}`;\n }\n\n // Public API\n compute(input: Float32Array[] | ((input: Float32Array[] | Float64Array[]) => any), output: Float32Array[] | ((output: Float32Array[] | Float64Array[]) => any)) {\n\n // Check DSP state\n if (this.fDestroyed) return false;\n\n // Check Processing state: the node returns 'true' to stay in the graph, even if not processing\n if (!this.fProcessing) return true;\n\n if (typeof input === \"function\") {\n // Call input callback to avoid array copy\n input(this.fInChannels);\n } else {\n // Check inputs\n if (this.getNumInputs() > 0 && (!input || !input[0] || input[0].length === 0)) {\n // console.log(\"Process input error\");\n return true;\n }\n \n // Check outputs\n if (this.getNumOutputs() > 0 && typeof output !== \"function\" && (!output || !output[0] || output[0].length === 0)) {\n // console.log(\"Process output error\");\n return true;\n }\n \n // Copy inputs\n if (input !== undefined) {\n for (let chan = 0; chan < Math.min(this.getNumInputs(), input.length); chan++) {\n const dspInput = this.fInChannels[chan];\n dspInput.set(input[chan]);\n }\n } \n }\n // Possibly call an externally given callback (for instance to synchronize playing a MIDIFile...)\n if (this.fComputeHandler) this.fComputeHandler(this.fBufferSize);\n\n // Compute\n this.fInstance.api.compute(this.fDSP, this.fBufferSize, this.fAudioInputs, this.fAudioOutputs);\n\n // Update bargraph\n this.updateOutputs();\n\n let forPlot = this.fOutChannels;\n if (typeof output === \"function\") {\n // Call output callback to avoid array copy\n output(this.fOutChannels);\n } else {\n // Copy outputs\n for (let chan = 0; chan < Math.min(this.getNumOutputs(), output.length); chan++) {\n const dspOutput = this.fOutChannels[chan];\n output[chan].set(dspOutput);\n }\n forPlot = output;\n }\n\n // PlotHandler handling \n if (this.fPlotHandler) {\n this.fPlotHandler(forPlot, this.fBufferNum++, (this.fCachedEvents.length ? this.fCachedEvents : undefined));\n this.fCachedEvents = [];\n }\n\n return true;\n }\n\n metadata(handler: MetadataHandler) { super.metadata(handler); }\n\n getNumInputs() {\n return this.fInstance.api.getNumInputs(this.fDSP);\n }\n getNumOutputs() {\n return this.fInstance.api.getNumOutputs(this.fDSP);\n }\n\n setParamValue(path: string, value: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"param\", data: { path, value } });\n this.fInstance.api.setParamValue(this.fDSP, this.fPathTable[path], value);\n }\n getParamValue(path: string) {\n return this.fInstance.api.getParamValue(this.fDSP, this.fPathTable[path]);\n }\n\n getMeta() { return this.fJSONDsp; }\n getJSON() { return this.fInstance.json; }\n getDescriptors() { return this.fDescriptor; }\n getUI() { return this.fJSONDsp.ui; }\n}\n\nexport class FaustWebAudioDspVoice {\n\n static kActiveVoice: number;\n static kFreeVoice: number;\n static kReleaseVoice: number;\n static kLegatoVoice: number;\n static kNoVoice: number;\n static VOICE_STOP_LEVEL: number;\n private fFreqLabel: number[];\n private fGateLabel: number[];\n private fGainLabel: number[];\n private fKeyLabel: number[];\n private fVelLabel: number[];\n private fDSP: number; // Voice DSP location in wasm memory\n private fAPI: IFaustDspInstance; // Voice DSP code\n // Accessed by PolyDSPImp class\n fCurNote: number;\n fNextNote: number;\n fNextVel: number;\n fDate: number;\n fLevel: number;\n fRelease: number;\n\n constructor($dsp: number, api: IFaustDspInstance, inputItems: string[], pathTable: { [address: string]: number }, sampleRate: number) {\n // Voice state\n FaustWebAudioDspVoice.kActiveVoice = 0;\n FaustWebAudioDspVoice.kFreeVoice = -1;\n FaustWebAudioDspVoice.kReleaseVoice = -2;\n FaustWebAudioDspVoice.kLegatoVoice = -3;\n FaustWebAudioDspVoice.kNoVoice = -4;\n FaustWebAudioDspVoice.VOICE_STOP_LEVEL = 0.0005;\n\n this.fCurNote = FaustWebAudioDspVoice.kFreeVoice;\n this.fNextNote = this.fNextVel = -1;\n this.fLevel = 0;\n this.fDate = this.fRelease = 0;\n this.fDSP = $dsp;\n this.fAPI = api;\n this.fGateLabel = [];\n this.fGainLabel = [];\n this.fFreqLabel = [];\n this.fKeyLabel = [];\n this.fVelLabel = [];\n this.fAPI.init(this.fDSP, sampleRate);\n this.extractPaths(inputItems, pathTable);\n }\n\n static midiToFreq(note: number) { return 440.0 * 2 ** ((note - 69) / 12); }\n\n static normalizeVelocity(velocity: number) { return velocity / 127.0; }\n\n private extractPaths(inputItems: string[], pathTable: { [address: string]: number }) {\n inputItems.forEach((item) => {\n if (item.endsWith(\"/gate\")) {\n this.fGateLabel.push(pathTable[item]);\n } else if (item.endsWith(\"/freq\")) {\n this.fFreqLabel.push(pathTable[item]);\n } else if (item.endsWith(\"/key\")) {\n this.fKeyLabel.push(pathTable[item]);\n } else if (item.endsWith(\"/gain\")) {\n this.fGainLabel.push(pathTable[item]);\n } else if (item.endsWith(\"/vel\") && item.endsWith(\"/velocity\")) {\n this.fVelLabel.push(pathTable[item]);\n }\n });\n }\n\n // Public API\n keyOn(pitch: number, velocity: number, legato: boolean = false) {\n if (legato) {\n this.fNextNote = pitch;\n this.fNextVel = velocity;\n } else {\n this.fFreqLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, FaustWebAudioDspVoice.midiToFreq(pitch)));\n this.fGateLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, 1));\n this.fGainLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, FaustWebAudioDspVoice.normalizeVelocity(velocity)));\n this.fKeyLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, pitch));\n this.fVelLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, velocity));\n // Keep pitch\n this.fCurNote = pitch;\n }\n }\n\n keyOff(hard: boolean = false) {\n this.fGateLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, 0));\n if (hard) {\n this.fCurNote = FaustWebAudioDspVoice.kFreeVoice;\n } else {\n this.fRelease = this.fAPI.getSampleRate(this.fDSP) / 2;\n this.fCurNote = FaustWebAudioDspVoice.kReleaseVoice;\n }\n }\n\n computeLegato(bufferSize: number, $inputs: number, $outputZero: number, $outputsHalf: number) {\n\n let size = bufferSize / 2;\n\n // Reset envelops\n this.fGateLabel.forEach(index => this.fAPI.setParamValue(this.fDSP, index, 0));\n\n // Compute current voice on half buffer\n this.fAPI.compute(this.fDSP, size, $inputs, $outputZero);\n\n // Start next keyOn\n this.keyOn(this.fNextNote, this.fNextVel);\n\n // Compute on second half buffer\n this.fAPI.compute(this.fDSP, size, $inputs, $outputsHalf);\n }\n\n compute(bufferSize: number, $inputs: number, $outputs: number) {\n this.fAPI.compute(this.fDSP, bufferSize, $inputs, $outputs);\n }\n\n setParamValue(index: number, value: number) {\n this.fAPI.setParamValue(this.fDSP, index, value);\n }\n getParamValue(index: number) {\n return this.fAPI.getParamValue(this.fDSP, index);\n }\n}\n\nexport class FaustPolyWebAudioDsp extends FaustBaseWebAudioDsp implements IFaustPolyWebAudioDsp {\n\n private fInstance: FaustPolyDspInstance;\n private fEffect!: number;\n private fJSONEffect: FaustDspMeta | null;\n private fAudioMixing!: number;\n private fAudioMixingHalf!: number;\n private fVoiceTable: FaustWebAudioDspVoice[];\n\n constructor(instance: FaustPolyDspInstance, sampleRate: number, sampleSize: number, bufferSize: number) {\n super(sampleSize, bufferSize);\n this.fInstance = instance;\n\n // Create JSON for voice\n this.fJSONDsp = JSON.parse(this.fInstance.voiceJSON);\n\n // Create JSON for effect\n this.fJSONEffect = (this.fInstance.effectAPI && this.fInstance.effectJSON) ? JSON.parse(this.fInstance.effectJSON) : null;\n\n // Setup GUI\n FaustBaseWebAudioDsp.parseUI(this.fJSONDsp.ui, this.fUICallback);\n if (this.fJSONEffect) FaustBaseWebAudioDsp.parseUI(this.fJSONEffect.ui, this.fUICallback);\n\n // Setup wasm memory\n this.initMemory();\n\n // Init DSP voices\n this.fVoiceTable = [];\n for (let voice = 0; voice < this.fInstance.voices; voice++) {\n this.fVoiceTable.push(new FaustWebAudioDspVoice(\n this.fJSONDsp.size * voice,\n this.fInstance.voiceAPI,\n this.fInputsItems,\n this.fPathTable,\n sampleRate\n ));\n }\n\n // Init effect\n if (this.fInstance.effectAPI) this.fInstance.effectAPI.init(this.fEffect, sampleRate);\n }\n\n private initMemory() {\n\n // Effet start at the end of all DSP voices\n this.fEffect = this.fJSONDsp.size * this.fInstance.voices;\n\n // Audio buffer start at the end of effect\n const $audio = this.fEffect + (this.fJSONEffect ? this.fJSONEffect.size : 0);\n\n // Setup audio pointers offset\n this.fAudioInputs = $audio;\n this.fAudioOutputs = this.fAudioInputs + this.getNumInputs() * this.gPtrSize;\n this.fAudioMixing = this.fAudioOutputs + this.getNumOutputs() * this.gPtrSize;\n this.fAudioMixingHalf = this.fAudioMixing + this.getNumOutputs() * this.gPtrSize;\n\n // Prepare wasm memory layout\n const $audioInputs = this.fAudioMixingHalf + this.getNumOutputs() * this.gPtrSize;\n const $audioOutputs = $audioInputs + this.getNumInputs() * this.fBufferSize * this.gSampleSize;\n const $audioMixing = $audioOutputs + this.getNumOutputs() * this.fBufferSize * this.gSampleSize;\n\n const HEAP = this.fInstance.memory.buffer;\n const HEAP32 = new Int32Array(HEAP);\n const HEAPF = (this.gSampleSize === 4) ? new Float32Array(HEAP) : new Float64Array(HEAP);\n\n if (this.getNumInputs() > 0) {\n for (let chan = 0; chan < this.getNumInputs(); chan++) {\n HEAP32[(this.fAudioInputs >> 2) + chan] = $audioInputs + this.fBufferSize * this.gSampleSize * chan;\n }\n // Prepare Ins buffer tables\n const dspInChans = HEAP32.subarray(this.fAudioInputs >> 2, (this.fAudioInputs + this.getNumInputs() * this.gPtrSize) >> 2);\n for (let chan = 0; chan < this.getNumInputs(); chan++) {\n this.fInChannels[chan] = HEAPF.subarray(dspInChans[chan] >> Math.log2(this.gSampleSize), (dspInChans[chan] + this.fBufferSize * this.gSampleSize) >> Math.log2(this.gSampleSize));\n }\n }\n if (this.getNumOutputs() > 0) {\n for (let chan = 0; chan < this.getNumOutputs(); chan++) {\n HEAP32[(this.fAudioOutputs >> 2) + chan] = $audioOutputs + this.fBufferSize * this.gSampleSize * chan;\n HEAP32[(this.fAudioMixing >> 2) + chan] = $audioMixing + this.fBufferSize * this.gSampleSize * chan;\n HEAP32[(this.fAudioMixingHalf >> 2) + chan] = $audioMixing + this.fBufferSize * this.gSampleSize * chan + this.fBufferSize / 2 * this.gSampleSize;\n }\n // Prepare Out buffer tables\n const dspOutChans = HEAP32.subarray(this.fAudioOutputs >> 2, (this.fAudioOutputs + this.getNumOutputs() * this.gPtrSize) >> 2);\n for (let chan = 0; chan < this.getNumOutputs(); chan++) {\n this.fOutChannels[chan] = HEAPF.subarray(dspOutChans[chan] >> Math.log2(this.gSampleSize), (dspOutChans[chan] + this.fBufferSize * this.gSampleSize) >> Math.log2(this.gSampleSize));\n }\n }\n }\n\n toString() {\n return `============== Poly Memory layout ==============\nthis.fBufferSize: ${this.fBufferSize}\nthis.fJSONDsp.size: ${this.fJSONDsp.size}\nthis.fAudioInputs: ${this.fAudioInputs}\nthis.fAudioOutputs: ${this.fAudioOutputs}\nthis.fAudioMixing: ${this.fAudioMixing}\nthis.fAudioMixingHalf: ${this.fAudioMixingHalf}`;\n }\n\n private allocVoice(voice: number, type: number) {\n this.fVoiceTable[voice].fDate++;\n this.fVoiceTable[voice].fCurNote = type;\n return voice;\n }\n\n private getPlayingVoice(pitch: number) {\n let voicePlaying = FaustWebAudioDspVoice.kNoVoice;\n let oldestDatePlaying = Number.MAX_VALUE;\n\n for (let voice = 0; voice < this.fInstance.voices; voice++) {\n if (this.fVoiceTable[voice].fCurNote === pitch) {\n // Keeps oldest playing voice\n if (this.fVoiceTable[voice].fDate < oldestDatePlaying) {\n oldestDatePlaying = this.fVoiceTable[voice].fDate;\n voicePlaying = voice;\n }\n }\n }\n return voicePlaying;\n }\n\n private getFreeVoice() {\n for (let voice = 0; voice < this.fInstance.voices; voice++) {\n if (this.fVoiceTable[voice].fCurNote === FaustWebAudioDspVoice.kFreeVoice) {\n return this.allocVoice(voice, FaustWebAudioDspVoice.kActiveVoice);\n }\n }\n\n let voiceRelease = FaustWebAudioDspVoice.kNoVoice;\n let voicePlaying = FaustWebAudioDspVoice.kNoVoice;\n let oldestDateRelease = Number.MAX_VALUE;\n let oldestDatePlaying = Number.MAX_VALUE;\n\n for (let voice = 0; voice < this.fInstance.voices; voice++) { // Scan all voices\n // Try to steal a voice in DspVoice.kReleaseVoice mode...\n if (this.fVoiceTable[voice].fCurNote === FaustWebAudioDspVoice.kReleaseVoice) {\n // Keeps oldest release voice\n if (this.fVoiceTable[voice].fDate < oldestDateRelease) {\n oldestDateRelease = this.fVoiceTable[voice].fDate;\n voiceRelease = voice;\n }\n } else if (this.fVoiceTable[voice].fDate < oldestDatePlaying) {\n oldestDatePlaying = this.fVoiceTable[voice].fDate;\n voicePlaying = voice;\n }\n }\n // Then decide which one to steal\n if (oldestDateRelease !== Number.MAX_VALUE) {\n console.log(`Steal release voice : voice_date = ${this.fVoiceTable[voiceRelease].fDate} voice = ${voiceRelease}`);\n return this.allocVoice(voiceRelease, FaustWebAudioDspVoice.kLegatoVoice);\n }\n if (oldestDatePlaying !== Number.MAX_VALUE) {\n console.log(`Steal playing voice : voice_date = ${this.fVoiceTable[voicePlaying].fDate} voice = ${voicePlaying}`);\n return this.allocVoice(voicePlaying, FaustWebAudioDspVoice.kLegatoVoice);\n }\n return FaustWebAudioDspVoice.kNoVoice;\n }\n\n // Public API\n compute(input: Float32Array[], output: Float32Array[]) {\n\n // Check DSP state\n if (this.fDestroyed) return false;\n\n // Check Processing state: the node returns 'true' to stay in the graph, even if not processing\n if (!this.fProcessing) return true;\n\n // Check inputs\n if (this.getNumInputs() > 0 && (!input || !input[0] || input[0].length === 0)) {\n // console.log(\"Process input error\");\n return true;\n }\n\n // Check outputs\n if (this.getNumOutputs() > 0 && (!output || !output[0] || output[0].length === 0)) {\n // console.log(\"Process output error\");\n return true;\n }\n\n // Copy inputs\n if (input !== undefined) {\n for (let chan = 0; chan < Math.min(this.getNumInputs(), input.length); ++chan) {\n const dspInput = this.fInChannels[chan];\n dspInput.set(input[chan]);\n }\n }\n\n // Possibly call an externally given callback (for instance to synchronize playing a MIDIFile...)\n if (this.fComputeHandler) this.fComputeHandler(this.fBufferSize);\n\n // Compute\n this.fInstance.mixerAPI.clearOutput(this.fBufferSize, this.getNumOutputs(), this.fAudioOutputs);\n this.fVoiceTable.forEach((voice) => {\n if (voice.fCurNote === FaustWebAudioDspVoice.kLegatoVoice) {\n // Play from current note and next note\n voice.computeLegato(this.fBufferSize, this.fAudioInputs, this.fAudioMixing, this.fAudioMixingHalf);\n // FadeOut on first half buffer\n this.fInstance.mixerAPI.fadeOut(this.fBufferSize / 2, this.getNumOutputs(), this.fAudioMixing);\n // Mix it in result\n voice.fLevel = this.fInstance.mixerAPI.mixCheckVoice(this.fBufferSize, this.getNumOutputs(), this.fAudioMixing, this.fAudioOutputs);\n } else if (voice.fCurNote !== FaustWebAudioDspVoice.kFreeVoice) {\n // Compute current note\n voice.compute(this.fBufferSize, this.fAudioInputs, this.fAudioMixing);\n // Mix it in result\n voice.fLevel = this.fInstance.mixerAPI.mixCheckVoice(this.fBufferSize, this.getNumOutputs(), this.fAudioMixing, this.fAudioOutputs);\n // Check the level to possibly set the voice in kFreeVoice again\n voice.fRelease -= this.fBufferSize;\n if ((voice.fCurNote == FaustWebAudioDspVoice.kReleaseVoice) && ((voice.fLevel < FaustWebAudioDspVoice.VOICE_STOP_LEVEL) && (voice.fRelease < 0))) {\n voice.fCurNote = FaustWebAudioDspVoice.kFreeVoice;\n }\n }\n });\n if (this.fInstance.effectAPI) this.fInstance.effectAPI.compute(this.fEffect, this.fBufferSize, this.fAudioOutputs, this.fAudioOutputs);\n\n // Update bargraph\n this.updateOutputs();\n\n if (output !== undefined) {\n // Copy outputs\n for (let chan = 0; chan < Math.min(this.getNumOutputs(), output.length); chan++) {\n const dspOutput = this.fOutChannels[chan];\n output[chan].set(dspOutput);\n }\n\n // PlotHandler handling \n if (this.fPlotHandler) {\n this.fPlotHandler(output, this.fBufferNum++, (this.fCachedEvents.length ? this.fCachedEvents : undefined));\n this.fCachedEvents = [];\n }\n }\n\n return true;\n }\n getNumInputs() {\n return this.fInstance.voiceAPI.getNumInputs(0);\n }\n getNumOutputs() {\n return this.fInstance.voiceAPI.getNumOutputs(0);\n }\n\n private static findPath(o: any, p: string) {\n if (typeof o !== \"object\") {\n return false;\n } else if (o.address) {\n return (o.address === p);\n } else {\n for (const k in o) {\n if (FaustPolyWebAudioDsp.findPath(o[k], p)) return true;\n }\n return false;\n }\n }\n\n setParamValue(path: string, value: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"param\", data: { path, value } });\n if (this.fJSONEffect && FaustPolyWebAudioDsp.findPath(this.fJSONEffect.ui, path) && this.fInstance.effectAPI) {\n this.fInstance.effectAPI.setParamValue(this.fEffect, this.fPathTable[path], value);\n } else {\n this.fVoiceTable.forEach(voice => voice.setParamValue(this.fPathTable[path], value));\n }\n }\n getParamValue(path: string) {\n if (this.fJSONEffect && FaustPolyWebAudioDsp.findPath(this.fJSONEffect.ui, path) && this.fInstance.effectAPI) {\n return this.fInstance.effectAPI.getParamValue(this.fEffect, this.fPathTable[path]);\n } else {\n return this.fVoiceTable[0].getParamValue(this.fPathTable[path]);\n }\n }\n\n getMeta() {\n const o = this.fJSONDsp;\n const e = this.fJSONEffect;\n const r = { ...o };\n if (e) {\n r.ui = [{\n type: \"tgroup\", label: \"Sequencer\", items: [\n { type: \"vgroup\", label: \"Instrument\", items: o.ui },\n { type: \"vgroup\", label: \"Effect\", items: e.ui }\n ]\n }];\n } else {\n r.ui = [{\n type: \"tgroup\", label: \"Polyphonic\", items: [\n { type: \"vgroup\", label: \"Voices\", items: o.ui }\n ]\n }];\n }\n return r as FaustDspMeta;\n }\n\n getJSON() {\n return JSON.stringify(this.getMeta());\n }\n\n getUI() {\n return this.getMeta().ui;\n }\n\n getDescriptors() { return this.fDescriptor; }\n\n midiMessage(data: number[] | Uint8Array) {\n const cmd = data[0] >> 4;\n const channel = data[0] & 0xf;\n const data1 = data[1];\n const data2 = data[2];\n if (cmd === 8 || (cmd === 9 && data2 === 0)) return this.keyOff(channel, data1, data2);\n else if (cmd === 9) return this.keyOn(channel, data1, data2);\n else super.midiMessage(data);\n };\n\n ctrlChange(channel: number, ctrl: number, value: number) {\n if (ctrl === 123 || ctrl === 120) {\n this.allNotesOff(true);\n } else {\n super.ctrlChange(channel, ctrl, value);\n }\n }\n\n keyOn(channel: number, pitch: number, velocity: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"keyOn\", data: [channel, pitch, velocity] });\n const voice = this.getFreeVoice();\n this.fVoiceTable[voice].keyOn(pitch, velocity, this.fVoiceTable[voice].fCurNote == FaustWebAudioDspVoice.kLegatoVoice);\n }\n\n keyOff(channel: number, pitch: number, velocity: number) {\n if (this.fPlotHandler) this.fCachedEvents.push({ type: \"keyOff\", data: [channel, pitch, velocity] });\n const voice = this.getPlayingVoice(pitch);\n if (voice !== FaustWebAudioDspVoice.kNoVoice) {\n this.fVoiceTable[voice].keyOff();\n } else {\n console.log(\"Playing pitch = %d not found\\n\", pitch);\n }\n }\n\n allNotesOff(hard: boolean = true) {\n this.fCachedEvents.push({ type: \"ctrlChange\", data: [0, 123, 0] });\n this.fVoiceTable.forEach(voice => voice.keyOff(hard));\n }\n}\n", "import { ComputeHandler, FaustBaseWebAudioDsp, FaustMonoWebAudioDsp, FaustPolyWebAudioDsp, IFaustBaseWebAudioDsp, IFaustMonoWebAudioDsp, IFaustPolyWebAudioDsp, MetadataHandler, OutputParamHandler, PlotHandler } from \"./FaustWebAudioDsp\";\nimport { AudioParamDescriptor, FaustUIItem } from \"./types\";\n\n/**\n * For offline rendering.\n */\nexport interface IFaustOfflineProcessor extends IFaustBaseWebAudioDsp {\n render(inputs?: Float32Array[], length?: number, onUpdate?: (sample: number) => any): Float32Array[];\n}\n\nexport interface IFaustMonoOfflineProcessor extends IFaustOfflineProcessor, IFaustMonoWebAudioDsp {}\nexport interface IFaustPolyOfflineProcessor extends IFaustOfflineProcessor, IFaustPolyWebAudioDsp {}\n\nexport class FaustOfflineProcessor<Poly extends boolean = false> {\n protected fDSPCode!: Poly extends true ? FaustPolyWebAudioDsp : FaustMonoWebAudioDsp;\n\n protected fBufferSize: number;\n protected fInputs: Float32Array[];\n protected fOutputs: Float32Array[];\n\n constructor(instance: Poly extends true ? FaustPolyWebAudioDsp : FaustMonoWebAudioDsp, bufferSize: number) {\n this.fDSPCode = instance;\n this.fBufferSize = bufferSize;\n this.fInputs = new Array(this.fDSPCode.getNumInputs()).fill(null).map(() => new Float32Array(bufferSize));\n this.fOutputs = new Array(this.fDSPCode.getNumOutputs()).fill(null).map(() => new Float32Array(bufferSize));\n }\n\n // Public API\n\n getParameterDescriptors() {\n const params = [] as AudioParamDescriptor[];\n // Analyse voice JSON to generate AudioParam parameters\n const callback = (item: FaustUIItem) => {\n let param: AudioParamDescriptor | null = null;\n const polyKeywords = [\"/gate\", \"/freq\", \"/gain\", \"/key\", \"/vel\", \"/velocity\"];\n const isPolyReserved = \"address\" in item && !!polyKeywords.find(k => item.address.endsWith(k));\n if (this.fDSPCode instanceof FaustMonoWebAudioDsp || !isPolyReserved) {\n if (item.type === \"vslider\" || item.type === \"hslider\" || item.type === \"nentry\") {\n param = { name: item.address, defaultValue: item.init || 0, minValue: item.min || 0, maxValue: item.max || 0 };\n } else if (item.type === \"button\" || item.type === \"checkbox\") {\n param = { name: item.address, defaultValue: item.init || 0, minValue: 0, maxValue: 1 };\n }\n }\n if (param) params.push(param);\n }\n FaustBaseWebAudioDsp.parseUI(this.fDSPCode.getUI(), callback);\n return params;\n }\n compute(input: Float32Array[], output: Float32Array[]) { return this.fDSPCode.compute(input, output); }\n\n setOutputParamHandler(handler: OutputParamHandler) { this.fDSPCode.setOutputParamHandler(handler); }\n getOutputParamHandler() { return this.fDSPCode.getOutputParamHandler(); }\n\n setComputeHandler(handler: ComputeHandler) { this.fDSPCode.setComputeHandler(handler); }\n getComputeHandler() { return this.fDSPCode.getComputeHandler(); }\n\n setPlotHandler(handler: PlotHandler) { this.fDSPCode.setPlotHandler(handler); }\n getPlotHandler() { return this.fDSPCode.getPlotHandler(); }\n\n getNumInputs() { return this.fDSPCode.getNumInputs(); }\n getNumOutputs() { return this.fDSPCode.getNumOutputs(); }\n\n metadata(handler: MetadataHandler) { }\n\n midiMessage(data: number[] | Uint8Array) { this.fDSPCode.midiMessage(data); }\n\n ctrlChange(chan: number, ctrl: number, value: number) { this.fDSPCode.ctrlChange(chan, ctrl, value); }\n pitchWheel(chan: number, value: number) { this.fDSPCode.pitchWheel(chan, value); }\n\n setParamValue(path: string, value: number) { this.fDSPCode.setParamValue(path, value); }\n getParamValue(path: string) { return this.fDSPCode.getParamValue(path); }\n getParams() { return this.fDSPCode.getParams(); }\n\n getMeta() { return this.fDSPCode.getMeta(); }\n getJSON() { return this.fDSPCode.getJSON(); }\n getDescriptors() { return this.fDSPCode.getDescriptors(); }\n getUI() { return this.fDSPCode.getUI(); }\n\n start() { this.fDSPCode.start(); }\n stop() { this.fDSPCode.stop(); }\n\n destroy() { this.fDSPCode.destroy(); }\n\n /**\n * Render frames in an array.\n *\n * @param inputs - input signal\n * @param length - the number of frames to render (default: bufferSize)\n * @param onUpdate - a callback after each buffer calculated, with an argument \"current sample\"\n * @return an array of Float32Array with the rendered frames\n */\n render(inputs: Float32Array[] = [], length = this.fBufferSize, onUpdate?: (sample: number) => any): Float32Array[] {\n let l = 0;\n const outputs = new Array(this.fDSPCode.getNumOutputs()).fill(null).map(() => new Float32Array(length));\n // The node has to be started before rendering\n this.fDSPCode.start();\n while (l < length) {\n const sliceLength = Math.min(length - l, this.fBufferSize);\n for (let i = 0; i < this.fDSPCode.getNumInputs(); i++) {\n let input: Float32Array;\n if (inputs[i]) {\n if (inputs[i].length <= l) {\n input = new Float32Array(sliceLength);\n } else if (inputs[i].length > l + sliceLength) {\n input = inputs[i].subarray(l, l + sliceLength);\n } else {\n input = inputs[i].subarray(l, inputs[i].length);\n }\n } else {\n input = new Float32Array(sliceLength);\n }\n this.fInputs[i] = input;\n }\n this.fDSPCode.compute(this.fInputs, this.fOutputs);\n for (let i = 0; i < this.fDSPCode.getNumOutputs(); i++) {\n const output = this.fOutputs[i];\n if (sliceLength < this.fBufferSize) {\n outputs[i].set(output.subarray(0, sliceLength), l);\n } else {\n outputs[i].set(output, l);\n }\n }\n l += this.fBufferSize;\n onUpdate?.(l);\n }\n // The node can be stopped after rendering\n this.fDSPCode.stop();\n return outputs;\n }\n}\n\nexport class FaustMonoOfflineProcessor extends FaustOfflineProcessor<false> implements IFaustMonoWebAudioDsp {\n}\n\nexport class FaustPolyOfflineProcessor extends FaustOfflineProcessor<true> implements IFaustPolyWebAudioDsp {\n keyOn(channel: number, pitch: number, velocity: number) { this.fDSPCode.keyOn(channel, pitch, velocity); }\n keyOff(channel: number, pitch: number, velocity: number) { this.fDSPCode.keyOff(channel, pitch, velocity); }\n allNotesOff(hard: boolean) { this.fDSPCode.allNotesOff(hard); }\n}\n\nexport default FaustOfflineProcessor;\n", "import type FaustCompiler from \"./FaustCompiler\";\n\ninterface IFaustSvgDiagrams {\n /**\n * Generates auxiliary files from Faust code. The output depends on the compiler options.\n *\n * @param name - the DSP's name\n * @param code - Faust code\n * @param args - compilation args\n * @returns the svg diagrams as a filename - svg string map\n */\n from(name: string, code: string, args: string): Record<string, string>;\n}\n\nclass FaustSvgDiagrams implements IFaustSvgDiagrams {\n private compiler: FaustCompiler;\n\n constructor(compiler: FaustCompiler) {\n this.compiler = compiler;\n }\n \n from(name: string, code: string, args: string) {\n const fs = this.compiler.fs();\n try {\n const files: string[] = fs.readdir(`/${name}-svg/`);\n files.filter(file => file !== \".\" && file !== \"..\").forEach(file => fs.unlink(`/${name}-svg/${file}`));\n } catch {}\n const success = this.compiler.generateAuxFiles(name, code, `-lang wasm -svg ${args}`);\n if (!success) throw new Error(this.compiler.getErrorMessage());\n const svgs: Record<string, string> = {};\n const files: string[] = fs.readdir(`/${name}-svg/`);\n files.filter(file => file !== \".\" && file !== \"..\").forEach(file => svgs[file] = fs.readFile(`/${name}-svg/${file}`, { encoding: \"utf8\" }) as string);\n return svgs;\n }\n}\n\nexport default FaustSvgDiagrams;\n", "import type { FaustModule, LibFaustWasm, FaustInfoType } from \"./types\";\n\nexport interface ILibFaust extends LibFaustWasm {\n module(): FaustModule;\n fs(): typeof FS;\n}\n\nclass LibFaust implements ILibFaust {\n private fModule: FaustModule;\n private fCompiler: LibFaustWasm;\n private fFileSystem: typeof FS;\n\n constructor(module: FaustModule) {\n this.fModule = module;\n this.fCompiler = new module.libFaustWasm();\n this.fFileSystem = this.fModule.FS;\n }\n module() {\n return this.fModule;\n }\n fs() {\n return this.fFileSystem;\n }\n version() {\n return this.fCompiler.version();\n }\n createDSPFactory(name: string, code: string, args: string, useInternalMemory: boolean) {\n return this.fCompiler.createDSPFactory(name, code, args, useInternalMemory);\n }\n deleteDSPFactory(cFactory: number) {\n return this.fCompiler.deleteDSPFactory(cFactory);\n }\n expandDSP(name: string, code: string, args: string) {\n return this.fCompiler.expandDSP(name, code, args);\n }\n generateAuxFiles(name: string, code: string, args: string) {\n return this.fCompiler.generateAuxFiles(name, code, args);\n }\n deleteAllDSPFactories() {\n return this.fCompiler.deleteAllDSPFactories();\n }\n getErrorAfterException() {\n return this.fCompiler.getErrorAfterException();\n }\n cleanupAfterException() {\n return this.fCompiler.cleanupAfterException();\n }\n getInfos(what: FaustInfoType) {\n return this.fCompiler.getInfos(what);\n }\n toString() {\n return `LibFaust module: ${this.fModule}, compiler: ${this.fCompiler}`;\n }\n\n}\n\nexport default LibFaust;\n", "export interface WavEncoderOptions {\n bitDepth: number;\n float?: boolean;\n symmetric?: boolean;\n shared?: boolean;\n sampleRate: number;\n}\ninterface Format {\n formatId: number;\n float: boolean;\n symmetric: boolean;\n numberOfChannels: number;\n sampleRate: number;\n length: number;\n bitDepth: number;\n byteDepth: number;\n}\n\n/**\n * Code from https://github.com/mohayonao/wav-encoder\n */\nclass WavEncoder {\n static encode(audioBuffer: Float32Array[], options: WavEncoderOptions) {\n const numberOfChannels = audioBuffer.length;\n const length = audioBuffer[0].length;\n const { shared, float } = options;\n const bitDepth = float ? 32 : ((options.bitDepth | 0) || 16);\n const byteDepth = bitDepth >> 3;\n const byteLength = length * numberOfChannels * byteDepth;\n // eslint-disable-next-line no-undef\n const AB = shared ? (globalThis.SharedArrayBuffer || globalThis.ArrayBuffer) : globalThis.ArrayBuffer;\n const ab = new AB((44 + byteLength) * Uint8Array.BYTES_PER_ELEMENT);\n const dataView = new DataView(ab);\n const writer = new Writer(dataView);\n const format: Format = {\n formatId: float ? 0x0003 : 0x0001,\n float: !!float,\n numberOfChannels,\n sampleRate: options.sampleRate,\n symmetric: !!options.symmetric,\n length,\n bitDepth,\n byteDepth\n };\n this.writeHeader(writer, format);\n this.writeData(writer, audioBuffer, format);\n return ab;\n }\n private static writeHeader(writer: Writer, format: Format) {\n const { formatId, sampleRate, bitDepth, numberOfChannels, length, byteDepth } = format;\n writer.string(\"RIFF\");\n writer.uint32(writer.dataView.byteLength - 8);\n writer.string(\"WAVE\");\n writer.string(\"fmt \");\n writer.uint32(16);\n writer.uint16(formatId);\n writer.uint16(numberOfChannels);\n writer.uint32(sampleRate);\n writer.uint32(sampleRate * numberOfChannels * byteDepth);\n writer.uint16(numberOfChannels * byteDepth);\n writer.uint16(bitDepth);\n writer.string(\"data\");\n writer.uint32(length * numberOfChannels * byteDepth);\n return writer.pos;\n }\n private static writeData(writer: Writer, audioBuffer: Float32Array[], format: Format) {\n const { bitDepth, float, length, numberOfChannels, symmetric } = format;\n if (bitDepth === 32 && float) {\n const { dataView, pos } = writer;\n const ab = dataView.buffer;\n const f32View = new Float32Array(ab, pos);\n if (numberOfChannels === 1) {\n f32View.set(audioBuffer[0]);\n return;\n }\n for (let ch = 0; ch < numberOfChannels; ch++) {\n const channel = audioBuffer[ch];\n for (let i = 0; i < length; i++) {\n f32View[i * numberOfChannels + ch] = channel[i];\n }\n }\n return;\n }\n const encoderOption = float ? \"f\" : symmetric ? \"s\" : \"\";\n const methodName = \"pcm\" + bitDepth + encoderOption;\n\n if (!(writer as any)[methodName]) {\n throw new TypeError(\"Not supported bit depth: \" + bitDepth);\n }\n\n const write: (value: number) => void = (writer as any)[methodName].bind(writer);\n\n for (let i = 0; i < length; i++) {\n for (let j = 0; j < numberOfChannels; j++) {\n write(audioBuffer[j][i]);\n }\n }\n }\n}\n\nclass Writer {\n pos = 0;\n dataView: DataView;\n constructor(dataView: DataView) {\n this.dataView = dataView;\n }\n int16(value: number) {\n this.dataView.setInt16(this.pos, value, true);\n this.pos += 2;\n }\n uint16(value: number) {\n this.dataView.setUint16(this.pos, value, true);\n this.pos += 2;\n }\n uint32(value: number) {\n this.dataView.setUint32(this.pos, value, true);\n this.pos += 4;\n }\n string(value: string) {\n for (let i = 0, imax = value.length; i < imax; i++) {\n this.dataView.setUint8(this.pos++, value.charCodeAt(i));\n }\n }\n pcm8(valueIn: number) {\n let value = valueIn;\n value = Math.max(-1, Math.min(value, +1));\n value = (value * 0.5 + 0.5) * 255;\n value = Math.round(value) | 0;\n this.dataView.setUint8(this.pos, value/* , true*/);\n this.pos += 1;\n }\n pcm8s(valueIn: number) {\n let value = valueIn;\n value = Math.round(value * 128) + 128;\n value = Math.max(0, Math.min(value, 255));\n this.dataView.setUint8(this.pos, value/* , true*/);\n this.pos += 1;\n }\n pcm16(valueIn: number) {\n let value = valueIn;\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? value * 32768 : value * 32767;\n value = Math.round(value) | 0;\n this.dataView.setInt16(this.pos, value, true);\n this.pos += 2;\n }\n pcm16s(valueIn: number) {\n let value = valueIn;\n value = Math.round(value * 32768);\n value = Math.max(-32768, Math.min(value, 32767));\n this.dataView.setInt16(this.pos, value, true);\n this.pos += 2;\n }\n pcm24(valueIn: number) {\n let value = valueIn;\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? 0x1000000 + value * 8388608 : value * 8388607;\n value = Math.round(value) | 0;\n\n const x0 = (value >> 0) & 0xFF;\n const x1 = (value >> 8) & 0xFF;\n const x2 = (value >> 16) & 0xFF;\n\n this.dataView.setUint8(this.pos + 0, x0);\n this.dataView.setUint8(this.pos + 1, x1);\n this.dataView.setUint8(this.pos + 2, x2);\n this.pos += 3;\n }\n pcm24s(valueIn: number) {\n let value = valueIn;\n value = Math.round(value * 8388608);\n value = Math.max(-8388608, Math.min(value, 8388607));\n\n const x0 = (value >> 0) & 0xFF;\n const x1 = (value >> 8) & 0xFF;\n const x2 = (value >> 16) & 0xFF;\n\n this.dataView.setUint8(this.pos + 0, x0);\n this.dataView.setUint8(this.pos + 1, x1);\n this.dataView.setUint8(this.pos + 2, x2);\n this.pos += 3;\n }\n pcm32(valueIn: number) {\n let value = valueIn;\n value = Math.max(-1, Math.min(value, +1));\n value = value < 0 ? value * 2147483648 : value * 2147483647;\n value = Math.round(value) | 0;\n this.dataView.setInt32(this.pos, value, true);\n this.pos += 4;\n }\n pcm32s(valueIn: number) {\n let value = valueIn;\n value = Math.round(value * 2147483648);\n value = Math.max(-2147483648, Math.min(value, +2147483647));\n this.dataView.setInt32(this.pos, value, true);\n this.pos += 4;\n }\n pcm32f(value: number) {\n this.dataView.setFloat32(this.pos, value, true);\n this.pos += 4;\n }\n}\n\nexport default WavEncoder;\n", "export interface WavDecoderOptions {\n symmetric?: boolean;\n shared?: boolean;\n}\ninterface Format {\n formatId: number;\n float: boolean;\n numberOfChannels: number;\n sampleRate: number;\n byteRate: number;\n blockSize: number;\n bitDepth: number;\n}\n\n/**\n * Code from https://github.com/mohayonao/wav-decoder\n */\nclass WavDecoder {\n static decode(buffer: ArrayBuffer, options?: WavDecoderOptions) {\n const dataView = new DataView(buffer);\n const reader = new Reader(dataView);\n if (reader.string(4) !== \"RIFF\") {\n throw new TypeError(\"Invalid WAV file\");\n }\n reader.uint32(); // skip file length\n if (reader.string(4) !== \"WAVE\") {\n throw new TypeError(\"Invalid WAV file\");\n }\n let format: Format | null = null;\n let audioData: {\n numberOfChannels: number;\n length: number;\n sampleRate: number;\n channelData: Float32Array[];\n } | null = null;\n do {\n const chunkType = reader.string(4);\n const chunkSize = reader.uint32();\n if (chunkType === \"fmt \") {\n format = this.decodeFormat(reader, chunkSize);\n } else if (chunkType === \"data\") {\n audioData = this.decodeData(reader, chunkSize, format as Format, options || {});\n } else {\n reader.skip(chunkSize);\n }\n } while (audioData === null);\n return audioData;\n }\n private static decodeFormat(reader: Reader, chunkSize: number) {\n const formats = {\n 0x0001: \"lpcm\",\n 0x0003: \"lpcm\"\n };\n const formatId = reader.uint16();\n if (!formats.hasOwnProperty(formatId)) {\n throw new TypeError(\"Unsupported format in WAV file: 0x\" + formatId.toString(16));\n }\n const format: Format = {\n formatId: formatId,\n float: formatId === 0x0003,\n numberOfChannels: reader.uint16(),\n sampleRate: reader.uint32(),\n byteRate: reader.uint32(),\n blockSize: reader.uint16(),\n bitDepth: reader.uint16()\n };\n reader.skip(chunkSize - 16);\n return format;\n }\n private static decodeData(reader: Reader, chunkSizeIn: number, format: Format, options: WavDecoderOptions) {\n const chunkSize = Math.min(chunkSizeIn, reader.remain());\n const length = Math.floor(chunkSize / format.blockSize);\n const numberOfChannels = format.numberOfChannels;\n const sampleRate = format.sampleRate;\n const channelData: Float32Array[] = new Array(numberOfChannels);\n for (let ch = 0; ch < numberOfChannels; ch++) {\n const AB = options.shared ? (globalThis.SharedArrayBuffer || globalThis.ArrayBuffer) : globalThis.ArrayBuffer;\n const ab = new AB(length * Float32Array.BYTES_PER_ELEMENT);\n channelData[ch] = new Float32Array(ab);\n }\n this.readPCM(reader, channelData, length, format, options);\n return {\n numberOfChannels,\n length,\n sampleRate,\n channelData\n };\n }\n private static readPCM(reader: Reader, channelData: Float32Array[], length: number, format: Format, options: WavDecoderOptions) {\n const bitDepth = format.bitDepth;\n const decoderOption = format.float ? \"f\" : options.symmetric ? \"s\" : \"\";\n const methodName = \"pcm\" + bitDepth + decoderOption as `pcm${8 | 16 | 32}${\"f\" | \"s\" | \"\"}`;\n if (!(reader as any)[methodName]) {\n throw new TypeError(\"Not supported bit depth: \" + format.bitDepth);\n }\n const read: () => number = (reader as any)[methodName].bind(reader);\n const numberOfChannels = format.numberOfChannels;\n for (let i = 0; i < length; i++) {\n for (let ch = 0; ch < numberOfChannels; ch++) {\n channelData[ch][i] = read();\n }\n }\n }\n}\n\nclass Reader {\n pos = 0;\n dataView: DataView;\n constructor(dataView: DataView) {\n this.dataView = dataView;\n }\n remain() {\n return this.dataView.byteLength - this.pos;\n }\n skip(n: number) {\n this.pos += n;\n }\n uint8() {\n const data = this.dataView.getUint8(this.pos);\n this.pos += 1;\n return data;\n }\n int16() {\n const data = this.dataView.getInt16(this.pos, true);\n this.pos += 2;\n return data;\n }\n uint16() {\n const data = this.dataView.getUint16(this.pos, true);\n this.pos += 2;\n return data;\n }\n uint32() {\n const data = this.dataView.getUint32(this.pos, true);\n this.pos += 4;\n return data;\n }\n string(n: number) {\n let data = \"\";\n for (let i = 0; i < n; i++) {\n data += String.fromCharCode(this.uint8());\n }\n return data;\n }\n pcm8() {\n const data = this.dataView.getUint8(this.pos) - 128;\n this.pos += 1;\n return data < 0 ? data / 128 : data / 127;\n }\n pcm8s() {\n const data = this.dataView.getUint8(this.pos) - 127.5;\n this.pos += 1;\n return data / 127.5;\n }\n pcm16() {\n const data = this.dataView.getInt16(this.pos, true);\n this.pos += 2;\n return data < 0 ? data / 32768 : data / 32767;\n }\n pcm16s() {\n const data = this.dataView.getInt16(this.pos, true);\n this.pos += 2;\n return data / 32768;\n }\n pcm24() {\n const x0 = this.dataView.getUint8(this.pos + 0);\n const x1 = this.dataView.getUint8(this.pos + 1);\n const x2 = this.dataView.getUint8(this.pos + 2);\n const xx = (x0 + (x1 << 8) + (x2 << 16));\n\n const data = xx > 0x800000 ? xx - 0x1000000 : xx;\n this.pos += 3;\n return data < 0 ? data / 8388608 : data / 8388607;\n }\n pcm24s() {\n const x0 = this.dataView.getUint8(this.pos + 0);\n const x1 = this.dataView.getUint8(this.pos + 1);\n const x2 = this.dataView.getUint8(this.pos + 2);\n const xx = (x0 + (x1 << 8) + (x2 << 16));\n\n const data = xx > 0x800000 ? xx - 0x1000000 : xx;\n this.pos += 3;\n return data / 8388608;\n }\n pcm32() {\n const data = this.dataView.getInt32(this.pos, true);\n this.pos += 4;\n return data < 0 ? data / 2147483648 : data / 2147483647;\n }\n pcm32s() {\n const data = this.dataView.getInt32(this.pos, true);\n this.pos += 4;\n return data / 2147483648;\n }\n pcm32f() {\n const data = this.dataView.getFloat32(this.pos, true);\n this.pos += 4;\n return data;\n }\n pcm64f() {\n const data = this.dataView.getFloat64(this.pos, true);\n this.pos += 8;\n return data;\n }\n}\n\nexport default WavDecoder;\n", "import { OutputParamHandler, ComputeHandler, PlotHandler, UIHandler, MetadataHandler, FaustBaseWebAudioDsp, IFaustMonoWebAudioDsp, IFaustPolyWebAudioDsp } from \"./FaustWebAudioDsp\";\nimport type { FaustAudioWorkletNodeOptions } from \"./FaustAudioWorkletProcessor\";\nimport type { LooseFaustDspFactory, FaustDspMeta, FaustUIInputItem, FaustUIItem } from \"./types\";\n\n/**\n * Base class for Monophonic and Polyphonic AudioWorkletNode\n */\nexport class FaustAudioWorkletNode<Poly extends boolean = false> extends (globalThis.AudioWorkletNode || null) {\n\n protected fJSONDsp: FaustDspMeta;\n protected fJSON: string;\n protected fInputsItems: string[];\n protected fOutputHandler: OutputParamHandler | null;\n protected fComputeHandler: ComputeHandler | null;\n protected fPlotHandler: PlotHandler | null;\n protected fUICallback: UIHandler;\n protected fDescriptor: FaustUIInputItem[];\n\n constructor(context: BaseAudioContext, name: string, factory: LooseFaustDspFactory, options: FaustAudioWorkletNodeOptions<Poly>[\"processorOptions\"], nodeOptions: Partial<FaustAudioWorkletNodeOptions> = {}) {\n\n // Create JSON object\n const JSONObj: FaustDspMeta = JSON.parse(factory.json);\n\n // Create proxy FaustAudioWorkletProcessor\n super(context, name, {\n numberOfInputs: JSONObj.inputs > 0 ? 1 : 0,\n numberOfOutputs: JSONObj.outputs > 0 ? 1 : 0,\n channelCount: Math.max(1, JSONObj.inputs),\n outputChannelCount: [JSONObj.outputs],\n channelCountMode: \"explicit\",\n channelInterpretation: \"speakers\",\n processorOptions: options,\n ...nodeOptions\n });\n\n this.fJSONDsp = JSONObj;\n this.fJSON = factory.json;\n this.fOutputHandler = null;\n this.fComputeHandler = null;\n this.fPlotHandler = null;\n this.fDescriptor = [];\n\n // Parse UI\n this.fInputsItems = [];\n this.fUICallback = (item: FaustUIItem) => {\n if (item.type === \"vslider\" || item.type === \"hslider\" || item.type === \"button\" || item.type === \"checkbox\" || item.type === \"nentry\") {\n // Keep inputs adresses\n this.fInputsItems.push(item.address);\n this.fDescriptor.push(item);\n }\n }\n FaustBaseWebAudioDsp.parseUI(this.fJSONDsp.ui, this.fUICallback);\n\n // Patch it with additional functions\n this.port.onmessage = (e: MessageEvent) => {\n if (e.data.type === \"param\" && this.fOutputHandler) {\n this.fOutputHandler(e.data.path, e.data.value);\n } else if (e.data.type === \"plot\" && this.fPlotHandler) {\n this.fPlotHandler(e.data.value, e.data.index, e.data.events);\n }\n };\n }\n\n // Public API\n setOutputParamHandler(handler: OutputParamHandler | null) {\n this.fOutputHandler = handler;\n }\n getOutputParamHandler() {\n return this.fOutputHandler;\n }\n\n setComputeHandler(handler: ComputeHandler | null) {\n this.fComputeHandler = handler;\n }\n getComputeHandler(): ComputeHandler | null {\n return this.fComputeHandler;\n }\n\n setPlotHandler(handler: PlotHandler | null) {\n this.fPlotHandler = handler;\n // Set PlotHandler on processor side\n if (this.fPlotHandler) {\n this.port.postMessage({ type: \"setPlotHandler\", data: true });\n } else {\n this.port.postMessage({ type: \"setPlotHandler\", data: false });\n }\n }\n getPlotHandler(): PlotHandler | null {\n return this.fPlotHandler;\n }\n\n getNumInputs() {\n return this.fJSONDsp.inputs;\n }\n getNumOutputs() {\n return this.fJSONDsp.outputs;\n }\n\n // Implemented in subclasses\n compute(inputs: Float32Array[], outputs: Float32Array[]) {\n return false;\n }\n\n metadata(handler: MetadataHandler) {\n if (this.fJSONDsp.meta) {\n this.fJSONDsp.meta.forEach(meta => handler(Object.keys(meta)[0], meta[Object.keys(meta)[0]]));\n }\n }\n\n midiMessage(data: number[] | Uint8Array): void {\n const cmd = data[0] >> 4;\n const channel = data[0] & 0xf;\n const data1 = data[1];\n const data2 = data[2];\n if (cmd === 11) this.ctrlChange(channel, data1, data2);\n else if (cmd === 14) this.pitchWheel(channel, data2 * 128.0 + data1);\n else this.port.postMessage({ type: \"midi\", data: data });\n }\n\n ctrlChange(channel: number, ctrl: number, value: number) {\n const e = { type: \"ctrlChange\", data: [channel, ctrl, value] };\n this.port.postMessage(e);\n }\n pitchWheel(channel: number, wheel: number) {\n const e = { type: \"pitchWheel\", data: [channel, wheel] };\n this.port.postMessage(e);\n }\n\n setParamValue(path: string, value: number) {\n const e = { type: \"param\", data: { path, value } };\n this.port.postMessage(e);\n // Set value on AudioParam (but this is not used on Processor side for now)\n const param = this.parameters.get(path);\n if (param) param.setValueAtTime(value, this.context.currentTime);\n\n }\n getParamValue(path: string) {\n // Get value of AudioParam\n const param = this.parameters.get(path);\n return (param) ? param.value : 0;\n }\n\n getParams() { return this.fInputsItems; }\n getMeta() { return this.fJSONDsp; }\n getJSON() { return JSON.stringify(this.getMeta()); }\n getUI() { return this.fJSONDsp.ui; }\n getDescriptors() { return this.fDescriptor; }\n\n start() {\n this.port.postMessage({ type: \"start\" });\n }\n\n stop() {\n this.port.postMessage({ type: \"stop\" });\n }\n\n destroy() {\n this.port.postMessage({ type: \"destroy\" });\n this.port.close();\n }\n}\n\n/**\n * Monophonic AudioWorkletNode\n */\nexport class FaustMonoAudioWorkletNode extends FaustAudioWorkletNode<false> implements IFaustMonoWebAudioDsp {\n\n onprocessorerror = (e: Event) => {\n // console.error(\"Error from \" + this.fJSONDsp.name + \" FaustMonoAudioWorkletNode\");\n throw e;\n }\n\n constructor(context: BaseAudioContext, name: string, factory: LooseFaustDspFactory, sampleSize: number, nodeOptions: Partial<FaustAudioWorkletNodeOptions> = {}) {\n super(context, name, factory, { name, factory, sampleSize }, nodeOptions);\n }\n}\n\n/**\n * Polyphonic AudioWorkletNode\n */\nexport class FaustPolyAudioWorkletNode extends FaustAudioWorkletNode<true> implements IFaustPolyWebAudioDsp {\n\n private fJSONEffect: FaustDspMeta | null;\n\n onprocessorerror = (e: Event) => {\n // console.error(\"Error from \" + this.fJSONDsp.name + \" FaustPolyAudioWorkletNode\");\n throw e;\n }\n\n constructor(context: BaseAudioContext,\n name: string,\n voiceFactory: LooseFaustDspFactory,\n mixerModule: WebAssembly.Module,\n voices: number,\n sampleSize: number,\n effectFactory?: LooseFaustDspFactory, nodeOptions: Partial<FaustAudioWorkletNodeOptions> = {}) {\n\n super(\n context,\n name,\n voiceFactory,\n {\n name,\n voiceFactory,\n mixerModule,\n voices,\n sampleSize,\n effectFactory\n },\n nodeOptions\n );\n\n this.fJSONEffect = effectFactory ? JSON.parse(effectFactory.json) : null;\n\n if (this.fJSONEffect) {\n FaustBaseWebAudioDsp.parseUI(this.fJSONEffect.ui, this.fUICallback);\n }\n }\n\n // Public API\n keyOn(channel: number, pitch: number, velocity: number) {\n const e = { type: \"keyOn\", data: [channel, pitch, velocity] };\n this.port.postMessage(e);\n }\n\n keyOff(channel: number, pitch: number, velocity: number) {\n const e = { type: \"keyOff\", data: [channel, pitch, velocity] };\n this.port.postMessage(e);\n }\n\n allNotesOff(hard: boolean) {\n const e = { type: \"ctrlChange\", data: [0, 123, 0] };\n this.port.postMessage(e);\n }\n\n getMeta() {\n const o = this.fJSONDsp;\n const e = this.fJSONEffect;\n const r = { ...o };\n if (e) {\n r.ui = [{\n type: \"tgroup\", label: \"Sequencer\", items: [\n { type: \"vgroup\", label: \"Instrument\", items: o.ui },\n { type: \"vgroup\", label: \"Effect\", items: e.ui }\n ]\n }];\n } else {\n r.ui = [{\n type: \"tgroup\", label: \"Polyphonic\", items: [\n { type: \"vgroup\", label: \"Voices\", items: o.ui }\n ]\n }];\n }\n return r as FaustDspMeta;\n }\n\n getJSON() {\n return JSON.stringify(this.getMeta());\n }\n\n getUI() {\n return this.getMeta().ui;\n }\n}\n", "import type { ComputeHandler, FaustMonoWebAudioDsp, FaustPolyWebAudioDsp, IFaustMonoWebAudioDsp, IFaustPolyWebAudioDsp, MetadataHandler, OutputParamHandler, PlotHandler } from \"./FaustWebAudioDsp\";\n\n/**\n * Base class for Monophonic and Polyphonic ScriptProcessorNode\n */\nexport class FaustScriptProcessorNode<Poly extends boolean = false> extends (globalThis.ScriptProcessorNode || null) {\n protected fDSPCode!: Poly extends true ? FaustPolyWebAudioDsp : FaustMonoWebAudioDsp;\n\n // Needed for ScriptProcessorNode\n protected fInputs!: Float32Array[];\n protected fOutputs!: Float32Array[];\n\n init(instance: Poly extends true ? FaustPolyWebAudioDsp : FaustMonoWebAudioDsp) {\n this.fDSPCode = instance;\n\n this.fInputs = new Array(this.fDSPCode.getNumInputs());\n this.fOutputs = new Array(this.fDSPCode.getNumOutputs());\n\n this.onaudioprocess = (e) => {\n\n // Read inputs\n for (let chan = 0; chan < this.fDSPCode.getNumInputs(); chan++) {\n this.fInputs[chan] = e.inputBuffer.getChannelData(chan);\n }\n\n // Read outputs\n for (let chan = 0; chan < this.fDSPCode.getNumOutputs(); chan++) {\n this.fOutputs[chan] = e.outputBuffer.getChannelData(chan);\n }\n\n return this.fDSPCode.compute(this.fInputs, this.fOutputs);\n }\n\n this.start();\n }\n // Public API\n compute(input: Float32Array[], output: Float32Array[]) { return this.fDSPCode.compute(input, output); }\n\n setOutputParamHandler(handler: OutputParamHandler) { this.fDSPCode.setOutputParamHandler(handler); }\n getOutputParamHandler() { return this.fDSPCode.getOutputParamHandler(); }\n\n setComputeHandler(handler: ComputeHandler) { this.fDSPCode.setComputeHandler(handler); }\n getComputeHandler() { return this.fDSPCode.getComputeHandler(); }\n\n setPlotHandler(handler: PlotHandler) { this.fDSPCode.setPlotHandler(handler); }\n getPlotHandler() { return this.fDSPCode.getPlotHandler(); }\n\n getNumInputs() { return this.fDSPCode.getNumInputs(); }\n getNumOutputs() { return this.fDSPCode.getNumOutputs(); }\n\n metadata(handler: MetadataHandler) { }\n\n midiMessage(data: number[] | Uint8Array) { this.fDSPCode.midiMessage(data); }\n\n ctrlChange(chan: number, ctrl: number, value: number) { this.fDSPCode.ctrlChange(chan, ctrl, value); }\n pitchWheel(chan: number, value: number) { this.fDSPCode.pitchWheel(chan, value); }\n\n setParamValue(path: string, value: number) { this.fDSPCode.setParamValue(path, value); }\n getParamValue(path: string) { return this.fDSPCode.getParamValue(path); }\n getParams() { return this.fDSPCode.getParams(); }\n\n getMeta() { return this.fDSPCode.getMeta(); }\n getJSON() { return this.fDSPCode.getJSON(); }\n getDescriptors() { return this.fDSPCode.getDescriptors(); }\n getUI() { return this.fDSPCode.getUI(); }\n\n start() { this.fDSPCode.start(); }\n stop() { this.fDSPCode.stop(); }\n\n destroy() { this.fDSPCode.destroy(); }\n}\n\nexport class FaustMonoScriptProcessorNode extends FaustScriptProcessorNode<false> implements IFaustMonoWebAudioDsp {\n}\n\nexport class FaustPolyScriptProcessorNode extends FaustScriptProcessorNode<true> implements IFaustPolyWebAudioDsp {\n keyOn(channel: number, pitch: number, velocity: number) { this.fDSPCode.keyOn(channel, pitch, velocity); }\n keyOff(channel: number, pitch: number, velocity: number) { this.fDSPCode.keyOff(channel, pitch, velocity); }\n allNotesOff(hard: boolean) { this.fDSPCode.allNotesOff(hard); }\n}\n", "import { FaustMonoAudioWorkletNode, FaustPolyAudioWorkletNode } from \"./FaustAudioWorkletNode\";\nimport getFaustAudioWorkletProcessor, { FaustData } from \"./FaustAudioWorkletProcessor\";\nimport getFaustFFTAudioWorkletProcessor, { FaustFFTData, FaustFFTOptionsData } from \"./FaustFFTAudioWorkletProcessor\";\nimport FaustDspInstance from \"./FaustDspInstance\";\nimport FaustWasmInstantiator from \"./FaustWasmInstantiator\";\nimport { FaustMonoOfflineProcessor, FaustPolyOfflineProcessor, IFaustMonoOfflineProcessor, IFaustPolyOfflineProcessor } from \"./FaustOfflineProcessor\";\nimport { FaustMonoScriptProcessorNode, FaustPolyScriptProcessorNode } from \"./FaustScriptProcessorNode\";\nimport { FaustBaseWebAudioDsp, FaustMonoWebAudioDsp, FaustPolyWebAudioDsp, FaustWebAudioDspVoice, IFaustMonoWebAudioNode, IFaustPolyWebAudioNode } from \"./FaustWebAudioDsp\";\nimport type { IFaustCompiler } from \"./FaustCompiler\";\nimport type { FaustDspFactory, FaustDspMeta, FFTUtils, LooseFaustDspFactory } from \"./types\";\n\nexport interface IFaustMonoDspGenerator {\n /**\n * Compile a monophonic DSP factory from given code.\n * \n * @param compiler - the Faust compiler\n * @param name - the DSP name\n * @param code - the DSP code\n * @param args - the compilation parameters\n * @returns the compiled factory or 'null' if failure\n */\n compile(compiler: IFaustCompiler, name: string, code: string, args: string): Promise<{\n factory: FaustDspFactory | null;\n name?: string;\n meta?: FaustDspMeta;\n } | null>;\n\n /**\n * Create a monophonic WebAudio node (either ScriptProcessorNode or AudioWorkletNode).\n *\n * @param context - the WebAudio context\n * @param name - DSP name, can be used for processorName\n * @param factory - default is the compiled factory\n * @param sp - whether to compile a ScriptProcessorNode or an AudioWorkletNode\n * @param bufferSize - the buffer size in frames to be used in ScriptProcessorNode only, since AudioWorkletNode always uses 128 frames\n * @param processorName - AudioWorklet Processor name\n * @returns the compiled WebAudio node or 'null' if failure\n */\n createNode(\n context: BaseAudioContext,\n name?: string,\n factory?: LooseFaustDspFactory,\n sp?: boolean,\n bufferSize?: number,\n processorName?: string\n ): Promise<IFaustMonoWebAudioNode | null>;\n \n /**\n * Create a monophonic WebAudio node (either ScriptProcessorNode or AudioWorkletNode).\n *\n * @param context - the WebAudio context\n * @param fftUtils - should be an anonymous class with static methods, without any import from outside\n * @param name - DSP name, can be used for processorName\n * @param factory - default is the compiled factory\n * @param fftOptions - initial FFT options\n * @param processorName - AudioWorklet Processor name\n * @returns the compiled WebAudio node or 'null' if failure\n */\n createFFTNode(\n context: BaseAudioContext,\n fftUtils: typeof FFTUtils,\n name?: string,\n factory?: LooseFaustDspFactory,\n fftOptions?: Partial<FaustFFTOptionsData>,\n processorName?: string\n ): Promise<FaustMonoAudioWorkletNode | null>;\n \n /**\n * Create a monophonic Offline processor.\n *\n * @param sampleRate - the sample rate in Hz\n * @param bufferSize - the buffer size in frames\n * @param factory - default is the compiled factory\n * @returns the compiled processor or 'null' if failure\n */\n createOfflineProcessor(sampleRate: number, bufferSize: number, factory?: LooseFaustDspFactory, meta?: FaustDspMeta): Promise<IFaustMonoOfflineProcessor | null>;\n}\n\nexport interface IFaustPolyDspGenerator {\n /**\n * Compile a monophonic DSP factory from given code.\n * \n * @param compiler - the Faust compiler\n * @param name - the DSP name\n * @param dspCode - the DSP code ('dsp_code' can possibly contain an integrated effect)\n * @param args - the compilation parameters\n * @param effectCode - optional effect DSP code\n * @returns the compiled factory or 'null' if failure\n */\n compile(compiler: IFaustCompiler, name: string, dspCode: string, args: string, effectCode?: string): Promise<{\n voiceFactory: FaustDspFactory | null;\n effectFactory?: FaustDspFactory | null;\n } | null>;\n /**\n * Create a polyphonic WebAudio node (either ScriptProcessorNode or AudioWorkletNode).\n *\n * @param context the WebAudio context\n * @param voices - the number of voices\n * @param name - AudioWorklet Processor name\n * @param voiceFactory - the Faust factory for voices, either obtained with a compiler (createDSPFactory) or loaded from files (loadDSPFactory)\n * @param mixerModule - the wasm Mixer module (loaded from 'mixer32.wasm' or 'mixer64.wasm' files)\n * @param effectFactory - the Faust factory for the effect, either obtained with a compiler (createDSPFactory) or loaded from files (loadDSPFactory)\n * @param sp - whether to compile a ScriptProcessorNode or an AudioWorkletNode\n * @param bufferSize - the buffer size in frames to be used in ScriptProcessorNode only, since AudioWorkletNode always uses 128 frames\n * @returns the compiled WebAudio node or 'null' if failure\n */\n createNode(\n context: BaseAudioContext,\n voices: number,\n name?: string,\n voiceFactory?: LooseFaustDspFactory,\n mixerModule?: WebAssembly.Module,\n effectFactory?: LooseFaustDspFactory | null,\n sp?: boolean,\n bufferSize?: number\n ): Promise<IFaustPolyWebAudioNode | null>;\n\n /**\n * Create a monophonic Offline processor.\n *\n * @param sampleRate - the sample rate in Hz\n * @param bufferSize - the buffer size in frames\n * @param voiceFactory - the Faust factory for voices, either obtained with a compiler (createDSPFactory) or loaded from files (loadDSPFactory)\n * @param mixerModule - the wasm Mixer module (loaded from 'mixer32.wasm' or 'mixer64.wasm' files)\n * @param effectFactory - the Faust factory for the effect, either obtained with a compiler (createDSPFactory) or loaded from files (loadDSPFactory)\n * @returns the compiled processor or 'null' if failure\n */\n createOfflineProcessor(\n sampleRate: number,\n bufferSize: number,\n voices: number,\n voiceFactory?: LooseFaustDspFactory,\n mixerModule?: WebAssembly.Module,\n effectFactory?: LooseFaustDspFactory | null \n ): Promise<IFaustPolyOfflineProcessor | null>;\n}\n\nexport class FaustMonoDspGenerator implements IFaustMonoDspGenerator {\n // Set of all created WorkletProcessors, each of them has to be unique\n private static gWorkletProcessors: Map<BaseAudioContext, Set<string>> = new Map();\n\n name: string;\n factory!: FaustDspFactory | null;\n\n constructor() {\n this.factory = null;\n }\n async compile(compiler: IFaustCompiler, name: string, code: string, args: string) {\n this.factory = await compiler.createMonoDSPFactory(name, code, args);\n if (!this.factory) return null;\n this.name = name;\n return this;\n }\n\n async createNode<SP extends boolean = false>(\n context: BaseAudioContext,\n name = this.name,\n factory = this.factory as LooseFaustDspFactory,\n sp = false as SP,\n bufferSize = 1024,\n processorName = factory?.shaKey || name\n ): Promise<SP extends true ? FaustMonoScriptProcessorNode | null : FaustMonoAudioWorkletNode | null> {\n if (!factory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const meta = JSON.parse(factory.json);\n const sampleSize = meta.compile_options.match(\"-double\") ? 8 : 4;\n if (sp) {\n const instance = await FaustWasmInstantiator.createAsyncMonoDSPInstance(factory);\n const monoDsp = new FaustMonoWebAudioDsp(instance, context.sampleRate, sampleSize, bufferSize);\n const sp = context.createScriptProcessor(bufferSize, monoDsp.getNumInputs(), monoDsp.getNumOutputs()) as FaustMonoScriptProcessorNode;\n Object.setPrototypeOf(sp, FaustMonoScriptProcessorNode.prototype);\n sp.init(monoDsp);\n return sp as SP extends true ? FaustMonoScriptProcessorNode : FaustMonoAudioWorkletNode;\n } else {\n // Dynamically create AudioWorkletProcessor if code not yet created\n if (!FaustMonoDspGenerator.gWorkletProcessors.has(context)) FaustMonoDspGenerator.gWorkletProcessors.set(context, new Set());\n if (!FaustMonoDspGenerator.gWorkletProcessors.get(context)?.has(processorName)) {\n try {\n const processorCode = `\n// DSP name and JSON string for DSP are generated\nconst faustData = ${JSON.stringify({\n processorName,\n dspName: name,\n dspMeta: meta,\n poly: false\n} as FaustData)};\n// Implementation needed classes of functions\nconst ${FaustDspInstance.name}_default = ${FaustDspInstance.toString()}\nconst ${FaustBaseWebAudioDsp.name} = ${FaustBaseWebAudioDsp.toString()}\nconst ${FaustMonoWebAudioDsp.name} = ${FaustMonoWebAudioDsp.toString()}\nconst ${FaustWasmInstantiator.name} = ${FaustWasmInstantiator.toString()}\n// Put them in dependencies\nconst dependencies = {\n ${FaustBaseWebAudioDsp.name},\n ${FaustMonoWebAudioDsp.name},\n ${FaustWasmInstantiator.name}\n};\n// Generate the actual AudioWorkletProcessor code\n(${getFaustAudioWorkletProcessor.toString()})(dependencies, faustData);\n`;\n const url = URL.createObjectURL(new Blob([processorCode], { type: \"text/javascript\" }));\n await context.audioWorklet.addModule(url);\n // Keep the DSP name\n FaustMonoDspGenerator.gWorkletProcessors.get(context)?.add(processorName);\n } catch (e) {\n // console.error(`=> exception raised while running createMonoNode: ${e}`);\n // console.error(`=> check that your page is served using https.${e}`);\n throw e;\n }\n }\n // Create the AWN\n const node = new FaustMonoAudioWorkletNode(context, processorName, factory, sampleSize)\n return node as SP extends true ? FaustMonoScriptProcessorNode : FaustMonoAudioWorkletNode;\n }\n }\n async createFFTNode(\n context: BaseAudioContext,\n fftUtils: typeof FFTUtils,\n name = this.name,\n factory = this.factory as LooseFaustDspFactory,\n fftOptions: Partial<FaustFFTOptionsData> = {},\n processorName = factory?.shaKey ? `${factory.shaKey}_fft` : name\n ): Promise<FaustMonoAudioWorkletNode | null> {\n if (!factory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const meta: FaustDspMeta = JSON.parse(factory.json);\n const sampleSize = meta.compile_options.match(\"-double\") ? 8 : 4;\n // Dynamically create AudioWorkletProcessor if code not yet created\n if (!FaustMonoDspGenerator.gWorkletProcessors.has(context)) FaustMonoDspGenerator.gWorkletProcessors.set(context, new Set());\n if (!FaustMonoDspGenerator.gWorkletProcessors.get(context)?.has(processorName)) {\n try {\n const processorCode = `\n// DSP name and JSON string for DSP are generated\nconst faustData = ${JSON.stringify({\n processorName,\n dspName: name,\n dspMeta: meta,\n fftOptions\n} as FaustFFTData)};\n// Implementation needed classes of functions\nconst ${FaustDspInstance.name}_default = ${FaustDspInstance.toString()}\nconst ${FaustBaseWebAudioDsp.name} = ${FaustBaseWebAudioDsp.toString()}\nconst ${FaustMonoWebAudioDsp.name} = ${FaustMonoWebAudioDsp.toString()}\nconst ${FaustWasmInstantiator.name} = ${FaustWasmInstantiator.toString()}\nconst FFTUtils = ${fftUtils.toString()}\n// Put them in dependencies\nconst dependencies = {\n ${FaustBaseWebAudioDsp.name},\n ${FaustMonoWebAudioDsp.name},\n ${FaustWasmInstantiator.name},\n FFTUtils\n};\n// Generate the actual AudioWorkletProcessor code\n(${getFaustFFTAudioWorkletProcessor.toString()})(dependencies, faustData);\n`;\n const url = URL.createObjectURL(new Blob([processorCode], { type: \"text/javascript\" }));\n await context.audioWorklet.addModule(url);\n // Keep the DSP name\n FaustMonoDspGenerator.gWorkletProcessors.get(context)?.add(processorName);\n } catch (e) {\n // console.error(`=> exception raised while running createMonoNode: ${e}`);\n // console.error(`=> check that your page is served using https.${e}`);\n throw e;\n }\n }\n // Create the AWN\n const node = new FaustMonoAudioWorkletNode(context, processorName, factory, sampleSize, { channelCount: Math.max(1, Math.ceil(meta.inputs / 3)), outputChannelCount: [Math.ceil(meta.outputs / 2)] });\n if (fftOptions.fftSize) {\n const param = node.parameters.get(\"fftSize\");\n if (param) param.value = fftOptions.fftSize;\n }\n if (fftOptions.fftOverlap) {\n const param = node.parameters.get(\"fftOverlap\");\n if (param) param.value = fftOptions.fftOverlap;\n }\n if (typeof fftOptions.defaultWindowFunction === \"number\") {\n const param = node.parameters.get(\"windowFunction\");\n if (param) param.value = fftOptions.defaultWindowFunction + 1;\n }\n if (typeof fftOptions.noIFFT === \"boolean\") {\n const param = node.parameters.get(\"noIFFT\");\n if (param) param.value = +fftOptions.noIFFT;\n }\n return node;\n }\n async createAudioWorkletProcessor(\n name = this.name,\n factory = this.factory as LooseFaustDspFactory,\n processorName = factory?.shaKey || name\n ) {\n if (!factory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const meta = JSON.parse(factory.json);\n const dependencies = {\n FaustBaseWebAudioDsp,\n FaustMonoWebAudioDsp,\n FaustWasmInstantiator,\n FaustPolyWebAudioDsp: undefined,\n FaustWebAudioDspVoice: undefined,\n }\n // const sampleSize = meta.compile_options.match(\"-double\") ? 8 : 4;\n // Dynamically create AudioWorkletProcessor if code not yet created\n try {\n // DSP name and JSON string for DSP are generated\n const faustData = {\n processorName,\n dspName: name,\n dspMeta: meta,\n poly: false\n } as FaustData;\n // Generate the actual AudioWorkletProcessor code\n const Processor = getFaustAudioWorkletProcessor(dependencies, faustData);\n return Processor;\n } catch (e) {\n // console.error(`=> exception raised while running createMonoNode: ${e}`);\n // console.error(`=> check that your page is served using https.${e}`);\n throw e;\n }\n }\n async createOfflineProcessor(\n sampleRate: number,\n bufferSize: number,\n factory = this.factory as LooseFaustDspFactory,\n ) {\n if (!factory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const meta = JSON.parse(factory.json);\n const instance = await FaustWasmInstantiator.createAsyncMonoDSPInstance(factory);\n const sampleSize = meta.compile_options.match(\"-double\") ? 8 : 4;\n const monoDsp = new FaustMonoWebAudioDsp(instance, sampleRate, sampleSize, bufferSize);\n return new FaustMonoOfflineProcessor(monoDsp, bufferSize);\n }\n}\n\nexport class FaustPolyDspGenerator implements IFaustPolyDspGenerator {\n // Set of all created WorkletProcessors, each of them has to be unique\n private static gWorkletProcessors: Map<BaseAudioContext, Set<string>> = new Map();\n\n name: string;\n voiceFactory!: FaustDspFactory | null;\n effectFactory!: FaustDspFactory | null;\n mixerBuffer!: Uint8Array;\n mixerModule!: WebAssembly.Module;\n\n constructor() {\n this.voiceFactory = null;\n this.effectFactory = null;\n }\n async compile(\n compiler: IFaustCompiler,\n name: string,\n dspCode: string,\n args: string,\n effectCode = `\nadapt(1,1) = _; adapt(2,2) = _,_; adapt(1,2) = _ <: _,_; adapt(2,1) = _,_ :> _;\nadaptor(F,G) = adapt(outputs(F),inputs(G));\ndsp_code = environment{${dspCode}};\nprocess = adaptor(dsp_code.process, dsp_code.effect) : dsp_code.effect;`\n ) {\n this.voiceFactory = await compiler.createPolyDSPFactory(name, dspCode, args);\n if (!this.voiceFactory) return null;\n // Compile effect, possibly failing since 'compilePolyNode2' can be called by called by 'compilePolyNode'\n try {\n this.effectFactory = await compiler.createPolyDSPFactory(name, effectCode, args);\n } catch (e) {\n console.warn(e);\n }\n this.name = name;\n const voiceMeta = JSON.parse(this.voiceFactory.json);\n const isDouble = voiceMeta.compile_options.match(\"-double\");\n const { mixerBuffer, mixerModule } = await compiler.getAsyncInternalMixerModule(!!isDouble);\n this.mixerBuffer = mixerBuffer;\n this.mixerModule = mixerModule;\n return this;\n }\n\n async createNode<SP extends boolean = false>(\n context: BaseAudioContext,\n voices: number,\n name = this.name,\n voiceFactory = this.voiceFactory as LooseFaustDspFactory,\n mixerModule = this.mixerModule,\n effectFactory = this.effectFactory as LooseFaustDspFactory | null,\n sp = false as SP,\n bufferSize = 1024,\n processorName = ((voiceFactory?.shaKey || \"\") + (effectFactory?.shaKey || \"\")) || `${name}_poly`\n ): Promise<SP extends true ? FaustPolyScriptProcessorNode | null : FaustPolyAudioWorkletNode | null> {\n if (!voiceFactory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const voiceMeta = JSON.parse(voiceFactory.json);\n const effectMeta = effectFactory ? JSON.parse(effectFactory.json) : undefined;\n const sampleSize = voiceMeta.compile_options.match(\"-double\") ? 8 : 4;\n if (sp) {\n const instance = await FaustWasmInstantiator.createAsyncPolyDSPInstance(voiceFactory, mixerModule, voices, effectFactory || undefined);\n const polyDsp = new FaustPolyWebAudioDsp(instance, context.sampleRate, sampleSize, bufferSize);\n const sp = context.createScriptProcessor(bufferSize, polyDsp.getNumInputs(), polyDsp.getNumOutputs()) as FaustPolyScriptProcessorNode;\n Object.setPrototypeOf(sp, FaustPolyScriptProcessorNode.prototype);\n sp.init(polyDsp);\n return sp as SP extends true ? FaustPolyScriptProcessorNode : FaustPolyAudioWorkletNode;\n } else {\n // Dynamically create AudioWorkletProcessor if code not yet created\n if (!FaustPolyDspGenerator.gWorkletProcessors.has(context)) FaustPolyDspGenerator.gWorkletProcessors.set(context, new Set());\n if (!FaustPolyDspGenerator.gWorkletProcessors.get(context)?.has(processorName)) {\n try {\n const processorCode = `\n// DSP name and JSON string for DSP are generated\nconst faustData = ${JSON.stringify({\n processorName,\n dspName: name,\n dspMeta: voiceMeta,\n poly: true,\n effectMeta\n} as FaustData)};\n// Implementation needed classes of functions\nconst ${FaustDspInstance.name}_default = ${FaustDspInstance.toString()}\nconst ${FaustBaseWebAudioDsp.name} = ${FaustBaseWebAudioDsp.toString()}\nconst ${FaustPolyWebAudioDsp.name} = ${FaustPolyWebAudioDsp.toString()}\nconst ${FaustWebAudioDspVoice.name} = ${FaustWebAudioDspVoice.toString()}\nconst ${FaustWasmInstantiator.name} = ${FaustWasmInstantiator.toString()}\n// Put them in dependencies\nconst dependencies = {\n ${FaustBaseWebAudioDsp.name},\n ${FaustPolyWebAudioDsp.name},\n ${FaustWasmInstantiator.name}\n};\n// Generate the actual AudioWorkletProcessor code\n(${getFaustAudioWorkletProcessor.toString()})(dependencies, faustData);\n`;\n const url = URL.createObjectURL(new Blob([processorCode], { type: \"text/javascript\" }));\n await context.audioWorklet.addModule(url);\n // Keep the DSP name\n FaustPolyDspGenerator.gWorkletProcessors.get(context)?.add(processorName);\n } catch (e) {\n // console.error(`=> exception raised while running createPolyNode: ${e}`);\n // console.error(`=> check that your page is served using https.${e}`);\n throw e;\n }\n }\n // Create the AWN\n const node = new FaustPolyAudioWorkletNode(context, processorName, voiceFactory, mixerModule, voices, sampleSize, effectFactory || undefined);\n return node as SP extends true ? FaustPolyScriptProcessorNode : FaustPolyAudioWorkletNode;\n }\n }\n async createAudioWorkletProcessor(\n name = this.name,\n voiceFactory = this.voiceFactory as LooseFaustDspFactory,\n effectFactory = this.effectFactory as LooseFaustDspFactory | null,\n processorName = ((voiceFactory?.shaKey || \"\") + (effectFactory?.shaKey || \"\")) || `${name}_poly`\n ) {\n if (!voiceFactory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const voiceMeta = JSON.parse(voiceFactory.json);\n const effectMeta = effectFactory ? JSON.parse(effectFactory.json) : undefined;\n const sampleSize = voiceMeta.compile_options.match(\"-double\") ? 8 : 4;\n // Dynamically create AudioWorkletProcessor if code not yet created\n try {\n const dependencies = {\n FaustBaseWebAudioDsp,\n FaustMonoWebAudioDsp: undefined,\n FaustWasmInstantiator,\n FaustPolyWebAudioDsp,\n FaustWebAudioDspVoice,\n };\n // DSP name and JSON string for DSP are generated\n const faustData = {\n processorName,\n dspName: name,\n dspMeta: voiceMeta,\n poly: true,\n effectMeta\n } as FaustData;\n // Generate the actual AudioWorkletProcessor code\n const Processor = getFaustAudioWorkletProcessor<true>(dependencies, faustData);\n return Processor;\n } catch (e) {\n // console.error(`=> exception raised while running createPolyNode: ${e}`);\n // console.error(`=> check that your page is served using https.${e}`);\n throw e;\n }\n }\n async createOfflineProcessor(\n sampleRate: number,\n bufferSize: number,\n voices: number,\n voiceFactory = this.voiceFactory as LooseFaustDspFactory,\n mixerModule = this.mixerModule,\n effectFactory = this.effectFactory as LooseFaustDspFactory | null\n ) {\n if (!voiceFactory) throw new Error(\"Code is not compiled, please define the factory or call `await this.compile()` first.\");\n\n const voiceMeta = JSON.parse(voiceFactory.json);\n const effectMeta = effectFactory ? JSON.parse(effectFactory.json) : undefined;\n const instance = await FaustWasmInstantiator.createAsyncPolyDSPInstance(voiceFactory, mixerModule, voices, effectFactory || undefined);\n const sampleSize = voiceMeta.compile_options.match(\"-double\") ? 8 : 4;\n const polyDsp = new FaustPolyWebAudioDsp(instance, sampleRate, sampleSize, bufferSize);\n return new FaustPolyOfflineProcessor(polyDsp, bufferSize);\n }\n}\n", "import * as faustwasm from \"./exports-bundle\";\n// export default faustwasm;\n// Bug with dts-bundle-generator\n\nexport * from \"./exports-bundle\";\n\n(globalThis as any).faustwasm = faustwasm;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|