From 2b44612208825c499b9ceaf086345468353102ca Mon Sep 17 00:00:00 2001 From: MITSUNARI Shigeo Date: Tue, 17 Oct 2017 11:44:56 +0900 Subject: [PATCH] [js] add add/sub/mulInt --- docs/demo/exported-she.js | 3 ++ docs/demo/mclshe.js | 2 +- docs/demo/mclshe.wasm | Bin 501199 -> 502616 bytes docs/demo/she-demo.js | 47 +++++++++++++++++------ docs/demo/she.js | 76 ++++++++++++++++++++++++++++++++++++++ include/mcl/she.h | 5 +++ src/she_c_impl.hpp | 15 ++++++++ 7 files changed, 136 insertions(+), 12 deletions(-) diff --git a/docs/demo/exported-she.js b/docs/demo/exported-she.js index 0eb9398..b011f41 100644 --- a/docs/demo/exported-she.js +++ b/docs/demo/exported-she.js @@ -34,6 +34,9 @@ sheSubGT = mod.cwrap('sheSubGT', 'number', ['number', 'number', 'number', ]) sheMulG1 = mod.cwrap('sheMulG1', 'number', ['number', 'number', 'number', ]) sheMulG2 = mod.cwrap('sheMulG2', 'number', ['number', 'number', 'number', ]) sheMulGT = mod.cwrap('sheMulGT', 'number', ['number', 'number', 'number', ]) +sheMul32G1 = mod.cwrap('sheMul32G1', 'number', ['number', 'number', 'number', ]) +sheMul32G2 = mod.cwrap('sheMul32G2', 'number', ['number', 'number', 'number', ]) +sheMul32GT = mod.cwrap('sheMul32GT', 'number', ['number', 'number', 'number', ]) sheMul = mod.cwrap('sheMul', 'number', ['number', 'number', 'number', ]) sheReRandG1 = mod.cwrap('sheReRandG1', 'number', ['number', 'number', ]) sheReRandG2 = mod.cwrap('sheReRandG2', 'number', ['number', 'number', ]) diff --git a/docs/demo/mclshe.js b/docs/demo/mclshe.js index 1e5c2c6..99a62e8 100644 --- a/docs/demo/mclshe.js +++ b/docs/demo/mclshe.js @@ -2,7 +2,7 @@ var Module = function(Module) { Module = Module || {}; var Module = Module; -var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*4294967296:+(low>>>0)+ +(high|0)*4294967296;return ret}),GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;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 if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"]){var froundBuffer=new Float32Array(1);Math["fround"]=(function(x){froundBuffer[0]=x;return froundBuffer[0]})}Math.fround=Math["fround"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;function integrateWasmJS(){var method=Module["wasmJSMethod"]||"native-wasm";Module["wasmJSMethod"]=method;var wasmTextFile=Module["wasmTextFile"]||"mclshe.wast";var wasmBinaryFile=Module["wasmBinaryFile"]||"mclshe.wasm";var asmjsCodeFile=Module["asmjsCodeFile"]||"mclshe.temp.asm.js";if(typeof Module["locateFile"]==="function"){wasmTextFile=Module["locateFile"](wasmTextFile);wasmBinaryFile=Module["locateFile"](wasmBinaryFile);asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}var wasmPageSize=64*1024;var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"f64-to-int":(function(x){return x|0}),"i32s-div":(function(x,y){return(x|0)/(y|0)|0}),"i32u-div":(function(x,y){return(x>>>0)/(y>>>0)>>>0}),"i32s-rem":(function(x,y){return(x|0)%(y|0)|0}),"i32u-rem":(function(x,y){return(x>>>0)%(y>>>0)>>>0}),"debugger":(function(){debugger})};var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function lookupImport(mod,base){var lookup=info;if(mod.indexOf(".")<0){lookup=(lookup||{})[mod]}else{var parts=mod.split(".");lookup=(lookup||{})[parts[0]];lookup=(lookup||{})[parts[1]]}if(base){lookup=(lookup||{})[base]}if(lookup===undefined){abort("bad lookupImport to ("+mod+")."+base)}return lookup}function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength=0||Module["wasmJSMethod"].indexOf("interpret-asm2wasm")>=0?"mclshe.js.mem":null;var STATIC_BUMP=34080;Module["STATIC_BASE"]=STATIC_BASE;Module["STATIC_BUMP"]=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_mutex_init(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___cxa_allocate_exception(size){return _malloc(size)}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);return-1}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function _llvm_eh_typeid_for(type){return type}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___gxx_personality_v0(){}function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){var ptr=EXCEPTIONS.caught.pop();if(!EXCEPTIONS.infos[ptr].rethrown){EXCEPTIONS.caught.push(ptr);EXCEPTIONS.infos[ptr].rethrown=true}EXCEPTIONS.last=ptr;throw ptr}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=1078;Module["wasmMaxTableSize"]=1078;function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{return Module["dynCall_iiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dynCall_viiiijii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viijii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){try{return Module["dynCall_iiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jii(index,a1,a2){try{return Module["dynCall_jii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){try{Module["dynCall_viiiiiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiji(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiji"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_diii(index,a1,a2,a3){try{return Module["dynCall_diii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_fiii(index,a1,a2,a3){try{return Module["dynCall_fiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){try{return Module["dynCall_iiiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iij(index,a1,a2,a3){try{return Module["dynCall_iij"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiii(index,a1,a2,a3){try{return Module["dynCall_jiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiij(index,a1,a2,a3,a4){try{return Module["dynCall_jiij"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){try{return Module["dynCall_jiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiij"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viij(index,a1,a2,a3,a4){try{Module["dynCall_viij"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiid"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_viiiijii":invoke_viiiijii,"invoke_ii":invoke_ii,"invoke_viijii":invoke_viijii,"invoke_iiiiiiiiiiii":invoke_iiiiiiiiiiii,"invoke_jii":invoke_jii,"invoke_iiii":invoke_iiii,"invoke_viiiiiiiiiiiiiii":invoke_viiiiiiiiiiiiiii,"invoke_viiji":invoke_viiji,"invoke_diii":invoke_diii,"invoke_fiii":invoke_fiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiiiiiiii":invoke_iiiiiiiiiiiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_iij":invoke_iij,"invoke_viiiiii":invoke_viiiiii,"invoke_i":invoke_i,"invoke_jiii":invoke_jiii,"invoke_jiij":invoke_jiij,"invoke_jiiii":invoke_jiiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiij":invoke_iiiiij,"invoke_viii":invoke_viii,"invoke_viij":invoke_viij,"invoke_v":invoke_v,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_viiii":invoke_viiii,"___syscall221":___syscall221,"_strftime":_strftime,"_pthread_cond_wait":_pthread_cond_wait,"___lock":___lock,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_pthread_key_create":_pthread_key_create,"_abort":_abort,"___gxx_personality_v0":___gxx_personality_v0,"___assert_fail":___assert_fail,"___cxa_free_exception":___cxa_free_exception,"___cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___buildEnvironment":___buildEnvironment,"__addDays":__addDays,"_strftime_l":_strftime_l,"___setErrNo":___setErrNo,"_llvm_eh_typeid_for":_llvm_eh_typeid_for,"___cxa_allocate_exception":___cxa_allocate_exception,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___cxa_end_catch":___cxa_end_catch,"___resumeException":___resumeException,"___cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"___cxa_begin_catch":___cxa_begin_catch,"_pthread_getspecific":_pthread_getspecific,"__arraySum":__arraySum,"___syscall91":___syscall91,"_pthread_once":_pthread_once,"_getenv":_getenv,"___map_file":___map_file,"___syscall54":___syscall54,"___unlock":___unlock,"__isLeapYear":__isLeapYear,"_pthread_setspecific":_pthread_setspecific,"___cxa_throw":___cxa_throw,"___cxa_rethrow":___cxa_rethrow,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall140":___syscall140,"_pthread_mutex_init":_pthread_mutex_init,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var _sheDecG1=Module["_sheDecG1"]=(function(){return Module["asm"]["_sheDecG1"].apply(null,arguments)});var _sheMul=Module["_sheMul"]=(function(){return Module["asm"]["_sheMul"].apply(null,arguments)});var stackSave=Module["stackSave"]=(function(){return Module["asm"]["stackSave"].apply(null,arguments)});var _sheDecG2=Module["_sheDecG2"]=(function(){return Module["asm"]["_sheDecG2"].apply(null,arguments)});var _sheSetRangeForDLP=Module["_sheSetRangeForDLP"]=(function(){return Module["asm"]["_sheSetRangeForDLP"].apply(null,arguments)});var ___cxx_global_var_init_41=Module["___cxx_global_var_init_41"]=(function(){return Module["asm"]["___cxx_global_var_init_41"].apply(null,arguments)});var _shePublicKeyDeserialize=Module["_shePublicKeyDeserialize"]=(function(){return Module["asm"]["_shePublicKeyDeserialize"].apply(null,arguments)});var _sheReRandGT=Module["_sheReRandGT"]=(function(){return Module["asm"]["_sheReRandGT"].apply(null,arguments)});var _sheEncGT=Module["_sheEncGT"]=(function(){return Module["asm"]["_sheEncGT"].apply(null,arguments)});var _sheEnc32G2=Module["_sheEnc32G2"]=(function(){return Module["asm"]["_sheEnc32G2"].apply(null,arguments)});var _sheCipherTextG2Serialize=Module["_sheCipherTextG2Serialize"]=(function(){return Module["asm"]["_sheCipherTextG2Serialize"].apply(null,arguments)});var establishStackSpace=Module["establishStackSpace"]=(function(){return Module["asm"]["establishStackSpace"].apply(null,arguments)});var getTempRet0=Module["getTempRet0"]=(function(){return Module["asm"]["getTempRet0"].apply(null,arguments)});var _sheInit=Module["_sheInit"]=(function(){return Module["asm"]["_sheInit"].apply(null,arguments)});var ___cxx_global_var_init_38=Module["___cxx_global_var_init_38"]=(function(){return Module["asm"]["___cxx_global_var_init_38"].apply(null,arguments)});var _sheCipherTextG2Deserialize=Module["_sheCipherTextG2Deserialize"]=(function(){return Module["asm"]["_sheCipherTextG2Deserialize"].apply(null,arguments)});var _sheGetPublicKey=Module["_sheGetPublicKey"]=(function(){return Module["asm"]["_sheGetPublicKey"].apply(null,arguments)});var _sheSecretKeyDeserialize=Module["_sheSecretKeyDeserialize"]=(function(){return Module["asm"]["_sheSecretKeyDeserialize"].apply(null,arguments)});var _shePublicKeySerialize=Module["_shePublicKeySerialize"]=(function(){return Module["asm"]["_shePublicKeySerialize"].apply(null,arguments)});var _sheSubGT=Module["_sheSubGT"]=(function(){return Module["asm"]["_sheSubGT"].apply(null,arguments)});var stackRestore=Module["stackRestore"]=(function(){return Module["asm"]["stackRestore"].apply(null,arguments)});var _sheSecretKeySetByCSPRNG=Module["_sheSecretKeySetByCSPRNG"]=(function(){return Module["asm"]["_sheSecretKeySetByCSPRNG"].apply(null,arguments)});var _sheCipherTextG1Deserialize=Module["_sheCipherTextG1Deserialize"]=(function(){return Module["asm"]["_sheCipherTextG1Deserialize"].apply(null,arguments)});var _sheCipherTextGTDeserialize=Module["_sheCipherTextGTDeserialize"]=(function(){return Module["asm"]["_sheCipherTextGTDeserialize"].apply(null,arguments)});var _memset=Module["_memset"]=(function(){return Module["asm"]["_memset"].apply(null,arguments)});var _sbrk=Module["_sbrk"]=(function(){return Module["asm"]["_sbrk"].apply(null,arguments)});var ___cxx_global_var_init_48=Module["___cxx_global_var_init_48"]=(function(){return Module["asm"]["___cxx_global_var_init_48"].apply(null,arguments)});var _memcpy=Module["_memcpy"]=(function(){return Module["asm"]["_memcpy"].apply(null,arguments)});var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=(function(){return Module["asm"]["_llvm_bswap_i32"].apply(null,arguments)});var _sheAddGT=Module["_sheAddGT"]=(function(){return Module["asm"]["_sheAddGT"].apply(null,arguments)});var ___cxx_global_var_init_40=Module["___cxx_global_var_init_40"]=(function(){return Module["asm"]["___cxx_global_var_init_40"].apply(null,arguments)});var ___cxx_global_var_init_43=Module["___cxx_global_var_init_43"]=(function(){return Module["asm"]["___cxx_global_var_init_43"].apply(null,arguments)});var ___cxx_global_var_init_42=Module["___cxx_global_var_init_42"]=(function(){return Module["asm"]["___cxx_global_var_init_42"].apply(null,arguments)});var ___cxx_global_var_init_45=Module["___cxx_global_var_init_45"]=(function(){return Module["asm"]["___cxx_global_var_init_45"].apply(null,arguments)});var ___cxx_global_var_init_44=Module["___cxx_global_var_init_44"]=(function(){return Module["asm"]["___cxx_global_var_init_44"].apply(null,arguments)});var ___cxx_global_var_init_47=Module["___cxx_global_var_init_47"]=(function(){return Module["asm"]["___cxx_global_var_init_47"].apply(null,arguments)});var ___cxx_global_var_init_46=Module["___cxx_global_var_init_46"]=(function(){return Module["asm"]["___cxx_global_var_init_46"].apply(null,arguments)});var _sheSubG2=Module["_sheSubG2"]=(function(){return Module["asm"]["_sheSubG2"].apply(null,arguments)});var _sheSubG1=Module["_sheSubG1"]=(function(){return Module["asm"]["_sheSubG1"].apply(null,arguments)});var _sheAddG2=Module["_sheAddG2"]=(function(){return Module["asm"]["_sheAddG2"].apply(null,arguments)});var __GLOBAL__sub_I_she_c256_cpp=Module["__GLOBAL__sub_I_she_c256_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_she_c256_cpp"].apply(null,arguments)});var setTempRet0=Module["setTempRet0"]=(function(){return Module["asm"]["setTempRet0"].apply(null,arguments)});var ___cxx_global_var_init_36=Module["___cxx_global_var_init_36"]=(function(){return Module["asm"]["___cxx_global_var_init_36"].apply(null,arguments)});var ___cxx_global_var_init_37=Module["___cxx_global_var_init_37"]=(function(){return Module["asm"]["___cxx_global_var_init_37"].apply(null,arguments)});var ___cxx_global_var_init_39=Module["___cxx_global_var_init_39"]=(function(){return Module["asm"]["___cxx_global_var_init_39"].apply(null,arguments)});var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=(function(){return Module["asm"]["_pthread_mutex_unlock"].apply(null,arguments)});var _sheEnc32G1=Module["_sheEnc32G1"]=(function(){return Module["asm"]["_sheEnc32G1"].apply(null,arguments)});var runPostSets=Module["runPostSets"]=(function(){return Module["asm"]["runPostSets"].apply(null,arguments)});var ___cxx_global_var_init_52=Module["___cxx_global_var_init_52"]=(function(){return Module["asm"]["___cxx_global_var_init_52"].apply(null,arguments)});var _sheCipherTextG1Serialize=Module["_sheCipherTextG1Serialize"]=(function(){return Module["asm"]["_sheCipherTextG1Serialize"].apply(null,arguments)});var _sheSetRangeForG1DLP=Module["_sheSetRangeForG1DLP"]=(function(){return Module["asm"]["_sheSetRangeForG1DLP"].apply(null,arguments)});var _sheMulG1=Module["_sheMulG1"]=(function(){return Module["asm"]["_sheMulG1"].apply(null,arguments)});var ___cxx_global_var_init_49=Module["___cxx_global_var_init_49"]=(function(){return Module["asm"]["___cxx_global_var_init_49"].apply(null,arguments)});var stackAlloc=Module["stackAlloc"]=(function(){return Module["asm"]["stackAlloc"].apply(null,arguments)});var _pthread_cond_broadcast=Module["_pthread_cond_broadcast"]=(function(){return Module["asm"]["_pthread_cond_broadcast"].apply(null,arguments)});var _sheMulG2=Module["_sheMulG2"]=(function(){return Module["asm"]["_sheMulG2"].apply(null,arguments)});var _sheAddG1=Module["_sheAddG1"]=(function(){return Module["asm"]["_sheAddG1"].apply(null,arguments)});var ___errno_location=Module["___errno_location"]=(function(){return Module["asm"]["___errno_location"].apply(null,arguments)});var _sheCipherTextGTSerialize=Module["_sheCipherTextGTSerialize"]=(function(){return Module["asm"]["_sheCipherTextGTSerialize"].apply(null,arguments)});var ___cxa_can_catch=Module["___cxa_can_catch"]=(function(){return Module["asm"]["___cxa_can_catch"].apply(null,arguments)});var _free=Module["_free"]=(function(){return Module["asm"]["_free"].apply(null,arguments)});var _sheDecGT=Module["_sheDecGT"]=(function(){return Module["asm"]["_sheDecGT"].apply(null,arguments)});var setThrew=Module["setThrew"]=(function(){return Module["asm"]["setThrew"].apply(null,arguments)});var _sheEncG1=Module["_sheEncG1"]=(function(){return Module["asm"]["_sheEncG1"].apply(null,arguments)});var _sheReRandG1=Module["_sheReRandG1"]=(function(){return Module["asm"]["_sheReRandG1"].apply(null,arguments)});var _sheReRandG2=Module["_sheReRandG2"]=(function(){return Module["asm"]["_sheReRandG2"].apply(null,arguments)});var _sheMulGT=Module["_sheMulGT"]=(function(){return Module["asm"]["_sheMulGT"].apply(null,arguments)});var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=(function(){return Module["asm"]["_emscripten_get_global_libc"].apply(null,arguments)});var _sheEncG2=Module["_sheEncG2"]=(function(){return Module["asm"]["_sheEncG2"].apply(null,arguments)});var _malloc=Module["_malloc"]=(function(){return Module["asm"]["_malloc"].apply(null,arguments)});var _sheEnc32GT=Module["_sheEnc32GT"]=(function(){return Module["asm"]["_sheEnc32GT"].apply(null,arguments)});var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=(function(){return Module["asm"]["_pthread_mutex_lock"].apply(null,arguments)});var _sheSetRangeForGTDLP=Module["_sheSetRangeForGTDLP"]=(function(){return Module["asm"]["_sheSetRangeForGTDLP"].apply(null,arguments)});var ___cxx_global_var_init_54=Module["___cxx_global_var_init_54"]=(function(){return Module["asm"]["___cxx_global_var_init_54"].apply(null,arguments)});var _memmove=Module["_memmove"]=(function(){return Module["asm"]["_memmove"].apply(null,arguments)});var _sheSecretKeySerialize=Module["_sheSecretKeySerialize"]=(function(){return Module["asm"]["_sheSecretKeySerialize"].apply(null,arguments)});var ___cxx_global_var_init_53=Module["___cxx_global_var_init_53"]=(function(){return Module["asm"]["___cxx_global_var_init_53"].apply(null,arguments)});var ___cxx_global_var_init_50=Module["___cxx_global_var_init_50"]=(function(){return Module["asm"]["___cxx_global_var_init_50"].apply(null,arguments)});var ___cxx_global_var_init_51=Module["___cxx_global_var_init_51"]=(function(){return Module["asm"]["___cxx_global_var_init_51"].apply(null,arguments)});var ___cxx_global_var_init_56=Module["___cxx_global_var_init_56"]=(function(){return Module["asm"]["___cxx_global_var_init_56"].apply(null,arguments)});var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=(function(){return Module["asm"]["___cxa_is_pointer_type"].apply(null,arguments)});var _sheSetRangeForG2DLP=Module["_sheSetRangeForG2DLP"]=(function(){return Module["asm"]["_sheSetRangeForG2DLP"].apply(null,arguments)});var ___cxx_global_var_init_55=Module["___cxx_global_var_init_55"]=(function(){return Module["asm"]["___cxx_global_var_init_55"].apply(null,arguments)});var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiii"].apply(null,arguments)});var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=(function(){return Module["asm"]["dynCall_iiiiiid"].apply(null,arguments)});var dynCall_viiiii=Module["dynCall_viiiii"]=(function(){return Module["asm"]["dynCall_viiiii"].apply(null,arguments)});var dynCall_vi=Module["dynCall_vi"]=(function(){return Module["asm"]["dynCall_vi"].apply(null,arguments)});var dynCall_vii=Module["dynCall_vii"]=(function(){return Module["asm"]["dynCall_vii"].apply(null,arguments)});var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiii"].apply(null,arguments)});var dynCall_viiiijii=Module["dynCall_viiiijii"]=(function(){return Module["asm"]["dynCall_viiiijii"].apply(null,arguments)});var dynCall_ii=Module["dynCall_ii"]=(function(){return Module["asm"]["dynCall_ii"].apply(null,arguments)});var dynCall_viijii=Module["dynCall_viijii"]=(function(){return Module["asm"]["dynCall_viijii"].apply(null,arguments)});var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiiii"].apply(null,arguments)});var dynCall_jii=Module["dynCall_jii"]=(function(){return Module["asm"]["dynCall_jii"].apply(null,arguments)});var dynCall_iiii=Module["dynCall_iiii"]=(function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments)});var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiiiiiiiiii"].apply(null,arguments)});var dynCall_viiji=Module["dynCall_viiji"]=(function(){return Module["asm"]["dynCall_viiji"].apply(null,arguments)});var dynCall_diii=Module["dynCall_diii"]=(function(){return Module["asm"]["dynCall_diii"].apply(null,arguments)});var dynCall_fiii=Module["dynCall_fiii"]=(function(){return Module["asm"]["dynCall_fiii"].apply(null,arguments)});var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiii"].apply(null,arguments)});var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiiiii"].apply(null,arguments)});var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiii"].apply(null,arguments)});var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiiiii"].apply(null,arguments)});var dynCall_iii=Module["dynCall_iii"]=(function(){return Module["asm"]["dynCall_iii"].apply(null,arguments)});var dynCall_iiiiii=Module["dynCall_iiiiii"]=(function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments)});var dynCall_iij=Module["dynCall_iij"]=(function(){return Module["asm"]["dynCall_iij"].apply(null,arguments)});var dynCall_viiiiii=Module["dynCall_viiiiii"]=(function(){return Module["asm"]["dynCall_viiiiii"].apply(null,arguments)});var dynCall_i=Module["dynCall_i"]=(function(){return Module["asm"]["dynCall_i"].apply(null,arguments)});var dynCall_jiii=Module["dynCall_jiii"]=(function(){return Module["asm"]["dynCall_jiii"].apply(null,arguments)});var dynCall_jiij=Module["dynCall_jiij"]=(function(){return Module["asm"]["dynCall_jiij"].apply(null,arguments)});var dynCall_jiiii=Module["dynCall_jiiii"]=(function(){return Module["asm"]["dynCall_jiiii"].apply(null,arguments)});var dynCall_iiiii=Module["dynCall_iiiii"]=(function(){return Module["asm"]["dynCall_iiiii"].apply(null,arguments)});var dynCall_iiiiij=Module["dynCall_iiiiij"]=(function(){return Module["asm"]["dynCall_iiiiij"].apply(null,arguments)});var dynCall_viii=Module["dynCall_viii"]=(function(){return Module["asm"]["dynCall_viii"].apply(null,arguments)});var dynCall_viij=Module["dynCall_viij"]=(function(){return Module["asm"]["dynCall_viij"].apply(null,arguments)});var dynCall_v=Module["dynCall_v"]=(function(){return Module["asm"]["dynCall_v"].apply(null,arguments)});var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiii"].apply(null,arguments)});var dynCall_iiiiid=Module["dynCall_iiiiid"]=(function(){return Module["asm"]["dynCall_iiiiid"].apply(null,arguments)});var dynCall_viiii=Module["dynCall_viiii"]=(function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments)});Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function shell_read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function shell_print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function shell_printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){eval.call(null,x)}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*4294967296:+(low>>>0)+ +(high|0)*4294967296;return ret}),GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){try{func=eval("_"+ident)}catch(e){}}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;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 if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"]){var froundBuffer=new Float32Array(1);Math["fround"]=(function(x){froundBuffer[0]=x;return froundBuffer[0]})}Math.fround=Math["fround"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;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["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;function integrateWasmJS(){var method=Module["wasmJSMethod"]||"native-wasm";Module["wasmJSMethod"]=method;var wasmTextFile=Module["wasmTextFile"]||"mclshe.wast";var wasmBinaryFile=Module["wasmBinaryFile"]||"mclshe.wasm";var asmjsCodeFile=Module["asmjsCodeFile"]||"mclshe.temp.asm.js";if(typeof Module["locateFile"]==="function"){wasmTextFile=Module["locateFile"](wasmTextFile);wasmBinaryFile=Module["locateFile"](wasmBinaryFile);asmjsCodeFile=Module["locateFile"](asmjsCodeFile)}var wasmPageSize=64*1024;var asm2wasmImports={"f64-rem":(function(x,y){return x%y}),"f64-to-int":(function(x){return x|0}),"i32s-div":(function(x,y){return(x|0)/(y|0)|0}),"i32u-div":(function(x,y){return(x>>>0)/(y>>>0)>>>0}),"i32s-rem":(function(x,y){return(x|0)%(y|0)|0}),"i32u-rem":(function(x,y){return(x>>>0)%(y>>>0)>>>0}),"debugger":(function(){debugger})};var info={"global":null,"env":null,"asm2wasm":asm2wasmImports,"parent":Module};var exports=null;function lookupImport(mod,base){var lookup=info;if(mod.indexOf(".")<0){lookup=(lookup||{})[mod]}else{var parts=mod.split(".");lookup=(lookup||{})[parts[0]];lookup=(lookup||{})[parts[1]]}if(base){lookup=(lookup||{})[base]}if(lookup===undefined){abort("bad lookupImport to ("+mod+")."+base)}return lookup}function mergeMemory(newBuffer){var oldBuffer=Module["buffer"];if(newBuffer.byteLength=0||Module["wasmJSMethod"].indexOf("interpret-asm2wasm")>=0?"mclshe.js.mem":null;var STATIC_BUMP=34112;Module["STATIC_BASE"]=STATIC_BASE;Module["STATIC_BUMP"]=STATIC_BUMP;var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___assert_fail(condition,filename,line,func){ABORT=true;throw"Assertion failed: "+Pointer_stringify(condition)+", at: "+[filename?Pointer_stringify(filename):"unknown filename",line,func?Pointer_stringify(func):"unknown function"]+" at "+stackTrace()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var ptr in EXCEPTIONS.infos){var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(Runtime.setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(Runtime.setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(Runtime.setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(Runtime.setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?Pointer_stringify(tm_zone):""};var pattern=Pointer_stringify(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":(function(date){return WEEKDAYS[date.tm_wday].substring(0,3)}),"%A":(function(date){return WEEKDAYS[date.tm_wday]}),"%b":(function(date){return MONTHS[date.tm_mon].substring(0,3)}),"%B":(function(date){return MONTHS[date.tm_mon]}),"%C":(function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)}),"%d":(function(date){return leadingNulls(date.tm_mday,2)}),"%e":(function(date){return leadingSomething(date.tm_mday,2," ")}),"%g":(function(date){return getWeekBasedYear(date).toString().substring(2)}),"%G":(function(date){return getWeekBasedYear(date)}),"%H":(function(date){return leadingNulls(date.tm_hour,2)}),"%I":(function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)}),"%j":(function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)}),"%m":(function(date){return leadingNulls(date.tm_mon+1,2)}),"%M":(function(date){return leadingNulls(date.tm_min,2)}),"%n":(function(){return"\n"}),"%p":(function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}}),"%S":(function(date){return leadingNulls(date.tm_sec,2)}),"%t":(function(){return"\t"}),"%u":(function(date){var day=new Date(date.tm_year+1900,date.tm_mon+1,date.tm_mday,0,0,0,0);return day.getDay()||7}),"%U":(function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"}),"%V":(function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)}),"%Z":(function(date){return date.tm_zone}),"%%":(function(){return"%"})};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _abort(){Module["abort"]()}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module["setThrew"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module["dynCall_v"](func);_pthread_once.seen[ptr]=1}function ___lock(){}function ___unlock(){}var PTHREAD_SPECIFIC={};function _pthread_getspecific(key){return PTHREAD_SPECIFIC[key]||0}var PTHREAD_SPECIFIC_NEXT_KEY=1;var ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};function _pthread_key_create(key,destructor){if(key==0){return ERRNO_CODES.EINVAL}HEAP32[key>>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_mutex_init(){}var ERRNO_MESSAGES={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}var PATH={splitPath:(function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)}),normalizeArray:(function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts}),normalize:(function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path}),dirname:(function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir}),basename:(function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)}),extname:(function(path){return PATH.splitPath(path)[3]}),join:(function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))}),join2:(function(l,r){return PATH.normalize(l+"/"+r)}),resolve:(function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter((function(p){return!!p})),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."}),relative:(function(from,to){from=PATH.resolve(from).substr(1);to=PATH.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()}),put_char:(function(tty,val){if(val===null||val===10){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["print"](UTF8ArrayToString(tty.output,0));tty.output=[]}})},default_tty1_ops:{put_char:(function(tty,val){if(val===null||val===10){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}}),flush:(function(tty){if(tty.output&&tty.output.length>0){Module["printErr"](UTF8ArrayToString(tty.output,0));tty.output=[]}})}};var MEMFS={ops_table:null,mount:(function(mount){return MEMFS.createNode(null,"/",16384|511,0)}),createNode:(function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node}),getFileDataAsRegularArray:(function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;inode.contents.length){node.contents=MEMFS.getFileDataAsRegularArray(node);node.usedBytes=node.contents.length}if(!node.contents||node.contents.subarray){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return}if(!node.contents&&newCapacity>0)node.contents=[];while(node.contents.lengthnewSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);assert(size>=0);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+lengthe2.timestamp){create.push(key);total++}}));var remove=[];Object.keys(dst.entries).forEach((function(key){var e=dst.entries[key];var e2=src.entries[key];if(!e2){remove.push(key);total++}}));if(!total){return callback(null)}var completed=0;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err){if(!done.errored){done.errored=true;return callback(err)}return}if(++completed>=total){return callback(null)}}transaction.onerror=(function(e){done(this.error);e.preventDefault()});create.sort().forEach((function(path){if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(function(err,entry){if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)}))}else{IDBFS.loadLocalEntry(path,(function(err,entry){if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)}))}}));remove.sort().reverse().forEach((function(path){if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}}))})};var NODEFS={isWindows:false,staticInit:(function(){NODEFS.isWindows=!!process.platform.match(/^win/)}),mount:(function(mount){assert(ENVIRONMENT_IS_NODE);return NODEFS.createNode(null,"/",NODEFS.getMode(mount.opts.root),0)}),createNode:(function(parent,name,mode,dev){if(!FS.isDir(mode)&&!FS.isFile(mode)&&!FS.isLink(mode)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=FS.createNode(parent,name,mode);node.node_ops=NODEFS.node_ops;node.stream_ops=NODEFS.stream_ops;return node}),getMode:(function(path){var stat;try{stat=fs.lstatSync(path);if(NODEFS.isWindows){stat.mode=stat.mode|(stat.mode&146)>>1}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return stat.mode}),realPath:(function(node){var parts=[];while(node.parent!==node){parts.push(node.name);node=node.parent}parts.push(node.mount.opts.root);parts.reverse();return PATH.join.apply(null,parts)}),flagsToPermissionStringMap:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},flagsToPermissionString:(function(flags){flags&=~2097152;flags&=~2048;flags&=~32768;flags&=~524288;if(flags in NODEFS.flagsToPermissionStringMap){return NODEFS.flagsToPermissionStringMap[flags]}else{throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}}),node_ops:{getattr:(function(node){var path=NODEFS.realPath(node);var stat;try{stat=fs.lstatSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(NODEFS.isWindows&&!stat.blksize){stat.blksize=4096}if(NODEFS.isWindows&&!stat.blocks){stat.blocks=(stat.size+stat.blksize-1)/stat.blksize|0}return{dev:stat.dev,ino:stat.ino,mode:stat.mode,nlink:stat.nlink,uid:stat.uid,gid:stat.gid,rdev:stat.rdev,size:stat.size,atime:stat.atime,mtime:stat.mtime,ctime:stat.ctime,blksize:stat.blksize,blocks:stat.blocks}}),setattr:(function(node,attr){var path=NODEFS.realPath(node);try{if(attr.mode!==undefined){fs.chmodSync(path,attr.mode);node.mode=attr.mode}if(attr.timestamp!==undefined){var date=new Date(attr.timestamp);fs.utimesSync(path,date,date)}if(attr.size!==undefined){fs.truncateSync(path,attr.size)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),lookup:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);var mode=NODEFS.getMode(path);return NODEFS.createNode(parent,name,mode)}),mknod:(function(parent,name,mode,dev){var node=NODEFS.createNode(parent,name,mode,dev);var path=NODEFS.realPath(node);try{if(FS.isDir(node.mode)){fs.mkdirSync(path,node.mode)}else{fs.writeFileSync(path,"",{mode:node.mode})}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}return node}),rename:(function(oldNode,newDir,newName){var oldPath=NODEFS.realPath(oldNode);var newPath=PATH.join2(NODEFS.realPath(newDir),newName);try{fs.renameSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),unlink:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.unlinkSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),rmdir:(function(parent,name){var path=PATH.join2(NODEFS.realPath(parent),name);try{fs.rmdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readdir:(function(node){var path=NODEFS.realPath(node);try{return fs.readdirSync(path)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),symlink:(function(parent,newName,oldPath){var newPath=PATH.join2(NODEFS.realPath(parent),newName);try{fs.symlinkSync(oldPath,newPath)}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),readlink:(function(node){var path=NODEFS.realPath(node);try{path=fs.readlinkSync(path);path=NODEJS_PATH.relative(NODEJS_PATH.resolve(node.mount.opts.root),path);return path}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}})},stream_ops:{open:(function(stream){var path=NODEFS.realPath(stream.node);try{if(FS.isFile(stream.node.mode)){stream.nfd=fs.openSync(path,NODEFS.flagsToPermissionString(stream.flags))}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),close:(function(stream){try{if(FS.isFile(stream.node.mode)&&stream.nfd){fs.closeSync(stream.nfd)}}catch(e){if(!e.code)throw e;throw new FS.ErrnoError(ERRNO_CODES[e.code])}}),read:(function(stream,buffer,offset,length,position){if(length===0)return 0;var nbuffer=new Buffer(length);var res;try{res=fs.readSync(stream.nfd,nbuffer,0,length,position)}catch(e){throw new FS.ErrnoError(ERRNO_CODES[e.code])}if(res>0){for(var i=0;i=stream.node.size)return 0;var chunk=stream.node.contents.slice(position,position+length);var ab=WORKERFS.reader.readAsArrayBuffer(chunk);buffer.set(new Uint8Array(ab),offset);return chunk.size}),write:(function(stream,buffer,offset,length,position){throw new FS.ErrnoError(ERRNO_CODES.EIO)}),llseek:(function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.size}}if(position<0){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}return position})}};STATICTOP+=16;STATICTOP+=16;STATICTOP+=16;var FS={root:null,mounts:[],devices:[null],streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:(function(e){if(!(e instanceof FS.ErrnoError))throw e+" : "+stackTrace();return ___setErrNo(e.errno)}),lookupPath:(function(path,opts){path=PATH.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}var parts=PATH.normalizeArray(path.split("/").filter((function(p){return!!p})),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(ERRNO_CODES.ELOOP)}}}}return{path:current_path,node:current}}),getPath:(function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}}),hashName:(function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length}),hashAddNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node}),hashRemoveNode:(function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}}),lookupNode:(function(parent,name){var err=FS.mayLookup(parent);if(err){throw new FS.ErrnoError(err,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)}),createNode:(function(parent,name,mode,rdev){if(!FS.FSNode){FS.FSNode=(function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev});FS.FSNode.prototype={};var readMode=292|73;var writeMode=146;Object.defineProperties(FS.FSNode.prototype,{read:{get:(function(){return(this.mode&readMode)===readMode}),set:(function(val){val?this.mode|=readMode:this.mode&=~readMode})},write:{get:(function(){return(this.mode&writeMode)===writeMode}),set:(function(val){val?this.mode|=writeMode:this.mode&=~writeMode})},isFolder:{get:(function(){return FS.isDir(this.mode)})},isDevice:{get:(function(){return FS.isChrdev(this.mode)})}})}var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node}),destroyNode:(function(node){FS.hashRemoveNode(node)}),isRoot:(function(node){return node===node.parent}),isMountpoint:(function(node){return!!node.mounted}),isFile:(function(mode){return(mode&61440)===32768}),isDir:(function(mode){return(mode&61440)===16384}),isLink:(function(mode){return(mode&61440)===40960}),isChrdev:(function(mode){return(mode&61440)===8192}),isBlkdev:(function(mode){return(mode&61440)===24576}),isFIFO:(function(mode){return(mode&61440)===4096}),isSocket:(function(mode){return(mode&49152)===49152}),flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:(function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags}),flagsToPermissionString:(function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms}),nodePermissions:(function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return ERRNO_CODES.EACCES}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return ERRNO_CODES.EACCES}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return ERRNO_CODES.EACCES}return 0}),mayLookup:(function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return ERRNO_CODES.EACCES;return 0}),mayCreate:(function(dir,name){try{var node=FS.lookupNode(dir,name);return ERRNO_CODES.EEXIST}catch(e){}return FS.nodePermissions(dir,"wx")}),mayDelete:(function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var err=FS.nodePermissions(dir,"wx");if(err){return err}if(isdir){if(!FS.isDir(node.mode)){return ERRNO_CODES.ENOTDIR}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return ERRNO_CODES.EBUSY}}else{if(FS.isDir(node.mode)){return ERRNO_CODES.EISDIR}}return 0}),mayOpen:(function(node,flags){if(!node){return ERRNO_CODES.ENOENT}if(FS.isLink(node.mode)){return ERRNO_CODES.ELOOP}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return ERRNO_CODES.EISDIR}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))}),MAX_OPEN_FDS:4096,nextfd:(function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(ERRNO_CODES.EMFILE)}),getStream:(function(fd){return FS.streams[fd]}),createStream:(function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=(function(){});FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:(function(){return this.node}),set:(function(val){this.node=val})},isRead:{get:(function(){return(this.flags&2097155)!==1})},isWrite:{get:(function(){return(this.flags&2097155)!==0})},isAppend:{get:(function(){return this.flags&1024})}})}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream}),closeStream:(function(fd){FS.streams[fd]=null}),chrdev_stream_ops:{open:(function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}}),llseek:(function(){throw new FS.ErrnoError(ERRNO_CODES.ESPIPE)})},major:(function(dev){return dev>>8}),minor:(function(dev){return dev&255}),makedev:(function(ma,mi){return ma<<8|mi}),registerDevice:(function(dev,ops){FS.devices[dev]={stream_ops:ops}}),getDevice:(function(dev){return FS.devices[dev]}),getMounts:(function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts}),syncfs:(function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){console.log("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(err){assert(FS.syncFSRequests>0);FS.syncFSRequests--;return callback(err)}function done(err){if(err){if(!done.errored){done.errored=true;return doCallback(err)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach((function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)}))}),mount:(function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(ERRNO_CODES.EBUSY)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(ERRNO_CODES.ENOTDIR)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot}),unmount:(function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach((function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}}));node.mounted=null;var idx=node.mount.mounts.indexOf(mount);assert(idx!==-1);node.mount.mounts.splice(idx,1)}),lookup:(function(parent,name){return parent.node_ops.lookup(parent,name)}),mknod:(function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(ERRNO_CODES.EINVAL)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(ERRNO_CODES.EPERM)}return parent.node_ops.mknod(parent,name,mode,dev)}),create:(function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)}),mkdir:(function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)}),mkdirTree:(function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}});var lazyArray=this;lazyArray.setDataGetter((function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]}));if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;console.log("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._length})},chunkSize:{get:(function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize})}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:(function(){return this.contents.length})}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach((function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}return fn.apply(null,arguments)}}));stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(ERRNO_CODES.EIO)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);assert(size>=0);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;HEAP32[buf+36>>2]=stat.size;HEAP32[buf+40>>2]=4096;HEAP32[buf+44>>2]=stat.blocks;HEAP32[buf+48>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+52>>2]=0;HEAP32[buf+56>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ino;return 0}),doMsync:(function(addr,stream,len,flags){var buffer=new Uint8Array(HEAPU8.subarray(addr,addr+len));FS.msync(stream,buffer,0,len,flags)}),doMkdir:(function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}),doMknod:(function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-ERRNO_CODES.EINVAL}FS.mknod(path,mode,dev);return 0}),doReadlink:(function(path,buf,bufsize){if(bufsize<=0)return-ERRNO_CODES.EINVAL;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}),doAccess:(function(path,amode){if(amode&~7){return-ERRNO_CODES.EINVAL}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-ERRNO_CODES.EACCES}return 0}),doDup:(function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd}),doReadv:(function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}),varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),getStreamFromFD:(function(){var stream=FS.getStream(SYSCALLS.get());if(!stream)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return stream}),getSocketFromFD:(function(){var socket=SOCKFS.getSocket(SYSCALLS.get());if(!socket)throw new FS.ErrnoError(ERRNO_CODES.EBADF);return socket}),getSocketAddress:(function(allowNull){var addrp=SYSCALLS.get(),addrlen=SYSCALLS.get();if(allowNull&&addrp===0)return null;var info=__read_sockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___cxa_allocate_exception(size){return _malloc(size)}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21505:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21506:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};case 21519:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0};case 21520:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return-ERRNO_CODES.EINVAL};case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)};case 21523:{if(!stream.tty)return-ERRNO_CODES.ENOTTY;return 0};default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var _environ=STATICTOP;STATICTOP+=16;function ___buildEnvironment(env){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]=ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]="C";ENV["_"]=Module["thisProgram"];poolPtr=allocate(TOTAL_ENV_SIZE,"i8",ALLOC_STATIC);envPtr=allocate(MAX_ENV_VALUES*4,"i8*",ALLOC_STATIC);HEAP32[envPtr>>2]=poolPtr;HEAP32[_environ>>2]=envPtr}else{envPtr=HEAP32[_environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in env){if(typeof env[key]==="string"){var line=key+"="+env[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}var ENV={};function _getenv(name){if(name===0)return 0;name=Pointer_stringify(name);if(!ENV.hasOwnProperty(name))return 0;if(_getenv.ret)_free(_getenv.ret);_getenv.ret=allocate(intArrayFromString(ENV[name]),"i8",ALLOC_NORMAL);return _getenv.ret}function ___map_file(pathname,size){___setErrNo(ERRNO_CODES.EPERM);return-1}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function _llvm_eh_typeid_for(type){return type}function ___syscall5(which,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(),flags=SYSCALLS.get(),mode=SYSCALLS.get();var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___gxx_personality_v0(){}function _pthread_cond_wait(){return 0}function ___cxa_rethrow(){var ptr=EXCEPTIONS.caught.pop();if(!EXCEPTIONS.infos[ptr].rethrown){EXCEPTIONS.caught.push(ptr);EXCEPTIONS.infos[ptr].rethrown=true}EXCEPTIONS.last=ptr;throw ptr}function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doWritev(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall221(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),cmd=SYSCALLS.get();switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-ERRNO_CODES.EINVAL}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd};case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0};case 12:case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0};case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-ERRNO_CODES.EINVAL;case 9:___setErrNo(ERRNO_CODES.EINVAL);return-1;default:{return-ERRNO_CODES.EINVAL}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall145(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();return SYSCALLS.doReadv(stream,iov,iovcnt)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}FS.staticInit();__ATINIT__.unshift((function(){if(!Module["noFSInit"]&&!FS.init.initialized)FS.init()}));__ATMAIN__.push((function(){FS.ignorePermissions=false}));__ATEXIT__.push((function(){FS.quit()}));Module["FS_createFolder"]=FS.createFolder;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createLink"]=FS.createLink;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;__ATINIT__.unshift((function(){TTY.init()}));__ATEXIT__.push((function(){TTY.shutdown()}));if(ENVIRONMENT_IS_NODE){var fs=require("fs");var NODEJS_PATH=require("path");NODEFS.staticInit()}___buildEnvironment(ENV);DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module["wasmTableSize"]=1078;Module["wasmMaxTableSize"]=1078;function invoke_iiiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{return Module["dynCall_iiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiid(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiid"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{return Module["dynCall_iiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiijii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{Module["dynCall_viiiijii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viijii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viijii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11){try{return Module["dynCall_iiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jii(index,a1,a2){try{return Module["dynCall_jii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){try{Module["dynCall_viiiiiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiji(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiji"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_diii(index,a1,a2,a3){try{return Module["dynCall_diii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_fiii(index,a1,a2,a3){try{return Module["dynCall_fiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12){try{return Module["dynCall_iiiiiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){try{Module["dynCall_viiiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iij(index,a1,a2,a3){try{return Module["dynCall_iij"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_i(index){try{return Module["dynCall_i"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiii(index,a1,a2,a3){try{return Module["dynCall_jiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiij(index,a1,a2,a3,a4){try{return Module["dynCall_jiij"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_jiiii(index,a1,a2,a3,a4){try{return Module["dynCall_jiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){try{return Module["dynCall_iiiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiij(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiij"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viij(index,a1,a2,a3,a4){try{Module["dynCall_viij"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8){try{return Module["dynCall_iiiiiiiii"](index,a1,a2,a3,a4,a5,a6,a7,a8)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiid(index,a1,a2,a3,a4,a5){try{return Module["dynCall_iiiiid"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiiiiiii":invoke_iiiiiiii,"invoke_iiiiiid":invoke_iiiiiid,"invoke_viiiii":invoke_viiiii,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_iiiiiiiiiii":invoke_iiiiiiiiiii,"invoke_viiiijii":invoke_viiiijii,"invoke_ii":invoke_ii,"invoke_viijii":invoke_viijii,"invoke_iiiiiiiiiiii":invoke_iiiiiiiiiiii,"invoke_jii":invoke_jii,"invoke_iiii":invoke_iiii,"invoke_viiiiiiiiiiiiiii":invoke_viiiiiiiiiiiiiii,"invoke_viiji":invoke_viiji,"invoke_diii":invoke_diii,"invoke_fiii":invoke_fiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_iiiiiiiiiiiii":invoke_iiiiiiiiiiiii,"invoke_viiiiiii":invoke_viiiiiii,"invoke_viiiiiiiiii":invoke_viiiiiiiiii,"invoke_iii":invoke_iii,"invoke_iiiiii":invoke_iiiiii,"invoke_iij":invoke_iij,"invoke_viiiiii":invoke_viiiiii,"invoke_i":invoke_i,"invoke_jiii":invoke_jiii,"invoke_jiij":invoke_jiij,"invoke_jiiii":invoke_jiiii,"invoke_iiiii":invoke_iiiii,"invoke_iiiiij":invoke_iiiiij,"invoke_viii":invoke_viii,"invoke_viij":invoke_viij,"invoke_v":invoke_v,"invoke_iiiiiiiii":invoke_iiiiiiiii,"invoke_iiiiid":invoke_iiiiid,"invoke_viiii":invoke_viiii,"___syscall221":___syscall221,"_strftime":_strftime,"_pthread_cond_wait":_pthread_cond_wait,"___lock":___lock,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"_pthread_key_create":_pthread_key_create,"_abort":_abort,"___gxx_personality_v0":___gxx_personality_v0,"___assert_fail":___assert_fail,"___cxa_free_exception":___cxa_free_exception,"___cxa_find_matching_catch_2":___cxa_find_matching_catch_2,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___buildEnvironment":___buildEnvironment,"__addDays":__addDays,"_strftime_l":_strftime_l,"___setErrNo":___setErrNo,"_llvm_eh_typeid_for":_llvm_eh_typeid_for,"___cxa_allocate_exception":___cxa_allocate_exception,"_emscripten_memcpy_big":_emscripten_memcpy_big,"___cxa_end_catch":___cxa_end_catch,"___resumeException":___resumeException,"___cxa_find_matching_catch_3":___cxa_find_matching_catch_3,"___cxa_begin_catch":___cxa_begin_catch,"_pthread_getspecific":_pthread_getspecific,"__arraySum":__arraySum,"___syscall91":___syscall91,"_pthread_once":_pthread_once,"_getenv":_getenv,"___map_file":___map_file,"___syscall54":___syscall54,"___unlock":___unlock,"__isLeapYear":__isLeapYear,"_pthread_setspecific":_pthread_setspecific,"___cxa_throw":___cxa_throw,"___cxa_rethrow":___cxa_rethrow,"___syscall6":___syscall6,"___syscall5":___syscall5,"___syscall140":___syscall140,"_pthread_mutex_init":_pthread_mutex_init,"___syscall145":___syscall145,"___syscall146":___syscall146,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};var asm=Module["asm"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module["asm"]=asm;var _sheMul32G2=Module["_sheMul32G2"]=(function(){return Module["asm"]["_sheMul32G2"].apply(null,arguments)});var _shePublicKeyDeserialize=Module["_shePublicKeyDeserialize"]=(function(){return Module["asm"]["_shePublicKeyDeserialize"].apply(null,arguments)});var _sheReRandGT=Module["_sheReRandGT"]=(function(){return Module["asm"]["_sheReRandGT"].apply(null,arguments)});var _sheEnc32G1=Module["_sheEnc32G1"]=(function(){return Module["asm"]["_sheEnc32G1"].apply(null,arguments)});var _sheEnc32G2=Module["_sheEnc32G2"]=(function(){return Module["asm"]["_sheEnc32G2"].apply(null,arguments)});var _sheInit=Module["_sheInit"]=(function(){return Module["asm"]["_sheInit"].apply(null,arguments)});var _sheSecretKeyDeserialize=Module["_sheSecretKeyDeserialize"]=(function(){return Module["asm"]["_sheSecretKeyDeserialize"].apply(null,arguments)});var _shePublicKeySerialize=Module["_shePublicKeySerialize"]=(function(){return Module["asm"]["_shePublicKeySerialize"].apply(null,arguments)});var _sbrk=Module["_sbrk"]=(function(){return Module["asm"]["_sbrk"].apply(null,arguments)});var _memcpy=Module["_memcpy"]=(function(){return Module["asm"]["_memcpy"].apply(null,arguments)});var _sheSetRangeForDLP=Module["_sheSetRangeForDLP"]=(function(){return Module["asm"]["_sheSetRangeForDLP"].apply(null,arguments)});var __GLOBAL__sub_I_she_c256_cpp=Module["__GLOBAL__sub_I_she_c256_cpp"]=(function(){return Module["asm"]["__GLOBAL__sub_I_she_c256_cpp"].apply(null,arguments)});var _sheMulG2=Module["_sheMulG2"]=(function(){return Module["asm"]["_sheMulG2"].apply(null,arguments)});var _sheCipherTextG1Serialize=Module["_sheCipherTextG1Serialize"]=(function(){return Module["asm"]["_sheCipherTextG1Serialize"].apply(null,arguments)});var _sheMulG1=Module["_sheMulG1"]=(function(){return Module["asm"]["_sheMulG1"].apply(null,arguments)});var stackSave=Module["stackSave"]=(function(){return Module["asm"]["stackSave"].apply(null,arguments)});var ___cxa_can_catch=Module["___cxa_can_catch"]=(function(){return Module["asm"]["___cxa_can_catch"].apply(null,arguments)});var _free=Module["_free"]=(function(){return Module["asm"]["_free"].apply(null,arguments)});var runPostSets=Module["runPostSets"]=(function(){return Module["asm"]["runPostSets"].apply(null,arguments)});var _sheEnc32GT=Module["_sheEnc32GT"]=(function(){return Module["asm"]["_sheEnc32GT"].apply(null,arguments)});var _sheReRandG1=Module["_sheReRandG1"]=(function(){return Module["asm"]["_sheReRandG1"].apply(null,arguments)});var _sheReRandG2=Module["_sheReRandG2"]=(function(){return Module["asm"]["_sheReRandG2"].apply(null,arguments)});var _sheMulGT=Module["_sheMulGT"]=(function(){return Module["asm"]["_sheMulGT"].apply(null,arguments)});var _sheSetRangeForGTDLP=Module["_sheSetRangeForGTDLP"]=(function(){return Module["asm"]["_sheSetRangeForGTDLP"].apply(null,arguments)});var _sheSecretKeySerialize=Module["_sheSecretKeySerialize"]=(function(){return Module["asm"]["_sheSecretKeySerialize"].apply(null,arguments)});var _sheDecG1=Module["_sheDecG1"]=(function(){return Module["asm"]["_sheDecG1"].apply(null,arguments)});var _sheDecG2=Module["_sheDecG2"]=(function(){return Module["asm"]["_sheDecG2"].apply(null,arguments)});var setThrew=Module["setThrew"]=(function(){return Module["asm"]["setThrew"].apply(null,arguments)});var _sheCipherTextG2Deserialize=Module["_sheCipherTextG2Deserialize"]=(function(){return Module["asm"]["_sheCipherTextG2Deserialize"].apply(null,arguments)});var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=(function(){return Module["asm"]["___cxa_is_pointer_type"].apply(null,arguments)});var _sheCipherTextGTDeserialize=Module["_sheCipherTextGTDeserialize"]=(function(){return Module["asm"]["_sheCipherTextGTDeserialize"].apply(null,arguments)});var _sheMul32G1=Module["_sheMul32G1"]=(function(){return Module["asm"]["_sheMul32G1"].apply(null,arguments)});var stackAlloc=Module["stackAlloc"]=(function(){return Module["asm"]["stackAlloc"].apply(null,arguments)});var _sheAddGT=Module["_sheAddGT"]=(function(){return Module["asm"]["_sheAddGT"].apply(null,arguments)});var getTempRet0=Module["getTempRet0"]=(function(){return Module["asm"]["getTempRet0"].apply(null,arguments)});var ___cxx_global_var_init_38=Module["___cxx_global_var_init_38"]=(function(){return Module["asm"]["___cxx_global_var_init_38"].apply(null,arguments)});var ___cxx_global_var_init_39=Module["___cxx_global_var_init_39"]=(function(){return Module["asm"]["___cxx_global_var_init_39"].apply(null,arguments)});var _sheMul32GT=Module["_sheMul32GT"]=(function(){return Module["asm"]["_sheMul32GT"].apply(null,arguments)});var ___cxx_global_var_init_37=Module["___cxx_global_var_init_37"]=(function(){return Module["asm"]["___cxx_global_var_init_37"].apply(null,arguments)});var _sheSetRangeForG1DLP=Module["_sheSetRangeForG1DLP"]=(function(){return Module["asm"]["_sheSetRangeForG1DLP"].apply(null,arguments)});var _sheAddG1=Module["_sheAddG1"]=(function(){return Module["asm"]["_sheAddG1"].apply(null,arguments)});var _sheSecretKeySetByCSPRNG=Module["_sheSecretKeySetByCSPRNG"]=(function(){return Module["asm"]["_sheSecretKeySetByCSPRNG"].apply(null,arguments)});var _sheDecGT=Module["_sheDecGT"]=(function(){return Module["asm"]["_sheDecGT"].apply(null,arguments)});var establishStackSpace=Module["establishStackSpace"]=(function(){return Module["asm"]["establishStackSpace"].apply(null,arguments)});var _pthread_mutex_lock=Module["_pthread_mutex_lock"]=(function(){return Module["asm"]["_pthread_mutex_lock"].apply(null,arguments)});var _sheSetRangeForG2DLP=Module["_sheSetRangeForG2DLP"]=(function(){return Module["asm"]["_sheSetRangeForG2DLP"].apply(null,arguments)});var _sheMul=Module["_sheMul"]=(function(){return Module["asm"]["_sheMul"].apply(null,arguments)});var _sheCipherTextG2Serialize=Module["_sheCipherTextG2Serialize"]=(function(){return Module["asm"]["_sheCipherTextG2Serialize"].apply(null,arguments)});var _sheGetPublicKey=Module["_sheGetPublicKey"]=(function(){return Module["asm"]["_sheGetPublicKey"].apply(null,arguments)});var _memset=Module["_memset"]=(function(){return Module["asm"]["_memset"].apply(null,arguments)});var ___cxx_global_var_init_49=Module["___cxx_global_var_init_49"]=(function(){return Module["asm"]["___cxx_global_var_init_49"].apply(null,arguments)});var ___cxx_global_var_init_48=Module["___cxx_global_var_init_48"]=(function(){return Module["asm"]["___cxx_global_var_init_48"].apply(null,arguments)});var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=(function(){return Module["asm"]["_llvm_bswap_i32"].apply(null,arguments)});var ___cxx_global_var_init_41=Module["___cxx_global_var_init_41"]=(function(){return Module["asm"]["___cxx_global_var_init_41"].apply(null,arguments)});var ___cxx_global_var_init_40=Module["___cxx_global_var_init_40"]=(function(){return Module["asm"]["___cxx_global_var_init_40"].apply(null,arguments)});var ___cxx_global_var_init_43=Module["___cxx_global_var_init_43"]=(function(){return Module["asm"]["___cxx_global_var_init_43"].apply(null,arguments)});var ___cxx_global_var_init_42=Module["___cxx_global_var_init_42"]=(function(){return Module["asm"]["___cxx_global_var_init_42"].apply(null,arguments)});var ___cxx_global_var_init_45=Module["___cxx_global_var_init_45"]=(function(){return Module["asm"]["___cxx_global_var_init_45"].apply(null,arguments)});var ___cxx_global_var_init_44=Module["___cxx_global_var_init_44"]=(function(){return Module["asm"]["___cxx_global_var_init_44"].apply(null,arguments)});var ___cxx_global_var_init_47=Module["___cxx_global_var_init_47"]=(function(){return Module["asm"]["___cxx_global_var_init_47"].apply(null,arguments)});var ___cxx_global_var_init_46=Module["___cxx_global_var_init_46"]=(function(){return Module["asm"]["___cxx_global_var_init_46"].apply(null,arguments)});var _sheAddG2=Module["_sheAddG2"]=(function(){return Module["asm"]["_sheAddG2"].apply(null,arguments)});var setTempRet0=Module["setTempRet0"]=(function(){return Module["asm"]["setTempRet0"].apply(null,arguments)});var _pthread_cond_broadcast=Module["_pthread_cond_broadcast"]=(function(){return Module["asm"]["_pthread_cond_broadcast"].apply(null,arguments)});var _sheCipherTextGTSerialize=Module["_sheCipherTextGTSerialize"]=(function(){return Module["asm"]["_sheCipherTextGTSerialize"].apply(null,arguments)});var _malloc=Module["_malloc"]=(function(){return Module["asm"]["_malloc"].apply(null,arguments)});var ___cxx_global_var_init_52=Module["___cxx_global_var_init_52"]=(function(){return Module["asm"]["___cxx_global_var_init_52"].apply(null,arguments)});var ___cxx_global_var_init_53=Module["___cxx_global_var_init_53"]=(function(){return Module["asm"]["___cxx_global_var_init_53"].apply(null,arguments)});var ___cxx_global_var_init_50=Module["___cxx_global_var_init_50"]=(function(){return Module["asm"]["___cxx_global_var_init_50"].apply(null,arguments)});var ___cxx_global_var_init_51=Module["___cxx_global_var_init_51"]=(function(){return Module["asm"]["___cxx_global_var_init_51"].apply(null,arguments)});var ___cxx_global_var_init_56=Module["___cxx_global_var_init_56"]=(function(){return Module["asm"]["___cxx_global_var_init_56"].apply(null,arguments)});var ___cxx_global_var_init_57=Module["___cxx_global_var_init_57"]=(function(){return Module["asm"]["___cxx_global_var_init_57"].apply(null,arguments)});var ___cxx_global_var_init_54=Module["___cxx_global_var_init_54"]=(function(){return Module["asm"]["___cxx_global_var_init_54"].apply(null,arguments)});var ___cxx_global_var_init_55=Module["___cxx_global_var_init_55"]=(function(){return Module["asm"]["___cxx_global_var_init_55"].apply(null,arguments)});var _sheEncGT=Module["_sheEncGT"]=(function(){return Module["asm"]["_sheEncGT"].apply(null,arguments)});var _sheSubGT=Module["_sheSubGT"]=(function(){return Module["asm"]["_sheSubGT"].apply(null,arguments)});var _sheCipherTextG1Deserialize=Module["_sheCipherTextG1Deserialize"]=(function(){return Module["asm"]["_sheCipherTextG1Deserialize"].apply(null,arguments)});var _sheSubG2=Module["_sheSubG2"]=(function(){return Module["asm"]["_sheSubG2"].apply(null,arguments)});var _sheSubG1=Module["_sheSubG1"]=(function(){return Module["asm"]["_sheSubG1"].apply(null,arguments)});var _pthread_mutex_unlock=Module["_pthread_mutex_unlock"]=(function(){return Module["asm"]["_pthread_mutex_unlock"].apply(null,arguments)});var stackRestore=Module["stackRestore"]=(function(){return Module["asm"]["stackRestore"].apply(null,arguments)});var ___errno_location=Module["___errno_location"]=(function(){return Module["asm"]["___errno_location"].apply(null,arguments)});var _sheEncG1=Module["_sheEncG1"]=(function(){return Module["asm"]["_sheEncG1"].apply(null,arguments)});var _memmove=Module["_memmove"]=(function(){return Module["asm"]["_memmove"].apply(null,arguments)});var _sheEncG2=Module["_sheEncG2"]=(function(){return Module["asm"]["_sheEncG2"].apply(null,arguments)});var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=(function(){return Module["asm"]["_emscripten_get_global_libc"].apply(null,arguments)});var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiii"].apply(null,arguments)});var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=(function(){return Module["asm"]["dynCall_iiiiiid"].apply(null,arguments)});var dynCall_viiiii=Module["dynCall_viiiii"]=(function(){return Module["asm"]["dynCall_viiiii"].apply(null,arguments)});var dynCall_vi=Module["dynCall_vi"]=(function(){return Module["asm"]["dynCall_vi"].apply(null,arguments)});var dynCall_vii=Module["dynCall_vii"]=(function(){return Module["asm"]["dynCall_vii"].apply(null,arguments)});var dynCall_iiiiiiiiiii=Module["dynCall_iiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiii"].apply(null,arguments)});var dynCall_viiiijii=Module["dynCall_viiiijii"]=(function(){return Module["asm"]["dynCall_viiiijii"].apply(null,arguments)});var dynCall_ii=Module["dynCall_ii"]=(function(){return Module["asm"]["dynCall_ii"].apply(null,arguments)});var dynCall_viijii=Module["dynCall_viijii"]=(function(){return Module["asm"]["dynCall_viijii"].apply(null,arguments)});var dynCall_iiiiiiiiiiii=Module["dynCall_iiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiiii"].apply(null,arguments)});var dynCall_jii=Module["dynCall_jii"]=(function(){return Module["asm"]["dynCall_jii"].apply(null,arguments)});var dynCall_iiii=Module["dynCall_iiii"]=(function(){return Module["asm"]["dynCall_iiii"].apply(null,arguments)});var dynCall_viiiiiiiiiiiiiii=Module["dynCall_viiiiiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiiiiiiiiii"].apply(null,arguments)});var dynCall_viiji=Module["dynCall_viiji"]=(function(){return Module["asm"]["dynCall_viiji"].apply(null,arguments)});var dynCall_diii=Module["dynCall_diii"]=(function(){return Module["asm"]["dynCall_diii"].apply(null,arguments)});var dynCall_fiii=Module["dynCall_fiii"]=(function(){return Module["asm"]["dynCall_fiii"].apply(null,arguments)});var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiii"].apply(null,arguments)});var dynCall_iiiiiiiiiiiii=Module["dynCall_iiiiiiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiiiiiii"].apply(null,arguments)});var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiii"].apply(null,arguments)});var dynCall_viiiiiiiiii=Module["dynCall_viiiiiiiiii"]=(function(){return Module["asm"]["dynCall_viiiiiiiiii"].apply(null,arguments)});var dynCall_iii=Module["dynCall_iii"]=(function(){return Module["asm"]["dynCall_iii"].apply(null,arguments)});var dynCall_iiiiii=Module["dynCall_iiiiii"]=(function(){return Module["asm"]["dynCall_iiiiii"].apply(null,arguments)});var dynCall_iij=Module["dynCall_iij"]=(function(){return Module["asm"]["dynCall_iij"].apply(null,arguments)});var dynCall_viiiiii=Module["dynCall_viiiiii"]=(function(){return Module["asm"]["dynCall_viiiiii"].apply(null,arguments)});var dynCall_i=Module["dynCall_i"]=(function(){return Module["asm"]["dynCall_i"].apply(null,arguments)});var dynCall_jiii=Module["dynCall_jiii"]=(function(){return Module["asm"]["dynCall_jiii"].apply(null,arguments)});var dynCall_jiij=Module["dynCall_jiij"]=(function(){return Module["asm"]["dynCall_jiij"].apply(null,arguments)});var dynCall_jiiii=Module["dynCall_jiiii"]=(function(){return Module["asm"]["dynCall_jiiii"].apply(null,arguments)});var dynCall_iiiii=Module["dynCall_iiiii"]=(function(){return Module["asm"]["dynCall_iiiii"].apply(null,arguments)});var dynCall_iiiiij=Module["dynCall_iiiiij"]=(function(){return Module["asm"]["dynCall_iiiiij"].apply(null,arguments)});var dynCall_viii=Module["dynCall_viii"]=(function(){return Module["asm"]["dynCall_viii"].apply(null,arguments)});var dynCall_viij=Module["dynCall_viij"]=(function(){return Module["asm"]["dynCall_viij"].apply(null,arguments)});var dynCall_v=Module["dynCall_v"]=(function(){return Module["asm"]["dynCall_v"].apply(null,arguments)});var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=(function(){return Module["asm"]["dynCall_iiiiiiiii"].apply(null,arguments)});var dynCall_iiiiid=Module["dynCall_iiiiid"]=(function(){return Module["asm"]["dynCall_iiiiid"].apply(null,arguments)});var dynCall_viiii=Module["dynCall_viiii"]=(function(){return Module["asm"]["dynCall_viiii"].apply(null,arguments)});Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;if(memoryInitializer){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,Runtime.GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,Runtime.GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];if(request.status!==200&&request.status!==0){console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}applyMemoryInitializer(request.response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}Module["noExitRuntime"]=true;run() diff --git a/docs/demo/mclshe.wasm b/docs/demo/mclshe.wasm index a00893ff0d2009f256a6c588e6e8b5d980d0b670..600c9f6a35e0f9f3da66651f457d605865d61463 100644 GIT binary patch delta 90003 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 diff --git a/docs/demo/she-demo.js b/docs/demo/she-demo.js index 735056a..13286fc 100644 --- a/docs/demo/she-demo.js +++ b/docs/demo/she-demo.js @@ -116,18 +116,43 @@ function onClickTestSHEclass() { setText('sec2', Uint8ArrayToHexString(sec.serialize())) let pub = sec.getPublicKey() setText('pub2', Uint8ArrayToHexString(pub.serialize())) - let m = 15 - setText('m2', m) - let c1 = pub.encG1(m) - console.log('dec c1 ' + sec.dec(c1)) - let c2 = pub.encG2(m) - let ct = pub.encGT(m) - console.log('ct ' + Uint8ArrayToHexString(ct.serialize())) - setText('c2', Uint8ArrayToHexString(c1.serialize())) - let d = sec.dec(c1) + let m1 = 15 + let m2 = 17 + setText('m2', m1) + let c11 = pub.encG1(m1) + console.log('dec c11=' + sec.dec(c11)) + let c21 = pub.encG2(m1) + let ct1 = pub.encGT(m1) + setText('c2', Uint8ArrayToHexString(c11.serialize())) + let d = sec.dec(c11) setText('d2', d) - console.log('dec c2=' + sec.dec(c2)) - console.log('dec ct=' + sec.dec(ct)) + console.log('dec c21=' + sec.dec(c21)) + console.log('dec ct1=' + sec.dec(ct1)) + let c12 = pub.encG1(m2) + let c22 = pub.encG2(m2) + let ct2 = pub.encGT(m2) + she.add(c11, c11, c12) + she.add(c21, c21, c22) + she.add(ct1, ct1, ct2) + console.log('expect ' + (m1 + m2)) + console.log('dec c11=' + sec.dec(c11)) + console.log('dec c21=' + sec.dec(c21)) + console.log('dec ct1=' + sec.dec(ct1)) + + she.sub(c12, c12, c11) + she.sub(c22, c22, c21) + she.sub(ct2, ct2, ct1) + console.log('expect ' + (-m1)) + console.log('dec c11=' + sec.dec(c12)) + console.log('dec c21=' + sec.dec(c22)) + console.log('dec ct1=' + sec.dec(ct2)) + she.mulInt(c12, c12, -3) + she.mulInt(c22, c22, -3) + she.mulInt(ct2, ct2, -3) + console.log('expect ' + m1 * 3) + console.log('dec c11=' + sec.dec(c12)) + console.log('dec c21=' + sec.dec(c22)) + console.log('dec ct1=' + sec.dec(ct2)) } catch (e) { console.log('err ' + e) } diff --git a/docs/demo/she.js b/docs/demo/she.js index 3b46b6e..c141a8a 100644 --- a/docs/demo/she.js +++ b/docs/demo/she.js @@ -188,6 +188,39 @@ mod.Runtime.stackRestore(stack) return c } + she.callMul = function(func, cstr, pub, m) { + let c = new cstr() + let stack = mod.Runtime.stackSave() + let cPos = mod.Runtime.stackAlloc(c.a_.length * 4) + let pubPos = mod.Runtime.stackAlloc(pub.length * 4) + copyFromUint32Array(pubPos, pub); + func(cPos, pubPos, m) + copyToUint32Array(c.a_, cPos) + mod.Runtime.stackRestore(stack) + return c + } + // z = func(x, y) + she.callAddSub = function(func, z, x, y) { + let stack = mod.Runtime.stackSave() + let xPos = mod.Runtime.stackAlloc(x.length * 4) + let yPos = mod.Runtime.stackAlloc(y.length * 4) + let zPos = mod.Runtime.stackAlloc(z.length * 4) + copyFromUint32Array(xPos, x); + copyFromUint32Array(yPos, y); + func(zPos, xPos, yPos) + copyToUint32Array(z, zPos) + mod.Runtime.stackRestore(stack) + } + // z = func(x, y) + she.callMulInt = function(func, z, x, y) { + let stack = mod.Runtime.stackSave() + let xPos = mod.Runtime.stackAlloc(x.length * 4) + let zPos = mod.Runtime.stackAlloc(z.length * 4) + copyFromUint32Array(xPos, x); + func(zPos, xPos, y) + copyToUint32Array(z, zPos) + mod.Runtime.stackRestore(stack) + } she.callDec = function(func, sec, c) { let stack = mod.Runtime.stackSave() let secPos = mod.Runtime.stackAlloc(sec.length * 4) @@ -307,6 +340,49 @@ she.PublicKey.prototype.encGT = function(m) { return she.callEnc(sheEnc32GT, she.CipherTextGT, this.a_, m) } + // z = x + y + she.add = function(z, x, y) { + if (x.a_.length != y.a_.length || x.a_.length != z.a_.length) throw('she.add:bad type') + let add = null + if (she.CipherTextG1.prototype.isPrototypeOf(x)) { + add = sheAddG1 + } else if (she.CipherTextG2.prototype.isPrototypeOf(x)) { + add = sheAddG2 + } else if (she.CipherTextGT.prototype.isPrototypeOf(x)) { + add = sheAddGT + } else { + throw('she.add:not supported') + } + she.callAddSub(add, z.a_, x.a_, y.a_) + } + she.sub = function(z, x, y) { + if (x.a_.length != y.a_.length || x.a_.length != z.a_.length) throw('she.sub:bad type') + let sub = null + if (she.CipherTextG1.prototype.isPrototypeOf(x)) { + sub = sheSubG1 + } else if (she.CipherTextG2.prototype.isPrototypeOf(x)) { + sub = sheSubG2 + } else if (she.CipherTextGT.prototype.isPrototypeOf(x)) { + sub = sheSubGT + } else { + throw('she.sub:not supported') + } + she.callAddSub(sub, z.a_, x.a_, y.a_) + } + she.mulInt = function(z, x, y) { + if (x.a_.length != z.a_.length) throw('she.mulInt:bad type') + let mulInt = null + if (she.CipherTextG1.prototype.isPrototypeOf(x)) { + mulInt = sheMul32G1 + } else if (she.CipherTextG2.prototype.isPrototypeOf(x)) { + mulInt = sheMul32G2 + } else if (she.CipherTextGT.prototype.isPrototypeOf(x)) { + mulInt = sheMul32GT + } else { + throw('she.mulInt:not supported') + } + she.callMulInt(mulInt, z.a_, x.a_, y) + } she.SecretKey.prototype.dec = function(c) { let dec = null if (she.CipherTextG1.prototype.isPrototypeOf(c)) { diff --git a/include/mcl/she.h b/include/mcl/she.h index ea7a6f4..78b6d14 100644 --- a/include/mcl/she.h +++ b/include/mcl/she.h @@ -133,6 +133,11 @@ MCLSHE_DLL_API int sheMulG1(sheCipherTextG1 *z, const sheCipherTextG1 *x, int64_ MCLSHE_DLL_API int sheMulG2(sheCipherTextG2 *z, const sheCipherTextG2 *x, int64_t y); MCLSHE_DLL_API int sheMulGT(sheCipherTextGT *z, const sheCipherTextGT *x, int64_t y); +// for JavaScript +MCLSHE_DLL_API int sheMul32G1(sheCipherTextG1 *z, const sheCipherTextG1 *x, int y); +MCLSHE_DLL_API int sheMul32G2(sheCipherTextG2 *z, const sheCipherTextG2 *x, int y); +MCLSHE_DLL_API int sheMul32GT(sheCipherTextGT *z, const sheCipherTextGT *x, int y); + // return 0 if success // z = x * y MCLSHE_DLL_API int sheMul(sheCipherTextGT *z, const sheCipherTextG1 *x, const sheCipherTextG2 *y); diff --git a/src/she_c_impl.hpp b/src/she_c_impl.hpp index 924add3..7e06dd2 100644 --- a/src/she_c_impl.hpp +++ b/src/she_c_impl.hpp @@ -352,6 +352,21 @@ int sheMulGT(sheCipherTextGT *z, const sheCipherTextGT *x, int64_t y) return mulT(*cast(z), *cast(x), y); } +int sheMul32G1(sheCipherTextG1 *z, const sheCipherTextG1 *x, int y) +{ + return mulT(*cast(z), *cast(x), y); +} + +int sheMul32G2(sheCipherTextG2 *z, const sheCipherTextG2 *x, int y) +{ + return mulT(*cast(z), *cast(x), y); +} + +int sheMul32GT(sheCipherTextGT *z, const sheCipherTextGT *x, int y) +{ + return mulT(*cast(z), *cast(x), y); +} + int sheMul(sheCipherTextGT *z, const sheCipherTextG1 *x, const sheCipherTextG2 *y) { return mulT(*cast(z), *cast(x), *cast(y));