UNPKG

chess-trainer-mcp

Version:

Chess Trainer MCP Server with Stockfish NNUE engine - Interactive chess training with AI coaching capabilities

119 lines (116 loc) 64.3 kB
var Stockfish = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( function(Stockfish) { Stockfish = Stockfish || {}; function e(){h.buffer!=m&&q(h.buffer);return aa}function v(){h.buffer!=m&&q(h.buffer);return ba}function w(){h.buffer!=m&&q(h.buffer);return ca}function x(){h.buffer!=m&&q(h.buffer);return da}function ea(){h.buffer!=m&&q(h.buffer);return fa}null;var A;A||(A=typeof Stockfish !== 'undefined' ? Stockfish : {});var ha,ia;A.ready=new Promise(function(a,b){ha=a;ia=b});A.postCustomMessage=a=>{for(let b of B.Ta)b.postMessage({cmd:"custom",userData:a})}; class ja{constructor(){this.Za=null;this.Ua=[]}async get(){return 0<this.Ua.length?this.Ua.shift():await new Promise(a=>this.Za=a)}put(a){this.Za?(this.Za(a),this.Za=null):this.Ua.push(a)}}A.queue=new ja;A.onCustomMessage=a=>{A.queue.put(a)};A.postMessage=A.postCustomMessage;const ka=[];A.addMessageListener=a=>{ka.push(a)};A.removeMessageListener=a=>{a=ka.indexOf(a);0<=a&&ka.splice(a,1)};A.print=A.printErr=a=>{if(0===ka.length)console.log(a);else for(let b of ka)b(a)};A.terminate=()=>{B.cc()}; var la={},C;for(C in A)A.hasOwnProperty(C)&&(la[C]=A[C]);var ma=[],na="./this.program";function oa(a,b){throw b;}var pa="object"===typeof window,E="function"===typeof importScripts,F="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node,G=A.ENVIRONMENT_IS_PTHREAD||!1,H="";function qa(a){return A.locateFile?A.locateFile(a,H):H+a}var ra,sa,ta,K,L; if(F){H=E?require("path").dirname(H)+"/":__dirname+"/";ra=function(a,b){K||(K=require("fs"));L||(L=require("path"));a=L.normalize(a);return K.readFileSync(a,b?null:"utf8")};ta=function(a){a=ra(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};sa=function(a,b,c){K||(K=require("fs"));L||(L=require("path"));a=L.normalize(a);K.readFile(a,function(d,f){d?c(d):b(f.buffer)})};1<process.argv.length&&(na=process.argv[1].replace(/\\/g,"/"));ma=process.argv.slice(2);process.on("uncaughtException", function(a){if(!(a instanceof ua))throw a;});process.on("unhandledRejection",M);oa=function(a,b){if(va())throw process.exitCode=a,b;process.exit(a)};A.inspect=function(){return"[Emscripten Module object]"};var wa;try{wa=require("worker_threads")}catch(a){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),a;}global.Worker=wa.Worker}else if(pa||E)E?H=self.location.href:"undefined"!==typeof document&&document.currentScript&& (H=document.currentScript.src),_scriptDir&&(H=_scriptDir),0!==H.indexOf("blob:")?H=H.substr(0,H.lastIndexOf("/")+1):H="",F?(ra=function(a,b){K||(K=require("fs"));L||(L=require("path"));a=L.normalize(a);return K.readFileSync(a,b?null:"utf8")},ta=function(a){a=ra(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a},sa=function(a,b,c){K||(K=require("fs"));L||(L=require("path"));a=L.normalize(a);K.readFile(a,function(d,f){d?c(d):b(f.buffer)})}):(ra=function(a){var b=new XMLHttpRequest;b.open("GET", a,!1);b.send(null);return b.responseText},E&&(ta=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),sa=function(a,b,c){var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)});F&&"undefined"===typeof performance&&(global.performance=require("perf_hooks").performance); var xa=A.print||console.log.bind(console),N=A.printErr||console.warn.bind(console);for(C in la)la.hasOwnProperty(C)&&(A[C]=la[C]);la=null;A.arguments&&(ma=A.arguments);A.thisProgram&&(na=A.thisProgram);A.quit&&(oa=A.quit);var ya,za;A.wasmBinary&&(za=A.wasmBinary);var noExitRuntime=A.noExitRuntime||!0;"object"!==typeof WebAssembly&&M("no native wasm support detected");var h,Aa,Ba=!1,Ca;function assert(a,b){a||M("Assertion failed: "+b)} function Da(a){var b=new TextDecoder(a);this.decode=function(c){c.buffer instanceof SharedArrayBuffer&&(c=new Uint8Array(c));return b.decode.call(b,c)}}var Ea="undefined"!==typeof TextDecoder?new Da("utf8"):void 0; function Fa(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&Ea)return Ea.decode(a.subarray(b,c));for(d="";b<c;){var f=a[b++];if(f&128){var g=a[b++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|g);else{var k=a[b++]&63;f=224==(f&240)?(f&15)<<12|g<<6|k:(f&7)<<18|g<<12|k<<6|a[b++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d}function O(a){return a?Fa(v(),a,void 0):""} function Ga(a,b,c,d){if(!(0<d))return 0;var f=c;d=c+d-1;for(var g=0;g<a.length;++g){var k=a.charCodeAt(g);if(55296<=k&&57343>=k){var p=a.charCodeAt(++g);k=65536+((k&1023)<<10)|p&1023}if(127>=k){if(c>=d)break;b[c++]=k}else{if(2047>=k){if(c+1>=d)break;b[c++]=192|k>>6}else{if(65535>=k){if(c+2>=d)break;b[c++]=224|k>>12}else{if(c+3>=d)break;b[c++]=240|k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0;return c-f} function Ha(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}return b}"undefined"!==typeof TextDecoder&&new Da("utf-16le");function Ia(a){var b=Ha(a)+1,c=Ja(b);Ga(a,e(),c,b);return c}function Ka(a,b){e().set(a,b)}var m,aa,ba,La,ca,da,fa;G&&(m=A.buffer); function q(a){m=a;A.HEAP8=aa=new Int8Array(a);A.HEAP16=La=new Int16Array(a);A.HEAP32=ca=new Int32Array(a);A.HEAPU8=ba=new Uint8Array(a);A.HEAPU16=new Uint16Array(a);A.HEAPU32=da=new Uint32Array(a);A.HEAPF32=new Float32Array(a);A.HEAPF64=fa=new Float64Array(a)}var Ma=A.INITIAL_MEMORY||134217728; if(G)h=A.wasmMemory,m=A.buffer;else if(A.wasmMemory)h=A.wasmMemory;else if(h=new WebAssembly.Memory({initial:Ma/65536,maximum:32768,shared:!0}),!(h.buffer instanceof SharedArrayBuffer))throw N("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),F&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"), Error("bad memory");h&&(m=h.buffer);Ma=m.byteLength;q(m);var Na=[],Oa=[],Pa=[],Qa=[],Ra=0;function va(){return noExitRuntime||0<Ra}function Sa(){G||(A.noFSInit||P.ob.Sb||P.ob(),P.yc=!1,Ta(Oa))}function Ua(){var a=A.preRun.shift();Na.unshift(a)}var Va=0,Wa=null,Xa=null;function Ya(){Va++;A.monitorRunDependencies&&A.monitorRunDependencies(Va)}function Za(){Va--;A.monitorRunDependencies&&A.monitorRunDependencies(Va);if(0==Va&&(null!==Wa&&(clearInterval(Wa),Wa=null),Xa)){var a=Xa;Xa=null;a()}} A.preloadedImages={};A.preloadedAudios={};function M(a){if(A.onAbort)A.onAbort(a);assert(!G);N(a);Ba=!0;Ca=1;a=new WebAssembly.RuntimeError("abort("+a+"). Build with -s ASSERTIONS=1 for more info.");ia(a);throw a;}function $a(){return Q.startsWith("data:application/octet-stream;base64,")}var Q;Q="stockfish.wasm";$a()||(Q=qa(Q));function ab(){var a=Q;try{if(a==Q&&za)return new Uint8Array(za);if(ta)return ta(a);throw"both async and sync fetching of the wasm failed";}catch(b){M(b)}} function bb(){return za||!pa&&!E||"function"!==typeof fetch?Promise.resolve().then(function(){return ab()}):fetch(Q,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+Q+"'";return a.arrayBuffer()}).catch(function(){return ab()})}var R,T,cb={92947:function(){throw"Canceled!";}}; function Ta(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(A);else{var c=b.sc;"number"===typeof c?void 0===b.nb?dynCall_v.call(null,c):dynCall_vi.apply(null,[c,b.nb]):c(void 0===b.nb?null:b.nb)}}} function db(a,b){if(0>=a||a>e().length||a&1||0>b)return-28;if(0==b)return 0;2147483647<=b&&(b=Infinity);var c=Atomics.load(w(),eb>>2),d=0;if(c==a&&Atomics.compareExchange(w(),eb>>2,c,0)==c&&(--b,d=1,0>=b))return 1;a=Atomics.notify(w(),a>>2,b);if(0<=a)return a+d;throw"Atomics.notify returned an unexpected value "+a;}A._emscripten_futex_wake=db; function fb(a){if(G)throw"Internal Error! cleanupThread() can only ever be called from main application thread!";if(!a)throw"Internal Error! Null pthread_ptr in cleanupThread!";var b=B.Ka[a];b&&(w()[a+12>>2]=0,B.Cb(b.worker))} var B={Xa:[],Ta:[],ec:[],$d:function(){},gd:function(){for(var a=U(228),b=0;57>b;++b)x()[a/4+b]=0;w()[a+12>>2]=a;b=a+152;w()[b>>2]=b;var c=U(512);for(b=0;128>b;++b)x()[c/4+b]=0;Atomics.store(x(),a+100>>2,c);Atomics.store(x(),a+40>>2,a);gb(a,!E,1);hb(a)},hd:function(){B.receiveObjectTransfer=B.zd;B.threadInit=B.Hd;B.threadCancel=B.Gd;B.threadExit=B.Fc;B.setExitStatus=B.Dd},Ka:{},dc:[],Cc:function(){for(;0<B.dc.length;)B.dc.pop()();ib()},Dc:function(a,b){Atomics.store(x(),a+56>>2,1);Atomics.store(x(), a+60>>2,0);B.Cc();Atomics.store(x(),a+4>>2,b);Atomics.store(x(),a+0>>2,1);db(a+0,2147483647);gb(0,0,0)},Dd:function(a){Ca=a},Fc:function(a){var b=jb();b&&(B.Dc(b,a),G&&postMessage({cmd:"exit"}))},Gd:function(){B.Dc(jb(),-1);postMessage({cmd:"cancelDone"})},cc:function(){for(var a in B.Ka){var b=B.Ka[a];b&&b.worker&&B.Cb(b.worker)}B.Ka={};for(a=0;a<B.Xa.length;++a){var c=B.Xa[a];c.terminate()}B.Xa=[];for(a=0;a<B.Ta.length;++a)c=B.Ta[a],b=c.Ja,B.Nb(b),c.terminate();B.Ta=[]},Nb:function(a){if(a){if(a.Qa){var b= w()[a.Qa+100>>2];w()[a.Qa+100>>2]=0;kb(b);kb(a.Qa)}a.Qa=0;a.Jb&&a.eb&&kb(a.eb);a.eb=0;a.worker&&(a.worker.Ja=null)}},Cb:function(a){B.Bd(function(){delete B.Ka[a.Ja.Qa];B.Xa.push(a);B.Ta.splice(B.Ta.indexOf(a),1);B.Nb(a.Ja);a.Ja=void 0})},Bd:function(a){w()[lb>>2]=0;try{a()}finally{w()[lb>>2]=1}},zd:function(){},Hd:function(){for(var a in B.ec)B.ec[a]()},md:function(a,b){a.onmessage=function(c){var d=c.data,f=d.cmd;a.Ja&&(B.Yc=a.Ja.Qa);if(d.targetThread&&d.targetThread!=jb()){var g=B.Ka[d.le];g?g.worker.postMessage(c.data, d.transferList):N('Internal error! Worker sent a message "'+f+'" to target pthread '+d.targetThread+", but that thread no longer exists!")}else if("processQueuedMainThreadWork"===f)mb();else if("spawnThread"===f)nb(c.data);else if("cleanupThread"===f)fb(d.thread);else if("killThread"===f){c=d.thread;if(G)throw"Internal Error! killThread() can only ever be called from main application thread!";if(!c)throw"Internal Error! Null pthread_ptr in killThread!";w()[c+12>>2]=0;d=B.Ka[c];delete B.Ka[c];d.worker.terminate(); B.Nb(d);B.Ta.splice(B.Ta.indexOf(d.worker),1);d.worker.Ja=void 0}else if("cancelThread"===f){c=d.thread;if(G)throw"Internal Error! cancelThread() can only ever be called from main application thread!";if(!c)throw"Internal Error! Null pthread_ptr in cancelThread!";B.Ka[c].worker.postMessage({cmd:"cancel"})}else if("loaded"===f)a.loaded=!0,b&&b(a),a.sb&&(a.sb(),delete a.sb);else if("print"===f)xa("Thread "+d.threadId+": "+d.text);else if("printErr"===f)N("Thread "+d.threadId+": "+d.text);else if("alert"=== f)alert("Thread "+d.threadId+": "+d.text);else if("exit"===f)a.Ja&&Atomics.load(x(),a.Ja.Qa+64>>2)&&B.Cb(a);else if("exitProcess"===f)try{ob(d.returnCode)}catch(k){if(k instanceof ua)return;throw k;}else"cancelDone"===f?B.Cb(a):"objectTransfer"!==f&&("setimmediate"===c.data.target?a.postMessage(c.data):N("worker sent an unknown command "+f));B.Yc=void 0};a.onerror=function(c){N("pthread sent an error! "+c.filename+":"+c.lineno+": "+c.message)};F&&(a.on("message",function(c){a.onmessage({data:c})}), a.on("error",function(c){a.onerror(c)}),a.on("exit",function(){}));a.postMessage({cmd:"load",urlOrBlob:A.mainScriptUrlOrBlob||_scriptDir,wasmMemory:h,wasmModule:Aa})},Nc:function(){var a=qa("stockfish.worker.js");B.Xa.push(new Worker(a))},dd:function(){0==B.Xa.length&&(B.Nc(),B.md(B.Xa[0]));return B.Xa.pop()},Pd:function(a){for(a=performance.now()+a;performance.now()<a;);}};A.establishStackSpace=function(a,b){pb(a,b);qb(a)};A.invokeEntryPoint=function(a,b){return rb.apply(null,[a,b])};var sb; sb=F?function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:G?function(){return performance.now()-A.__performance_now_clock_drift}:function(){return performance.now()}; function nb(a){if(G)throw"Internal Error! spawnThread() can only ever be called from main application thread!";var b=B.dd();if(!b)return 6;if(void 0!==b.Ja)throw"Internal error!";if(!a.Bb)throw"Internal error, no pthread ptr!";B.Ta.push(b);for(var c=U(512),d=0;128>d;++d)w()[c+4*d>>2]=0;var f=a.eb+a.jb;d=B.Ka[a.Bb]={worker:b,eb:a.eb,jb:a.jb,Jb:a.Jb,Qa:a.Bb};var g=d.Qa>>2;Atomics.store(x(),g+16,a.detached);Atomics.store(x(),g+25,c);Atomics.store(x(),g+10,d.Qa);Atomics.store(x(),g+20,a.jb);Atomics.store(x(), g+19,f);Atomics.store(x(),g+26,a.jb);Atomics.store(x(),g+28,f);Atomics.store(x(),g+29,a.detached);c=tb()+40;Atomics.store(x(),g+43,c);b.Ja=d;var k={cmd:"run",start_routine:a.Ed,arg:a.nb,threadInfoStruct:a.Bb,stackBase:a.eb,stackSize:a.jb};b.sb=function(){k.time=performance.now();b.postMessage(k,a.Md)};b.loaded&&(b.sb(),delete b.sb);return 0} function ub(a,b,c){if(0>=a||a>e().length||a&1)return-28;if(pa){if(Atomics.load(w(),a>>2)!=b)return-6;var d=performance.now();c=d+c;for(Atomics.exchange(w(),eb>>2,a);;){d=performance.now();if(d>c)return Atomics.exchange(w(),eb>>2,0),-73;d=Atomics.exchange(w(),eb>>2,0);if(0==d)break;mb();if(Atomics.load(w(),a>>2)!=b)return-6;Atomics.exchange(w(),eb>>2,a)}return 0}a=Atomics.wait(w(),a>>2,b,c);if("timed-out"===a)return-73;if("not-equal"===a)return-6;if("ok"===a)return 0;throw"Atomics.wait returned an unexpected value "+ a;}function vb(){F||E||(ya||(ya={}),ya["Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"]||(ya["Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread"]=1,N("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")))} function wb(a,b){if(!a)return N("pthread_join attempted on a null thread pointer!"),71;if(G&&jb()==a)return N("PThread "+a+" is attempting to join to itself!"),16;if(!G&&xb()==a)return N("Main thread "+a+" is attempting to join to itself!"),16;if(w()[a+12>>2]!==a)return N("pthread_join attempted on thread "+a+", which does not point to a valid thread, or does not exist anymore!"),71;if(Atomics.load(x(),a+64>>2))return N("Attempted to join thread "+a+", which was already detached!"),28;for(vb();;){var c= Atomics.load(x(),a+0>>2);if(1==c)return c=Atomics.load(x(),a+4>>2),b&&(w()[b>>2]=c),Atomics.store(x(),a+64>>2,1),G?postMessage({cmd:"cleanupThread",thread:a}):fb(a),0;yb();G||mb();ub(a+0,c,G?100:1)}}function zb(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a} function Ab(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=zb(a.split("/").filter(function(d){return!!d}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function Bb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function V(a){if("/"===a)return"/";a=Ab(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)} function Cb(a,b){return Ab(a+"/"+b)}function Db(){if("object"===typeof crypto&&"function"===typeof crypto.getRandomValues){var a=new Uint8Array(1);return function(){crypto.getRandomValues(a);return a[0]}}if(F)try{var b=require("crypto");return function(){return b.randomBytes(1)[0]}}catch(c){}return function(){M("randomDevice")}} function Eb(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:P.cwd();if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=zb(a.split("/").filter(function(d){return!!d}),!b).join("/");return(b?"/":"")+a||"."} function Fb(a,b){function c(k){for(var p=0;p<k.length&&""===k[p];p++);for(var t=k.length-1;0<=t&&""===k[t];t--);return p>t?[]:k.slice(p,t-p+1)}a=Eb(a).substr(1);b=Eb(b).substr(1);a=c(a.split("/"));b=c(b.split("/"));for(var d=Math.min(a.length,b.length),f=d,g=0;g<d;g++)if(a[g]!==b[g]){f=g;break}d=[];for(g=f;g<a.length;g++)d.push("..");d=d.concat(b.slice(f));return d.join("/")}var Gb=[];function Hb(a,b){Gb[a]={input:[],output:[],ib:b};P.bc(a,Ib)} var Ib={open:function(a){var b=Gb[a.node.rdev];if(!b)throw new P.Y(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.ib.flush(a.tty)},flush:function(a){a.tty.ib.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.ib.vc)throw new P.Y(60);for(var f=0,g=0;g<d;g++){try{var k=a.tty.ib.vc(a.tty)}catch(p){throw new P.Y(29);}if(void 0===k&&0===f)throw new P.Y(6);if(null===k||void 0===k)break;f++;b[c+g]=k}f&&(a.node.timestamp=Date.now());return f},write:function(a,b,c,d){if(!a.tty||!a.tty.ib.Zb)throw new P.Y(60); try{for(var f=0;f<d;f++)a.tty.ib.Zb(a.tty,b[c+f])}catch(g){throw new P.Y(29);}d&&(a.node.timestamp=Date.now());return f}},Kb={vc:function(a){if(!a.input.length){var b=null;if(F){var c=Buffer.alloc(256),d=0;try{d=K.readSync(process.stdin.fd,c,0,256,null)}catch(f){if(f.toString().includes("EOF"))d=0;else throw f;}0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b= readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=Jb(b,!0)}return a.input.shift()},Zb:function(a,b){null===b||10===b?(xa(Fa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(xa(Fa(a.output,0)),a.output=[])}},Lb={Zb:function(a,b){null===b||10===b?(N(Fa(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(N(Fa(a.output,0)),a.output=[])}}; function Mb(a){a=65536*Math.ceil(a/65536);var b=Nb(65536,a);if(!b)return 0;v().fill(0,b,b+a);return b} var W={Pa:null,Da:function(){return W.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(P.jd(c)||P.isFIFO(c))throw new P.Y(63);W.Pa||(W.Pa={dir:{node:{Ma:W.ya.Ma,Ha:W.ya.Ha,lookup:W.ya.lookup,Sa:W.ya.Sa,rename:W.ya.rename,unlink:W.ya.unlink,rmdir:W.ya.rmdir,readdir:W.ya.readdir,symlink:W.ya.symlink},stream:{Na:W.Aa.Na}},file:{node:{Ma:W.ya.Ma,Ha:W.ya.Ha},stream:{Na:W.Aa.Na,read:W.Aa.read,write:W.Aa.write,mb:W.Aa.mb,gb:W.Aa.gb,hb:W.Aa.hb}},link:{node:{Ma:W.ya.Ma,Ha:W.ya.Ha,readlink:W.ya.readlink}, stream:{}},jc:{node:{Ma:W.ya.Ma,Ha:W.ya.Ha},stream:P.Qc}});c=P.createNode(a,b,c,d);P.Ea(c.mode)?(c.ya=W.Pa.dir.node,c.Aa=W.Pa.dir.stream,c.za={}):P.isFile(c.mode)?(c.ya=W.Pa.file.node,c.Aa=W.Pa.file.stream,c.Ca=0,c.za=null):P.fb(c.mode)?(c.ya=W.Pa.link.node,c.Aa=W.Pa.link.stream):P.xb(c.mode)&&(c.ya=W.Pa.jc.node,c.Aa=W.Pa.jc.stream);c.timestamp=Date.now();a&&(a.za[b]=c,a.timestamp=c.timestamp);return c},Yd:function(a){return a.za?a.za.subarray?a.za.subarray(0,a.Ca):new Uint8Array(a.za):new Uint8Array(0)}, pc:function(a,b){var c=a.za?a.za.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.za,a.za=new Uint8Array(b),0<a.Ca&&a.za.set(c.subarray(0,a.Ca),0))},Ad:function(a,b){if(a.Ca!=b)if(0==b)a.za=null,a.Ca=0;else{var c=a.za;a.za=new Uint8Array(b);c&&a.za.set(c.subarray(0,Math.min(b,a.Ca)));a.Ca=b}},ya:{Ma:function(a){var b={};b.dev=P.xb(a.mode)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;P.Ea(a.mode)?b.size=4096:P.isFile(a.mode)?b.size=a.Ca: P.fb(a.mode)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.Oc=4096;b.blocks=Math.ceil(b.size/b.Oc);return b},Ha:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&W.Ad(a,b.size)},lookup:function(){throw P.Ob[44];},Sa:function(a,b,c,d){return W.createNode(a,b,c,d)},rename:function(a,b,c){if(P.Ea(a.mode)){try{var d=P.Ra(b,c)}catch(g){}if(d)for(var f in d.za)throw new P.Y(55); }delete a.parent.za[a.name];a.parent.timestamp=Date.now();a.name=c;b.za[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.za[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=P.Ra(a,b),d;for(d in c.za)throw new P.Y(55);delete a.za[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.za)a.za.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=W.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(!P.fb(a.mode))throw new P.Y(28); return a.link}},Aa:{read:function(a,b,c,d,f){var g=a.node.za;if(f>=a.node.Ca)return 0;a=Math.min(a.node.Ca-f,d);if(8<a&&g.subarray)b.set(g.subarray(f,f+a),c);else for(d=0;d<a;d++)b[c+d]=g[f+d];return a},write:function(a,b,c,d,f,g){b.buffer===e().buffer&&(g=!1);if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.za||a.za.subarray)){if(g)return a.za=b.subarray(c,c+d),a.Ca=d;if(0===a.Ca&&0===f)return a.za=b.slice(c,c+d),a.Ca=d;if(f+d<=a.Ca)return a.za.set(b.subarray(c,c+d),f),d}W.pc(a, f+d);if(a.za.subarray&&b.subarray)a.za.set(b.subarray(c,c+d),f);else for(g=0;g<d;g++)a.za[f+g]=b[c+g];a.Ca=Math.max(a.Ca,f+d);return d},Na:function(a,b,c){1===c?b+=a.position:2===c&&P.isFile(a.node.mode)&&(b+=a.node.Ca);if(0>b)throw new P.Y(28);return b},mb:function(a,b,c){W.pc(a.node,b+c);a.node.Ca=Math.max(a.node.Ca,b+c)},gb:function(a,b,c,d,f,g){if(0!==b)throw new P.Y(28);if(!P.isFile(a.node.mode))throw new P.Y(43);a=a.node.za;if(g&2||a.buffer!==m){if(0<d||d+c<a.length)a.subarray?a=a.subarray(d, d+c):a=Array.prototype.slice.call(a,d,d+c);d=!0;c=Mb(c);if(!c)throw new P.Y(48);e().set(a,c)}else d=!1,c=a.byteOffset;return{yd:c,Ib:d}},hb:function(a,b,c,d,f){if(!P.isFile(a.node.mode))throw new P.Y(43);if(f&2)return 0;W.Aa.write(a,b,0,d,c,!1);return 0}}};function Ob(a,b,c){var d="al "+a;sa(a,function(f){assert(f,'Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(f));d&&Za()},function(){if(c)c();else throw'Loading data file "'+a+'" failed.';});d&&Ya()} var P={root:null,rb:[],mc:{},streams:[],sd:1,Oa:null,lc:"/",Sb:!1,yc:!0,Fa:{},Gc:{Bc:{Jc:1,Kc:2}},Y:null,Ob:{},ad:null,Db:0,Ba:function(a,b){a=Eb(P.cwd(),a);b=b||{};if(!a)return{path:"",node:null};var c={Mb:!0,ac:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.ac)throw new P.Y(32);a=zb(a.split("/").filter(function(k){return!!k}),!1);var f=P.root;c="/";for(d=0;d<a.length;d++){var g=d===a.length-1;if(g&&b.parent)break;f=P.Ra(f,a[d]);c=Cb(c,a[d]);P.$a(f)&&(!g||g&&b.Mb)&&(f=f.qb.root);if(!g||b.La)for(g= 0;P.fb(f.mode);)if(f=P.readlink(c),c=Eb(Bb(c),f),f=P.Ba(c,{ac:b.ac}).node,40<g++)throw new P.Y(32);}return{path:c,node:f}},Wa:function(a){for(var b;;){if(P.yb(a))return a=a.Da.zc,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},Rb:function(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%P.Oa.length},wc:function(a){var b=P.Rb(a.parent.id,a.name);a.bb=P.Oa[b];P.Oa[b]=a},xc:function(a){var b=P.Rb(a.parent.id,a.name);if(P.Oa[b]===a)P.Oa[b]=a.bb; else for(b=P.Oa[b];b;){if(b.bb===a){b.bb=a.bb;break}b=b.bb}},Ra:function(a,b){var c=P.pd(a);if(c)throw new P.Y(c,a);for(c=P.Oa[P.Rb(a.id,b)];c;c=c.bb){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return P.lookup(a,b)},createNode:function(a,b,c,d){a=new P.Hc(a,b,c,d);P.wc(a);return a},Lb:function(a){P.xc(a)},yb:function(a){return a===a.parent},$a:function(a){return!!a.qb},isFile:function(a){return 32768===(a&61440)},Ea:function(a){return 16384===(a&61440)},fb:function(a){return 40960===(a&61440)}, xb:function(a){return 8192===(a&61440)},jd:function(a){return 24576===(a&61440)},isFIFO:function(a){return 4096===(a&61440)},isSocket:function(a){return 49152===(a&49152)},bd:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},rd:function(a){var b=P.bd[a];if("undefined"===typeof b)throw Error("Unknown file open mode: "+a);return b},qc:function(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},cb:function(a,b){if(P.yc)return 0;if(!b.includes("r")||a.mode&292){if(b.includes("w")&&!(a.mode&146)||b.includes("x")&& !(a.mode&73))return 2}else return 2;return 0},pd:function(a){var b=P.cb(a,"x");return b?b:a.ya.lookup?0:2},Yb:function(a,b){try{return P.Ra(a,b),20}catch(c){}return P.cb(a,"wx")},zb:function(a,b,c){try{var d=P.Ra(a,b)}catch(f){return f.Ga}if(a=P.cb(a,"wx"))return a;if(c){if(!P.Ea(d.mode))return 54;if(P.yb(d)||P.Wa(d)===P.cwd())return 10}else if(P.Ea(d.mode))return 31;return 0},qd:function(a,b){return a?P.fb(a.mode)?32:P.Ea(a.mode)&&("r"!==P.qc(b)||b&512)?31:P.cb(a,P.qc(b)):44},Ic:4096,td:function(a, b){b=b||P.Ic;for(a=a||0;a<=b;a++)if(!P.streams[a])return a;throw new P.Y(33);},Ya:function(a){return P.streams[a]},Xc:function(a,b,c){P.Hb||(P.Hb=function(){},P.Hb.prototype={object:{get:function(){return this.node},set:function(g){this.node=g}}});var d=new P.Hb,f;for(f in a)d[f]=a[f];a=d;b=P.td(b,c);a.fd=b;return P.streams[b]=a},Rc:function(a){P.streams[a]=null},Qc:{open:function(a){a.Aa=P.cd(a.node.rdev).Aa;a.Aa.open&&a.Aa.open(a)},Na:function(){throw new P.Y(70);}},Xb:function(a){return a>>8}, be:function(a){return a&255},ab:function(a,b){return a<<8|b},bc:function(a,b){P.mc[a]={Aa:b}},cd:function(a){return P.mc[a]},uc:function(a){var b=[];for(a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.rb)}return b},Ec:function(a,b){function c(k){P.Db--;return b(k)}function d(k){if(k){if(!d.Zc)return d.Zc=!0,c(k)}else++g>=f.length&&c(null)}"function"===typeof a&&(b=a,a=!1);P.Db++;1<P.Db&&N("warning: "+P.Db+" FS.syncfs operations in flight at once, probably just doing extra work");var f=P.uc(P.root.Da), g=0;f.forEach(function(k){if(!k.type.Ec)return d(null);k.type.Ec(k,a,d)})},Da:function(a,b,c){var d="/"===c,f=!c;if(d&&P.root)throw new P.Y(10);if(!d&&!f){var g=P.Ba(c,{Mb:!1});c=g.path;g=g.node;if(P.$a(g))throw new P.Y(10);if(!P.Ea(g.mode))throw new P.Y(54);}b={type:a,ge:b,zc:c,rb:[]};a=a.Da(b);a.Da=b;b.root=a;d?P.root=a:g&&(g.qb=b,g.Da&&g.Da.rb.push(b));return a},oe:function(a){a=P.Ba(a,{Mb:!1});if(!P.$a(a.node))throw new P.Y(28);a=a.node;var b=a.qb,c=P.uc(b);Object.keys(P.Oa).forEach(function(d){for(d= P.Oa[d];d;){var f=d.bb;c.includes(d.Da)&&P.Lb(d);d=f}});a.qb=null;a.Da.rb.splice(a.Da.rb.indexOf(b),1)},lookup:function(a,b){return a.ya.lookup(a,b)},Sa:function(a,b,c){var d=P.Ba(a,{parent:!0}).node;a=V(a);if(!a||"."===a||".."===a)throw new P.Y(28);var f=P.Yb(d,a);if(f)throw new P.Y(f);if(!d.ya.Sa)throw new P.Y(63);return d.ya.Sa(d,a,b,c)},create:function(a,b){return P.Sa(a,(void 0!==b?b:438)&4095|32768,0)},mkdir:function(a,b){return P.Sa(a,(void 0!==b?b:511)&1023|16384,0)},de:function(a,b){a=a.split("/"); for(var c="",d=0;d<a.length;++d)if(a[d]){c+="/"+a[d];try{P.mkdir(c,b)}catch(f){if(20!=f.Ga)throw f;}}},Ab:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);return P.Sa(a,b|8192,c)},symlink:function(a,b){if(!Eb(a))throw new P.Y(44);var c=P.Ba(b,{parent:!0}).node;if(!c)throw new P.Y(44);b=V(b);var d=P.Yb(c,b);if(d)throw new P.Y(d);if(!c.ya.symlink)throw new P.Y(63);return c.ya.symlink(c,b,a)},rename:function(a,b){var c=Bb(a),d=Bb(b),f=V(a),g=V(b);var k=P.Ba(a,{parent:!0});var p=k.node;k=P.Ba(b,{parent:!0}); k=k.node;if(!p||!k)throw new P.Y(44);if(p.Da!==k.Da)throw new P.Y(75);var t=P.Ra(p,f);d=Fb(a,d);if("."!==d.charAt(0))throw new P.Y(28);d=Fb(b,c);if("."!==d.charAt(0))throw new P.Y(55);try{var n=P.Ra(k,g)}catch(r){}if(t!==n){c=P.Ea(t.mode);if(f=P.zb(p,f,c))throw new P.Y(f);if(f=n?P.zb(k,g,c):P.Yb(k,g))throw new P.Y(f);if(!p.ya.rename)throw new P.Y(63);if(P.$a(t)||n&&P.$a(n))throw new P.Y(10);if(k!==p&&(f=P.cb(p,"w")))throw new P.Y(f);try{P.Fa.willMovePath&&P.Fa.willMovePath(a,b)}catch(r){N("FS.trackingDelegate['willMovePath']('"+ a+"', '"+b+"') threw an exception: "+r.message)}P.xc(t);try{p.ya.rename(t,k,g)}catch(r){throw r;}finally{P.wc(t)}try{if(P.Fa.onMovePath)P.Fa.onMovePath(a,b)}catch(r){N("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+r.message)}}},rmdir:function(a){var b=P.Ba(a,{parent:!0}).node,c=V(a),d=P.Ra(b,c),f=P.zb(b,c,!0);if(f)throw new P.Y(f);if(!b.ya.rmdir)throw new P.Y(63);if(P.$a(d))throw new P.Y(10);try{P.Fa.willDeletePath&&P.Fa.willDeletePath(a)}catch(g){N("FS.trackingDelegate['willDeletePath']('"+ a+"') threw an exception: "+g.message)}b.ya.rmdir(b,c);P.Lb(d);try{if(P.Fa.onDeletePath)P.Fa.onDeletePath(a)}catch(g){N("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},readdir:function(a){a=P.Ba(a,{La:!0}).node;if(!a.ya.readdir)throw new P.Y(54);return a.ya.readdir(a)},unlink:function(a){var b=P.Ba(a,{parent:!0}).node,c=V(a),d=P.Ra(b,c),f=P.zb(b,c,!1);if(f)throw new P.Y(f);if(!b.ya.unlink)throw new P.Y(63);if(P.$a(d))throw new P.Y(10);try{P.Fa.willDeletePath&&P.Fa.willDeletePath(a)}catch(g){N("FS.trackingDelegate['willDeletePath']('"+ a+"') threw an exception: "+g.message)}b.ya.unlink(b,c);P.Lb(d);try{if(P.Fa.onDeletePath)P.Fa.onDeletePath(a)}catch(g){N("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},readlink:function(a){a=P.Ba(a).node;if(!a)throw new P.Y(44);if(!a.ya.readlink)throw new P.Y(28);return Eb(P.Wa(a.parent),a.ya.readlink(a))},stat:function(a,b){a=P.Ba(a,{La:!b}).node;if(!a)throw new P.Y(44);if(!a.ya.Ma)throw new P.Y(63);return a.ya.Ma(a)},lstat:function(a){return P.stat(a,!0)},chmod:function(a, b,c){a="string"===typeof a?P.Ba(a,{La:!c}).node:a;if(!a.ya.Ha)throw new P.Y(63);a.ya.Ha(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},lchmod:function(a,b){P.chmod(a,b,!0)},fchmod:function(a,b){a=P.Ya(a);if(!a)throw new P.Y(8);P.chmod(a.node,b)},chown:function(a,b,c,d){a="string"===typeof a?P.Ba(a,{La:!d}).node:a;if(!a.ya.Ha)throw new P.Y(63);a.ya.Ha(a,{timestamp:Date.now()})},lchown:function(a,b,c){P.chown(a,b,c,!0)},fchown:function(a,b,c){a=P.Ya(a);if(!a)throw new P.Y(8);P.chown(a.node,b,c)}, truncate:function(a,b){if(0>b)throw new P.Y(28);a="string"===typeof a?P.Ba(a,{La:!0}).node:a;if(!a.ya.Ha)throw new P.Y(63);if(P.Ea(a.mode))throw new P.Y(31);if(!P.isFile(a.mode))throw new P.Y(28);var c=P.cb(a,"w");if(c)throw new P.Y(c);a.ya.Ha(a,{size:b,timestamp:Date.now()})},Xd:function(a,b){a=P.Ya(a);if(!a)throw new P.Y(8);if(0===(a.flags&2097155))throw new P.Y(28);P.truncate(a.node,b)},pe:function(a,b,c){a=P.Ba(a,{La:!0}).node;a.ya.Ha(a,{timestamp:Math.max(b,c)})},open:function(a,b,c,d,f){if(""=== a)throw new P.Y(44);b="string"===typeof b?P.rd(b):b;c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;if("object"===typeof a)var g=a;else{a=Ab(a);try{g=P.Ba(a,{La:!(b&131072)}).node}catch(p){}}var k=!1;if(b&64)if(g){if(b&128)throw new P.Y(20);}else g=P.Sa(a,c,0),k=!0;if(!g)throw new P.Y(44);P.xb(g.mode)&&(b&=-513);if(b&65536&&!P.Ea(g.mode))throw new P.Y(54);if(!k&&(c=P.qd(g,b)))throw new P.Y(c);b&512&&P.truncate(g,0);b&=-131713;d=P.Xc({node:g,path:P.Wa(g),flags:b,seekable:!0,position:0,Aa:g.Aa,Nd:[], error:!1},d,f);d.Aa.open&&d.Aa.open(d);!A.logReadFiles||b&1||(P.$b||(P.$b={}),a in P.$b||(P.$b[a]=1,N("FS.trackingDelegate error on read file: "+a)));try{P.Fa.onOpenFile&&(f=0,1!==(b&2097155)&&(f|=P.Gc.Bc.Jc),0!==(b&2097155)&&(f|=P.Gc.Bc.Kc),P.Fa.onOpenFile(a,f))}catch(p){N("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+p.message)}return d},close:function(a){if(P.pb(a))throw new P.Y(8);a.Qb&&(a.Qb=null);try{a.Aa.close&&a.Aa.close(a)}catch(b){throw b;}finally{P.Rc(a.fd)}a.fd= null},pb:function(a){return null===a.fd},Na:function(a,b,c){if(P.pb(a))throw new P.Y(8);if(!a.seekable||!a.Aa.Na)throw new P.Y(70);if(0!=c&&1!=c&&2!=c)throw new P.Y(28);a.position=a.Aa.Na(a,b,c);a.Nd=[];return a.position},read:function(a,b,c,d,f){if(0>d||0>f)throw new P.Y(28);if(P.pb(a))throw new P.Y(8);if(1===(a.flags&2097155))throw new P.Y(8);if(P.Ea(a.node.mode))throw new P.Y(31);if(!a.Aa.read)throw new P.Y(28);var g="undefined"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new P.Y(70); b=a.Aa.read(a,b,c,d,f);g||(a.position+=b);return b},write:function(a,b,c,d,f,g){if(0>d||0>f)throw new P.Y(28);if(P.pb(a))throw new P.Y(8);if(0===(a.flags&2097155))throw new P.Y(8);if(P.Ea(a.node.mode))throw new P.Y(31);if(!a.Aa.write)throw new P.Y(28);a.seekable&&a.flags&1024&&P.Na(a,0,2);var k="undefined"!==typeof f;if(!k)f=a.position;else if(!a.seekable)throw new P.Y(70);b=a.Aa.write(a,b,c,d,f,g);k||(a.position+=b);try{if(a.path&&P.Fa.onWriteToFile)P.Fa.onWriteToFile(a.path)}catch(p){N("FS.trackingDelegate['onWriteToFile']('"+ a.path+"') threw an exception: "+p.message)}return b},mb:function(a,b,c){if(P.pb(a))throw new P.Y(8);if(0>b||0>=c)throw new P.Y(28);if(0===(a.flags&2097155))throw new P.Y(8);if(!P.isFile(a.node.mode)&&!P.Ea(a.node.mode))throw new P.Y(43);if(!a.Aa.mb)throw new P.Y(138);a.Aa.mb(a,b,c)},gb:function(a,b,c,d,f,g){if(0!==(f&2)&&0===(g&2)&&2!==(a.flags&2097155))throw new P.Y(2);if(1===(a.flags&2097155))throw new P.Y(2);if(!a.Aa.gb)throw new P.Y(43);return a.Aa.gb(a,b,c,d,f,g)},hb:function(a,b,c,d,f){return a&& a.Aa.hb?a.Aa.hb(a,b,c,d,f):0},fe:function(){return 0},Tb:function(a,b,c){if(!a.Aa.Tb)throw new P.Y(59);return a.Aa.Tb(a,b,c)},readFile:function(a,b){b=b||{};b.flags=b.flags||0;b.encoding=b.encoding||"binary";if("utf8"!==b.encoding&&"binary"!==b.encoding)throw Error('Invalid encoding type "'+b.encoding+'"');var c,d=P.open(a,b.flags);a=P.stat(a).size;var f=new Uint8Array(a);P.read(d,f,0,a,0);"utf8"===b.encoding?c=Fa(f,0):"binary"===b.encoding&&(c=f);P.close(d);return c},writeFile:function(a,b,c){c= c||{};c.flags=c.flags||577;a=P.open(a,c.flags,c.mode);if("string"===typeof b){var d=new Uint8Array(Ha(b)+1);b=Ga(b,d,0,d.length);P.write(a,d,0,b,void 0,c.Pc)}else if(ArrayBuffer.isView(b))P.write(a,b,0,b.byteLength,void 0,c.Pc);else throw Error("Unsupported data type");P.close(a)},cwd:function(){return P.lc},chdir:function(a){a=P.Ba(a,{La:!0});if(null===a.node)throw new P.Y(44);if(!P.Ea(a.node.mode))throw new P.Y(54);var b=P.cb(a.node,"x");if(b)throw new P.Y(b);P.lc=a.path},Tc:function(){P.mkdir("/tmp"); P.mkdir("/home");P.mkdir("/home/web_user")},Sc:function(){P.mkdir("/dev");P.bc(P.ab(1,3),{read:function(){return 0},write:function(b,c,d,f){return f}});P.Ab("/dev/null",P.ab(1,3));Hb(P.ab(5,0),Kb);Hb(P.ab(6,0),Lb);P.Ab("/dev/tty",P.ab(5,0));P.Ab("/dev/tty1",P.ab(6,0));var a=Db();P.Va("/dev","random",a);P.Va("/dev","urandom",a);P.mkdir("/dev/shm");P.mkdir("/dev/shm/tmp")},Vc:function(){P.mkdir("/proc");var a=P.mkdir("/proc/self");P.mkdir("/proc/self/fd");P.Da({Da:function(){var b=P.createNode(a,"fd", 16895,73);b.ya={lookup:function(c,d){var f=P.Ya(+d);if(!f)throw new P.Y(8);c={parent:null,Da:{zc:"fake"},ya:{readlink:function(){return f.path}}};return c.parent=c}};return b}},{},"/proc/self/fd")},Wc:function(){A.stdin?P.Va("/dev","stdin",A.stdin):P.symlink("/dev/tty","/dev/stdin");A.stdout?P.Va("/dev","stdout",null,A.stdout):P.symlink("/dev/tty","/dev/stdout");A.stderr?P.Va("/dev","stderr",null,A.stderr):P.symlink("/dev/tty1","/dev/stderr");P.open("/dev/stdin",0);P.open("/dev/stdout",1);P.open("/dev/stderr", 1)},oc:function(){P.Y||(P.Y=function(a,b){this.node=b;this.Cd=function(c){this.Ga=c};this.Cd(a);this.message="FS error"},P.Y.prototype=Error(),P.Y.prototype.constructor=P.Y,[44].forEach(function(a){P.Ob[a]=new P.Y(a);P.Ob[a].stack="<generic error, no stack>"}))},Fd:function(){P.oc();P.Oa=Array(4096);P.Da(W,{},"/");P.Tc();P.Sc();P.Vc();P.ad={MEMFS:W}},ob:function(a,b,c){P.ob.Sb=!0;P.oc();A.stdin=a||A.stdin;A.stdout=b||A.stdout;A.stderr=c||A.stderr;P.Wc()},ie:function(){P.ob.Sb=!1;var a=A._fflush;a&& a(0);for(a=0;a<P.streams.length;a++){var b=P.streams[a];b&&P.close(b)}},Pb:function(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c},Wd:function(a,b){a=P.Kb(a,b);return a.exists?a.object:null},Kb:function(a,b){try{var c=P.Ba(a,{La:!b});a=c.path}catch(f){}var d={yb:!1,exists:!1,error:0,name:null,path:null,object:null,ud:!1,wd:null,vd:null};try{c=P.Ba(a,{parent:!0}),d.ud=!0,d.wd=c.path,d.vd=c.node,d.name=V(a),c=P.Ba(a,{La:!b}),d.exists=!0,d.path=c.path,d.object=c.node,d.name=c.node.name,d.yb="/"===c.path}catch(f){d.error= f.Ga}return d},Td:function(a,b){a="string"===typeof a?a:P.Wa(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=Cb(a,c);try{P.mkdir(d)}catch(f){}a=d}}return d},Uc:function(a,b,c,d,f){a=Cb("string"===typeof a?a:P.Wa(a),b);return P.create(a,P.Pb(d,f))},kc:function(a,b,c,d,f,g){a=b?Cb("string"===typeof a?a:P.Wa(a),b):a;d=P.Pb(d,f);f=P.create(a,d);if(c){if("string"===typeof c){a=Array(c.length);b=0;for(var k=c.length;b<k;++b)a[b]=c.charCodeAt(b);c=a}P.chmod(f,d|146);a=P.open(f,577); P.write(a,c,0,c.length,0,g);P.close(a);P.chmod(f,d)}return f},Va:function(a,b,c,d){a=Cb("string"===typeof a?a:P.Wa(a),b);b=P.Pb(!!c,!!d);P.Va.Xb||(P.Va.Xb=64);var f=P.ab(P.Va.Xb++,0);P.bc(f,{open:function(g){g.seekable=!1},close:function(){d&&d.buffer&&d.buffer.length&&d(10)},read:function(g,k,p,t){for(var n=0,r=0;r<t;r++){try{var z=c()}catch(D){throw new P.Y(29);}if(void 0===z&&0===n)throw new P.Y(6);if(null===z||void 0===z)break;n++;k[p+r]=z}n&&(g.node.timestamp=Date.now());return n},write:function(g, k,p,t){for(var n=0;n<t;n++)try{d(k[p+n])}catch(r){throw new P.Y(29);}t&&(g.node.timestamp=Date.now());return n}});return P.Ab(a,b,f)},rc:function(a){if(a.Ub||a.kd||a.link||a.za)return!0;if("undefined"!==typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(ra)try{a.za=Jb(ra(a.url),!0),a.Ca=a.za.length}catch(b){throw new P.Y(29); }else throw Error("Cannot load without read() or XMLHttpRequest.");},Sd:function(a,b,c,d,f){function g(){this.Vb=!1;this.Ua=[]}g.prototype.get=function(n){if(!(n>this.length-1||0>n)){var r=n%this.chunkSize;return this.Za(n/this.chunkSize|0)[r]}};g.prototype.Od=function(n){this.Za=n};g.prototype.ic=function(){var n=new XMLHttpRequest;n.open("HEAD",c,!1);n.send(null);if(!(200<=n.status&&300>n.status||304===n.status))throw Error("Couldn't load "+c+". Status: "+n.status);var r=Number(n.getResponseHeader("Content-length")), z,D=(z=n.getResponseHeader("Accept-Ranges"))&&"bytes"===z;n=(z=n.getResponseHeader("Content-Encoding"))&&"gzip"===z;var l=1048576;D||(l=r);var u=this;u.Od(function(y){var I=y*l,S=(y+1)*l-1;S=Math.min(S,r-1);if("undefined"===typeof u.Ua[y]){var Rc=u.Ua;if(I>S)throw Error("invalid range ("+I+", "+S+") or no bytes requested!");if(S>r-1)throw Error("only "+r+" bytes available! programmer error!");var J=new XMLHttpRequest;J.open("GET",c,!1);r!==l&&J.setRequestHeader("Range","bytes="+I+"-"+S);"undefined"!= typeof Uint8Array&&(J.responseType="arraybuffer");J.overrideMimeType&&J.overrideMimeType("text/plain; charset=x-user-defined");J.send(null);if(!(200<=J.status&&300>J.status||304===J.status))throw Error("Couldn't load "+c+". Status: "+J.status);I=void 0!==J.response?new Uint8Array(J.response||[]):Jb(J.responseText||"",!0);Rc[y]=I}if("undefined"===typeof u.Ua[y])throw Error("doXHR failed!");return u.Ua[y]});if(n||!r)l=r=1,l=r=this.Za(0).length,xa("LazyFiles on gzip forces download of the whole file when length is accessed"); this.Mc=r;this.Lc=l;this.Vb=!0};if("undefined"!==typeof XMLHttpRequest){if(!E)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var k=new g;Object.defineProperties(k,{length:{get:function(){this.Vb||this.ic();return this.Mc}},chunkSize:{get:function(){this.Vb||this.ic();return this.Lc}}});k={Ub:!1,za:k}}else k={Ub:!1,url:c};var p=P.Uc(a,b,k,d,f);k.za?p.za=k.za:k.url&&(p.za=null,p.url=k.url);Object.defineProperties(p,{Ca:{get:function(){return this.za.length}}}); var t={};Object.keys(p.Aa).forEach(function(n){var r=p.Aa[n];t[n]=function(){P.rc(p);return r.apply(null,arguments)}});t.read=function(n,r,z,D,l){P.rc(p);n=n.node.za;if(l>=n.length)return 0;D=Math.min(n.length-l,D);if(n.slice)for(var u=0;u<D;u++)r[z+u]=n[l+u];else for(u=0;u<D;u++)r[z+u]=n.get(l+u);return D};p.Aa=t;return p},Ud:function(a,b,c,d,f,g,k,p,t,n){function r(D){function l(y){n&&n();p||P.kc(a,b,y,d,f,t);g&&g();Za()}var u=!1;A.preloadPlugins.forEach(function(y){!u&&y.canHandle(z)&&(y.handle(D, z,l,function(){k&&k();Za()}),u=!0)});u||l(D)}Pb.ob();var z=b?Eb(Cb(a,b)):a;Ya();"string"==typeof c?Ob(c,function(D){r(D)},k):r(c)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},fc:function(){return"EM_FS_"+window.location.pathname},hc:20,lb:"FILE_DATA",ke:function(a,b,c){b=b||function(){};c=c||function(){};var d=P.indexedDB();try{var f=d.open(P.fc(),P.hc)}catch(g){return c(g)}f.onupgradeneeded=function(){xa("creating db");f.result.createObjectStore(P.lb)}; f.onsuccess=function(){var g=f.result.transaction([P.lb],"readwrite"),k=g.objectStore(P.lb),p=0,t=0,n=a.length;a.forEach(function(r){r=k.put(P.Kb(r).object.za,r);r.onsuccess=function(){p++;p+t==n&&(0==t?b():c())};r.onerror=function(){t++;p+t==n&&(0==t?b():c())}});g.onerror=c};f.onerror=c},ae:function(a,b,c){b=b||function(){};c=c||function(){};var d=P.indexedDB();try{var f=d.open(P.fc(),P.hc)}catch(g){return c(g)}f.onupgradeneeded=c;f.onsuccess=function(){var g=f.result;try{var k=g.transaction([P.lb], "readonly")}catch(z){c(z);return}var p=k.objectStore(P.lb),t=0,n=0,r=a.length;a.forEach(function(z){var D=p.get(z);D.onsuccess=function(){P.Kb(z).exists&&P.unlink(z);P.kc(Bb(z),V(z),D.result,!0,!0,!0);t++;t+n==r&&(0==n?b():c())};D.onerror=function(){n++;t+n==r&&(0==n?b():c())}});k.onerror=c};f.onerror=c}},Qb={}; function Rb(a,b){var c=P.stat;try{var d=c(a)}catch(f){if(f&&f.node&&Ab(a)!==Ab(P.Wa(f.node)))return-54;throw f;}w()[b>>2]=d.dev;w()[b+4>>2]=0;w()[b+8>>2]=d.ino;w()[b+12>>2]=d.mode;w()[b+16>>2]=d.nlink;w()[b+20>>2]=d.uid;w()[b+24>>2]=d.gid;w()[b+28>>2]=d.rdev;w()[b+32>>2]=0;T=[d.size>>>0,(R=d.size,1<=+Math.abs(R)?0<R?(Math.min(+Math.floor(R/4294967296),4294967295)|0)>>>0:~~+Math.ceil((R-+(~~R>>>0))/4294967296)>>>0:0)];w()[b+40>>2]=T[0];w()[b+44>>2]=T[1];w()[b+48>>2]=4096;w()[b+52>>2]=d.blocks;w()[b+ 56>>2]=d.atime.getTime()/1E3|0;w()[b+60>>2]=0;w()[b+64>>2]=d.mtime.getTime()/1E3|0;w()[b+68>>2]=0;w()[b+72>>2]=d.ctime.getTime()/1E3|0;w()[b+76>>2]=0;T=[d.ino>>>0,(R=d.ino,1<=+Math.abs(R)?0<R?(Math.min(+Math.floor(R/4294967296),4294967295)|0)>>>0:~~+Math.ceil((R-+(~~R>>>0))/4294967296)>>>0:0)];w()[b+80>>2]=T[0];w()[b+84>>2]=T[1];return 0}var Sb=void 0;function Tb(){Sb+=4;return w()[Sb-4>>2]}function X(a){a=P.Ya(a);if(!a)throw new P.Y(8);return a} function Ub(a,b,c){if(G)return Y(2,1,a,b,c);Sb=c;try{var d=X(a);switch(b){case 0:var f=Tb();return 0>f?-28:P.open(d.path,d.flags,0,f).fd;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=Tb(),d.flags|=f,0;case 12:return f=Tb(),h.buffer!=m&&q(h.buffer),La[f+0>>1]=2,0;case 13:case 14:return 0;case 16:case 8:return-28;case 9:return w()[Vb()>>2]=28,-1;default:return-28}}catch(g){return"undefined"!==typeof P&&g instanceof P.Y||M(g),-g.Ga}} function Wb(a,b){if(G)return Y(3,1,a,b);try{var c=X(a);return Rb(c.path,b)}catch(d){return"undefined"!==typeof P&&d instanceof P.Y||M(d),-d.Ga}} function Xb(a,b,c){if(G)return Y(4,1,a,b,c);Sb=c;try{var d=X(a);switch(b){case 21509:case 21505:return d.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.tty?0:-59;case 21519:if(!d.tty)return-59;var f=Tb();return w()[f>>2]=0;case 21520:return d.tty?-28:-59;case 21531:return f=Tb(),P.Tb(d,b,f);case 21523:return d.tty?0:-59;case 21524:return d.tty?0:-59;default:M("bad ioctl syscall "+b)}}catch(g){return"undefined"!==typeof P&&g instanceof P.Y||M(g),-g.Ga}} function Yb(a,b,c,d,f,g){if(G)return Y(5,1,a,b,c,d,f,g);try{a:{g<<=12;var k=!1;if(0!==(d&16)&&0!==a%65536)var p=-28;else{if(0!==(d&32)){var t=Mb(b);if(!t){p=-48;break a}k=!0}else{var n=P.Ya(f);if(!n){p=-8;break a}var r=P.gb(n,a,b,g,c,d);t=r.yd;k=r.Ib}Qb[t]={od:t,ld:b,Ib:k,fd:f,xd:c,flags:d,offset:g};p=t}}return p}catch(z){return"undefined"!==typeof P&&z instanceof P.Y||M(z),-z.Ga}} function Zb(a,b){if(G)return Y(6,1,a,b);try{var c=Qb[a];if(0!==b&&c){if(b===c.ld){var d=P.Ya(c.fd);if(d&&c.xd&2){var f=c.flags,g=c.offset,k=v().slice(a,a+b);P.hb(d,k,g,b,f)}Qb[a]=null;c.Ib&&kb(c.od)}var p=0}else p=-28;return p}catch(t){return"undefined"!==typeof P&&t instanceof P.Y||M(t),-t.Ga}}function $b(a,b,c){if(G)return Y(7,1,a,b,c);Sb=c;try{var d=O(a),f=c?Tb():0;return P.open(d,b,f).fd}catch(g){return"undefined"!==typeof P&&g instanceof P.Y||M(g),-g.Ga}} function ac(a,b){if(G)return Y(8,1,a,b);try{return a=O(a),Rb(a,b)}catch(c){return"undefined"!==typeof P&&c instanceof P.Y||M(c),-c.Ga}}function bc(){if(G)return Y(9,1);M()}var cc=[];function dc(a){if(G)return Y(10,1,a);noExitRuntime=!1;Ra=0;ob(a)}function Y(a,b){for(var c=arguments.length-2,d=ec(),f=Ja(8*c),g=f>>3,k=0;k<c;k++){var p=arguments[2+k];ea()[g+k]=p}c=fc(a,c,f,b);qb(d);return c}var gc=[],hc=[0,"undefined"!==typeof document?document:0,"undefined"!==typeof window?window:0]; function ic(a){a=2<a?O(a):a;return hc[a]||("undefined"!==typeof document?document.querySelector(a):void 0)} function jc(a,b,c){var d=ic(a);if(!d)return-4;d.wb&&(w()[d.wb>>2]=b,w()[d.wb+4>>2]=c);if(d.Ac||!d.Rd)d.Ac&&(d=d.Ac),a=!1,d.vb&&d.vb.ub&&(a=d.vb.ub.getParameter(2978),a=0===a[0]&&0===a[1]&&a[2]===d.width&&a[3]===d.height),d.width=b,d.height=c,a&&d.vb.ub.viewport(0,0,b,c);else{if(d.wb){d=w()[d.wb+8>>2];a=a?O(a):"";var f=ec(),g=Ja(12),k=0;if(a){k=Ha(a)+1;var p=U(k);Ga(a,v(),p,k);k=p}w()[g>>2]=k;w()[g+4>>2]=b;w()[g+8>>2]=c;kc(0,d,657457152,0,k,g);qb(f);return 1}return-4}return 0} function lc(a,b,c){return G?Y(11,1,a,b,c):jc(a,b,c)}function mc(a){if(!Ba){try{a()}catch(b){if(b instanceof ua)return;if("unwind"!==b)throw b&&"object"===typeof b&&b.stack&&N("exception thrown: "+[b,b.stack]),b;}if(G&&!va())try{G?nc(Ca):ob(Ca)}catch(b){if(!(b instanceof ua))throw b;}}} function oc(a){var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=function(c,d){b.vertexAttribDivisorANGLE(c,d)},a.drawArraysInstanced=function(c,d,f,g){b.drawArraysInstancedANGLE(c,d,f,g)},a.drawElementsInstanced=function(c,d,f,g,k){b.drawElementsInstancedANGLE(c,d,f,g,k)})} function pc(a){var b=a.getExtension("OES_vertex_array_object");b&&(a.createVertexArray=function(){return b.createVertexArrayOES()},a.deleteVertexArray=function(c){b.deleteVertexArrayOES(c)},a.bindVertexArray=function(c){b.bindVertexArrayOES(c)},a.isVertexArray=function(c){return b.isVertexArrayOES(c)})}function qc(a){var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=function(c,d){b.drawBuffersWEBGL(c,d)})} function rc(a,b){a.tc||(a.tc=a.getContext,a.getContext=function(d,f){f=a.tc(d,f);return"webgl"==d==f instanceof WebGLRenderingContext?f:null});var c=a.getContext("webgl",b);return c?sc(c,b):0}function sc(a,b){var c=U(8);w()[c+4>>2]=jb();var d={Zd:c,attributes:b,version:b.nd,ub:a};a.canvas&&(a.canvas.vb=d);("undefined"===typeof b.nc||b.nc)&&tc(d);return c} function tc(a){a||(a=uc);if(!a.ed){a.ed=!0;var b=a.ub;oc(b);pc(b);qc(b);b.Vd=b.getExtension("EXT_disjoint_timer_query");b.ee=b.getExtension("WEBGL_multi_draw");(b.getSupportedExtensions()||[]).forEach(function(c){c.includes("lose_context")||c.includes("debug")||b.getExtension(c)})}}var uc,vc=["default","low-power","high-performance"],wc={}; function xc(){if(!yc){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:na||"./this.program"},b;for(b in wc)void 0===wc[b]?delete a[b]:a[b]=wc[b];var c=[];for(b in a)c.push(b+"="+a[b]);yc=c}return yc}var yc; function zc(a,b){if(G)return Y(12,1,a,b);var c=0;xc().forEach(function(d,f){var g=b+c;f=w()[a+4*f>>2]=g;for(g=0;g<d.length;++g)e()[f++>>0]=d.charCodeAt(g);e()[f>>0]=0;c+=d.length+1});return 0}function Ac(a,b){if(G)return Y(13,1,a,b);var c=xc();w()[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});w()[b>>2]=d;return 0}function Bc(a){if(G)return Y(14,1,a);try{var b=X(a);P.close(b);return 0}catch(c){return"undefined"!==typeof P&&c instanceof P.Y||M(c),c.Ga}} function Cc(a,b){if(G)return Y(15,1,a,b);try{var c=X(a),d=c.tty?2:P.Ea(c.mode)?3:P.fb(c.mode)?7:4;e()[b>>0]=d;return 0}catch(f){return"undefined"!==typeof P&&f instanceof P.Y||M(f),f.Ga}}function Dc(a,b,c,d){if(G)return Y(16,1,a,b,c,d);try{a:{for(var f=X(a),g=a=0;g<c;g++){var k=w()[b+8*g>>2],p=w()[b+(8*g+4)>>2],t=P.read(f,e(),k,p,void 0);if(0>t){var n=-1;break a}a+=t;if(t<p)break}n=a}w()[d>>2]=n;return 0}catch(r){return"undefined"!==typeof P&&r instanceof P.Y||M(r),r.Ga}} function Ec(a,b,c,d,f){if(G)return Y(17,1,a,b,c,d,f);try{var g=X(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;P.Na(g,a,d);T=[g.position>>>0,(R=g.position,1<=+Math.abs(R)?0<R?(Math.min(+Math.floor(R/4294967296),4294967295)|0)>>>0:~~+Math.ceil((R-+(~~R>>>0))/4294967296)>>>0:0)];w()[f>>2]=T[0];w()[f+4>>2]=T[1];g.Qb&&0===a&&0===d&&(g.Qb=null);return 0}catch(k){return"undefined"!==typeof P&&k instanceof P.Y||M(k),k.Ga}} function Fc(a,b,c,d){if(G)return Y(18,1,a,b,c,d);try{a:{for(var f=X(a),g=a=0;g<c;g++){var k=w()[b+8*g>>2],p=w()[b+(8*g+4)>>2],t=P.write(f,e(),k,p,void 0);if(0>t){var n=-1;break a}a+=t}n=a}w()[d>>2]=n;return 0}catch(r){return"undefined"!==typeof P&&r instanceof P.Y||M(r),r.Ga}}function Gc(a){return 0===a%4&&(0!==a%100||0===a%400)}function Hc(a,b){for(var c=0,d=0;d<=b;c+=a[d++]);return c}var Ic=[31,29,31,30,31,30,31,31,30,31,30,31],Jc=[31,28,31,30,31,30,31,31,30,31,30,31]; function Kc(a,b){for(a=new Date(a.getTime());0<b;){var c=a.getMonth(),d=(Gc(a.getFullYear())?Ic:Jc)[c];if(b>d-a.getDate())b-=d-a.getDate()+1,a.setDate(1),11>c?a.setMonth(c+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else{a.setDate(a.getDate()+b);break}}return a} function Lc(a,b,c,d){function f(l,u,y){for(l="number"===typeof l?l.toString():l||"";l.length<u;)l=y[0]+l;return l}function g(l,u){return f(l,u,"0")}function k(l,u){function y(S){return 0>S?-1:0<S?1:0}var I;0===(I=y(l.getFullYear()-u.getFullYear()))&&0===(I=y(l.getMonth()-u.getMonth()))&&(I=y(l.ge