diff --git a/bindings/javascript/emscripten.cpp b/bindings/javascript/emscripten.cpp index 5f47fae..6ca59e7 100644 --- a/bindings/javascript/emscripten.cpp +++ b/bindings/javascript/emscripten.cpp @@ -41,6 +41,7 @@ EMSCRIPTEN_BINDINGS(ggwave) { .value("GGWAVE_OPERATING_MODE_TX", GGWAVE_OPERATING_MODE_TX) .value("GGWAVE_OPERATING_MODE_RX_AND_TX", (ggwave_OperatingMode) (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX)) .value("GGWAVE_OPERATING_MODE_TX_ONLY_TONES", GGWAVE_OPERATING_MODE_TX_ONLY_TONES) + .value("GGWAVE_OPERATING_MODE_TX_USE_DSS", GGWAVE_OPERATING_MODE_USE_DSS) ; emscripten::class_("Parameters") diff --git a/bindings/javascript/ggwave.js b/bindings/javascript/ggwave.js index fe17b00..a0f79b9 100644 --- a/bindings/javascript/ggwave.js +++ b/bindings/javascript/ggwave.js @@ -6,7 +6,7 @@ var ggwave_factory = (() => { function(ggwave_factory) { ggwave_factory = ggwave_factory || {}; -var Module=typeof ggwave_factory!=="undefined"?ggwave_factory:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(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 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;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.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_=((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_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=""}{read_=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}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>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=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;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){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=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){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){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){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){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=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=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 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 INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}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;what+=". Build with -s ASSERTIONS=1 for more info.";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://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,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ayABNgIAIAJBGGsgATYCACACQRxrIAE2AgAgBCADQQRxQRhyIgRrIgJBIEkNACABrUKBgICAEH4hBSADIARqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsgAAuBBAEDfyACQYAETwRAIAAgASACEBkaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkUEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgJBA3FFDQEgAiADSQ0ACwsCQCADQXxxIgRBwABJDQAgAiAEQUBqIgVLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAFTQ0ACwsgAiAETw0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgBEkNAAsMAQsgA0EESQRAIAAhAgwBCyAAIANBBGsiBEsEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCyAAC3QBAX8gAkUEQCAAKAIEIAEoAgRGDwsgACABRgRAQQEPCyABKAIEIgItAAAhAQJAIAAoAgQiAy0AACIARQ0AIAAgAUcNAANAIAItAAEhASADLQABIgBFDQEgAkEBaiECIANBAWohAyAAIAFGDQALCyAAIAFGCxcAIAAtAABBIHFFBEAgASACIAAQVRoLCygBAX8jAEEQayIDJAAgAyACNgIMIAAgASACQQBBABA8GiADQRBqJAALbwEBfyMAQYACayIFJAACQCACIANMDQAgBEGAwARxDQAgBSABQf8BcSACIANrIgJBgAIgAkGAAkkiARsQIBogAUUEQANAIAAgBUGAAhAjIAJBgAJrIgJB/wFLDQALCyAAIAUgAhAjCyAFQYACaiQAC74IAgh/An4jAEHQAWsiACQAAkBB8NwALQAAQQFxDQAjAEEQayIBJAAgAUEANgIMIAFB8NwANgIEIAFB8NwANgIAIAFB8dwANgIIIwBBEGsiAyQAIAMgASgCBDYCCCADKAIILQAARQRAAn8CQCABKAIIIgItAAAiBEEBRwR/IARBAnENASACQQI6AABBAQVBAAsMAQtB+wkQagALIQQLIANBEGokACABQRBqJAAgBEUNACAAQQE2AsABIABCmICAgDA3A7gBIABBxwg2ArQBIABCgYCAgIABNwKsASAAQpiAgIDgADcCpAEgAEHdCDYCoAEgAEKBgICA8AA3A5gBIABCmICAgJABNwOQASAAQf0KNgKMASAAQoOAgIDgADcChAEgAELAgoCAMDcCfCAAQbsINgJ4IABCg4CAgNAANwNwIABCwIKAgOAANwNoIABB1Ag2AmQgAEKDgICAwAA3AlwgAELAgoCAkAE3AlQgAEHyCjYCUCAAQoOAgIAwNwNIIABBQGtCqICAgDA3AwAgAEHMCDYCPCAAQoOAgIAgNwI0IABCqICAgOAANwIsIABB4gg2AiggAEKDgICAEDcDICAAQqiAgICQATcDGCAAQYILNgIUIABBADYCECAAQQk2AswBIAAgAEEQajYCyAEgACAAKQPIATcDAEHo3ABCADcCAEHk3ABB6NwANgIAAkAgACgCBCIBRQ0AIAAoAgAiBCABQRRsaiEHQQAhA0Ho3AAhAQNAAkACQEHo3AAiAiABRwRAAkAgBSIBBEADQCABIgIoAgQiAQ0ADAILAAtB8NwAIQJB8NwAKAIAKAIAQejcAEYEQANAIAIoAgAiAUEIaiECIAEgASgCCCgCAEYNAAsLIAIoAgAhAgsgBCgCACIGIAIoAhBMDQELIAJB6NwAIAUbIQMgAkEEakHo3AAgBRshAQwBC0Ho3AAhASADRQRAQejcACIDIQEMAQsDQAJAIAMoAhAiAiAGSgRAIAMoAgAiAg0BIAMhAQwDCyACIAZODQIgA0EEaiEBIAMoAgQiAkUNAiABIQMLIAMhASACIQMMAAsACyABKAIARQRAQSQQHyECIAQpAgghCCAEKAIQIQUgBCkCACEJIAIgAzYCCCACQgA3AgAgAiAFNgIgIAIgCDcCGCACIAk3AhAgASACNgIAQeTcACgCACgCACIDBEBB5NwAIAM2AgAgASgCACECC0Ho3AAoAgAgAhAoQezcAEHs3AAoAgBBAWo2AgALIARBFGoiBCAHRg0BQeTcACgCACEBQejcACgCACIDIQUMAAsACyMAQRBrIgEkACABQQA2AgwgAUHw3AA2AgQgAUHw3AA2AgAgAUHx3AA2AggjAEEQayIDJAAgAyABKAIENgIIIAMoAghBAToAACABKAIIQQE6AAAgA0EQaiQAIAFBEGokAAsgAEHQAWokAEHk3AAL9QEBB38gASAAKAIIIgUgACgCBCICa0ECdU0EQCAAIAEEfyACQQAgAUECdCIAECAgAGoFIAILNgIEDwsCQCACIAAoAgAiBGsiBkECdSIHIAFqIgNBgICAgARJBEBBACECIAMgBSAEayIFQQF1IgggAyAISxtB/////wMgBUH8////B0kbIgMEQCADQYCAgIAETw0CIANBAnQQHyECCyAHQQJ0IAJqQQAgAUECdCIBECAgAWohASAGQQBKBEAgAiAEIAYQIRoLIAAgAiADQQJ0ajYCCCAAIAE2AgQgACACNgIAIAQEQCAEEB4LDwsQKgALQYIMEC8AC5sEAQN/IAEgACABRiICOgAMAkAgAg0AA0AgASgCCCICLQAMDQECQAJ/IAIgAigCCCIDKAIAIgRGBEACQCADKAIEIgRFDQAgBC0ADA0ADAMLAkAgASACKAIARgRAIAIhAQwBCyACIAIoAgQiASgCACIANgIEIAEgAAR/IAAgAjYCCCACKAIIBSADCzYCCCACKAIIIgAgACgCACACR0ECdGogATYCACABIAI2AgAgAiABNgIIIAEoAgghAwsgAUEBOgAMIANBADoADCADIAMoAgAiACgCBCIBNgIAIAEEQCABIAM2AggLIAAgAygCCDYCCCADKAIIIgEgASgCACADR0ECdGogADYCACAAIAM2AgQgA0EIagwBCwJAIARFDQAgBC0ADA0ADAILAkAgASACKAIARwRAIAIhAQwBCyACIAEoAgQiADYCACABIAAEfyAAIAI2AgggAigCCAUgAws2AgggAigCCCIAIAAoAgAgAkdBAnRqIAE2AgAgASACNgIEIAIgATYCCCABKAIIIQMLIAFBAToADCADQQA6AAwgAyADKAIEIgAoAgAiATYCBCABBEAgASAD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BC0AJEUNACAEKAIcIgBFDQAgABAeCyAEQYACaiQADAELEF8ACyAKKAI0IQUgCCAKKAIoIgBGBEAgACAAKAIAKAIQEQEADAELIABFDQAgACAAKAIAKAIUEQEACyAKQUBrJAAgBQ8LEDgAC0GCDBAvAAumCQEGfwJ/AkACQCABIgMoAgAiBARAIAEoAgQiAkUNAQNAIAIiAygCACICDQALCyADKAIEIgQNAUEAIQRBAQwCCwsgBCADKAIINgIIQQALIQYCQCADIAMoAggiBSgCACICRgRAIAUgBDYCACAAIANGBEBBACECIAQhAAwCCyAFKAIEIQIMAQsgBSAENgIECyADLQAMIQcgASADRwRAIAMgASgCCCIFNgIIIAUgASgCCCgCACABR0ECdGogAzYCACADIAEoAgAiBTYCACAFIAM2AgggAyABKAIEIgU2AgQgBQRAIAUgAzYCCAsgAyABLQAMOgAMIAMgACAAIAFGGyEACwJAIAdFDQAgAEUNACAGBEADQCACLQAMIQMCQCACIAIoAggiASgCAEcEQCADRQRAIAJBAToADCABQQA6AAwgASABKAIEIgMoAgAiBDYCBCAEBEAgBCABNgIICyADIAEoAgg2AgggASgCCCIEIAQoAgAgAUdBAnRqIAM2AgAgAyABNgIAIAEgAzYCCCACIAAgACACKAIAIgFGGyEAIAEoAgQhAgsCQAJAAkACQCACKAIAIgMEQCADLQAMRQ0BCyACKAIEIgEEQCABLQAMRQ0CCyACQQA6AAwCQCAAIAIoAggiAkYEQCAAIQIMAQsgAi0ADA0GCyACQQE6AAwPCyACKAIEIgFFDQELIAEtAAwNACACIQMMAQsgA0EBOgAMIAJBADoADCACIAMoAgQiADYCACAABEAgACACNgIICyADIAIoAgg2AgggAigCCCIAIAAoAgAgAkdBAnRqIAM2AgAgAyACNgIEIAIgAzYCCCACIQELIAMgAygCCCIALQAMOgAMIABBAToADCABQQE6AAwgACAAKAIEIgEoAgAiAjYCBCACBEAgAiAANgIICyABIAAoAgg2AgggACgCCCICIAIoAgAgAEdBAnRqIAE2AgAgASAANgIAIAAgATYCCA8LIANFBEAgAkEBOgAMIAFBADoADCABIAIoAgQiAzYCACADBEAgAyABNgIICyACIAEoAgg2AgggASgCCCIDIAMoAgAgAUdBAnRqIAI2AgAgAiABNgIEIAEgAjYCCCACIAAgACABRhshACABKAIAIQILAkACQCACKAIAIgFFDQAgAS0ADA0AIAIhAwwBCwJAIAIoAgQiAwRAIAMtAAxFDQELIAJBADoADCACKAIIIgItAAxBACAAIAJHGw0CIAJBAToADA8LIAEEQCABLQAMRQRAIAIhAwwCCyACKAIEIQMLIANBAToADCACQQA6AAwgAiADKAIAIgA2AgQgAARAIAAgAjYCCAsgAyACKAIINgIIIAIoAggiACAAKAIAIAJHQQJ0aiADNgIAIAMgAjYCACACIAM2AgggAiEBCyADIAMoAggiAC0ADDoADCAAQQE6AAwgAUEBOgAMIAAgACgCACIBKAIEIgI2AgAgAgRAIAIgADYCCAsgASAAKAIINgIIIAAoAggiAiACKAIAIABHQQJ0aiABNgIAIAEgADYCBCAAIAE2AggPCyACKAIIIgEgASgCACACRkECdGooAgAhAgwACwALIARBAToADAsLCABBxwsQLwALHAAgACABQQggAqcgAkIgiKcgA6cgA0IgiKcQEwsLACAAEEgaIAAQHgtMAQF/AkAgAUUNACABQcDUABArIgFFDQAgASgCCCAAKAIIQX9zcQ0AIAAoAgwgASgCDEEAECJFDQAgACgCECABKAIQQQAQIiECCyACC1IBAX8gACgCBCEEIAAoAgAiACABAn9BACACRQ0AGiAEQQh1IgEgBEEBcUUNABogASACKAIAaigCAAsgAmogA0ECIARBAnEbIAAoAgAoAhwRBgALCgAgACABQQAQIgsFABANAAtJAQJ/IABBrNkANgIAIABB2NkANgIAIAEQUiICQQ1qEB8iA0EANgIIIAMgAjYCBCADIAI2AgAgACADQQxqIAEgAkEBahAhNgIEC44CAgd/AX4jAEEwayIBJABBASABQSBqEBUEQEGInwEoAgAQagALIAFBEGoiBCABQSBqIgA0AgA3AwAgAUEIaiIFIABBBHI0AgA3AwAjAEEgayIAJAAjAEEQayIDJAAjAEEQayIGJAAjAEEQayICJAAgAiAEKQMAQoCU69wDfjcDACACIAIpAwA3AwggAikDCCEHIAJBEGokACAGQRBqJAAgAyAHNwMIIAAgAykDCDcDCCADQRBqJAAgACkDCCEHIAAg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IA02AtABIANBCDoA1QEgAyABIAtqIgk7AagBIAMgASAJaiIJOwG0ASADIAQgCWoiBDsBwAEgAyABIARqIgQ7AcwBIAMgASAEaiIEOwHYASADQQA6ANQBIAMgADoA1gEgAyANNgLcASADIAA6AOIBIANBgBI7AeABIAMgDTYC6AEgAyAAOgDuASADQYAUOwHsASADIA02AvQBIAMgADoA+gEgA0GAFjsB+AEgA0EMOgCFAiADIA02AoACIAMgADoAhgIgAyABIARqIgQ7AeQBIAMgASAEaiIEOwHwASADIAEgBGoiBDsB/AEgAyABIARqIgQ7AYgCIANBDToAkQIgAyANNgKMAiADQQA6AIQCIAMgASAEaiIEOwGUAiADIAA6AJICIANBDjoAnQIgAyANNgKYAiADQQA6AJACIAMgASAEaiIEOwGgAiADIAA6AJ4CIANBDzoAqQIgAyANNgKkAiADQQA6AJwCIAMgASAEaiIEOwGsAiADIAA6AKoCIAMgASAEajsBuAIgA0EQOgC1AiADIA02ArACIANBADoAqAIgAyAAOgC2AiADIA02ArwCIANBADoAtAJBFSEBAkAgA0HgAGogBSgCUCIAIAAgAy0AYGogBSgCdCgCeBBBBEAgAiEADAELIAUoAnQiBCgCeC0AACIAQQFrQf8BcUGLAUsEQCACIQAMAQsgBSgCPCEJQQIhDyAAQQRPBEAgAEEFbkEBdCICQQQgAkEESxshDwsgBCgCDCICIAUoAjhBAXQiBCAIKAIcIAgoAiAiCyAAIAlqIA9qakEBayALbWxqIglKDQBBFUEAIAIgCSAEayIESBshASACIAROIRMLAkAgAy0AbEUNACADKAJkIgJFDQAgAhAeCyABBEAgACECDAMLIAUoAjwhCSAAIQILQQIhACACQQROBEAgAkEFbkEBdCIAQQQgAEEESxshAAsCQCATBEAgAiAJaiAAakEBaiAIKAIgIAdsSA0EIApBgAhGDQQMAQtBACETIApBgAhGDQQLIAgoAhwiCyAKIgdsQQR0IAZqIgEgBSgCdCIAKAIMQQR0SA0ACwsgE0UNAQtBAiEAIAUoAmghAUEAIQQgA0EANgK8AiADQQA6ALQCIANBADYCsAIgA0EAOgCoAiADQQA2AqQCIANBADoAnAIgA0EANgKYAiADQQA6AJACIANBADYCjAIgA0EAOgCEAiADQQA2AoACIANBADoA+AEgA0EANgL0ASADQQA6AOwBIANBADYC6AEgA0EAOgDgASADQQA2AtwBIANBADoA1AEgA0EANgLQASADQQA6AMgBIANBADYCxAEgA0EAOgC8ASADQQA2ArgBIANBADoAsAEgA0EANgKsASADQQA6AKQBIANBADYCoAEgA0EAOgCYASADQQA2ApQBIANBADoAjAEgA0EANgKIASADQQA6AIABIANBADYCfCADQQA6AHQgAkEETgRAIAJBBW5BAXQiAEEEIABBBEsbIQALIAMgADoAYSADIAI6AGAgA0EAOwFsQQAhCSABRQRAQQEhCSAAQf8BcSIBIAJB/wFxQQNsaiABQRxsakEBahAfIQELIAMgCToAbCADIAE2AmQgA0EAOwF4IAMgATYCaCADIA02AnwgA0EAOwF0IAMgDTYCiAEgA0GAAjsBgAEgA0EDOgCZASADIA02ApQBIANBgAQ7AYwBIAMgACACaiIHOgB2IAMgBzoAggEgAyAAQQF0IgA6AI4BIAMgADoAmgEgAyAHQf8BcSIKOwGEASADIApBAXQiCTsBkAEgAyAJIABB/gFxIgFqIgk7AZwBIANBgAg7AaQBIAMgDTYCoAEgA0EAOgCYASADIAA6AKYBIAMgDTYCrAEgA0GACjsBsAEgAyAHOgCyASADIA02ArgBIANBgAw7AbwBIAMgADoAvgEgAyANNgLEASADQYAOOwHIASADIAA6AMoBIAMgDTYC0AEgA0EIOgDVASADIAEgCWoiBzsBqAEgAyABIAdqIgc7AbQBIAMgByAKaiIHOwHAASADIAEgB2oiBzsBzAEgAyABIAdqIgc7AdgBIANBADoA1AEgAyAAOgDWASADIA02AtwBIAMgADoA4gEgA0GAEjsB4AEgAyANNgLoASADIAA6AO4BIANBgBQ7AewBIAMgDTYC9AEgAyAAOgD6ASADQYAWOwH4ASADQQw6AIUCIAMgDTYCgAIgAyAAOgCGAiADIAEgB2oiBzsB5AEgAyABIAdqIgc7AfABIAMgASAHaiIHOwH8ASADIAEgB2oiBzsBiAIgA0ENOgCRAiADIA02AowCIANBADoAhAIgAyABIAdqIgc7AZQCIAMgADoAkgIgA0EOOgCdAiADIA02ApgCIANBADoAkAIgAyABIAdqIgc7AaAC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KAIIIgAoAgBHDQALDAELA0AgASIAKAIAIgENAAsLIAQgB3IhByAAIAhHDQALIAdBAXENAQsgBSgCdEEANgIEDAELIAUoAnQiACAAKAIEIgFBAWo2AgQgAUEASA0AIAAoAhxBAkgNACADQQAQCjYCYCAFKAJ0IgAgACgCDCAAKAIUa0EBajYCDEHg3AAoAgAiAQRAIANB4ABqEFMQWCEAIAUoAnQiAigCFCEEIAMgAigCDDYCGCADIAQ2AhQgAyAANgIQIAFB2BsgA0EQahAkIAUoAnQhAAsgAEEBNgIUIABBADYCBAsgA0HAAmokAAsgBSgCdCEGAkAgESAFKAIMIgdrIghBAEwNACAGKAJMIQJBACEEQQAhACARIAdBf3NqQQNPBEAgCEF8cSEKQQAhAQNAIAIgAEECdGogAiAAIAdqQQJ0aioCADgCACACIABBAXIiDEECdGogAiAHIAxqQQJ0aioCADgCACACIABBAnIiDEECdGogAiAHIAxqQQJ0aioCADgCACACIABBA3IiDEECdGogAiAHIAxqQQJ0aioCADgCACAAQQRqIQAgAUEEaiIBIApHDQALCyAIQQNxIgFFDQADQCACIABBAnRqIAIgACAHakECdGoqAgA4AgAgAEEBaiEAIARBAWoiBCABRw0ACwsgBiAHIAhrIgA2AiAgBSgCeC0AAEUNAQwECwsgBCARawshBCAFKAJ0IQALIAAgBDYCIAsgFEEgaiQADAELEF8ACyAQQQA2AgggEEIANwMAAn9BACAFKAJ0IgAoAnQiAkUNABogAEEANgJ0QX8gAkF/Rg0AGiAQIABB+ABqRwRAAkAgACgCfCIHIAAoAngiBGsiACAQKAIIIgYgECgCACIBa00EQCAEIBAoAgQgAWsiBmogByAAIAZLGyIIIARrIgoEQCABIAQgChAsGgsgACAGSwRAIBAoAgQhACAQIAcgCGsiAUEASgR/IAAgCCABECEgAWoFIAALNgIEDAILIBAgASAKajYCBAwBCyABBEAgECABNgIEIAEQHiAQQQA2AgggEEIANwIAQQAhBgsCQCAAQQBIDQAgACAGQQF0IgEgACABSxtB/////wcgBkH/////A0kbIgZBAEgNACAQIAYQHyIBNgIAIBAgATYCBCAQIAEgBmo2AgggECABIAQgABAhIABqNgIEDAELECoACwsg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AiAFKAIYNgIACyAAQQFGIQMMAQtBACEDCyAFQUBrJAAgAwtsAQJ/IAAgASgCCEEAECIEQCABIAIgAxBLDwsgACgCDCEEIABBEGoiBSABIAIgAxBoAkAgBEECSA0AIAUgBEEDdGohBCAAQRhqIQADQCAAIAEgAiADEGggAS0ANg0BIABBCGoiACAESQ0ACwsLMQAgACABKAIIQQAQIgRAIAEgAiADEEsPCyAAKAIIIgAgASACIAMgACgCACgCHBEGAAvBAQEEfyMAQSBrIgUkACACKAIAIgZBcEkEQAJAAkAgBkELTwRAIAZBEGpBcHEiCBAfIQcgBSAIQYCAgIB4cjYCECAFIAc2AgggBSAGNgIMDAELIAUgBjoAEyAFQQhqIQcgBkUNAQsgByACQQRqIAYQIRoLIAYgB2pBADoAACAFQRhqIAEgBUEIaiADIAQgABEFACAFKAIYEAwgBSgCGCIAEAsgBSwAE0EASARAIAUoAggQHgsgBUEgaiQAIAAPCxBkAAsYACAAIAEoAghBABAiBEAgASACIAMQSwsLnwEBAn8jAEFAaiIDJAACf0EBIAAgAUEAECINABpBACABRQ0AGkEAIAFB8NIAECsiAUUNABogA0EIaiIEQQRyQQBBNBAgGiADQQE2AjggA0F/NgIUIAMgADYCECADIAE2AgggASAEIAIoAgBBASABKAIAKAIcEQYAIAMoAiAiAEEBRgRAIAIgAygCGDYCAAsgAEEBRgshACADQUBrJAAgAAsJACABIAARAQALBQBBywoLqQEBBH8gACgCVCIDKAIEIgUgACgCFCAAKAIcIgZrIgQgBCAFSxsiBARAIAMoAgAgBiAEECEaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQIRogAyADKAIAIAVqIgQ2AgAgAyADKAIEIAVrNgIECyAEQQA6AAAgACAAKAIsIgE2AhwgACABNgIUIAILjwUCBn4BfyABIAEoAgBBB2pBeHEiAUEQajYCACAAAnwgASkDACEEIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiA0KAgICAgIDAgDx9IANCgICAgICAwP/DAH1UBEAgBUIEhiAEQjyIhCEDIARC//////////8PgyIEQoGAgICAgICACFoEQCADQoGAgICAgICAwAB8IQIMAgsgA0KAgICAgICAgEB9IQIgBEKAgICAgICAgAiFQgBSDQEgAiADQgGDfCECDAELIARQIANCgICAgICAwP//AFQgA0KAgICAgIDA//8AURtFBEAgBUIEhiAEQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgA0L///////+//8MAVg0AQgAhAiADQjCIpyIBQZH3AEkNACAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKIhCEEIAMgAoghAwsgACAENwMAIAAgAzcDCCAAKQMIQgSGIAApAwAiBEI8iIQhAiAAKQMQIAApAxiEQgBSrSAEQv//////////D4OEIgRCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyAEQoCAgICAgICACIVCAFINACACQgGDIAJ8IQILIABBIGokACACIAVCgICAgICAgICAf4OEvws5AwALrRgDEn8BfAJ+IwBBsARrIgskACALQQA2AiwCQCABvSIZQgBTBEBBASEQQYoIIRMgAZoiAb0hGQwBCyAEQYAQcQRAQQEhEEGNCCETDAELQZAIQYsIIARBAXEiEBshEyAQRSEVCwJAIBlCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiAQQQNqIgMgBEH//3txECUgACATIBAQIyAAQbEKQbcQIAVBIHEiBRtB/gtBpREgBRsgASABYhtBAxAjIABBICACIAMgBEGAwABzECUgAiADIAIgA0obIQkMAQsgC0EQaiERAkACfwJAIAEgC0EsahBRIgEgAaAiAUQAAAAAAAAAAGIEQCALIAsoAiwiBkEBazYCLCAFQSByIg5B4QBHDQEMAwsgBUEgciIOQeEARg0CIAsoAiwhCkEGIAMgA0EASBsMAQsgCyAGQR1rIgo2AiwgAUQAAAAAAACwQaIhAUEGIAMgA0EASBsLIQwgC0EwaiALQdACaiAKQQBIGyINIQcDQCAHAn8gAUQAAAAAAADwQWMgAUQAAAAAAAAAAGZxBEAgAasMAQtBAAsiAzYCACAHQQRqIQcgASADuKFEAAAAAGXNzUGiIgFEAAAAAAAAAABiDQALAkAgCkEATARAIAohAyAHIQYgDSEIDAELIA0hCCAKIQMDQCADQR0gA0EdSRshAwJAIAdBBGsiBiAISQ0AIAOtIRpCACEZA0AgBiAZQv////8PgyAGNQIAIBqGfCIZIBlCgJTr3AOAIhlCgJTr3AN+fT4CACAGQQRrIgYgCE8NAAsgGaciBkUNACAIQQRrIgggBjYCAAsDQCAIIAciBkkEQCAGQQRrIgcoAgBFDQELCyALIAsoAiwgA2siAzYCLCAGIQcgA0EASg0ACwsgDEEZakEJbiEHIANBAEgEQCAHQQFqIQ8gDkHmAEYhEgNAQQAgA2siA0EJIANBCUkbIQkCQCAGIAhLBEBBgJTr3AMgCXYhFEF/IAl0QX9zIRZBACEDIAghBwNAIAcgAyAHKAIAIhcgCXZqNgIAIBYgF3EgFGwhAyAHQQRqIgcgBkkNAAsgCCgCACEHIANFDQEgBiADNgIAIAZBBGohBgwBCyAIKAIAIQcLIAsgCygCLCAJaiIDNgIsIA0gCCAHRUECdGoiCCASGyIHIA9BAnRqIAYgBiAHa0ECdSAPShshBiADQQBIDQALC0EAIQMCQCAGIAhNDQAgDSAIa0ECdUEJbCEDQQohByAIKAIAIglBCkkNAANAIANBAWohAyAJIAdBCmwiB08NAAsLIAxBACADIA5B5gBGG2sgDkHnAEYgDEEAR3FrIgcgBiANa0ECdUEJbEEJa0gEQEEEQaQCIApBAEgbIAtqIAdBgMgAaiIJQQltIg9BAnRqQdAfayEKQQohByAJIA9BCWxrIglBB0wEQANAIAdBCmwhByAJQQFqIglBCEcNAAsLAkAgCigCACISIBIgB24iDyAHbGsiCUUgCkEEaiIUIAZGcQ0AAkAgD0EBcUUEQEQAAAAAAABAQyEBIAdBgJTr3ANHDQEgCCAKTw0BIApBBGstAABBAXFFDQELRAEAAAAAAEBDIQELRAAAAAAAAOA/RAAAAAAAAPA/RAAAAAAAAPg/IAYgFEYbRAAAAAAAAPg/IAkgB0EBdiIURhsgCSAUSRshGAJAIBUNACATLQAAQS1HDQAgGJohGCABmiEBCyAKIBIgCWsiCTYCACABIBigIAFhDQAgCiAHIAlqIgM2AgAgA0GAlOvcA08EQANAIApBADYCACAIIApBBGsiCksEQCAIQQRrIghBADYCAAsgCiAKKAIAQQFqIgM2AgAgA0H/k+vcA0sNAAsLIA0gCGtBAnVBCWwhA0EKIQcgCCgCACIJQQpJDQADQCADQQFqIQMgCSAHQQpsIgdPDQALCyAKQQRqIgcgBiAGIAdLGyEGCwNAIAYiByAITSIJRQRAIAdBBGsiBigCAEUNAQsLAkAgDkHnAEcEQCAEQQhxIQoMAQsgA0F/c0F/IAxBASAMGyIGIANKIANBe0pxIgobIAZqIQxBf0F+IAobIAVqIQUgBEEIcSIKDQBBdyEGAkAgCQ0AIAdBBGsoAgAiDkUNAEEKIQlBACEGIA5BCnANAANAIAYiCkEBaiEGIA4gCUEKbCIJcEUNAAsgCkF/cyEGCyAHIA1rQQJ1QQlsIQkgBUFfcUHGAEYEQEEAIQogDCAGIAlqQQlrIgZBACAGQQBKGyIGIAYgDEobIQwMAQtBACEKIAwgAyAJaiAGakEJayIGQQAgBkEAShsiBiAGIAxKGyEMC0F/IQkgDEH9////B0H+////ByAKIAxyIhIbSg0BIAwgEkEAR2pBAWohDgJAIAVBX3EiFUHGAEYEQCADQf////8HIA5rSg0DIANBACADQQBKGyEGDAELIBEgAyADQR91IgZqIAZzrSAREDIiBmtBAUwEQANAIAZBAWsiBkEwOgAAIBEgBmtBAkgNAAsLIAZBAmsiDyAFOgAAIAZBAWtBLUErIANBAEgbOgAAIBEgD2siBkH/////ByAOa0oNAgsgBiAOaiIDIBBB/////wdzSg0BIABBICACIAMgEGoiBSAEECUgACATIBAQIyAAQTAgAiAFIARBgIAEcxAlAkACQAJAIBVBxgBGBEAgC0EQaiIGQQhyIQMgBkEJciEKIA0gCCAIIA1LGyIJIQgDQCAINQIAIAoQMiEGAkAgCCAJRwRAIAYgC0EQak0NAQNAIAZBAWsiBkEwOgAAIAYgC0EQaksNAAsMAQsgBiAKRw0AIAtBMDoAGCADIQYLIAAgBiAKIAZrECMgCEEEaiIIIA1NDQALIBIEQCAAQcMZQQEQIwsgByAITQ0BIAxBAEwNAQNAIAg1AgAgChAyIgYgC0EQaksEQANAIAZBAWsiBkEwOgAAIAYgC0EQaksNAAsLIAAgBiAMQQkgDEEJSBsQIyAMQQlrIQYgCEEEaiIIIAdPDQMgDEEJSiEDIAYhDCADDQALDAILAkAgDEEASA0AIAcgCEEEaiAHIAhLGyEJIAtBEGoiA0EJciENIANBCHIhAyAIIQcDQCANIAc1AgAgDRAyIgZGBEAgC0EwOgAYIAMhBgsCQCAHIAhHBEAgBiALQRBqTQ0BA0AgBkEBayIGQTA6AAAgBiALQRBqSw0ACwwBCyAAIAZBARAjIAZBAWohBiAKIAxyRQ0AIABBwxlBARAjCyAAIAYgDSAGayIGIAwgBiAMSBsQIyAMIAZrIQwgB0EEaiIHIAlPDQEgDEEATg0ACwsgAEEwIAxBEmpBEkEAECUgACAPIBEgD2sQIwwCCyAMIQYLIABBMCAGQQlqQQlBABAlCyAAQSAgAiAFIARBgMAAcxAlIAIgBSACIAVKGyEJDAELIBMgBUEadEEfdUEJcWohDAJAIANBC0sNAEEMIANrIQZEAAAAAAAAMEAhGANAIBhEAAAAAAAAMECiIRggBkEBayIGDQALIAwtAABBLUYEQCAYIAGaIBihoJohAQwBCyABIBigIBihIQELIBEgCygCLCIGIAZBH3UiBmogBnOtIBEQMiIGRgRAIAtBMDoADyALQQ9qIQYLIBBBAnIhCiAFQSBxIQggCygCLCEHIAZBAmsiDSAFQQ9qOgAAIAZBAWtBLUErIAdBAEgbOgAAIARBCHEhBiALQRBqIQcDQCAHIgUCfyABmUQAAAAAAADgQWMEQCABqgwBC0GAgICAeAsiB0HQ0QBqLQAAIAhyOgAAIAEgB7ehRAAAAAAAADBAoiEBAkAgBUEBaiIHIAtBEGprQQFHDQACQCAGDQAgA0EASg0AIAFEAAAAAAAAAABhDQELIAVBLjoAASAFQQJqIQcLIAFEAAAAAAAAAABiDQALQX8hCUH9////ByAKIBEgDWsiBWoiBmsgA0gNACAAQSAgAiAGAn8CQCADRQ0AIAcgC0EQamsiCEECayADTg0AIANBAmoMAQsgByALQRBqayIICyIHaiIDIAQQJSAAIAwgChAjIABBMCACIAMgBEGAgARzECUgACALQRBqIAgQIyAAQTAgByAIa0EAQQAQJSAAIA0gBRAjIABBICACIAMgBEGAwABzECUgAiADIAIgA0obIQkLIAtBsARqJAAgCQtUAQF/IwBBMGsiAiQAIAIgASgCIDYCKCACIAEpAhg3AyAgAiABKQIQNwMYIAIgASkCCDcDECACIAEpAgA3AwggAkEIaiAAEQAAIQAgAkEwaiQAIAALBQBB6CELC65SGQBBgAgL9hwtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHNhbXBsZUZvcm1hdE91dABzYW1wbGVSYXRlT3V0AFtVXSBGYXN0ZXN0AFtEVF0gRmFzdGVzdABbVV0gRmFzdABbRFRdIEZhc3QAdW5zaWduZWQgc2hvcnQAdW5zaWduZWQgaW50AGluaXQAZmxvYXQAU2FtcGxlRm9ybWF0AHVpbnQ2NF90AGdldERlZmF1bHRQYXJhbWV0ZXJzAHZlY3RvcgB1bnNpZ25lZCBjaGFyAHNhbXBsZUZvcm1hdElucABzYW1wbGVSYXRlSW5wAHN0ZDo6ZXhjZXB0aW9uAF9fY3hhX2d1YXJkX2FjcXVpcmUgZGV0ZWN0ZWQgcmVjdXJzaXZlIGluaXRpYWxpemF0aW9uAG5hbgBib29sAHRvZ2dsZVJ4UHJvdG9jb2wAc3RkOjpiYWRfZnVuY3Rpb25fY2FsbABlbXNjcmlwdGVuOjp2YWwAW1VdIE5vcm1hbABbRFRdIE5vcm1hbABwYXlsb2FkTGVuZ3RoAGRpc2FibGVMb2cAZW5hYmxlTG9nAHVuc2lnbmVkIGxvbmcAc3RkOjp3c3RyaW5nAGJhc2ljX3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBpbmYAYWxsb2NhdG9yPFQ+OjphbGxvY2F0ZShzaXplX3QgbikgJ24nIGV4Y2VlZHMgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZQBzYW1wbGVSYXRlAHNhbXBsZXNQZXJGcmFtZQBkb3VibGUAZnJlZQBlbmNvZGUAZGVjb2RlAG9wZXJhdGluZ01vZGUAT3BlcmF0aW5nTW9kZQBtYXA6OmF0OiAga2V5IG5vdCBmb3VuZABzb3VuZE1hcmtlclRocmVzaG9sZAB2b2lkAGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDKSBmYWlsZWQAVHhQcm90b2NvbElkAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWABHR1dBVkVfT1BFUkFUSU5HX01PREVfUlhfQU5EX1RYAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9SWABHR1dBVkVfVFhfUFJPVE9DT0xfRFRfRkFTVEVTVABHR1dBVkVfVFhfUFJPVE9DT0xfQVVESUJMRV9GQVNURVNUAEdHV0FWRV9UWF9QUk9UT0NPTF9VTFRSQVNPVU5EX0ZBU1RFU1QAR0dXQVZFX1RYX1BST1RPQ09MX0RUX0ZBU1QAR0dXQVZFX1RYX1BST1RPQ09MX0FVRElCTEVfRkFTVABHR1dBVkVfVFhfUFJPVE9DT0xfVUxUUkFTT1VORF9GQVNUAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWF9PTkxZX1RPTkVTAE5BTgBHR1dBVkVfVFhfUFJPVE9DT0xfRFRfTk9STUFMAEdHV0FWRV9UWF9QUk9UT0NPTF9BVURJQkxFX05PUk1BTABHR1dBVkVfVFhfUFJPVE9DT0xfVUxUUkFTT1VORF9OT1JNQUwAQVNDSUkASU5GAEdHV0FWRV9TQU1QTEVfRk9STUFUX1VOREVGSU5FRABDAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV85AEdHV0FWRV9UWF9QUk9UT0NPTF9DVVNUT01fOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9VOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9JOABVVEYtOABHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzcAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV82AEdHV0FWRV9TQU1QTEVfRk9STUFUX1UxNgBHR1dBVkVfU0FNUExFX0ZPUk1BVF9JMTYAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV81AEdHV0FWRV9UWF9QUk9UT0NPTF9DVVNUT01fNABHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzMAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV8yAEdHV0FWRV9TQU1QTEVfRk9STUFUX0YzMgBHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzEAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV8wAC4AKG51bGwpAEVycm9yOiBjYXB0dXJlIHNhbXBsZSByYXRlICglZyBIeikgbXVzdCBiZSA+PSAlZyBIegoARXJyb3I6IGNhcHR1cmUgc2FtcGxlIHJhdGUgKCVnIEh6KSBtdXN0IGJlIDw9ICVnIEh6CgBUaW1lIHRvIGFuYWx5emU6ICVnIG1zCgBUcnVuY2F0aW5nIGRhdGEgZnJvbSAlZCB0byAlZCBieXRlcwoARmFpbGVkIHRvIGluaXRpYWxpemUgR0dXYXZlIGluc3RhbmNlICVkCgBJbnZhbGlkIEdHV2F2ZSBpbnN0YW5jZSAlZAoAJS4zcyAlLjNzJTNkICUuMmQ6JS4yZDolLjJkICVkCgAlc1JlY2VpdmVkIGVuZCBtYXJrZXIuIEZyYW1lcyBsZWZ0ID0gJWQsIHJlY29yZGVkID0gJWQKAEludmFsaWQgcGF5bG9hZCBsZWdudGg6ICVkLCBtYXg6ICVkCgBJbnZhbGlkIHNhbXBsZXMgcGVyIGZyYW1lOiAlZCwgbWF4OiAlZAoASW52YWxpZCBvciB1bnN1cHBvcnRlZCBwbGF5YmFjayBzYW1wbGUgZm9ybWF0OiAlZAoASW52YWxpZCBvciB1bnN1cHBvcnRlZCBjYXB0dXJlIHNhbXBsZSBmb3JtYXQ6ICVkCgBJbnZhbGlkIHNhbXBsZSBmb3JtYXQ6ICVkCgBOZWdhdGl2ZSBkYXRhIHNpemU6ICVkCgBJbnZhbGlkIHZvbHVtZTogJWQKACVzUmVjZWl2aW5nIHNvdW5kIGRhdGEgLi4uCgBBbmFseXppbmcgY2FwdHVyZWQgZGF0YSAuLgoARmFpbHVyZSBkdXJpbmcgY2FwdHVyZSAtIHByb3ZpZGVkIGJ5dGVzICglZCkgYXJlIG5vdCBtdWx0aXBsZSBvZiBzYW1wbGUgc2l6ZSAoJWQpCgBGYWlsdXJlIGR1cmluZyBjYXB0dXJlIC0gbW9yZSBzYW1wbGVzIHdlcmUgcHJvdmlkZWQgKCVkKSB0aGFuIHJlcXVlc3RlZCAoJWQpCgBEZWNvZGVkIGxlbmd0aCA9ICVkLCBwcm90b2NvbCA9ICclcycgKCVkKQoARmFpbGVkIHRvIGNhcHR1cmUgc291bmQgZGF0YS4gUGxlYXNlIHRyeSBhZ2FpbiAobGVuZ3RoID0gJWQpCgBSZWNlaXZlZCBzb3VuZCBkYXRhIHN1Y2Nlc3NmdWxseTogJyVzJwoAMTlnZ3dhdmVfU2FtcGxlRm9ybWF0AAAAAGQrAABzEAAAMTlnZ3dhdmVfVHhQcm90b2NvbElkAAAAZCsAAJQQAAAyMGdnd2F2ZV9PcGVyYXRpbmdNb2RlAABkKwAAtBAAADE3Z2d3YXZlX1BhcmFtZXRlcnMAsCsAANQQAABQMTdnZ3dhdmVfUGFyYW1ldGVycwAAAACQLAAA8BAAAAAAAADoEAAAUEsxN2dnd2F2ZV9QYXJhbWV0ZXJzAAAAkCwAABgRAAABAAAA6BAAAGlpAHYAdmkACBEAAGlpaQB2aWlpAGZpaQB2aWlmAAAA6BAAAAArAADoEAAAoCoAAAArAAB2aWkATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAACwKwAAeBEAAMgRAAAAKwAAQBIAAKwQAAAAKwAATjEwZW1zY3JpcHRlbjN2YWxFAACwKwAAtBEAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUAAAAAsCsAAA8SAAA0LAAA0BEAAAAAAAABAAAAOBIAAAAAAABpaWlpaWkAAMgRAAAAKwAAQBIAAGlpaWkAAAAAoCoAQYAlCxWgKgAAACsAAKwQAAAAKwAAdmlpaWkAQaIlC7APARkCMhrGA98z7htox0sEZOAONI3vgRzBafjICExxBYplL+EkDyE1k47a8BKCRR21wn1qJ/m5yZoJeE3kcqYGv4tiZt0w/eKYJbMQkSKINtCUzo+W273x0hNcgzhGQB5CtqPDSH5uazooVPqFuj3KXpufChV5K07U5axz86dXB3DA94yAYw1nSt7tMcX+GOOlmXcmuLR8EUSS2SMgiS43P9FblbzPzZCHl7Lc/L5h8lbTqxQqXZ6EPDlTR21Boh8tQ9i3e6R2xBdJ7H8Mb/ZsoTtSKZ1VqvtghrG7zD5ay1lfsJypoFEL9RbrenUs10+u1enm563odNb06qhQWK8BAgQIECBAgB06dOjNhxMmTJgtWrR16smPAwYMGDBgwJ0nTpwlSpQ1atS1d+7BnyNGjAUKFChQoF26adK5b96hX75hwpkvXrxlyokPHjx48P3n07tr1rF//uHfo1u2ceLZr0OGESJEiA0aNGjQvWfOgR8+fPjtx5M7duzFlzNmzIUXLly4bdqpT54hQoQVKlSoTZopUqRVqkmSOXLk1bdz5tG/Y8aRP3785deze/bx/+Pbq0uWMWLElTdu3KVXrkGCGTJkyI0HDhw4cODdp1OmUaJZsnny+e/DmytWrEWKCRIkSJA9evT19/P768uLCxYsWLB9+unPgxs2bNitR44BAgQIECBAgB06dOjNhxMmTJgtWrR16smPAwYMGDBgwJ0nTpwlSpQ1atS1d+7BnyNGjAUKFChQoF26adK5b96hX75hwpkvXrxlyokPHjx48P3n07tr1rF//uHfo1u2ceLZr0OGESJEiA0aNGjQvWfOgR8+fPjtx5M7duzFlzNmzIUXLly4bdqpT54hQoQVKlSoTZopUqRVqkmSOXLk1bdz5tG/Y8aRP3785deze/bx/+Pbq0uWMWLElTdu3KVXrkGCGTJkyI0HDhw4cODdp1OmUaJZsnny+e/DmytWrEWKCRIkSJA9evT19/P768uLCxYsWLB9+unPgxs2bNitR44BAgAAAABIFgAAIQAAACIAAAAjAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAATlN0M19fMjEwX19mdW5jdGlvbjZfX2Z1bmNJWjEzZ2d3YXZlX2VuY29kZUUzJF8wTlNfOWFsbG9jYXRvcklTMl9FRUZ2UEt2akVFRQBOU3QzX18yMTBfX2Z1bmN0aW9uNl9fYmFzZUlGdlBLdmpFRUUAAACwKwAAGRYAANgrAADMFQAAQBYAAFoxM2dnd2F2ZV9lbmNvZGVFMyRfMAAAALArAABUFgAAAAAAABgXAAAqAAAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAABOU3QzX18yMTBfX2Z1bmN0aW9uNl9fZnVuY0laMTNnZ3dhdmVfZGVjb2RlRTMkXzFOU185YWxsb2NhdG9ySVMyX0VFRmpQdmpFRUUATlN0M19fMjEwX19mdW5jdGlvbjZfX2Jhc2VJRmpQdmpFRUUAsCsAAOwWAADYKwAAoBYAABAXAABaMTNnZ3dhdmVfZGVjb2RlRTMkXzEAAACwKwAAJBcAAAAAAAABAAAAAQAAAAIAAAACAAAABAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0loTlNfMTFjaGFyX3RyYWl0c0loRUVOU185YWxsb2NhdG9ySWhFRUVFAAA0LAAAXBcAAAAAAAABAAAAOBIAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAANCwAALQXAAAAAAAAAQAAADgSAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAAA0LAAADBgAAAAAAAABAAAAOBIAAAAAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJRGlOU18xMWNoYXJfdHJhaXRzSURpRUVO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";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}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={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["E"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["G"];addOnInit(Module["asm"]["F"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){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);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{}}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)}}}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)}return func}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}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;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}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>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)}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 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 BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}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>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 finalizationGroup=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 FinalizationGroup){attachFinalizer=(handle=>handle);return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=(handle=>{finalizationGroup.register(handle,handle.$$,handle.$$);return handle});detachFinalizer=(handle=>{finalizationGroup.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 simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}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){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)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}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]=(()=>{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 validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=(()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])})}else{desc.set=(v=>{throwBindingError(humanName+" is a read-only property")})}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);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>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}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){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}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;i0?", ":"")+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>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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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;ilengthBytesUTF8(value))}else{getLength=(()=>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;i255){_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;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>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_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 __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function _abort(){abort("")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=(()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6})}else _emscripten_get_now=(()=>performance.now());var _emscripten_get_now_is_monotonic=true;function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}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){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}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(i0){return}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"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +var Module=typeof ggwave_factory!=="undefined"?ggwave_factory:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(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 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;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=(()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}});read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=(filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret});readAsync=((filename,onload,onerror)=>{var ret=tryParseAsDataURI(filename);if(ret){onload(ret)}requireNodeFS();filename=nodePath["normalize"](filename);fs.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_=((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_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=""}{read_=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}});if(ENVIRONMENT_IS_WORKER){readBinary=(url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}})}readAsync=((url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=(()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()});xhr.onerror=onerror;xhr.send(null)})}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}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>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=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;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){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=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){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){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){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){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=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=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 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 INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=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(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}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;what+=". Build with -s ASSERTIONS=1 for more info.";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://")}var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,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EFQNASACKAIQCyACKAIUIgVrSwRAIAIgACABIAIoAiQRAwAPCwJAIAIoAlBBAEgEQEEAIQMMAQsgASEEA0AgBCIDRQRAQQAhAwwCCyAAIANBAWsiBGotAABBCkcNAAsgAiAAIAMgAigCJBEDACIEIANJDQEgACADaiEAIAEgA2shASACKAIUIQULIAUgACABECAaIAIgAigCFCABajYCFCABIANqIQQLIAQLDwAgASAAKAIAaiACNgIACw0AIAEgACgCAGooAgALsC4BD38gACAALQABIgwgACgCBGpBAWo2AhAgACgCHCgCACAALwEYaiABIAAtAAAiERAgGiAAIBE6ABQgAC0AACIEIAAoAhwoAgAgAC8BGGpqIAIgAC0AASIBECAaIAAgASAEaiICOgAUIAAgAC0AICIBIAIgASACQf8BcUsbIgE6ACAgACgCKCgCACAALwEkaiAAKAIcKAIAIAAvARhqIAFB/wFxECAaIAAgAToAICAAQQA6AKQBQQEhECAAIAAtAAFBAWo6AHQgACgCfCgCACAALwF4akEAOgAAIAAtAAEEQANAIBBB/wFxIgpBAWtB/wFvIQEgACgCHCgCACAALwEYaiIHLQAAIQICQCAALQAUIghBAkkNACABQf8BaiABIAFBAEgbQaApai0AACEGQQEhASAIQQFrIgRBAXEhBSAIQQJHBEAgBEF+cSEIQQAhDQNAIAFBAWohBCACQf8BcSICBH8gBkGgJ2otAAAgAkGgJ2otAABqQaApai0AAAVBAAsgASAHai0AAHNB/wFxIgIEfyAGQaAnai0AACACQaAnai0AAGpBoClqLQAABUEACyECIAFBAmohASAEIAdqLQAAIAJzIQIgDUECaiINIAhHDQALCyAFRQ0AIAJB/wFxIgIEfyAGQaAnai0AACACQaAnai0AAGpBoClqLQAABUEACyABIAdqLQAAcyECCyAAKAJ8KAIAIAAvAXhqIApqIAI6AAAgAC0AASAQQQFqIhBB/wFxTw0ACwsCQAJAIAAtAHQiBEUNACAMIBFqIRIgACgCfCgCACAALwF4aiECQQAhAQNAIAEgAmotAABFBEAgBCABQQFqIgFHDQEMAgsLIBJB/wFxIg8hBUEAIQFBACECIABBADoAOAJAIAAtAKQBRQ0AA0AgACgCrAEoAgAgAC8BqAFqIAFqLQAAIQggACgCQCgCACEEIAAgAkEBajoAOCAEIAAvATxqIAJB/wFxaiAIQX9zIAVqOgAAIAFBAWoiASAALQCkAU8NASAALQA4IQIMAAsACyAAKAKIASgCACAALwGEAWpBACAALQCCARAeGiAAKAKIASgCACAALwGEAWogACgCfCgCACAALwF4akEBaiAALQB0QQFrIgJB/wFxECAaIAAgAjoAgAEgAC0ApAEiAQRAA0AgAkH/AXFBAUsEQEEAIQFBACAAKAJAKAIAIAAvATxqIAlqLQAAIgIgAkH/AUYbQaApai0AACEKA0BBACECIAAoAogBKAIAIAAvAYQBaiIFIAFB/wFxaiIILQAAIgQEQCAKQaAnai0AACAEQaAnai0AAGpBoClqLQAAIQILIAggBSABQQFqIgFB/wFxai0AACACczoAACAALQCAASICQQFrIAFBGHRBGHVKDQALIAAtAKQBIQELIAlBAWoiCSABQf8BcUkNAAsLQQAhECAALQCkASEJIABBAToARCAAQQE6ADggAEFAaygCACgCACAALwE8akEBOgAAIAAoAkwoAgAgAC8BSGpBAToAACAJIAAtAAEiDUcEQCAALQCAASIBIA1rQf8BcUEAIAEgDUsbIQYDQCAAKAKIASgCACAALwGEAWoiDCAGIA5qIgpB/wFxai0AACENIAAtADgiB0ECTwRAIAAoAkAoAgAgAC8BPGohBUEBIQFBASECA0BBACELAkAgBSAHIAJBf3NqQf8BcWotAAAiCEUNACAMIAogAWtB/wFxai0AACIERQ0AIARBoCdqLQAAIAhBoCdqLQAAakGgKWotAAAhCwsgAkEBaiECIAsgDXMhDSABQQFqIgEgB0cNAAsLIAAoAkwoAgAhAiAAIAAtAEQiAUEBajoARCABIAIgAC8BSGpqQQA6AAAgDUH/AXEiCARAIAAtAEQiCyAALQA4IgFLBEAgACALOgBcIA1B/wFxIQhBACECA0AgACgCZCgCACAALwFgaiACaiAAKAJMKAIAIAAvAUhqIAJqLQAAIgEEfyAIQaAnai0AACABQaAnai0AAGpBoClqLQAABUEACzoAACACQQFqIgIgAC0AREkNAAsgACAALQA4IgE6AERBACECAkAgAQRAIAhBoCdqLQAAQf8Bc0GgKWotAAAhBANAIAAoAkwoAgAgAC8BSGogAmog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IA8tAE1FBEBBACECQdDaACgCACIBRQ0BQewaQcAAIAEQLQwBCwJAIA8oAowBIgFFDQAgAUIANwMwIAFBQGtCADcDACABQgA3AzggASgCHCABKAIYIgNrIgJBAEoEQCADQQAgAkECdiACQQNLa0ECdEEEahAeGgsgASgCECABKAIMIgNrIgJBAEoEQCADQQAgAkECdiACQQNLa0ECdEEEahAeGgsgASgCKCABKAIkIgJrIgFBAEwNACACQQAgAUECdiABQQNLa0ECdEEEahAeGgtBAiEDIA8oAogBIgIoAggiAUEETgRAIAFBBW5BAXQiA0EEIANBBEsbIQMLIAIoAlgiBiAPKAI8IhIgASADampqQQFrIAZtIRggAigCXCEUIAIoAlQhHSAPLQBERQRAIA8oAmAhASAEQQA2AuwBIARBADoA5AEgBEEANgLgASAEQQA6ANgBIARBADYC1AEgBEEAOgDMASAEQQA2AsgBIARBADoAwAEgBEEANgK8ASAEQQA6ALQBIARBADYCsAEgBEEAOgCoASAEQQA2AqQBIARBADoAnAEgBEEANgKYASAEQQA6AJABIARBADYCjAEgBEEAOgCEASAEQQA2AoABIARBADoAeCAEQQA2AnQgBEEAOgBsIARBADYCaCAEQQA6AGAgBEEANgJcIARBADoAVCAEQQA2AlAgBEEAOgBIIARBADYCRCAEQQA6ADwgBEEANgI4IARBADoAMCAEQQA2AiwgBEEAOgAkIAQgEkEBayICOgARIARBAToAECAEQQA7ARwgAUUEQEEBIREgAkH/AXEiASABQRxsakEEahAfIQELIARBADsBKCAEIBI6ACYgBCASQf8BcSIQOwE0IAQgEjoAMiAEIAJBAXQiAjoAPiAEQQM6AEkgBCACOgBKIARBQGsgEEEBdCIVOwEAIAQgFSACQf4BcSIGaiIVOwFMIAQgEToAHCAEIAE2AhQgBCABNgIYIARBADsBJCAEQYACOwEwIARBgAQ7ATwgBCAEQSBqIgE2AiwgBCABNgI4IAQgATYCRCAEIAYgFWoiETsBWCAEIAI6AFYgBCASOgBiIAQgAjoAbiAEIAI6AHogBEEIOgCFASAEIAYgEWoiETsBZCAEIBAgEWoiETsBcCAEIAYgEWoiETsBfCAEIAYgEWoiETsBiAEgBEGACDsBVCAEIAE2AlAg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QQxtIgZBAWoiAUHWqtWqAUkEQCABIAIoApwBIANrQQxtIgNBAXQiESABIBFLG0HVqtWqASADQarVqtUASRsiAUHWqtWqAU8NDCABQQxsIgEQHyIRIAZBDGxqIgMgBCgCADYCACADIAQoAgQ2AgQgAyAEKAIINgIIIARBADYCCCAEQgA3AgAgASARaiERIANBDGohEiACKAKYASIBIAIoApQBIgZGDQEDQCADQQxrIgMgAUEMayIBKAIANgIAIAMgASgCBDYCBCADIAEoAgg2AgggAUEANgIIIAFCADcCACABIAZHDQALIAIgETYCnAEgAigCmAEhASACIBI2ApgBIAIoApQBIQYgAiADNgKUASABIAZGDQIDQCABQQxrIgIoAgAiAwRAIAFBCGsgAzYCACADEB0LIAIiASAGRw0ACwwCCxAlAAsgAiARNgKcASACIBI2ApgBIAIgAzYClAELIAYEQCAGEB0LIAQoAgAiAUUNACAEIAE2AgQgARAdCwJAIA8oAjgiASATSgRAQQAhASAPKAI0QQBMDQEDQAJAIA8oAogBKAKYASIDQQhrIgYoAgAiAiADQQRrIhIoAgAiEEkEQCACQgA3AgAgBiACQQhqNgIADAELIAIgA0EMayIYKAIAIgJrIhFBA3UiFEEBaiIDQYCAgIACTw0IIAMgECACayIQQQJ1IhUgAyAVSxtB/////wEgEEH4////B0kbIgNBgICAgAJPDQwgA0EDdCIQEB8iAyAUQQN0aiIUQgA3AgAgEUEASgRAIAMgAiARECAaCyAYIAM2AgAgBiAUQQhqNgIAIBIgAyAQajYCACACRQ0AIAIQHQsgDygCiAEiAigCmAFBCGsoAgBBCGsiAyAPKAIMt0QAAAAAAECPQKIgDyoCCLujtjgCBCADIA8qAiQiByACKAJQspQgDyoCMCABspSSIAdDAAAAgCABQQFxG5I4AgAgAUEBaiIBIA8oAjRIDQALDAELIAEgHWoiAiATSgRAIBMgAWsgDygCiAEiAygCVG0hECADKAJYIQYgAygCECECAkAgAygCFCIRQQBMDQBBACESIAIhASARQQFHBEAgEUF+cSEUQQAhGANAIAEgASgCAEF+IBJ3cTYCACABIBJBH0YiFUECdGoiASABKAIAQX5BACASQQFqIBUbIhJ3cTYCAEEAIBJBAWogEkEfRiIV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IAYgDTcCACADQQFqIgMgCUcNAAsLCwgAQdMLECwACxwAIAAgAUEIIAKnIAJCIIinIAOnIANCIIinEBELTAEBfwJAIAFFDQAgAUHk0gAQJyIBRQ0AIAEoAgggACgCCEF/c3ENACAAKAIMIAEoAgxBABAhRQ0AIAAoAhAgASgCEEEAECEhAgsgAgtSAQF/IAAoAgQhBCAAKAIAIgAgAQJ/QQAgAkUNABogBEEIdSIBIARBAXFFDQAaIAEgAigCAGooAgALIAJqIANBAiAEQQJxGyAAKAIAKAIcEQQACwoAIAAgAUEAECELqQEBBH8gACgCVCIDKAIEIgUgACgCFCAAKAIcIgZrIgQgBCAFSxsiBARAIAMoAgAgBiAEECAaIAMgAygCACAEajYCACADIAMoAgQgBGsiBTYCBAsgAygCACEEIAUgAiACIAVLGyIFBEAgBCABIAUQIBogAyADKAIAIAVqIgQ2AgAgAyADKAIEIAVrNgIECyAEQQA6AAAgACAAKAIsIgE2AhwgACABNgIUIAILjwUCBn4BfyABIAEoAgBBB2pBeHEiAUEQajYCACAAAnwgASkDACEEIAEpAwghBSMAQSBrIgAkAAJAIAVC////////////AIMiA0KAgICAgIDAgDx9IANCgICAgICAwP/DAH1UBEAgBUIEhiAEQjyIhCEDIARC//////////8PgyIEQoGAgICAgICACFoEQCADQoGAgICAgICAwAB8IQIMAgsgA0KAgICAgICAgEB9IQIgBEKAgICAgICAgAiFQgBSDQEgAiADQgGDfCECDAELIARQIANCgICAgICAwP//AFQgA0KAgICAgIDA//8AURtFBEAgBUIEhiAEQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgA0L///////+//8MAVg0AQgAhAiADQjCIpyIBQZH3AEkNACAEIQIgBUL///////8/g0KAgICAgIDAAIQiAyEGAkAgAUGB9wBrIghBwABxBEAgAiAIQUBqrYYhBkIAIQIMAQsgCEUNACAGIAitIgeGIAJBwAAgCGutiIQhBiACIAeGIQILIAAgAjcDECAAIAY3AxgCQEGB+AAgAWsiAUHAAHEEQCADIAFBQGqtiCEEQgAhAwwBCyABRQ0AIANBwAAgAWuthiAEIAGtIgKI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BCIISyIGQQN0aiIJIAMgCEEAIAYbayIIIAkoAgBqNgIAIAFBDEEEIAYbaiIJIAkoAgAgCGs2AgAgBSADayEFIAAoAjwgAUEIaiABIAYbIgEgByAGayIHIARBDGoQDCIDBH9B+NwAIAM2AgBBfwVBAAtFDQALCyAFQX9HDQELIAAgACgCLCIBNgIcIAAgATYCFCAAIAEgACgCMGo2AhAgAgwBCyAAQQA2AhwgAEIANwMQIAAgACgCAEEgcjYCAEEAIAdBAkYNABogAiABKAIEawshACAEQSBqJAAgAAsJACAAKAI8EBQLDwAgASAAKAIAaiACOAIACwYAQcTbAAsGAEHA2wALBgBBuNsACw0AIAEgACgCAGoqAgALJAECfyAAKAIEIgAQUEEBaiIBEDwiAgR/IAIgACABECAFQQALCy0BAX9BJBAfIgBCADcDACAAQQA2AiAgAEIANwMYIABCADcDECAAQgA3AwggAAuXCQEGfwJAQbjaACgCAEG02gAoAgAiAWtBAnUgAEwNACABIABBAnRqKAIAIgRFDQAgBCgChAEiAgRAIAIoAvwBIgEEQCACIAE2AoACIAEQHQsgAigC8AEiAQRAIAIgATYC9AEgARAdCyACKALkASIDBEAgAyACKALoASIBRgR/IAMFA0AgAUEMayIGKAIAIgUEQCABQQhrIAU2AgAgBRAdCyAGIgEgA0cNAAsgAigC5AELIQEgAiADNgLoASABEB0LIAIoAtQBIgEEQCACIAE2AtgBIAEQHQsgAigCyAEiAwRAIAMgAigCzAEiAUYEfyADBQNAIAFBDGsiBigCACIFBEAgAUEIayAFNgIAIAUQHQsgBiIBIANHDQALIAIoAsgBCyEBIAIgAzYCzAEgARAdCyACKAK8ASIBBEAgAiABNgLAASABEB0LIAIoAqwBIgEEQCACIAE2ArABIAEQHQsgAigChAEiAQRAIAIgATYCiAEgARAdCyACKAJwIgEEQCACIAE2AnQgARAdCyACKAJkIgEEQCACIAE2AmggARAdCyACKAJYIgEEQCACIAE2AlwgARAdCyACKAJMIgEEQCACIAE2AlAgARAdCyACKAI8IgEEQCACQUBrIAE2AgAgARAdCyACKAIwIgEEQCACIAE2AjQgARAdCyACKAIkIgEEQCACIAE2AiggARAdCyACEB0gBEEANgKE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IHNob3J0AHVuc2lnbmVkIGludABpbml0AGZsb2F0AFNhbXBsZUZvcm1hdAB1aW50NjRfdABnZXREZWZhdWx0UGFyYW1ldGVycwB2ZWN0b3IAdW5zaWduZWQgY2hhcgBzYW1wbGVGb3JtYXRJbnAAc2FtcGxlUmF0ZUlucABzdGQ6OmV4Y2VwdGlvbgBfX2N4YV9ndWFyZF9hY3F1aXJlIGRldGVjdGVkIHJlY3Vyc2l2ZSBpbml0aWFsaXphdGlvbgBuYW4AYm9vbAB0b2dnbGVSeFByb3RvY29sAGVtc2NyaXB0ZW46OnZhbABbVV0gTm9ybWFsAFtNVF0gTm9ybWFsAFtEVF0gTm9ybWFsAHBheWxvYWRMZW5ndGgAZGlzYWJsZUxvZwBlbmFibGVMb2cAdW5zaWduZWQgbG9uZwBzdGQ6OndzdHJpbmcAYmFzaWNfc3RyaW5nAHN0ZDo6c3RyaW5nAHN0ZDo6dTE2c3RyaW5nAHN0ZDo6dTMyc3RyaW5nAGluZgBhbGxvY2F0b3I8VD46OmFsbG9jYXRlKHNpemVfdCBuKSAnbicgZXhjZWVkcyBtYXhpbXVtIHN1cHBvcnRlZCBzaXplAHNhbXBsZVJhdGUAc2FtcGxlc1BlckZyYW1lAGRvdWJsZQBmcmVlAGVuY29kZQBkZWNvZGUAb3BlcmF0aW5nTW9kZQBPcGVyYXRpbmdNb2RlAHNvdW5kTWFya2VyVGhyZXNob2xkAHZvaWQAVHhQcm90b2NvbElkAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWABHR1dBVkVfT1BFUkFUSU5HX01PREVfUlhfQU5EX1RYAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9SWABHR1dBVkVfVFhfUFJPVE9DT0xfRFRfRkFTVEVTVABHR1dBVkVfVFhfUFJPVE9DT0xfQVVESUJMRV9GQVNURVNUAEdHV0FWRV9UWF9QUk9UT0NPTF9VTFRSQVNPVU5EX0ZBU1RFU1QAR0dXQVZFX1RYX1BST1RPQ09MX0RUX0ZBU1QAR0dXQVZFX1RYX1BST1RPQ09MX0FVRElCTEVfRkFTVABHR1dBVkVfVFhfUFJPVE9DT0xfVUxUUkFTT1VORF9GQVNUAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWF9VU0VfRFNTAEdHV0FWRV9PUEVSQVRJTkdfTU9ERV9UWF9PTkxZX1RPTkVTAE5BTgBHR1dBVkVfVFhfUFJPVE9DT0xfRFRfTk9STUFMAEdHV0FWRV9UWF9QUk9UT0NPTF9BVURJQkxFX05PUk1BTABHR1dBVkVfVFhfUFJPVE9DT0xfVUxUUkFTT1VORF9OT1JNQUwAQVNDSUkASU5GAEdHV0FWRV9TQU1QTEVfRk9STUFUX1VOREVGSU5FRABDAGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBzaG9ydD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV85AEdHV0FWRV9UWF9QUk9UT0NPTF9DVVNUT01fOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9VOABHR1dBVkVfU0FNUExFX0ZPUk1BVF9JOABVVEYtOABHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzcAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV82AEdHV0FWRV9TQU1QTEVfRk9STUFUX1UxNgBHR1dBVkVfU0FNUExFX0ZPUk1BVF9JMTYAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV81AEdHV0FWRV9UWF9QUk9UT0NPTF9DVVNUT01fNABHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzMAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV8yAEdHV0FWRV9TQU1QTEVfRk9STUFUX0YzMgBHR1dBVkVfVFhfUFJPVE9DT0xfQ1VTVE9NXzEAR0dXQVZFX1RYX1BST1RPQ09MX0NVU1RPTV8wAC4AKG51bGwpAEVycm9yOiBjYXB0dXJlIHNhbXBsZSByYXRlICglZyBIeikgbXVzdCBiZSA+PSAlZyBIegoARXJyb3I6IGNhcHR1cmUgc2FtcGxlIHJhdGUgKCVnIEh6KSBtdXN0IGJlIDw9ICVnIEh6CgBUcnVuY2F0aW5nIGRhdGEgZnJvbSAlZCB0byAlZCBieXRlcwoAQ2Fubm90IGRlY29kZSB3aGlsZSB0cmFuc21pdHRpbmcKAFR4IGlzIGRpc2FibGVkIC0gY2Fubm90IHRyYW5zbWl0IGRhdGEgd2l0aCB0aGlzIGdnd2F2ZSBpbnN0YW5jZQoAUnggaXMgZGlzYWJsZWQgLSBjYW5ub3QgcmVjZWl2ZSBkYXRhIHdpdGggdGhpcyBnZ3dhdmUgaW5zdGFuY2UKAE1vbm8tdG9uZSBwcm90b2NvbHMgd2l0aCB2YXJpYWJsZSBsZW5ndGggYXJlIG5vdCBzdXBwb3J0ZWQKAEZhaWxlZCB0byBpbml0aWFsaXplIEdHV2F2ZSBpbnN0YW5jZSAlZAoASW52YWxpZCBHR1dhdmUgaW5zdGFuY2UgJWQKAEZhaWxlZCB0byBlbmNvZGUgZGF0YSAtIEdHV2F2ZSBpbnN0YW5jZSAlZAoARmFpbGVkIHRvIGRlY29kZSBkYXRhIC0gR0dXYXZlIGluc3RhbmNlICVkCgAlLjNzICUuM3MlM2QgJS4yZDolLjJkOiUuMmQgJWQKACVzUmVjZWl2ZWQgZW5kIG1hcmtlci4gRnJhbWVzIGxlZnQgPSAlZCwgcmVjb3JkZWQgPSAlZAoASW52YWxpZCBwYXlsb2FkIGxlZ250aDogJWQsIG1heDogJWQKAEludmFsaWQgc2FtcGxlcyBwZXIgZnJhbWU6ICVkLCBtYXg6ICVkCgBJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIHBsYXliYWNrIHNhbXBsZSBmb3JtYXQ6ICVkCgBJbnZhbGlkIG9yIHVuc3VwcG9ydGVkIGNhcHR1cmUgc2FtcGxlIGZvcm1hdDogJWQKAEludmFsaWQgc2FtcGxlIGZvcm1hdDogJWQKAE5lZ2F0aXZlIGRhdGEgc2l6ZTogJWQKAEludmFsaWQgdm9sdW1lOiAlZAoAJXNSZWNlaXZpbmcgc291bmQgZGF0YSAuLi4KAEFuYWx5emluZyBjYXB0dXJlZCBkYXRhIC4uCgBGYWlsdXJlIGR1cmluZyBjYXB0dXJlIC0gcHJvdmlkZWQgYnl0ZXMgKCVkKSBhcmUgbm90IG11bHRpcGxlIG9mIHNhbXBsZSBzaXplICglZCkKAERlY29kZWQgbGVuZ3RoID0gJWQsIHByb3RvY29sID0gJyVzJyAoJWQpCgBGYWlsZWQgdG8gY2FwdHVyZSBzb3VuZCBkYXRhLiBQbGVhc2UgdHJ5IGFnYWluIChsZW5ndGggPSAlZCkKAFJlY2VpdmVkIHNvdW5kIGRhdGEgc3VjY2Vzc2Z1bGx5OiAnJXMnCgAxOWdnd2F2ZV9TYW1wbGVGb3JtYXQAAAAAiCoAADMRAAAxOWdnd2F2ZV9UeFByb3RvY29sSWQAAACIKgAAVBEAADIwZ2d3YXZlX09wZXJhdGluZ01vZGUAAIgqAAB0EQAAMTdnZ3dhdmVfUGFyYW1ldGVycwDUKgAAlBEAAFAxN2dnd2F2ZV9QYXJhbWV0ZXJzAAAAALQrAACwEQAAAAAAAKgRAABQSzE3Z2d3YXZlX1BhcmFtZXRlcnMAAAC0KwAA2BEAAAEAAACoEQAAaWkAdgB2aQDIEQAAaWlpAHZpaWkAZmlpAHZpaWYAAACoEQAAJCoAAKgRAADEKQAAJCoAAHZpaQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ljRUUAANQqAAA4EgAAiBIAACQqAAAAEwAAbBEAACQqAABOMTBlbXNjcmlwdGVuM3ZhbEUAANQqAAB0EgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUATlN0M19fMjIxX19iYXNpY19zdHJpbmdfY29tbW9uSUxiMUVFRQAAAADUKgAAzxIAAFgrAACQEgAAAAAAAAEAAAD4EgAAAAAAAGlpaWlpaQAAiBIAACQqAAAAEwAAaWlpaQAAAADEKQBBwCYLVsQpAAAkKgAAbBEAACQqAAB2aWlpaQCWn7SvG5HexUV16C4PMkpftFaVy39qVGpI8gt7zfuTbTx3XsMzR8DxcTIzJzVoRx9OrCNCXwA3pFBtSCSRfKFOAEGiJwuMDAEZAjIaxgPfM+4baMdLBGTgDjSN74EcwWn4yAhMcQWKZS/hJA8hNZOO2vASgkUdtcJ9aif5ucmaCXhN5HKmBr+LYmbdMP3imCWzEJEiiDbQlM6Pltu98dITXIM4RkAeQrajw0h+bms6KFT6hbo9yl6bnwoVeStO1OWsc/OnVwdwwPeMgGMNZ0re7THF/hjjpZl3Jri0fBFEktkjIIkuNz/RW5W8z82Qh5ey3Py+YfJW06sUKl2ehDw5U0dtQaIfLUPYt3ukdsQXSex/DG/2bKE7UimdVar7YIaxu8w+WstZX7CcqaBRC/UW63p1LNdPrtXp5uet6HTW9OqoUFivAQIECBAgQIAdOnTozYcTJkyYLVq0derJjwMGDBgwYMCdJ06cJUqUNWrUtXfuwZ8jRowFChQoUKBdumnSuW/eoV++YcKZL168ZcqJDx48ePD959O7a9axf/7h36NbtnHi2a9DhhEiRIgNGjRo0L1nzoEfPnz47ceTO3bsxZczZsyFFy5cuG3aqU+eIUKEFSpUqE2aKVKkVapJkjly5NW3c+bRv2PGkT9+/OXXs3v28f/j26tLljFixJU3btylV65BghkyZMiNBw4cOHDg3adTplGiWbJ58vnvw5srVqxFigkSJEiQPXr09ffz++vLiwsWLFiwffrpz4MbNmzYrUeOAQIECBAgQIAdOnTozYcTJkyYLVq0derJjwMGDBgwYMCdJ06cJUqUNWrUtXfuwZ8jRowFChQoUKBdumnSuW/eoV++YcKZL168ZcqJDx48ePD959O7a9axf/7h36NbtnHi2a9DhhEiRIgNGjRo0L1nzoEfPnz47ceTO3bsxZczZsyFFy5cuG3aqU+eIUKEFSpUqE2aKVKkVapJkjly5NW3c+bRv2PGkT9+/OXXs3v28f/j26tLljFixJU3btylV65BghkyZMiNBw4cOHDg3adTplGiWbJ58vnvw5srVqxFigkSJEiQPXr09ffz++vLiwsWLFiwffrpz4MbNmzYrUeOAQIAAAAAAQAAAAEAAAACAAAAAgAAAAQAAABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAWCsAALgWAAAAAAAAAQAAAPgSAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAFgrAAAQFwAAAAAAAAEAAAD4EgAAAAAAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEc05TXzExY2hhcl90cmFpdHNJRHNFRU5TXzlhbGxvY2F0b3JJRHNFRUVFAAAAWCsAAGgXAAAAAAAAAQAAAPgSAAAAAAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAABYKwAAxBcAAAAAAAABAAAA+BIAAAAAAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAANQqAAAgGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAADUKgAASBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAA1CoAAHAYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAANQqAACYGAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAADUKgAAwBgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAA1CoAAOgYAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAANQqAAAQGQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAADUKgAAOBkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQAA1CoAAGAZAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lkRUUA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";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}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={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["D"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["F"];addOnInit(Module["asm"]["E"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){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);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{}}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)}}}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)}return func}function ___cxa_allocate_exception(size){return _malloc(size+16)+16}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;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}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>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)}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 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 BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}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>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 finalizationGroup=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 FinalizationGroup){attachFinalizer=(handle=>handle);return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=(handle=>{finalizationGroup.register(handle,handle.$$,handle.$$);return handle});detachFinalizer=(handle=>{finalizationGroup.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 simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}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){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)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}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]=(()=>{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 validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(humanName+' with invalid "this": '+this_)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(humanName+' incompatible with "this" of type '+this_.constructor.name)}if(!this_.$$.ptr){throwBindingError("cannot call emscripten binding method "+humanName+" on deleted object")}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=classType.name+"."+fieldName;var desc={get:function(){throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=(()=>{throwUnboundTypeError("Cannot access "+humanName+" due to unbound types",[getterReturnType,setterArgumentType])})}else{desc.set=(v=>{throwBindingError(humanName+" is a read-only property")})}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);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>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}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){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}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;i0?", ":"")+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>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=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=(value=>value<>>bitshift)}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"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;ilengthBytesUTF8(value))}else{getLength=(()=>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;i255){_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;iHEAPU16);shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=(()=>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_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 __emval_take_value(type,argv){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](argv);return Emval.toHandle(v)}function _abort(){abort("")}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){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var ASSERTIONS=false;function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}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(i0){return}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"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); return ggwave_factory.ready diff --git a/bindings/python/cggwave.pxd b/bindings/python/cggwave.pxd index 19ef77b..095f635 100644 --- a/bindings/python/cggwave.pxd +++ b/bindings/python/cggwave.pxd @@ -34,7 +34,8 @@ cdef extern from "ggwave.h" nogil: GGWAVE_OPERATING_MODE_RX, GGWAVE_OPERATING_MODE_TX, GGWAVE_OPERATING_MODE_RX_AND_TX, - GGWAVE_OPERATING_MODE_TX_ONLY_TONES + GGWAVE_OPERATING_MODE_TX_ONLY_TONES, + GGWAVE_OPERATING_MODE_USE_DSS ctypedef struct ggwave_Parameters: int payloadLength diff --git a/examples/arduino-rx-web/arduino-rx-web.cpp b/examples/arduino-rx-web/arduino-rx-web.cpp index c731784..3ac9ee0 100644 --- a/examples/arduino-rx-web/arduino-rx-web.cpp +++ b/examples/arduino-rx-web/arduino-rx-web.cpp @@ -20,15 +20,6 @@ namespace { -// Direct-sequence spread magic numbers -// Used to xor the actual payload -const std::array kDSSMagic = { - 0x96, 0x9f, 0xb4, 0xaf, 0x1b, 0x91, 0xde, 0xc5, 0x45, 0x75, 0xe8, 0x2e, 0x0f, 0x32, 0x4a, 0x5f, - 0xb4, 0x56, 0x95, 0xcb, 0x7f, 0x6a, 0x54, 0x6a, 0x48, 0xf2, 0x0b, 0x7b, 0xcd, 0xfb, 0x93, 0x6d, - 0x3c, 0x77, 0x5e, 0xc3, 0x33, 0x47, 0xc0, 0xf1, 0x71, 0x32, 0x33, 0x27, 0x35, 0x68, 0x47, 0x1f, - 0x4e, 0xac, 0x23, 0x42, 0x5f, 0x00, 0x37, 0xa4, 0x50, 0x6d, 0x48, 0x24, 0x91, 0x7c, 0xa1, 0x4e, -}; - std::string g_defaultCaptureDeviceName = ""; SDL_AudioDeviceID g_devIdInp = 0; @@ -99,7 +90,8 @@ bool GGWave_init( const int playbackId, const int captureId, const int payloadLength, - const float sampleRateOffset) { + const float sampleRateOffset, + const bool useDSS) { if (g_devIdInp && g_devIdOut) { return false; @@ -235,6 +227,9 @@ bool GGWave_init( if (reinit) { if (g_ggWave) delete g_ggWave; + ggwave_OperatingMode mode = GGWAVE_OPERATING_MODE_RX_AND_TX; + if (useDSS) mode = ggwave_OperatingMode(mode | GGWAVE_OPERATING_MODE_USE_DSS); + g_ggWave = new GGWave({ payloadLength, (float) g_obtainedSpecInp.freq, @@ -244,7 +239,7 @@ bool GGWave_init( GGWave::kDefaultSoundMarkerThreshold, sampleFormatInp, sampleFormatOut, - GGWAVE_OPERATING_MODE_RX_AND_TX, + mode, }); } @@ -278,9 +273,6 @@ bool GGWave_mainLoop() { GGWave::TxRxData rxData; int n = g_ggWave->takeRxData(rxData); if (n > 0) { - for (int i = 0; i < n; i++) { - rxData[i] ^= kDSSMagic[i%kDSSMagic.size()]; - } std::time_t timestamp = std::time(nullptr); std::string tstr = std::asctime(std::localtime(×tamp)); tstr.back() = 0; @@ -359,7 +351,7 @@ int main(int argc, char** argv) { bool isInitialized = false; g_doInit = [&]() { - if (GGWave_init(0, captureId, payloadLength, 0) == false) { + if (GGWave_init(0, captureId, payloadLength, 0, true) == false) { fprintf(stderr, "Failed to initialize GGWave\n"); return false; } diff --git a/examples/arduino-rx-web/index-tmpl.html b/examples/arduino-rx-web/index-tmpl.html index 66ac4d1..bfa35fa 100644 --- a/examples/arduino-rx-web/index-tmpl.html +++ b/examples/arduino-rx-web/index-tmpl.html @@ -73,13 +73,6 @@ const kPayloadLength = 16; - var kDSSMagic = [ - 0x96, 0x9f, 0xb4, 0xaf, 0x1b, 0x91, 0xde, 0xc5, 0x45, 0x75, 0xe8, 0x2e, 0x0f, 0x32, 0x4a, 0x5f, - 0xb4, 0x56, 0x95, 0xcb, 0x7f, 0x6a, 0x54, 0x6a, 0x48, 0xf2, 0x0b, 0x7b, 0xcd, 0xfb, 0x93, 0x6d, - 0x3c, 0x77, 0x5e, 0xc3, 0x33, 0x47, 0xc0, 0xf1, 0x71, 0x32, 0x33, 0x27, 0x35, 0x68, 0x47, 0x1f, - 0x4e, 0xac, 0x23, 0x42, 0x5f, 0x00, 0x37, 0xa4, 0x50, 0x6d, 0x48, 0x24, 0x91, 0x7c, 0xa1, 0x4e, - ]; - // instantiate the ggwave instance // ggwave_factory comes from the ggwave.js module ggwave_factory().then(function(obj) { @@ -127,9 +120,6 @@ for (var i = 0; i < text.length; i++) { payload[i] = text.charCodeAt(i); } - for (var i = 0; i < kPayloadLength; i++) { - payload[i] = payload[i] ^ kDSSMagic[i]; - } // generate audio waveform var waveform = ggwave.encode(instance, payload, ggwave.TxProtocolId.GGWAVE_TX_PROTOCOL_MT_FASTEST, 25) @@ -187,7 +177,6 @@ var payload = ""; res8 = convertTypedArray(res, Uint8Array); for (var i = 0; i < kPayloadLength; i++) { - res8[i] = res8[i] ^ kDSSMagic[i]; payload += String.fromCharCode(res8[i]); if (res8[i] == 0) { break; diff --git a/examples/arduino-rx/.gitignore b/examples/arduino-rx/.gitignore index efd47f2..4211c4f 100644 --- a/examples/arduino-rx/.gitignore +++ b/examples/arduino-rx/.gitignore @@ -1,5 +1,6 @@ ggwave ggwave.cpp +fft.h resampler.h resampler.cpp reed-solomon diff --git a/examples/arduino-rx/CMakeLists.txt b/examples/arduino-rx/CMakeLists.txt index 5a978a5..9a2454e 100644 --- a/examples/arduino-rx/CMakeLists.txt +++ b/examples/arduino-rx/CMakeLists.txt @@ -1,9 +1,10 @@ # # arduino-rx -configure_file(${CMAKE_SOURCE_DIR}/include/ggwave/ggwave.h ${CMAKE_CURRENT_SOURCE_DIR}/ggwave/ggwave.h COPYONLY) -configure_file(${CMAKE_SOURCE_DIR}/src/ggwave.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ggwave.cpp COPYONLY) -configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/gf.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/gf.hpp COPYONLY) -configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/rs.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/rs.hpp COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/include/ggwave/ggwave.h ${CMAKE_CURRENT_SOURCE_DIR}/ggwave/ggwave.h COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/src/ggwave.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ggwave.cpp COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/src/fft.h ${CMAKE_CURRENT_SOURCE_DIR}/fft.h COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/gf.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/gf.hpp COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/rs.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/rs.hpp COPYONLY) configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/poly.hpp ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/poly.hpp COPYONLY) -configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/LICENSE COPYONLY) +configure_file(${CMAKE_SOURCE_DIR}/src/reed-solomon/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/reed-solomon/LICENSE COPYONLY) diff --git a/examples/arduino-rx/arduino-rx.ino b/examples/arduino-rx/arduino-rx.ino index 2f850e8..3d6e341 100644 --- a/examples/arduino-rx/arduino-rx.ino +++ b/examples/arduino-rx/arduino-rx.ino @@ -49,51 +49,53 @@ void loop() { auto p = GGWave::getDefaultParameters(); p.sampleRateInp = frequency; + p.sampleRateOut = frequency; p.sampleRate = frequency; p.sampleFormatInp = GGWAVE_SAMPLE_FORMAT_I16; p.samplesPerFrame = 128; p.payloadLength = 16; - p.operatingMode = (ggwave_OperatingMode) (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX | GGWAVE_OPERATING_MODE_TX_ONLY_TONES); + p.operatingMode = (ggwave_OperatingMode) (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX | GGWAVE_OPERATING_MODE_USE_DSS | GGWAVE_OPERATING_MODE_TX_ONLY_TONES); + + { + auto & protocols = GGWave::getTxProtocols(); + for (auto & p : protocols) { + p.enabled = false; + } + protocols[GGWAVE_TX_PROTOCOL_MT_FASTEST].enabled = true; + protocols[GGWAVE_TX_PROTOCOL_DT_FASTEST].enabled = true; + } GGWave ggwave(p); ggwave.setRxProtocols({ - //{ GGWAVE_TX_PROTOCOL_MT_FASTEST, ggwave.getTxProtocol(GGWAVE_TX_PROTOCOL_MT_FASTEST) }, - { GGWAVE_TX_PROTOCOL_DT_FASTEST, ggwave.getTxProtocol(GGWAVE_TX_PROTOCOL_DT_FASTEST) }, + //ggwave.getTxProtocol(GGWAVE_TX_PROTOCOL_MT_FASTEST), + ggwave.getTxProtocol(GGWAVE_TX_PROTOCOL_DT_FASTEST), }); + Serial.println("Instance initialized"); - static GGWave::CBWaveformInp cbWaveformInp = [&](void * data, uint32_t nMaxBytes) { - const int nSamples = nMaxBytes/kSampleSize_bytes; - if (qsize < nSamples) { - return 0u; - } - - qsize -= nSamples; - - TSample * pDst = (TSample *)(data); - TSample * pSrc = (TSample *)(sampleBuffer + qhead); - - if (qhead + nSamples > qmax) { - // should never happen but just in case - memcpy(pDst, pSrc, (qmax - qhead)*kSampleSize_bytes); - memcpy(pDst + (qmax - qhead), sampleBuffer, (nSamples - (qmax - qhead))*kSampleSize_bytes); - qhead += nSamples - qmax; - } else { - memcpy(pDst, pSrc, nSamples*kSampleSize_bytes); - qhead += nSamples; - } - - return nSamples*kSampleSize_bytes; - }; - int nr = 0; int niter = 0; + GGWave::TxRxData result; while (true) { - if (qsize >= 128) { + while (qsize >= p.samplesPerFrame) { auto tStart = millis(); - ggwave.decode(cbWaveformInp); + //Serial.print(qhead); + //Serial.print(" "); + //Serial.print(qtail); + //Serial.print(" "); + //Serial.print(qsize); + //Serial.print(" "); + //Serial.print(ggwave.getSamplesNeeded()); + //Serial.println(""); + + ggwave.decode(sampleBuffer + qhead, p.samplesPerFrame*kSampleSize_bytes); + qsize -= p.samplesPerFrame; + qhead += p.samplesPerFrame; + if (qhead >= qmax) { + qhead = 0; + } auto tEnd = millis(); if (++niter % 10 == 0) { @@ -108,17 +110,17 @@ void loop() { if (strcmp((char *)result.data(), "test") == 0) { ggwave.init("hello", ggwave.getTxProtocol(GGWAVE_TX_PROTOCOL_MT_FASTEST)); - ggwave.encode(nullptr); + ggwave.encode(); - const auto & waveformTones = ggwave.getWaveformTones(); - for (int i = 0; i < (int) waveformTones.size(); ++i) { + const auto & tones = ggwave.txTones(); + for (int i = 0; i < (int) tones.size(); ++i) { Serial.print(" - frame "); Serial.print(i); Serial.print(", "); - Serial.print(waveformTones[i].size()); + Serial.print(tones[i].size()); Serial.print(": "); - for (int j = 0; j < (int) waveformTones[i].size(); ++j) { - Serial.print((int)(waveformTones[i][j].freq_hz)); + for (int j = 0; j < (int) tones[i].size(); ++j) { + Serial.print((int)(tones[i][j].freq_hz)); Serial.print(" "); } Serial.println(); diff --git a/examples/buttons/index-tmpl.html b/examples/buttons/index-tmpl.html index 99dc7f3..92aa11a 100644 --- a/examples/buttons/index-tmpl.html +++ b/examples/buttons/index-tmpl.html @@ -54,13 +54,6 @@ const kPayloadLength = 3; - var kDSSMagic = [ - 0x96, 0x9f, 0xb4, 0xaf, 0x1b, 0x91, 0xde, 0xc5, 0x45, 0x75, 0xe8, 0x2e, 0x0f, 0x32, 0x4a, 0x5f, - 0xb4, 0x56, 0x95, 0xcb, 0x7f, 0x6a, 0x54, 0x6a, 0x48, 0xf2, 0x0b, 0x7b, 0xcd, 0xfb, 0x93, 0x6d, - 0x3c, 0x77, 0x5e, 0xc3, 0x33, 0x47, 0xc0, 0xf1, 0x71, 0x32, 0x33, 0x27, 0x35, 0x68, 0x47, 0x1f, - 0x4e, 0xac, 0x23, 0x42, 0x5f, 0x00, 0x37, 0xa4, 0x50, 0x6d, 0x48, 0x24, 0x91, 0x7c, 0xa1, 0x4e, - ]; - // instantiate the ggwave instance // ggwave_factory comes from the ggwave.js module ggwave_factory().then(function(obj) { @@ -93,12 +86,14 @@ parameters.payloadLength = kPayloadLength; parameters.sampleRateInp = context.sampleRate; parameters.sampleRateOut = context.sampleRate; + parameters.operatingMode = GGWAVE_OPERATING_MODE_RX_AND_TX | GGWAVE_OPERATING_MODE_USE_DSS; instance = ggwave.init(parameters); parameters = ggwave_FluentPet.getDefaultParameters(); parameters.payloadLength = kPayloadLength; parameters.sampleRateInp = context.sampleRate; parameters.sampleRateOut = context.sampleRate - 512; + parameters.operatingMode = GGWAVE_OPERATING_MODE_RX_AND_TX | GGWAVE_OPERATING_MODE_USE_DSS; instance = ggwave_FluentPet.init(parameters); } } @@ -110,10 +105,9 @@ function onSend(text) { init(); - // DSS : xor the text with the magic numbers var payload = new Uint8Array(text.length); for (var i = 0; i < text.length; i++) { - payload[i] = text.charCodeAt(i) ^ kDSSMagic[i]; + payload[i] = text.charCodeAt(i); } // generate audio waveform @@ -177,7 +171,7 @@ var payload = ""; res8 = convertTypedArray(res, Uint8Array); for (var i = 0; i < 3; i++) { - payload += String.fromCharCode(res8[i] ^ kDSSMagic[i]); + payload += String.fromCharCode(res8[i]); } if (payload == 'RRR' || payload == 'GGG' || payload == 'BBB') { diff --git a/examples/ggwave-cli/main.cpp b/examples/ggwave-cli/main.cpp index 9b597ee..ea66098 100644 --- a/examples/ggwave-cli/main.cpp +++ b/examples/ggwave-cli/main.cpp @@ -18,17 +18,19 @@ int main(int argc, char** argv) { printf(" -pN - select playback device N\n"); printf(" -tN - transmission protocol\n"); printf(" -lN - fixed payload length of size N, N in [1, %d]\n", GGWave::kMaxLengthFixed); + printf(" -s - use Direct Sequence Spread (DSS)\n"); printf(" -v - print generated tones on resend\n"); printf("\n"); - auto argm = parseCmdArguments(argc, argv); - int captureId = argm["c"].empty() ? 0 : std::stoi(argm["c"]); - int playbackId = argm["p"].empty() ? 0 : std::stoi(argm["p"]); - int txProtocolId = argm["t"].empty() ? 1 : std::stoi(argm["t"]); - int payloadLength = argm["l"].empty() ? -1 : std::stoi(argm["l"]); - bool printTones = argm.find("v") == argm.end() ? false : true; + const auto argm = parseCmdArguments(argc, argv); + const int captureId = argm.count("c") == 0 ? 0 : std::stoi(argm.at("c")); + const int playbackId = argm.count("p") == 0 ? 0 : std::stoi(argm.at("p")); + const int txProtocolId = argm.count("t") == 0 ? 1 : std::stoi(argm.at("t")); + const int payloadLength = argm.count("l") == 0 ? -1 : std::stoi(argm.at("l")); + const bool useDSS = argm.count("s") > 0; + const bool printTones = argm.count("v") > 0; - if (GGWave_init(playbackId, captureId, payloadLength) == false) { + if (GGWave_init(playbackId, captureId, payloadLength, 0.0f, useDSS) == false) { fprintf(stderr, "Failed to initialize GGWave\n"); return -1; } @@ -39,6 +41,9 @@ int main(int argc, char** argv) { const auto & protocols = GGWave::getTxProtocols(); for (int i = 0; i < (int) protocols.size(); ++i) { const auto & protocol = protocols[i]; + if (protocol.enabled == false) { + continue; + } printf(" %d - %s\n", i, protocol.name); } diff --git a/examples/ggwave-common-sdl2.cpp b/examples/ggwave-common-sdl2.cpp index 68b03c9..3e4e24a 100644 --- a/examples/ggwave-common-sdl2.cpp +++ b/examples/ggwave-common-sdl2.cpp @@ -79,7 +79,8 @@ bool GGWave_init( const int playbackId, const int captureId, const int payloadLength, - const float sampleRateOffset) { + const float sampleRateOffset, + const bool useDSS) { if (g_devIdInp && g_devIdOut) { return false; @@ -213,6 +214,9 @@ bool GGWave_init( } if (reinit) { + ggwave_OperatingMode mode = GGWAVE_OPERATING_MODE_RX_AND_TX; + if (useDSS) mode = ggwave_OperatingMode(mode | GGWAVE_OPERATING_MODE_USE_DSS); + g_ggWave = std::make_shared(GGWave::Parameters { payloadLength, (float) g_obtainedSpecInp.freq, @@ -222,7 +226,7 @@ bool GGWave_init( GGWave::kDefaultSoundMarkerThreshold, sampleFormatInp, sampleFormatOut, - (GGWave::OperatingMode) (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX), + mode, }); } diff --git a/examples/ggwave-common-sdl2.h b/examples/ggwave-common-sdl2.h index 13759de..0d32917 100644 --- a/examples/ggwave-common-sdl2.h +++ b/examples/ggwave-common-sdl2.h @@ -8,7 +8,7 @@ class GGWave; // GGWave helpers void GGWave_setDefaultCaptureDeviceName(std::string name); -bool GGWave_init(const int playbackId, const int captureId, const int payloadLength = -1, const float sampleRateOffset = 0); +bool GGWave_init(const int playbackId, const int captureId, const int payloadLength = -1, const float sampleRateOffset = 0, const bool useDSS = false); std::shared_ptr GGWave_instance(); void GGWave_reset(void * parameters); bool GGWave_mainLoop(); diff --git a/examples/waver/common.cpp b/examples/waver/common.cpp index 2db7eed..c7822f1 100644 --- a/examples/waver/common.cpp +++ b/examples/waver/common.cpp @@ -36,15 +36,6 @@ namespace { -// Direct-sequence spread magic numbers -// Used to xor the actual payload -const std::array kDSSMagic = { - 0x96, 0x9f, 0xb4, 0xaf, 0x1b, 0x91, 0xde, 0xc5, 0x45, 0x75, 0xe8, 0x2e, 0x0f, 0x32, 0x4a, 0x5f, - 0xb4, 0x56, 0x95, 0xcb, 0x7f, 0x6a, 0x54, 0x6a, 0x48, 0xf2, 0x0b, 0x7b, 0xcd, 0xfb, 0x93, 0x6d, - 0x3c, 0x77, 0x5e, 0xc3, 0x33, 0x47, 0xc0, 0xf1, 0x71, 0x32, 0x33, 0x27, 0x35, 0x68, 0x47, 0x1f, - 0x4e, 0xac, 0x23, 0x42, 0x5f, 0x00, 0x37, 0xa4, 0x50, 0x6d, 0x48, 0x24, 0x91, 0x7c, 0xa1, 0x4e, -}; - std::mutex g_mutex; char * toTimeString(const std::chrono::system_clock::time_point & tp) { std::lock_guard lock(g_mutex); @@ -139,6 +130,7 @@ struct Message { std::chrono::system_clock::time_point timestamp; std::string data; int protocolId; + bool dss; float volume; Type type; }; @@ -225,7 +217,6 @@ struct Input { bool changeNeedSpectrum = false; bool stopReceiving = false; bool changeRxProtocols = false; - bool changeDSS = false; void clear() { memset(this, 0, sizeof(Flags)); } } flags; @@ -244,6 +235,7 @@ struct Input { dst.flags.needReinit = true; dst.sampleRateOffset = std::move(this->sampleRateOffset); dst.payloadLength = std::move(this->payloadLength); + dst.directSequenceSpread = std::move(this->directSequenceSpread); } if (this->flags.changeNeedSpectrum) { @@ -263,12 +255,6 @@ struct Input { dst.rxProtocols = std::move(this->rxProtocols); } - if (this->flags.changeDSS) { - dst.update = true; - dst.flags.changeDSS = true; - dst.directSequenceSpread = std::move(this->directSequenceSpread); - } - flags.clear(); update = false; } @@ -608,7 +594,6 @@ void updateCore() { static bool isFirstCall = true; static bool needSpectrum = false; - static bool directSequenceSpread = false; static int rxDataLengthLast = 0; static float rxTimestampLast = 0.0f; static GGWave::TxRxData rxDataLast; @@ -627,12 +612,6 @@ void updateCore() { if (inputCurrent.flags.newMessage) { int n = (int) inputCurrent.message.data.size(); - if (directSequenceSpread) { - for (int i = 0; i < n; ++i) { - inputCurrent.message.data[i] ^= kDSSMagic[i%kDSSMagic.size()]; - } - } - ggWave->init( n, inputCurrent.message.data.data(), ggWave->getTxProtocol(inputCurrent.message.protocolId), @@ -646,6 +625,9 @@ void updateCore() { GGWave::SampleFormat sampleFormatOutOld = ggWave->getSampleFormatOut(); auto rxProtocolsOld = ggWave->getRxProtocols(); + GGWave::OperatingMode mode = GGWAVE_OPERATING_MODE_RX_AND_TX; + if (inputCurrent.directSequenceSpread) mode = GGWave::OperatingMode(mode | GGWAVE_OPERATING_MODE_USE_DSS); + GGWave::Parameters parameters { inputCurrent.payloadLength, sampleRateInpOld, @@ -655,7 +637,7 @@ void updateCore() { GGWave::kDefaultSoundMarkerThreshold, sampleFormatInpOld, sampleFormatOutOld, - (GGWave::OperatingMode) (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX), + mode, }; GGWave_reset(¶meters); @@ -676,10 +658,6 @@ void updateCore() { ggWave->setRxProtocols(inputCurrent.rxProtocols); } - if (inputCurrent.flags.changeDSS) { - directSequenceSpread = inputCurrent.directSequenceSpread; - } - inputCurrent.flags.clear(); inputCurrent.update = false; } @@ -695,18 +673,13 @@ void updateCore() { std::chrono::system_clock::now(), "", ggWave->getRxProtocolId(), + ggWave->isDSSEnabled(), 0, Message::Error, }; } else if (rxDataLengthLast > 0 && ImGui::GetTime() - rxTimestampLast > 0.5f) { auto message = std::string((char *) rxDataLast.data(), rxDataLengthLast); - if (directSequenceSpread) { - for (int i = 0; i < rxDataLengthLast; ++i) { - message[i] ^= kDSSMagic[i%kDSSMagic.size()]; - } - } - const Message::Type type = isFileBroadcastMessage(message) ? Message::FileBroadcast : Message::Text; g_buffer.stateCore.update = true; g_buffer.stateCore.flags.newMessage = true; @@ -715,6 +688,7 @@ void updateCore() { std::chrono::system_clock::now(), std::move(message), ggWave->getRxProtocolId(), + ggWave->isDSSEnabled(), 0, type, }; @@ -728,7 +702,7 @@ void updateCore() { static float tmp[2*NMax]; int N = ggWave->getSamplesPerFrame(); - ggWave->computeFFTR(g_buffer.stateCore.rxAmplitude.data(), tmp, N, 1.0); + ggWave->computeFFTR(g_buffer.stateCore.rxAmplitude.data(), tmp, N); g_buffer.stateCore.rxSpectrum.resize(N); for (int i = 0; i < N; ++i) { @@ -1264,7 +1238,7 @@ void renderMain() { } if (ImGui::Checkbox("##direct-sequence-spread", &settings.directSequenceSpread)) { g_buffer.inputUI.update = true; - g_buffer.inputUI.flags.changeDSS = true; + g_buffer.inputUI.flags.needReinit = true; g_buffer.inputUI.directSequenceSpread = settings.directSequenceSpread; } @@ -1375,6 +1349,13 @@ void renderMain() { ImGui::SameLine(); ImGui::TextColored({ 0.0f, 0.6f, 0.4f, interp }, "%s", settings.txProtocols.at(GGWave::TxProtocolId(message.protocolId)).name); ImGui::SameLine(); + if (message.dss) { + ImGui::TextColored({ 0.4f, 0.6f, 0.4f, interp }, "DSS"); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("Direct Sequence Spread"); + } + ImGui::SameLine(); + } ImGui::TextDisabled("|"); { @@ -1449,7 +1430,7 @@ void renderMain() { if (ImGui::ButtonDisablable("Resend", {}, messageSelected.type != Message::Text)) { g_buffer.inputUI.update = true; g_buffer.inputUI.flags.newMessage = true; - g_buffer.inputUI.message = { false, std::chrono::system_clock::now(), messageSelected.data, messageSelected.protocolId, settings.volume, Message::Text }; + g_buffer.inputUI.message = { false, std::chrono::system_clock::now(), messageSelected.data, messageSelected.protocolId, messageSelected.dss, settings.volume, Message::Text }; messageHistory.push_back(g_buffer.inputUI.message); ImGui::CloseCurrentPopup(); @@ -1671,7 +1652,7 @@ void renderMain() { inputLast = std::string(inputBuf); g_buffer.inputUI.update = true; g_buffer.inputUI.flags.newMessage = true; - g_buffer.inputUI.message = { false, std::chrono::system_clock::now(), std::string(inputBuf), settings.protocolId, settings.volume, Message::Text }; + g_buffer.inputUI.message = { false, std::chrono::system_clock::now(), std::string(inputBuf), settings.protocolId, settings.directSequenceSpread, settings.volume, Message::Text }; messageHistory.push_back(g_buffer.inputUI.message); @@ -1798,6 +1779,7 @@ void renderMain() { std::chrono::system_clock::now(), ::generateFileBroadcastMessage(), settings.protocolId, + settings.directSequenceSpread, settings.volume, Message::FileBroadcast }; diff --git a/include/ggwave/ggwave.h b/include/ggwave/ggwave.h index 6ec7d66..dd41d75 100644 --- a/include/ggwave/ggwave.h +++ b/include/ggwave/ggwave.h @@ -69,6 +69,7 @@ extern "C" { GGWAVE_OPERATING_MODE_RX_AND_TX = (GGWAVE_OPERATING_MODE_RX | GGWAVE_OPERATING_MODE_TX), GGWAVE_OPERATING_MODE_TX_ONLY_TONES = 1 << 3, + GGWAVE_OPERATING_MODE_USE_DSS = 1 << 4, } ggwave_OperatingMode; // GGWave instance parameters @@ -447,6 +448,7 @@ public: // instance state bool hasTxData() const; + bool isDSSEnabled() const; int getSamplesPerFrame() const; int getSampleSizeBytesInp() const; @@ -475,6 +477,7 @@ public: bool isReceiving() const; bool isAnalyzing() const; + int getSamplesNeeded() const; int getFramesToRecord() const; int getFramesLeftToRecord() const; int getFramesToAnalyze() const; @@ -499,10 +502,9 @@ public: // src - input real-valued data, size is N // dst - output complex-valued data, size is 2*N // - // d is scaling factor // N must be <= kMaxSamplesPerFrame // - static bool computeFFTR(const float * src, float * dst, int N, float d); + bool computeFFTR(const float * src, float * dst, int N); // resample audio waveforms from one sample rate to another using // sinc interpolation @@ -592,11 +594,13 @@ private: const bool m_isTxEnabled; const bool m_needResampling; const bool m_txOnlyTones; + const bool m_isDSSEnabled; // common TxRxData m_dataEncoded; TxRxData m_workRSLength; // Reed-Solomon work buffers TxRxData m_workRSData; + TxRxData m_dssMagic; // Impl struct Rx; diff --git a/src/fft.h b/src/fft.h new file mode 100644 index 0000000..6599d7d --- /dev/null +++ b/src/fft.h @@ -0,0 +1,779 @@ +#pragma once + +/* + +The FFT routines below are taken from: + +https://www.kurims.kyoto-u.ac.jp/~ooura/fft.html + +License +Copyright Takuya OOURA, 1996-2001 + +*/ + + +/* +Fast Fourier/Cosine/Sine Transform + dimension :one + data length :power of 2 + decimation :frequency + radix :4, 2 + data :inplace + table :use +functions + rdft: Real Discrete Fourier Transform +function prototypes + void rdft(int, int, float *, int *, float *); + + +-------- Real DFT / Inverse of Real DFT -------- + [definition] + RDFT + R[k] = sum_j=0^n-1 a[j]*cos(2*pi*j*k/n), 0<=k<=n/2 + I[k] = sum_j=0^n-1 a[j]*sin(2*pi*j*k/n), 0 IRDFT (excluding scale) + a[k] = (R[0] + R[n/2]*cos(pi*k))/2 + + sum_j=1^n/2-1 R[j]*cos(2*pi*j*k/n) + + sum_j=1^n/2-1 I[j]*sin(2*pi*j*k/n), 0<=k + ip[0] = 0; // first time only + rdft(n, 1, a, ip, w); + + ip[0] = 0; // first time only + rdft(n, -1, a, ip, w); + [parameters] + n :data length (int) + n >= 2, n = power of 2 + a[0...n-1] :input/output data (float *) + + output data + a[2*k] = R[k], 0<=k + input data + a[2*j] = R[j], 0<=j= 2+sqrt(n/2) + strictly, + length of ip >= + 2+(1<<(int)(log(n/2+0.5)/log(2))/2). + ip[0],ip[1] are pointers of the cos/sin table. + w[0...n/2-1] :cos/sin table (float *) + w[],ip[] are initialized if ip[0] == 0. + [remark] + Inverse of + rdft(n, 1, a, ip, w); + is + rdft(n, -1, a, ip, w); + for (j = 0; j <= n - 1; j++) { + a[j] *= 2.0 / n; + } + . + + +Appendix : + The cos/sin table is recalculated when the larger table required. + w[] and ip[] are compatible with all routines. +*/ + +void rdft(int n, int isgn, float *a, int *ip, float *w) +{ + void makewt(int nw, int *ip, float *w); + void makect(int nc, int *ip, float *c); + void bitrv2(int n, int *ip, float *a); + void cftfsub(int n, float *a, float *w); + void cftbsub(int n, float *a, float *w); + void rftfsub(int n, float *a, int nc, float *c); + void rftbsub(int n, float *a, int nc, float *c); + int nw, nc; + float xi; + + nw = ip[0]; + if (n > (nw << 2)) { + nw = n >> 2; + makewt(nw, ip, w); + } + nc = ip[1]; + if (n > (nc << 2)) { + nc = n >> 2; + makect(nc, ip, w + nw); + } + if (isgn >= 0) { + if (n > 4) { + bitrv2(n, ip + 2, a); + cftfsub(n, a, w); + rftfsub(n, a, nc, w + nw); + } else if (n == 4) { + cftfsub(n, a, w); + } + xi = a[0] - a[1]; + a[0] += a[1]; + a[1] = xi; + } else { + a[1] = 0.5 * (a[0] - a[1]); + a[0] -= a[1]; + if (n > 4) { + rftbsub(n, a, nc, w + nw); + bitrv2(n, ip + 2, a); + cftbsub(n, a, w); + } else if (n == 4) { + cftfsub(n, a, w); + } + } +} + +/* -------- initializing routines -------- */ + +#include + +void makewt(int nw, int *ip, float *w) +{ + void bitrv2(int n, int *ip, float *a); + int j, nwh; + float delta, x, y; + + ip[0] = nw; + ip[1] = 1; + if (nw > 2) { + nwh = nw >> 1; + delta = atan(1.0) / nwh; + w[0] = 1; + w[1] = 0; + w[nwh] = cos(delta * nwh); + w[nwh + 1] = w[nwh]; + if (nwh > 2) { + for (j = 2; j < nwh; j += 2) { + x = cos(delta * j); + y = sin(delta * j); + w[j] = x; + w[j + 1] = y; + w[nw - j] = y; + w[nw - j + 1] = x; + } + bitrv2(nw, ip + 2, w); + } + } +} + + +void makect(int nc, int *ip, float *c) +{ + int j, nch; + float delta; + + ip[1] = nc; + if (nc > 1) { + nch = nc >> 1; + delta = atan(1.0) / nch; + c[0] = cos(delta * nch); + c[nch] = 0.5 * c[0]; + for (j = 1; j < nch; j++) { + c[j] = 0.5 * cos(delta * j); + c[nc - j] = 0.5 * sin(delta * j); + } + } +} + + +/* -------- child routines -------- */ + + +void bitrv2(int n, int *ip, float *a) +{ + int j, j1, k, k1, l, m, m2; + float xr, xi, yr, yi; + + ip[0] = 0; + l = n; + m = 1; + while ((m << 3) < l) { + l >>= 1; + for (j = 0; j < m; j++) { + ip[m + j] = ip[j] + l; + } + m <<= 1; + } + m2 = 2 * m; + if ((m << 3) == l) { + for (k = 0; k < m; k++) { + for (j = 0; j < k; j++) { + j1 = 2 * j + ip[k]; + k1 = 2 * k + ip[j]; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += 2 * m2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 -= m2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += 2 * m2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + j1 = 2 * k + m2 + ip[k]; + k1 = j1 + m2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + } else { + for (k = 1; k < m; k++) { + for (j = 0; j < k; j++) { + j1 = 2 * j + ip[k]; + k1 = 2 * k + ip[j]; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += m2; + xr = a[j1]; + xi = a[j1 + 1]; + yr = a[k1]; + yi = a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + } + } +} + + +void bitrv2conj(int n, int *ip, float *a) +{ + int j, j1, k, k1, l, m, m2; + float xr, xi, yr, yi; + + ip[0] = 0; + l = n; + m = 1; + while ((m << 3) < l) { + l >>= 1; + for (j = 0; j < m; j++) { + ip[m + j] = ip[j] + l; + } + m <<= 1; + } + m2 = 2 * m; + if ((m << 3) == l) { + for (k = 0; k < m; k++) { + for (j = 0; j < k; j++) { + j1 = 2 * j + ip[k]; + k1 = 2 * k + ip[j]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += 2 * m2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 -= m2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += 2 * m2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 2 * k + ip[k]; + a[k1 + 1] = -a[k1 + 1]; + j1 = k1 + m2; + k1 = j1 + m2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + k1 += m2; + a[k1 + 1] = -a[k1 + 1]; + } + } else { + a[1] = -a[1]; + a[m2 + 1] = -a[m2 + 1]; + for (k = 1; k < m; k++) { + for (j = 0; j < k; j++) { + j1 = 2 * j + ip[k]; + k1 = 2 * k + ip[j]; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + j1 += m2; + k1 += m2; + xr = a[j1]; + xi = -a[j1 + 1]; + yr = a[k1]; + yi = -a[k1 + 1]; + a[j1] = yr; + a[j1 + 1] = yi; + a[k1] = xr; + a[k1 + 1] = xi; + } + k1 = 2 * k + ip[k]; + a[k1 + 1] = -a[k1 + 1]; + a[k1 + m2 + 1] = -a[k1 + m2 + 1]; + } + } +} + + +void cftfsub(int n, float *a, float *w) +{ + void cft1st(int n, float *a, float *w); + void cftmdl(int n, int l, float *a, float *w); + int j, j1, j2, j3, l; + float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + l = 2; + if (n > 8) { + cft1st(n, a, w); + l = 8; + while ((l << 2) < n) { + cftmdl(n, l, a, w); + l <<= 2; + } + } + if ((l << 2) == n) { + for (j = 0; j < l; j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = a[j + 1] + a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = a[j + 1] - a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + a[j2] = x0r - x2r; + a[j2 + 1] = x0i - x2i; + a[j1] = x1r - x3i; + a[j1 + 1] = x1i + x3r; + a[j3] = x1r + x3i; + a[j3 + 1] = x1i - x3r; + } + } else { + for (j = 0; j < l; j += 2) { + j1 = j + l; + x0r = a[j] - a[j1]; + x0i = a[j + 1] - a[j1 + 1]; + a[j] += a[j1]; + a[j + 1] += a[j1 + 1]; + a[j1] = x0r; + a[j1 + 1] = x0i; + } + } +} + + +void cftbsub(int n, float *a, float *w) +{ + void cft1st(int n, float *a, float *w); + void cftmdl(int n, int l, float *a, float *w); + int j, j1, j2, j3, l; + float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + l = 2; + if (n > 8) { + cft1st(n, a, w); + l = 8; + while ((l << 2) < n) { + cftmdl(n, l, a, w); + l <<= 2; + } + } + if ((l << 2) == n) { + for (j = 0; j < l; j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = -a[j + 1] - a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = -a[j + 1] + a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i - x2i; + a[j2] = x0r - x2r; + a[j2 + 1] = x0i + x2i; + a[j1] = x1r - x3i; + a[j1 + 1] = x1i - x3r; + a[j3] = x1r + x3i; + a[j3 + 1] = x1i + x3r; + } + } else { + for (j = 0; j < l; j += 2) { + j1 = j + l; + x0r = a[j] - a[j1]; + x0i = -a[j + 1] + a[j1 + 1]; + a[j] += a[j1]; + a[j + 1] = -a[j + 1] - a[j1 + 1]; + a[j1] = x0r; + a[j1 + 1] = x0i; + } + } +} + + +void cft1st(int n, float *a, float *w) +{ + int j, k1, k2; + float wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; + float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + x0r = a[0] + a[2]; + x0i = a[1] + a[3]; + x1r = a[0] - a[2]; + x1i = a[1] - a[3]; + x2r = a[4] + a[6]; + x2i = a[5] + a[7]; + x3r = a[4] - a[6]; + x3i = a[5] - a[7]; + a[0] = x0r + x2r; + a[1] = x0i + x2i; + a[4] = x0r - x2r; + a[5] = x0i - x2i; + a[2] = x1r - x3i; + a[3] = x1i + x3r; + a[6] = x1r + x3i; + a[7] = x1i - x3r; + wk1r = w[2]; + x0r = a[8] + a[10]; + x0i = a[9] + a[11]; + x1r = a[8] - a[10]; + x1i = a[9] - a[11]; + x2r = a[12] + a[14]; + x2i = a[13] + a[15]; + x3r = a[12] - a[14]; + x3i = a[13] - a[15]; + a[8] = x0r + x2r; + a[9] = x0i + x2i; + a[12] = x2i - x0i; + a[13] = x0r - x2r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[10] = wk1r * (x0r - x0i); + a[11] = wk1r * (x0r + x0i); + x0r = x3i + x1r; + x0i = x3r - x1i; + a[14] = wk1r * (x0i - x0r); + a[15] = wk1r * (x0i + x0r); + k1 = 0; + for (j = 16; j < n; j += 16) { + k1 += 2; + k2 = 2 * k1; + wk2r = w[k1]; + wk2i = w[k1 + 1]; + wk1r = w[k2]; + wk1i = w[k2 + 1]; + wk3r = wk1r - 2 * wk2i * wk1i; + wk3i = 2 * wk2i * wk1r - wk1i; + x0r = a[j] + a[j + 2]; + x0i = a[j + 1] + a[j + 3]; + x1r = a[j] - a[j + 2]; + x1i = a[j + 1] - a[j + 3]; + x2r = a[j + 4] + a[j + 6]; + x2i = a[j + 5] + a[j + 7]; + x3r = a[j + 4] - a[j + 6]; + x3i = a[j + 5] - a[j + 7]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + x0r -= x2r; + x0i -= x2i; + a[j + 4] = wk2r * x0r - wk2i * x0i; + a[j + 5] = wk2r * x0i + wk2i * x0r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j + 2] = wk1r * x0r - wk1i * x0i; + a[j + 3] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j + 6] = wk3r * x0r - wk3i * x0i; + a[j + 7] = wk3r * x0i + wk3i * x0r; + wk1r = w[k2 + 2]; + wk1i = w[k2 + 3]; + wk3r = wk1r - 2 * wk2r * wk1i; + wk3i = 2 * wk2r * wk1r - wk1i; + x0r = a[j + 8] + a[j + 10]; + x0i = a[j + 9] + a[j + 11]; + x1r = a[j + 8] - a[j + 10]; + x1i = a[j + 9] - a[j + 11]; + x2r = a[j + 12] + a[j + 14]; + x2i = a[j + 13] + a[j + 15]; + x3r = a[j + 12] - a[j + 14]; + x3i = a[j + 13] - a[j + 15]; + a[j + 8] = x0r + x2r; + a[j + 9] = x0i + x2i; + x0r -= x2r; + x0i -= x2i; + a[j + 12] = -wk2i * x0r - wk2r * x0i; + a[j + 13] = -wk2i * x0i + wk2r * x0r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j + 10] = wk1r * x0r - wk1i * x0i; + a[j + 11] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j + 14] = wk3r * x0r - wk3i * x0i; + a[j + 15] = wk3r * x0i + wk3i * x0r; + } +} + + +void cftmdl(int n, int l, float *a, float *w) +{ + int j, j1, j2, j3, k, k1, k2, m, m2; + float wk1r, wk1i, wk2r, wk2i, wk3r, wk3i; + float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i; + + m = l << 2; + for (j = 0; j < l; j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = a[j + 1] + a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = a[j + 1] - a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + a[j2] = x0r - x2r; + a[j2 + 1] = x0i - x2i; + a[j1] = x1r - x3i; + a[j1 + 1] = x1i + x3r; + a[j3] = x1r + x3i; + a[j3 + 1] = x1i - x3r; + } + wk1r = w[2]; + for (j = m; j < l + m; j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = a[j + 1] + a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = a[j + 1] - a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + a[j2] = x2i - x0i; + a[j2 + 1] = x0r - x2r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j1] = wk1r * (x0r - x0i); + a[j1 + 1] = wk1r * (x0r + x0i); + x0r = x3i + x1r; + x0i = x3r - x1i; + a[j3] = wk1r * (x0i - x0r); + a[j3 + 1] = wk1r * (x0i + x0r); + } + k1 = 0; + m2 = 2 * m; + for (k = m2; k < n; k += m2) { + k1 += 2; + k2 = 2 * k1; + wk2r = w[k1]; + wk2i = w[k1 + 1]; + wk1r = w[k2]; + wk1i = w[k2 + 1]; + wk3r = wk1r - 2 * wk2i * wk1i; + wk3i = 2 * wk2i * wk1r - wk1i; + for (j = k; j < l + k; j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = a[j + 1] + a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = a[j + 1] - a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + x0r -= x2r; + x0i -= x2i; + a[j2] = wk2r * x0r - wk2i * x0i; + a[j2 + 1] = wk2r * x0i + wk2i * x0r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j1] = wk1r * x0r - wk1i * x0i; + a[j1 + 1] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3r * x0r - wk3i * x0i; + a[j3 + 1] = wk3r * x0i + wk3i * x0r; + } + wk1r = w[k2 + 2]; + wk1i = w[k2 + 3]; + wk3r = wk1r - 2 * wk2r * wk1i; + wk3i = 2 * wk2r * wk1r - wk1i; + for (j = k + m; j < l + (k + m); j += 2) { + j1 = j + l; + j2 = j1 + l; + j3 = j2 + l; + x0r = a[j] + a[j1]; + x0i = a[j + 1] + a[j1 + 1]; + x1r = a[j] - a[j1]; + x1i = a[j + 1] - a[j1 + 1]; + x2r = a[j2] + a[j3]; + x2i = a[j2 + 1] + a[j3 + 1]; + x3r = a[j2] - a[j3]; + x3i = a[j2 + 1] - a[j3 + 1]; + a[j] = x0r + x2r; + a[j + 1] = x0i + x2i; + x0r -= x2r; + x0i -= x2i; + a[j2] = -wk2i * x0r - wk2r * x0i; + a[j2 + 1] = -wk2i * x0i + wk2r * x0r; + x0r = x1r - x3i; + x0i = x1i + x3r; + a[j1] = wk1r * x0r - wk1i * x0i; + a[j1 + 1] = wk1r * x0i + wk1i * x0r; + x0r = x1r + x3i; + x0i = x1i - x3r; + a[j3] = wk3r * x0r - wk3i * x0i; + a[j3 + 1] = wk3r * x0i + wk3i * x0r; + } + } +} + + +void rftfsub(int n, float *a, int nc, float *c) +{ + int j, k, kk, ks, m; + float wkr, wki, xr, xi, yr, yi; + + m = n >> 1; + ks = 2 * nc / m; + kk = 0; + for (j = 2; j < m; j += 2) { + k = n - j; + kk += ks; + wkr = 0.5 - c[nc - kk]; + wki = c[kk]; + xr = a[j] - a[k]; + xi = a[j + 1] + a[k + 1]; + yr = wkr * xr - wki * xi; + yi = wkr * xi + wki * xr; + a[j] -= yr; + a[j + 1] -= yi; + a[k] += yr; + a[k + 1] -= yi; + } +} + + +void rftbsub(int n, float *a, int nc, float *c) +{ + int j, k, kk, ks, m; + float wkr, wki, xr, xi, yr, yi; + + a[1] = -a[1]; + m = n >> 1; + ks = 2 * nc / m; + kk = 0; + for (j = 2; j < m; j += 2) { + k = n - j; + kk += ks; + wkr = 0.5 - c[nc - kk]; + wki = c[kk]; + xr = a[j] - a[k]; + xi = a[j + 1] + a[k + 1]; + yr = wkr * xr + wki * xi; + yi = wkr * xi - wki * xr; + a[j] -= yr; + a[j + 1] = yi - a[j + 1]; + a[k] += yr; + a[k + 1] = yi - a[k + 1]; + } + a[m + 1] = -a[m + 1]; +} diff --git a/src/ggwave.cpp b/src/ggwave.cpp index 6820fa8..6e95407 100644 --- a/src/ggwave.cpp +++ b/src/ggwave.cpp @@ -1,10 +1,10 @@ #include "ggwave/ggwave.h" +#include "fft.h" #include "reed-solomon/rs.hpp" #include #include -#include #include //#include @@ -22,8 +22,8 @@ namespace { FILE * g_fptr = stderr; -std::map g_instances; -std::map g_rxProtocols; +std::vector g_instances; +std::vector g_rxProtocols; double linear_interp(double first_number, double second_number, double fraction) { return (first_number + ((second_number - first_number)*fraction)); @@ -45,6 +45,11 @@ extern "C" ggwave_Instance ggwave_init(const ggwave_Parameters parameters) { static ggwave_Instance curId = 0; + if ((int) g_instances.size() < curId + 1) { + g_instances.resize(curId + 1, nullptr); + g_rxProtocols.resize(curId + 1, GGWave::getTxProtocols()); + } + g_instances[curId] = new GGWave({ parameters.payloadLength, parameters.sampleRateInp, @@ -61,8 +66,10 @@ ggwave_Instance ggwave_init(const ggwave_Parameters parameters) { extern "C" void ggwave_free(ggwave_Instance instance) { - delete (GGWave *) g_instances[instance]; - g_instances.erase(instance); + if ((int) g_instances.size() > instance && g_instances[instance]) { + delete (GGWave *) g_instances[instance]; + g_instances[instance] = nullptr; + } } extern "C" @@ -170,11 +177,6 @@ void ggwave_toggleRxProtocol( ggwave_Instance instance, ggwave_TxProtocolId rxProtocolId, int state) { - // if never called - initialize with all available protocols - if (g_rxProtocols.find(instance) == g_rxProtocols.end()) { - g_rxProtocols[instance] = GGWave::getTxProtocols(); - } - if (state == 0) { // disable Rx protocol g_rxProtocols[instance][rxProtocolId].enabled = false; @@ -192,90 +194,14 @@ void ggwave_toggleRxProtocol( namespace { -// FFT routines taken from https://stackoverflow.com/a/37729648/4039976 - -int log2(int N) { - int k = N, i = 0; - while(k) { - k >>= 1; - i++; - } - return i - 1; +void FFT(float * f, int N, int * ip, float * w) { + rdft(N, 1, f, ip, w); } -int reverse(int N, int n) { - int j, p = 0; - for(j = 1; j <= log2(N); j++) { - if(n & (1 << (log2(N) - j))) - p |= 1 << (j - 1); - } - return p; -} +void FFT(const float * src, float * dst, int N, int * ip, float * w) { + std::copy(src, src + N, dst); -void ordina(float * f1, int N) { - static thread_local float f2[2*GGWave::kMaxSamplesPerFrame]; - for (int i = 0; i < N; i++) { - int ir = reverse(N, i); - f2[2*i + 0] = f1[2*ir + 0]; - f2[2*i + 1] = f1[2*ir + 1]; - } - for (int j = 0; j < N; j++) { - f1[2*j + 0] = f2[2*j + 0]; - f1[2*j + 1] = f2[2*j + 1]; - } -} - -void transform(float * f, int N) { - ordina(f, N); //first: reverse order - float * W; - W = (float *)malloc(N*sizeof(float)); - W[2*1 + 0] = cos(-2.*M_PI/N); - W[2*1 + 1] = sin(-2.*M_PI/N); - W[2*0 + 0] = 1; - W[2*0 + 1] = 0; - for (int i = 2; i < N / 2; i++) { - W[2*i + 0] = cos(-2.*i*M_PI/N); - W[2*i + 1] = sin(-2.*i*M_PI/N); - } - int n = 1; - int a = N / 2; - for(int j = 0; j < log2(N); j++) { - for(int i = 0; i < N; i++) { - if(!(i & n)) { - int wi = (i * a) % (n * a); - int fi = i + n; - float a = W[2*wi + 0]; - float b = W[2*wi + 1]; - float c = f[2*fi + 0]; - float d = f[2*fi + 1]; - float temp[2] = { f[2*i + 0], f[2*i + 1] }; - float Temp[2] = { a*c - b*d, b*c + a*d }; - f[2*i + 0] = temp[0] + Temp[0]; - f[2*i + 1] = temp[1] + Temp[1]; - f[2*fi + 0] = temp[0] - Temp[0]; - f[2*fi + 1] = temp[1] - Temp[1]; - } - } - n *= 2; - a = a / 2; - } - free(W); -} - -void FFT(float * f, int N, float d) { - transform(f, N); - for (int i = 0; i < N; i++) { - f[2*i + 0] *= d; - f[2*i + 1] *= d; - } -} - -void FFT(const float * src, float * dst, int N, float d) { - for (int i = 0; i < N; ++i) { - dst[2*i + 0] = src[i]; - dst[2*i + 1] = 0.0f; - } - FFT(dst, N, d); + FFT(dst, N, ip, w); } inline void addAmplitudeSmooth( @@ -336,8 +262,9 @@ struct GGWave::Rx { int framesToRecord = 0; int samplesNeeded = 0; - std::vector fftInp; // real std::vector fftOut; // complex + std::vector m_fftWorkI; + std::vector m_fftWorkF; bool hasNewSpectrum = false; bool hasNewAmplitude = false; @@ -439,6 +366,7 @@ GGWave::GGWave(const Parameters & parameters) : m_isTxEnabled (parameters.operatingMode & GGWAVE_OPERATING_MODE_TX), m_needResampling (m_sampleRateInp != m_sampleRate || m_sampleRateOut != m_sampleRate), m_txOnlyTones (parameters.operatingMode & GGWAVE_OPERATING_MODE_TX_ONLY_TONES), + m_isDSSEnabled (parameters.operatingMode & GGWAVE_OPERATING_MODE_USE_DSS), // common m_dataEncoded (kMaxDataSize), @@ -477,8 +405,10 @@ GGWave::GGWave(const Parameters & parameters) : m_rx->samplesNeeded = m_samplesPerFrame; - m_rx->fftInp.resize(m_samplesPerFrame); m_rx->fftOut.resize(2*m_samplesPerFrame); + m_rx->m_fftWorkI.resize(3 + sqrt(m_samplesPerFrame/2)); + m_rx->m_fftWorkF.resize(m_samplesPerFrame/2); + m_rx->m_fftWorkI[0] = 0; m_rx->sampleSpectrum.resize(m_samplesPerFrame); m_rx->sampleAmplitude.resize(m_needResampling ? m_samplesPerFrame + 128 : m_samplesPerFrame); // small extra space because sometimes resampling needs a few more samples @@ -563,6 +493,15 @@ GGWave::GGWave(const Parameters & parameters) : m_resampler = new Resampler(); } + if (m_isDSSEnabled) { + m_dssMagic = { + 0x96, 0x9f, 0xb4, 0xaf, 0x1b, 0x91, 0xde, 0xc5, 0x45, 0x75, 0xe8, 0x2e, 0x0f, 0x32, 0x4a, 0x5f, + 0xb4, 0x56, 0x95, 0xcb, 0x7f, 0x6a, 0x54, 0x6a, 0x48, 0xf2, 0x0b, 0x7b, 0xcd, 0xfb, 0x93, 0x6d, + 0x3c, 0x77, 0x5e, 0xc3, 0x33, 0x47, 0xc0, 0xf1, 0x71, 0x32, 0x33, 0x27, 0x35, 0x68, 0x47, 0x1f, + 0x4e, 0xac, 0x23, 0x42, 0x5f, 0x00, 0x37, 0xa4, 0x50, 0x6d, 0x48, 0x24, 0x91, 0x7c, 0xa1, 0x4e, + }; + } + init("", getDefaultTxProtocol(), 0); } @@ -620,23 +559,24 @@ bool GGWave::init(int dataSize, const char * dataBuffer, const TxProtocol & txPr } m_tx->txProtocol = txProtocol; - m_tx->txDataLength = dataSize; + m_tx->txDataLength = m_isFixedPayloadLength ? m_payloadLength : dataSize; m_tx->sendVolume = ((double)(volume))/100.0f; m_tx->hasNewTxData = false; std::fill(m_tx->txData.begin(), m_tx->txData.end(), 0); std::fill(m_dataEncoded.begin(), m_dataEncoded.end(), 0); - if (m_tx->txDataLength > 0) { + if (dataSize > 0) { m_tx->txData[0] = m_tx->txDataLength; - for (int i = 0; i < m_tx->txDataLength; ++i) m_tx->txData[i + 1] = dataBuffer[i]; + for (int i = 0; i < m_tx->txDataLength; ++i) { + m_tx->txData[i + 1] = i < dataSize ? dataBuffer[i] : 0; + if (m_isDSSEnabled) { + m_tx->txData[i + 1] ^= m_dssMagic[i%m_dssMagic.size()]; + } + } m_tx->hasNewTxData = true; } - - if (m_isFixedPayloadLength) { - m_tx->txDataLength = m_payloadLength; - } } else { if (dataSize > 0) { ggprintf("Tx is disabled - cannot transmit data with this ggwave instance\n"); @@ -661,11 +601,6 @@ bool GGWave::init(int dataSize, const char * dataBuffer, const TxProtocol & txPr std::fill(m_rx->rxData.begin(), m_rx->rxData.end(), 0); - for (int i = 0; i < m_samplesPerFrame; ++i) { - m_rx->fftOut[2*i + 0] = 0.0f; - m_rx->fftOut[2*i + 1] = 0.0f; - } - for (auto & s : m_rx->spectrumHistoryFixed) { std::fill(s.begin(), s.end(), 0); } @@ -1148,6 +1083,7 @@ bool GGWave::decode(const void * data, uint32_t nBytes) { // bool GGWave::hasTxData() const { return m_tx && m_tx->hasNewTxData; } +bool GGWave::isDSSEnabled() const { return m_isDSSEnabled; } int GGWave::getSamplesPerFrame() const { return m_samplesPerFrame; } int GGWave::getSampleSizeBytesInp() const { return m_sampleSizeBytesInp; } @@ -1183,6 +1119,7 @@ bool GGWave::takeTxAmplitudeI16(AmplitudeDataI16 & dst) { bool GGWave::isReceiving() const { return m_rx->receivingData; } bool GGWave::isAnalyzing() const { return m_rx->analyzingData; } +int GGWave::getSamplesNeeded() const { return m_rx->samplesNeeded; } int GGWave::getFramesToRecord() const { return m_rx->framesToRecord; } int GGWave::getFramesLeftToRecord() const { return m_rx->framesLeftToRecord; } int GGWave::getFramesToAnalyze() const { return m_rx->framesToAnalyze; } @@ -1238,13 +1175,13 @@ bool GGWave::takeRxAmplitude(AmplitudeData & dst) { return true; } -bool GGWave::computeFFTR(const float * src, float * dst, int N, float d) { - if (N > kMaxSamplesPerFrame) { - ggprintf("computeFFTR: N (%d) must be <= %d\n", N, GGWave::kMaxSamplesPerFrame); +bool GGWave::computeFFTR(const float * src, float * dst, int N) { + if (N != m_samplesPerFrame) { + ggprintf("computeFFTR: N (%d) must be equal to 'samplesPerFrame' %d\n", N, m_samplesPerFrame); return false; } - FFT(src, dst, N, d); + FFT(src, dst, N, m_rx->m_fftWorkI.data(), m_rx->m_fftWorkF.data()); return true; } @@ -1426,7 +1363,7 @@ void GGWave::decode_variable() { } // calculate spectrum - FFT(m_rx->sampleAmplitudeAverage.data(), m_rx->fftOut.data(), m_samplesPerFrame, 1.0); + FFT(m_rx->sampleAmplitudeAverage.data(), m_rx->fftOut.data(), m_samplesPerFrame, m_rx->m_fftWorkI.data(), m_rx->m_fftWorkF.data()); for (int i = 0; i < m_samplesPerFrame; ++i) { m_rx->sampleSpectrum[i] = (m_rx->fftOut[2*i + 0]*m_rx->fftOut[2*i + 0] + m_rx->fftOut[2*i + 1]*m_rx->fftOut[2*i + 1]); @@ -1488,16 +1425,16 @@ void GGWave::decode_variable() { std::copy( m_rx->recordedAmplitude.begin() + offsetTx*step, - m_rx->recordedAmplitude.begin() + offsetTx*step + m_samplesPerFrame, m_rx->fftInp.data()); + m_rx->recordedAmplitude.begin() + offsetTx*step + m_samplesPerFrame, m_rx->fftOut.data()); // note : should we skip the first and last frame here as they are amplitude-smoothed? for (int k = 1; k < rxProtocol.framesPerTx; ++k) { for (int i = 0; i < m_samplesPerFrame; ++i) { - m_rx->fftInp[i] += m_rx->recordedAmplitude[(offsetTx + k*stepsPerFrame)*step + i]; + m_rx->fftOut[i] += m_rx->recordedAmplitude[(offsetTx + k*stepsPerFrame)*step + i]; } } - FFT(m_rx->fftInp.data(), m_rx->fftOut.data(), m_samplesPerFrame, 1.0); + FFT(m_rx->fftOut.data(), m_samplesPerFrame, m_rx->m_fftWorkI.data(), m_rx->m_fftWorkF.data()); for (int i = 0; i < m_samplesPerFrame; ++i) { m_rx->sampleSpectrum[i] = (m_rx->fftOut[2*i + 0]*m_rx->fftOut[2*i + 0] + m_rx->fftOut[2*i + 1]*m_rx->fftOut[2*i + 1]); @@ -1559,7 +1496,13 @@ void GGWave::decode_variable() { RS::ReedSolomon rsData(decodedLength, ::getECCBytesForLength(decodedLength), m_workRSData.data()); if (rsData.Decode(m_dataEncoded.data() + m_encodedDataOffset, m_rx->rxData.data()) == 0) { - if (m_rx->rxData[0] != 0) { + if (decodedLength > 0) { + if (m_isDSSEnabled) { + for (int i = 0; i < decodedLength; ++i) { + m_rx->rxData[i] = m_rx->rxData[i] ^ m_dssMagic[i%m_dssMagic.size()]; + } + } + ggprintf("Decoded length = %d, protocol = '%s' (%d)\n", decodedLength, rxProtocol.name, rxProtocolId); ggprintf("Received sound data successfully: '%s'\n", m_rx->rxData.data()); @@ -1705,7 +1648,7 @@ void GGWave::decode_fixed() { m_rx->hasNewSpectrum = true; // calculate spectrum - FFT(m_rx->sampleAmplitude.data(), m_rx->fftOut.data(), m_samplesPerFrame, 1.0); + FFT(m_rx->sampleAmplitude.data(), m_rx->fftOut.data(), m_samplesPerFrame, m_rx->m_fftWorkI.data(), m_rx->m_fftWorkF.data()); float amax = 0.0f; for (int i = 0; i < m_samplesPerFrame; ++i) { @@ -1716,20 +1659,23 @@ void GGWave::decode_fixed() { amax = std::max(amax, m_rx->sampleSpectrum[i]); } + // original, floating-point version //m_rx->spectrumHistoryFixed[m_rx->historyIdFixed] = m_rx->sampleSpectrum; // in theory, using uint8_t should work alsmost the same and save 4 times the memory, but for some resone // the result are not as good as with the floating-point version // float -> uint8_t + //amax = 255.0f/(amax == 0.0f ? 1.0f : amax); //for (int i = 0; i < m_samplesPerFrame; ++i) { - // m_rx->spectrumHistoryFixed[m_rx->historyIdFixed][i] = std::min(255.0, std::max(0.0, round(m_rx->sampleSpectrum[i]/amax*255.0f))); + // m_rx->spectrumHistoryFixed[m_rx->historyIdFixed][i] = std::min(255.0f, std::max(0.0f, round(m_rx->sampleSpectrum[i]*amax))); //} // hence we opt for the uint16_t version, saving 2 times the memory and getting similar results as the floating-point version // float -> uint16_t + amax = 65535.0f/(amax == 0.0f ? 1.0f : amax); for (int i = 0; i < m_samplesPerFrame; ++i) { - m_rx->spectrumHistoryFixed[m_rx->historyIdFixed][i] = std::min(65535.0, std::max(0.0, round(m_rx->sampleSpectrum[i]/amax*65535.0f))); + m_rx->spectrumHistoryFixed[m_rx->historyIdFixed][i] = std::min(65535.0f, std::max(0.0f, round(m_rx->sampleSpectrum[i]*amax))); } if (++m_rx->historyIdFixed >= (int) m_rx->spectrumHistoryFixed.size()) { @@ -1844,16 +1790,20 @@ void GGWave::decode_fixed() { } if (rsData.Decode(m_dataEncoded.data(), m_rx->rxData.data()) == 0) { - if (m_rx->rxData[0] != 0) { - ggprintf("Decoded length = %d, protocol = '%s' (%d)\n", m_rx->rxData[0], rxProtocol.name, rxProtocolId); - ggprintf("Received sound data successfully: '%s'\n", m_rx->rxData.data()); - - isValid = true; - m_rx->hasNewRxData = true; - m_rx->lastRxDataLength = m_payloadLength; - m_rx->rxProtocol = rxProtocol; - m_rx->rxProtocolId = TxProtocolId(rxProtocolId); + if (m_isDSSEnabled) { + for (int i = 0; i < m_payloadLength; ++i) { + m_rx->rxData[i] = m_rx->rxData[i] ^ m_dssMagic[i%m_dssMagic.size()]; + } } + + ggprintf("Decoded length = %d, protocol = '%s' (%d)\n", m_payloadLength, rxProtocol.name, rxProtocolId); + ggprintf("Received sound data successfully: '%s'\n", m_rx->rxData.data()); + + isValid = true; + m_rx->hasNewRxData = true; + m_rx->lastRxDataLength = m_payloadLength; + m_rx->rxProtocol = rxProtocol; + m_rx->rxProtocolId = TxProtocolId(rxProtocolId); } }