online multiplayer chess game (note server currently down)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161

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.Sa)b.postMessage({cmd:"custom",userData:a})};
class ja{constructor(){this.Ya=null;this.Ta=[]}async get(){return 0<this.Ta.length?this.Ta.shift():await new Promise(a=>this.Ya=a)}put(a){this.Ya?(this.Ya(a),this.Ya=null):this.Ta.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.bc()};
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.nb.Rb||P.nb(),P.xc=!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={12066091:function(){throw"Canceled!";}};
function Ta(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(A);else{var c=b.rc;"number"===typeof c?void 0===b.mb?dynCall_v.call(null,c):dynCall_vi.apply(null,[c,b.mb]):c(void 0===b.mb?null:b.mb)}}}
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.Ja[a];b&&(w()[a+12>>2]=0,B.Bb(b.worker))}
var B={Wa:[],Sa:[],dc:[],Zd:function(){},ed: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)},gd:function(){B.receiveObjectTransfer=B.yd;B.threadInit=B.Gd;B.threadCancel=B.Fd;B.threadExit=B.Ec;B.setExitStatus=B.Cd},Ja:{},cc:[],Bc:function(){for(;0<B.cc.length;)B.cc.pop()();ib()},Cc:function(a,b){Atomics.store(x(),a+56>>2,1);Atomics.store(x(),
a+60>>2,0);B.Bc();Atomics.store(x(),a+4>>2,b);Atomics.store(x(),a+0>>2,1);db(a+0,2147483647);gb(0,0,0)},Cd:function(a){Ca=a},Ec:function(a){var b=jb();b&&(B.Cc(b,a),G&&postMessage({cmd:"exit"}))},Fd:function(){B.Cc(jb(),-1);postMessage({cmd:"cancelDone"})},bc:function(){for(var a in B.Ja){var b=B.Ja[a];b&&b.worker&&B.Bb(b.worker)}B.Ja={};for(a=0;a<B.Wa.length;++a){var c=B.Wa[a];c.terminate()}B.Wa=[];for(a=0;a<B.Sa.length;++a)c=B.Sa[a],b=c.Ia,B.Mb(b),c.terminate();B.Sa=[]},Mb:function(a){if(a){if(a.Pa){var b=
w()[a.Pa+100>>2];w()[a.Pa+100>>2]=0;kb(b);kb(a.Pa)}a.Pa=0;a.Ib&&a.cb&&kb(a.cb);a.cb=0;a.worker&&(a.worker.Ia=null)}},Bb:function(a){B.Ad(function(){delete B.Ja[a.Ia.Pa];B.Wa.push(a);B.Sa.splice(B.Sa.indexOf(a),1);B.Mb(a.Ia);a.Ia=void 0})},Ad:function(a){w()[lb>>2]=0;try{a()}finally{w()[lb>>2]=1}},yd:function(){},Gd:function(){for(var a in B.dc)B.dc[a]()},ld:function(a,b){a.onmessage=function(c){var d=c.data,f=d.cmd;a.Ia&&(B.Xc=a.Ia.Pa);if(d.targetThread&&d.targetThread!=jb()){var g=B.Ja[d.ke];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.Ja[c];delete B.Ja[c];d.worker.terminate();
B.Mb(d);B.Sa.splice(B.Sa.indexOf(d.worker),1);d.worker.Ia=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.Ja[c].worker.postMessage({cmd:"cancel"})}else if("loaded"===f)a.loaded=!0,b&&b(a),a.rb&&(a.rb(),delete a.rb);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.Ia&&Atomics.load(x(),a.Ia.Pa+64>>2)&&B.Bb(a);else if("exitProcess"===f)try{ob(d.returnCode)}catch(k){if(k instanceof ua)return;throw k;}else"cancelDone"===f?B.Bb(a):"objectTransfer"!==f&&("setimmediate"===c.data.target?a.postMessage(c.data):N("worker sent an unknown command "+f));B.Xc=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})},Mc:function(){var a=qa("stockfish.worker.js");B.Wa.push(new Worker(a))},cd:function(){0==B.Wa.length&&(B.Mc(),B.ld(B.Wa[0]));return B.Wa.pop()},Od: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.cd();if(!b)return 6;if(void 0!==b.Ia)throw"Internal error!";if(!a.Ab)throw"Internal error, no pthread ptr!";B.Sa.push(b);for(var c=U(512),d=0;128>d;++d)w()[c+4*d>>2]=0;var f=a.cb+a.ib;d=B.Ja[a.Ab]={worker:b,cb:a.cb,ib:a.ib,Ib:a.Ib,Pa:a.Ab};var g=d.Pa>>2;Atomics.store(x(),g+16,a.detached);Atomics.store(x(),g+25,c);Atomics.store(x(),g+10,d.Pa);Atomics.store(x(),g+20,a.ib);Atomics.store(x(),
g+19,f);Atomics.store(x(),g+26,a.ib);Atomics.store(x(),g+28,f);Atomics.store(x(),g+29,a.detached);c=tb()+40;Atomics.store(x(),g+43,c);b.Ia=d;var k={cmd:"run",start_routine:a.Dd,arg:a.mb,threadInfoStruct:a.Ab,stackBase:a.cb,stackSize:a.ib};b.rb=function(){k.time=performance.now();b.postMessage(k,a.Ld)};b.loaded&&(b.rb(),delete b.rb);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:[],hb:b};P.ac(a,Ib)}
var Ib={open:function(a){var b=Gb[a.node.rdev];if(!b)throw new P.W(43);a.tty=b;a.seekable=!1},close:function(a){a.tty.hb.flush(a.tty)},flush:function(a){a.tty.hb.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.hb.uc)throw new P.W(60);for(var f=0,g=0;g<d;g++){try{var k=a.tty.hb.uc(a.tty)}catch(p){throw new P.W(29);}if(void 0===k&&0===f)throw new P.W(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.hb.Yb)throw new P.W(60);
try{for(var f=0;f<d;f++)a.tty.hb.Yb(a.tty,b[c+f])}catch(g){throw new P.W(29);}d&&(a.node.timestamp=Date.now());return f}},Kb={uc: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()},Yb: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={Yb: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={Oa:null,Ca:function(){return W.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(P.hd(c)||P.isFIFO(c))throw new P.W(63);W.Oa||(W.Oa={dir:{node:{La:W.xa.La,Ga:W.xa.Ga,lookup:W.xa.lookup,Ra:W.xa.Ra,rename:W.xa.rename,unlink:W.xa.unlink,rmdir:W.xa.rmdir,readdir:W.xa.readdir,symlink:W.xa.symlink},stream:{Ma:W.za.Ma}},file:{node:{La:W.xa.La,Ga:W.xa.Ga},stream:{Ma:W.za.Ma,read:W.za.read,write:W.za.write,lb:W.za.lb,fb:W.za.fb,gb:W.za.gb}},link:{node:{La:W.xa.La,Ga:W.xa.Ga,readlink:W.xa.readlink},
stream:{}},ic:{node:{La:W.xa.La,Ga:W.xa.Ga},stream:P.Pc}});c=P.createNode(a,b,c,d);P.Da(c.mode)?(c.xa=W.Oa.dir.node,c.za=W.Oa.dir.stream,c.ya={}):P.isFile(c.mode)?(c.xa=W.Oa.file.node,c.za=W.Oa.file.stream,c.Ba=0,c.ya=null):P.eb(c.mode)?(c.xa=W.Oa.link.node,c.za=W.Oa.link.stream):P.wb(c.mode)&&(c.xa=W.Oa.ic.node,c.za=W.Oa.ic.stream);c.timestamp=Date.now();a&&(a.ya[b]=c,a.timestamp=c.timestamp);return c},Xd:function(a){return a.ya?a.ya.subarray?a.ya.subarray(0,a.Ba):new Uint8Array(a.ya):new Uint8Array(0)},
oc:function(a,b){var c=a.ya?a.ya.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)>>>0),0!=c&&(b=Math.max(b,256)),c=a.ya,a.ya=new Uint8Array(b),0<a.Ba&&a.ya.set(c.subarray(0,a.Ba),0))},zd:function(a,b){if(a.Ba!=b)if(0==b)a.ya=null,a.Ba=0;else{var c=a.ya;a.ya=new Uint8Array(b);c&&a.ya.set(c.subarray(0,Math.min(b,a.Ba)));a.Ba=b}},xa:{La:function(a){var b={};b.dev=P.wb(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.Da(a.mode)?b.size=4096:P.isFile(a.mode)?b.size=a.Ba:
P.eb(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.Nc=4096;b.blocks=Math.ceil(b.size/b.Nc);return b},Ga:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&W.zd(a,b.size)},lookup:function(){throw P.Nb[44];},Ra:function(a,b,c,d){return W.createNode(a,b,c,d)},rename:function(a,b,c){if(P.Da(a.mode)){try{var d=P.Qa(b,c)}catch(g){}if(d)for(var f in d.ya)throw new P.W(55);
}delete a.parent.ya[a.name];a.parent.timestamp=Date.now();a.name=c;b.ya[c]=a;b.timestamp=a.parent.timestamp;a.parent=b},unlink:function(a,b){delete a.ya[b];a.timestamp=Date.now()},rmdir:function(a,b){var c=P.Qa(a,b),d;for(d in c.ya)throw new P.W(55);delete a.ya[b];a.timestamp=Date.now()},readdir:function(a){var b=[".",".."],c;for(c in a.ya)a.ya.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.eb(a.mode))throw new P.W(28);
return a.link}},za:{read:function(a,b,c,d,f){var g=a.node.ya;if(f>=a.node.Ba)return 0;a=Math.min(a.node.Ba-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.ya||a.ya.subarray)){if(g)return a.ya=b.subarray(c,c+d),a.Ba=d;if(0===a.Ba&&0===f)return a.ya=b.slice(c,c+d),a.Ba=d;if(f+d<=a.Ba)return a.ya.set(b.subarray(c,c+d),f),d}W.oc(a,
f+d);if(a.ya.subarray&&b.subarray)a.ya.set(b.subarray(c,c+d),f);else for(g=0;g<d;g++)a.ya[f+g]=b[c+g];a.Ba=Math.max(a.Ba,f+d);return d},Ma:function(a,b,c){1===c?b+=a.position:2===c&&P.isFile(a.node.mode)&&(b+=a.node.Ba);if(0>b)throw new P.W(28);return b},lb:function(a,b,c){W.oc(a.node,b+c);a.node.Ba=Math.max(a.node.Ba,b+c)},fb:function(a,b,c,d,f,g){if(0!==b)throw new P.W(28);if(!P.isFile(a.node.mode))throw new P.W(43);a=a.node.ya;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.W(48);e().set(a,c)}else d=!1,c=a.byteOffset;return{xd:c,Hb:d}},gb:function(a,b,c,d,f){if(!P.isFile(a.node.mode))throw new P.W(43);if(f&2)return 0;W.za.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,qb:[],lc:{},streams:[],rd:1,Na:null,kc:"/",Rb:!1,xc:!0,Ea:{},Fc:{Ac:{Ic:1,Jc:2}},W:null,Nb:{},$c:null,Cb:0,Aa:function(a,b){a=Eb(P.cwd(),a);b=b||{};if(!a)return{path:"",node:null};var c={Lb:!0,$b:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.$b)throw new P.W(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.Qa(f,a[d]);c=Cb(c,a[d]);P.Za(f)&&(!g||g&&b.Lb)&&(f=f.pb.root);if(!g||b.Ka)for(g=
0;P.eb(f.mode);)if(f=P.readlink(c),c=Eb(Bb(c),f),f=P.Aa(c,{$b:b.$b}).node,40<g++)throw new P.W(32);}return{path:c,node:f}},Va:function(a){for(var b;;){if(P.xb(a))return a=a.Ca.yc,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},Qb: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.Na.length},vc:function(a){var b=P.Qb(a.parent.id,a.name);a.ab=P.Na[b];P.Na[b]=a},wc:function(a){var b=P.Qb(a.parent.id,a.name);if(P.Na[b]===a)P.Na[b]=a.ab;
else for(b=P.Na[b];b;){if(b.ab===a){b.ab=a.ab;break}b=b.ab}},Qa:function(a,b){var c=P.od(a);if(c)throw new P.W(c,a);for(c=P.Na[P.Qb(a.id,b)];c;c=c.ab){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.Gc(a,b,c,d);P.vc(a);return a},Kb:function(a){P.wc(a)},xb:function(a){return a===a.parent},Za:function(a){return!!a.pb},isFile:function(a){return 32768===(a&61440)},Da:function(a){return 16384===(a&61440)},eb:function(a){return 40960===(a&61440)},
wb:function(a){return 8192===(a&61440)},hd:function(a){return 24576===(a&61440)},isFIFO:function(a){return 4096===(a&61440)},isSocket:function(a){return 49152===(a&49152)},ad:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},qd:function(a){var b=P.ad[a];if("undefined"===typeof b)throw Error("Unknown file open mode: "+a);return b},pc:function(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},bb:function(a,b){if(P.xc)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},od:function(a){var b=P.bb(a,"x");return b?b:a.xa.lookup?0:2},Xb:function(a,b){try{return P.Qa(a,b),20}catch(c){}return P.bb(a,"wx")},yb:function(a,b,c){try{var d=P.Qa(a,b)}catch(f){return f.Fa}if(a=P.bb(a,"wx"))return a;if(c){if(!P.Da(d.mode))return 54;if(P.xb(d)||P.Va(d)===P.cwd())return 10}else if(P.Da(d.mode))return 31;return 0},pd:function(a,b){return a?P.eb(a.mode)?32:P.Da(a.mode)&&("r"!==P.pc(b)||b&512)?31:P.bb(a,P.pc(b)):44},Hc:4096,sd:function(a,
b){b=b||P.Hc;for(a=a||0;a<=b;a++)if(!P.streams[a])return a;throw new P.W(33);},Xa:function(a){return P.streams[a]},Wc:function(a,b,c){P.Gb||(P.Gb=function(){},P.Gb.prototype={object:{get:function(){return this.node},set:function(g){this.node=g}}});var d=new P.Gb,f;for(f in a)d[f]=a[f];a=d;b=P.sd(b,c);a.fd=b;return P.streams[b]=a},Qc:function(a){P.streams[a]=null},Pc:{open:function(a){a.za=P.bd(a.node.rdev).za;a.za.open&&a.za.open(a)},Ma:function(){throw new P.W(70);}},Wb:function(a){return a>>8},
ae:function(a){return a&255},$a:function(a,b){return a<<8|b},ac:function(a,b){P.lc[a]={za:b}},bd:function(a){return P.lc[a]},tc:function(a){var b=[];for(a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.qb)}return b},Dc:function(a,b){function c(k){P.Cb--;return b(k)}function d(k){if(k){if(!d.Yc)return d.Yc=!0,c(k)}else++g>=f.length&&c(null)}"function"===typeof a&&(b=a,a=!1);P.Cb++;1<P.Cb&&N("warning: "+P.Cb+" FS.syncfs operations in flight at once, probably just doing extra work");var f=P.tc(P.root.Ca),
g=0;f.forEach(function(k){if(!k.type.Dc)return d(null);k.type.Dc(k,a,d)})},Ca:function(a,b,c){var d="/"===c,f=!c;if(d&&P.root)throw new P.W(10);if(!d&&!f){var g=P.Aa(c,{Lb:!1});c=g.path;g=g.node;if(P.Za(g))throw new P.W(10);if(!P.Da(g.mode))throw new P.W(54);}b={type:a,fe:b,yc:c,qb:[]};a=a.Ca(b);a.Ca=b;b.root=a;d?P.root=a:g&&(g.pb=b,g.Ca&&g.Ca.qb.push(b));return a},ne:function(a){a=P.Aa(a,{Lb:!1});if(!P.Za(a.node))throw new P.W(28);a=a.node;var b=a.pb,c=P.tc(b);Object.keys(P.Na).forEach(function(d){for(d=
P.Na[d];d;){var f=d.ab;c.includes(d.Ca)&&P.Kb(d);d=f}});a.pb=null;a.Ca.qb.splice(a.Ca.qb.indexOf(b),1)},lookup:function(a,b){return a.xa.lookup(a,b)},Ra:function(a,b,c){var d=P.Aa(a,{parent:!0}).node;a=V(a);if(!a||"."===a||".."===a)throw new P.W(28);var f=P.Xb(d,a);if(f)throw new P.W(f);if(!d.xa.Ra)throw new P.W(63);return d.xa.Ra(d,a,b,c)},create:function(a,b){return P.Ra(a,(void 0!==b?b:438)&4095|32768,0)},mkdir:function(a,b){return P.Ra(a,(void 0!==b?b:511)&1023|16384,0)},ce: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.Fa)throw f;}}},zb:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);return P.Ra(a,b|8192,c)},symlink:function(a,b){if(!Eb(a))throw new P.W(44);var c=P.Aa(b,{parent:!0}).node;if(!c)throw new P.W(44);b=V(b);var d=P.Xb(c,b);if(d)throw new P.W(d);if(!c.xa.symlink)throw new P.W(63);return c.xa.symlink(c,b,a)},rename:function(a,b){var c=Bb(a),d=Bb(b),f=V(a),g=V(b);var k=P.Aa(a,{parent:!0});var p=k.node;k=P.Aa(b,{parent:!0});
k=k.node;if(!p||!k)throw new P.W(44);if(p.Ca!==k.Ca)throw new P.W(75);var t=P.Qa(p,f);d=Fb(a,d);if("."!==d.charAt(0))throw new P.W(28);d=Fb(b,c);if("."!==d.charAt(0))throw new P.W(55);try{var n=P.Qa(k,g)}catch(r){}if(t!==n){c=P.Da(t.mode);if(f=P.yb(p,f,c))throw new P.W(f);if(f=n?P.yb(k,g,c):P.Xb(k,g))throw new P.W(f);if(!p.xa.rename)throw new P.W(63);if(P.Za(t)||n&&P.Za(n))throw new P.W(10);if(k!==p&&(f=P.bb(p,"w")))throw new P.W(f);try{P.Ea.willMovePath&&P.Ea.willMovePath(a,b)}catch(r){N("FS.trackingDelegate['willMovePath']('"+
a+"', '"+b+"') threw an exception: "+r.message)}P.wc(t);try{p.xa.rename(t,k,g)}catch(r){throw r;}finally{P.vc(t)}try{if(P.Ea.onMovePath)P.Ea.onMovePath(a,b)}catch(r){N("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+r.message)}}},rmdir:function(a){var b=P.Aa(a,{parent:!0}).node,c=V(a),d=P.Qa(b,c),f=P.yb(b,c,!0);if(f)throw new P.W(f);if(!b.xa.rmdir)throw new P.W(63);if(P.Za(d))throw new P.W(10);try{P.Ea.willDeletePath&&P.Ea.willDeletePath(a)}catch(g){N("FS.trackingDelegate['willDeletePath']('"+
a+"') threw an exception: "+g.message)}b.xa.rmdir(b,c);P.Kb(d);try{if(P.Ea.onDeletePath)P.Ea.onDeletePath(a)}catch(g){N("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},readdir:function(a){a=P.Aa(a,{Ka:!0}).node;if(!a.xa.readdir)throw new P.W(54);return a.xa.readdir(a)},unlink:function(a){var b=P.Aa(a,{parent:!0}).node,c=V(a),d=P.Qa(b,c),f=P.yb(b,c,!1);if(f)throw new P.W(f);if(!b.xa.unlink)throw new P.W(63);if(P.Za(d))throw new P.W(10);try{P.Ea.willDeletePath&&P.Ea.willDeletePath(a)}catch(g){N("FS.trackingDelegate['willDeletePath']('"+
a+"') threw an exception: "+g.message)}b.xa.unlink(b,c);P.Kb(d);try{if(P.Ea.onDeletePath)P.Ea.onDeletePath(a)}catch(g){N("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+g.message)}},readlink:function(a){a=P.Aa(a).node;if(!a)throw new P.W(44);if(!a.xa.readlink)throw new P.W(28);return Eb(P.Va(a.parent),a.xa.readlink(a))},stat:function(a,b){a=P.Aa(a,{Ka:!b}).node;if(!a)throw new P.W(44);if(!a.xa.La)throw new P.W(63);return a.xa.La(a)},lstat:function(a){return P.stat(a,!0)},chmod:function(a,
b,c){a="string"===typeof a?P.Aa(a,{Ka:!c}).node:a;if(!a.xa.Ga)throw new P.W(63);a.xa.Ga(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.Xa(a);if(!a)throw new P.W(8);P.chmod(a.node,b)},chown:function(a,b,c,d){a="string"===typeof a?P.Aa(a,{Ka:!d}).node:a;if(!a.xa.Ga)throw new P.W(63);a.xa.Ga(a,{timestamp:Date.now()})},lchown:function(a,b,c){P.chown(a,b,c,!0)},fchown:function(a,b,c){a=P.Xa(a);if(!a)throw new P.W(8);P.chown(a.node,b,c)},
truncate:function(a,b){if(0>b)throw new P.W(28);a="string"===typeof a?P.Aa(a,{Ka:!0}).node:a;if(!a.xa.Ga)throw new P.W(63);if(P.Da(a.mode))throw new P.W(31);if(!P.isFile(a.mode))throw new P.W(28);var c=P.bb(a,"w");if(c)throw new P.W(c);a.xa.Ga(a,{size:b,timestamp:Date.now()})},Wd:function(a,b){a=P.Xa(a);if(!a)throw new P.W(8);if(0===(a.flags&2097155))throw new P.W(28);P.truncate(a.node,b)},oe:function(a,b,c){a=P.Aa(a,{Ka:!0}).node;a.xa.Ga(a,{timestamp:Math.max(b,c)})},open:function(a,b,c,d,f){if(""===
a)throw new P.W(44);b="string"===typeof b?P.qd(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.Aa(a,{Ka:!(b&131072)}).node}catch(p){}}var k=!1;if(b&64)if(g){if(b&128)throw new P.W(20);}else g=P.Ra(a,c,0),k=!0;if(!g)throw new P.W(44);P.wb(g.mode)&&(b&=-513);if(b&65536&&!P.Da(g.mode))throw new P.W(54);if(!k&&(c=P.pd(g,b)))throw new P.W(c);b&512&&P.truncate(g,0);b&=-131713;d=P.Wc({node:g,path:P.Va(g),flags:b,seekable:!0,position:0,za:g.za,Md:[],
error:!1},d,f);d.za.open&&d.za.open(d);!A.logReadFiles||b&1||(P.Zb||(P.Zb={}),a in P.Zb||(P.Zb[a]=1,N("FS.trackingDelegate error on read file: "+a)));try{P.Ea.onOpenFile&&(f=0,1!==(b&2097155)&&(f|=P.Fc.Ac.Ic),0!==(b&2097155)&&(f|=P.Fc.Ac.Jc),P.Ea.onOpenFile(a,f))}catch(p){N("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+p.message)}return d},close:function(a){if(P.ob(a))throw new P.W(8);a.Pb&&(a.Pb=null);try{a.za.close&&a.za.close(a)}catch(b){throw b;}finally{P.Qc(a.fd)}a.fd=
null},ob:function(a){return null===a.fd},Ma:function(a,b,c){if(P.ob(a))throw new P.W(8);if(!a.seekable||!a.za.Ma)throw new P.W(70);if(0!=c&&1!=c&&2!=c)throw new P.W(28);a.position=a.za.Ma(a,b,c);a.Md=[];return a.position},read:function(a,b,c,d,f){if(0>d||0>f)throw new P.W(28);if(P.ob(a))throw new P.W(8);if(1===(a.flags&2097155))throw new P.W(8);if(P.Da(a.node.mode))throw new P.W(31);if(!a.za.read)throw new P.W(28);var g="undefined"!==typeof f;if(!g)f=a.position;else if(!a.seekable)throw new P.W(70);
b=a.za.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.W(28);if(P.ob(a))throw new P.W(8);if(0===(a.flags&2097155))throw new P.W(8);if(P.Da(a.node.mode))throw new P.W(31);if(!a.za.write)throw new P.W(28);a.seekable&&a.flags&1024&&P.Ma(a,0,2);var k="undefined"!==typeof f;if(!k)f=a.position;else if(!a.seekable)throw new P.W(70);b=a.za.write(a,b,c,d,f,g);k||(a.position+=b);try{if(a.path&&P.Ea.onWriteToFile)P.Ea.onWriteToFile(a.path)}catch(p){N("FS.trackingDelegate['onWriteToFile']('"+
a.path+"') threw an exception: "+p.message)}return b},lb:function(a,b,c){if(P.ob(a))throw new P.W(8);if(0>b||0>=c)throw new P.W(28);if(0===(a.flags&2097155))throw new P.W(8);if(!P.isFile(a.node.mode)&&!P.Da(a.node.mode))throw new P.W(43);if(!a.za.lb)throw new P.W(138);a.za.lb(a,b,c)},fb:function(a,b,c,d,f,g){if(0!==(f&2)&&0===(g&2)&&2!==(a.flags&2097155))throw new P.W(2);if(1===(a.flags&2097155))throw new P.W(2);if(!a.za.fb)throw new P.W(43);return a.za.fb(a,b,c,d,f,g)},gb:function(a,b,c,d,f){return a&&
a.za.gb?a.za.gb(a,b,c,d,f):0},ee:function(){return 0},Sb:function(a,b,c){if(!a.za.Sb)throw new P.W(59);return a.za.Sb(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.Oc)}else if(ArrayBuffer.isView(b))P.write(a,b,0,b.byteLength,void 0,c.Oc);else throw Error("Unsupported data type");P.close(a)},cwd:function(){return P.kc},chdir:function(a){a=P.Aa(a,{Ka:!0});if(null===a.node)throw new P.W(44);if(!P.Da(a.node.mode))throw new P.W(54);var b=P.bb(a.node,"x");if(b)throw new P.W(b);P.kc=a.path},Sc:function(){P.mkdir("/tmp");
P.mkdir("/home");P.mkdir("/home/web_user")},Rc:function(){P.mkdir("/dev");P.ac(P.$a(1,3),{read:function(){return 0},write:function(b,c,d,f){return f}});P.zb("/dev/null",P.$a(1,3));Hb(P.$a(5,0),Kb);Hb(P.$a(6,0),Lb);P.zb("/dev/tty",P.$a(5,0));P.zb("/dev/tty1",P.$a(6,0));var a=Db();P.Ua("/dev","random",a);P.Ua("/dev","urandom",a);P.mkdir("/dev/shm");P.mkdir("/dev/shm/tmp")},Uc:function(){P.mkdir("/proc");var a=P.mkdir("/proc/self");P.mkdir("/proc/self/fd");P.Ca({Ca:function(){var b=P.createNode(a,"fd",
16895,73);b.xa={lookup:function(c,d){var f=P.Xa(+d);if(!f)throw new P.W(8);c={parent:null,Ca:{yc:"fake"},xa:{readlink:function(){return f.path}}};return c.parent=c}};return b}},{},"/proc/self/fd")},Vc:function(){A.stdin?P.Ua("/dev","stdin",A.stdin):P.symlink("/dev/tty","/dev/stdin");A.stdout?P.Ua("/dev","stdout",null,A.stdout):P.symlink("/dev/tty","/dev/stdout");A.stderr?P.Ua("/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)},nc:function(){P.W||(P.W=function(a,b){this.node=b;this.Bd=function(c){this.Fa=c};this.Bd(a);this.message="FS error"},P.W.prototype=Error(),P.W.prototype.constructor=P.W,[44].forEach(function(a){P.Nb[a]=new P.W(a);P.Nb[a].stack="<generic error, no stack>"}))},Ed:function(){P.nc();P.Na=Array(4096);P.Ca(W,{},"/");P.Sc();P.Rc();P.Uc();P.$c={MEMFS:W}},nb:function(a,b,c){P.nb.Rb=!0;P.nc();A.stdin=a||A.stdin;A.stdout=b||A.stdout;A.stderr=c||A.stderr;P.Vc()},he:function(){P.nb.Rb=!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)}},Ob:function(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c},Vd:function(a,b){a=P.Jb(a,b);return a.exists?a.object:null},Jb:function(a,b){try{var c=P.Aa(a,{Ka:!b});a=c.path}catch(f){}var d={xb:!1,exists:!1,error:0,name:null,path:null,object:null,td:!1,vd:null,ud:null};try{c=P.Aa(a,{parent:!0}),d.td=!0,d.vd=c.path,d.ud=c.node,d.name=V(a),c=P.Aa(a,{Ka:!b}),d.exists=!0,d.path=c.path,d.object=c.node,d.name=c.node.name,d.xb="/"===c.path}catch(f){d.error=
f.Fa}return d},Sd:function(a,b){a="string"===typeof a?a:P.Va(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},Tc:function(a,b,c,d,f){a=Cb("string"===typeof a?a:P.Va(a),b);return P.create(a,P.Ob(d,f))},jc:function(a,b,c,d,f,g){a=b?Cb("string"===typeof a?a:P.Va(a),b):a;d=P.Ob(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},Ua:function(a,b,c,d){a=Cb("string"===typeof a?a:P.Va(a),b);b=P.Ob(!!c,!!d);P.Ua.Wb||(P.Ua.Wb=64);var f=P.$a(P.Ua.Wb++,0);P.ac(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.W(29);}if(void 0===z&&0===n)throw new P.W(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.W(29);}t&&(g.node.timestamp=Date.now());return n}});return P.zb(a,b,f)},qc:function(a){if(a.Tb||a.jd||a.link||a.ya)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.ya=Jb(ra(a.url),!0),a.Ba=a.ya.length}catch(b){throw new P.W(29);
}else throw Error("Cannot load without read() or XMLHttpRequest.");},Rd:function(a,b,c,d,f){function g(){this.Ub=!1;this.Ta=[]}g.prototype.get=function(n){if(!(n>this.length-1||0>n)){var r=n%this.chunkSize;return this.Ya(n/this.chunkSize|0)[r]}};g.prototype.Nd=function(n){this.Ya=n};g.prototype.hc=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.Nd(function(y){var I=y*l,S=(y+1)*l-1;S=Math.min(S,r-1);if("undefined"===typeof u.Ta[y]){var Rc=u.Ta;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.Ta[y])throw Error("doXHR failed!");return u.Ta[y]});if(n||!r)l=r=1,l=r=this.Ya(0).length,xa("LazyFiles on gzip forces download of the whole file when length is accessed");
this.Lc=r;this.Kc=l;this.Ub=!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.Ub||this.hc();return this.Lc}},chunkSize:{get:function(){this.Ub||this.hc();return this.Kc}}});k={Tb:!1,ya:k}}else k={Tb:!1,url:c};var p=P.Tc(a,b,k,d,f);k.ya?p.ya=k.ya:k.url&&(p.ya=null,p.url=k.url);Object.defineProperties(p,{Ba:{get:function(){return this.ya.length}}});
var t={};Object.keys(p.za).forEach(function(n){var r=p.za[n];t[n]=function(){P.qc(p);return r.apply(null,arguments)}});t.read=function(n,r,z,D,l){P.qc(p);n=n.node.ya;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.za=t;return p},Td:function(a,b,c,d,f,g,k,p,t,n){function r(D){function l(y){n&&n();p||P.jc(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.nb();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},ec:function(){return"EM_FS_"+window.location.pathname},fc:20,kb:"FILE_DATA",je:function(a,b,c){b=b||function(){};c=c||function(){};var d=P.indexedDB();try{var f=d.open(P.ec(),P.fc)}catch(g){return c(g)}f.onupgradeneeded=function(){xa("creating db");f.result.createObjectStore(P.kb)};
f.onsuccess=function(){var g=f.result.transaction([P.kb],"readwrite"),k=g.objectStore(P.kb),p=0,t=0,n=a.length;a.forEach(function(r){r=k.put(P.Jb(r).object.ya,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},$d:function(a,b,c){b=b||function(){};c=c||function(){};var d=P.indexedDB();try{var f=d.open(P.ec(),P.fc)}catch(g){return c(g)}f.onupgradeneeded=c;f.onsuccess=function(){var g=f.result;try{var k=g.transaction([P.kb],
"readonly")}catch(z){c(z);return}var p=k.objectStore(P.kb),t=0,n=0,r=a.length;a.forEach(function(z){var D=p.get(z);D.onsuccess=function(){P.Jb(z).exists&&P.unlink(z);P.jc(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.Va(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.Xa(a);if(!a)throw new P.W(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.W||M(g),-g.Fa}}
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.W||M(d),-d.Fa}}
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.Sb(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.W||M(g),-g.Fa}}
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.Xa(f);if(!n){p=-8;break a}var r=P.fb(n,a,b,g,c,d);t=r.xd;k=r.Hb}Qb[t]={nd:t,kd:b,Hb:k,fd:f,wd:c,flags:d,offset:g};p=t}}return p}catch(z){return"undefined"!==typeof P&&z instanceof P.W||M(z),-z.Fa}}
function Zb(a,b){if(G)return Y(6,1,a,b);try{var c=Qb[a];if(0!==b&&c){if(b===c.kd){var d=P.Xa(c.fd);if(d&&c.wd&2){var f=c.flags,g=c.offset,k=v().slice(a,a+b);P.gb(d,k,g,b,f)}Qb[a]=null;c.Hb&&kb(c.nd)}var p=0}else p=-28;return p}catch(t){return"undefined"!==typeof P&&t instanceof P.W||M(t),-t.Fa}}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.W||M(g),-g.Fa}}
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.W||M(c),-c.Fa}}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.vb&&(w()[d.vb>>2]=b,w()[d.vb+4>>2]=c);if(d.zc||!d.Qd)d.zc&&(d=d.zc),a=!1,d.ub&&d.ub.tb&&(a=d.ub.tb.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.ub.tb.viewport(0,0,b,c);else{if(d.vb){d=w()[d.vb+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.sc||(a.sc=a.getContext,a.getContext=function(d,f){f=a.sc(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={Yd:c,attributes:b,version:b.md,tb:a};a.canvas&&(a.canvas.ub=d);("undefined"===typeof b.mc||b.mc)&&tc(d);return c}
function tc(a){a||(a=uc);if(!a.dd){a.dd=!0;var b=a.tb;oc(b);pc(b);qc(b);b.Ud=b.getExtension("EXT_disjoint_timer_query");b.de=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.W||M(c),c.Fa}}
function Cc(a,b){if(G)return Y(15,1,a,b);try{var c=X(a),d=c.tty?2:P.Da(c.mode)?3:P.eb(c.mode)?7:4;e()[b>>0]=d;return 0}catch(f){return"undefined"!==typeof P&&f instanceof P.W||M(f),f.Fa}}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.W||M(r),r.Fa}}
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.Ma(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.Pb&&0===a&&0===d&&(g.Pb=null);return 0}catch(k){return"undefined"!==typeof P&&k instanceof P.W||M(k),k.Fa}}
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.W||M(r),r.Fa}}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.getDate()-u.getDate()));return I}function p(l){switch(l.getDay()){case 0:return new Date(l.getFullYear()-1,11,29);case 1:return l;case 2:return new Date(l.getFullYear(),0,3);case 3:return new Date(l.getFullYear(),
0,2);case 4:return new Date(l.getFullYear(),0,1);case 5:return new Date(l.getFullYear()-1,11,31);case 6:return new Date(l.getFullYear()-1,11,30)}}function t(l){l=Kc(new Date(l.Ha+1900,0,1),l.Fb);var u=new Date(l.getFullYear()+1,0,4),y=p(new Date(l.getFullYear(),0,4));u=p(u);return 0>=k(y,l)?0>=k(u,l)?l.getFullYear()+1:l.getFullYear():l.getFullYear()-1}var n=w()[d+40>>2];d={Jd:w()[d>>2],Id:w()[d+4>>2],Db:w()[d+8>>2],sb:w()[d+12>>2],jb:w()[d+16>>2],Ha:w()[d+20>>2],Eb:w()[d+24>>2],Fb:w()[d+28>>2],le:w()[d+
32>>2],Hd:w()[d+36>>2],Kd:n?O(n):""};c=O(c);n={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var r in n)c=c.replace(new RegExp(r,"g"),n[r]);var z="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),
D="January February March April May June July August September October November December".split(" ");n={"%a":function(l){return z[l.Eb].substring(0,3)},"%A":function(l){return z[l.Eb]},"%b":function(l){return D[l.jb].substring(0,3)},"%B":function(l){return D[l.jb]},"%C":function(l){return g((l.Ha+1900)/100|0,2)},"%d":function(l){return g(l.sb,2)},"%e":function(l){return f(l.sb,2," ")},"%g":function(l){return t(l).toString().substring(2)},"%G":function(l){return t(l)},"%H":function(l){return g(l.Db,
2)},"%I":function(l){l=l.Db;0==l?l=12:12<l&&(l-=12);return g(l,2)},"%j":function(l){return g(l.sb+Hc(Gc(l.Ha+1900)?Ic:Jc,l.jb-1),3)},"%m":function(l){return g(l.jb+1,2)},"%M":function(l){return g(l.Id,2)},"%n":function(){return"\n"},"%p":function(l){return 0<=l.Db&&12>l.Db?"AM":"PM"},"%S":function(l){return g(l.Jd,2)},"%t":function(){return"\t"},"%u":function(l){return l.Eb||7},"%U":function(l){var u=new Date(l.Ha+1900,0,1),y=0===u.getDay()?u:Kc(u,7-u.getDay());l=new Date(l.Ha+1900,l.jb,l.sb);return 0>
k(y,l)?g(Math.ceil((31-y.getDate()+(Hc(Gc(l.getFullYear())?Ic:Jc,l.getMonth()-1)-31)+l.getDate())/7),2):0===k(y,u)?"01":"00"},"%V":function(l){var u=new Date(l.Ha+1901,0,4),y=p(new Date(l.Ha+1900,0,4));u=p(u);var I=Kc(new Date(l.Ha+1900,0,1),l.Fb);return 0>k(I,y)?"53":0>=k(u,I)?"01":g(Math.ceil((y.getFullYear()<l.Ha+1900?l.Fb+32-y.getDate():l.Fb+1-y.getDate())/7),2)},"%w":function(l){return l.Eb},"%W":function(l){var u=new Date(l.Ha,0,1),y=1===u.getDay()?u:Kc(u,0===u.getDay()?1:7-u.getDay()+1);l=
new Date(l.Ha+1900,l.jb,l.sb);return 0>k(y,l)?g(Math.ceil((31-y.getDate()+(Hc(Gc(l.getFullYear())?Ic:Jc,l.getMonth()-1)-31)+l.getDate())/7),2):0===k(y,u)?"01":"00"},"%y":function(l){return(l.Ha+1900).toString().substring(2)},"%Y":function(l){return l.Ha+1900},"%z":function(l){l=l.Hd;var u=0<=l;l=Math.abs(l)/60;return(u?"+":"-")+String("0000"+(l/60*100+l%60)).slice(-4)},"%Z":function(l){return l.Kd},"%%":function(){return"%"}};for(r in n)c.includes(r)&&(c=c.replace(new RegExp(r,"g"),n[r](d)));r=Jb(c,
!1);if(r.length>b)return 0;Ka(r,a);return r.length-1}function Mc(a){try{a()}catch(b){M(b)}}var Z=0,Nc=null,Oc=0,Pc=[],Qc={},Sc={},Tc=0,Uc=null,Vc=[],Wc=[];function Xc(a){var b={},c;for(c in a)(function(d){var f=a[d];b[d]="function"===typeof f?function(){Pc.push(d);try{return f.apply(null,arguments)}finally{if(!Ba){var g=Pc.pop();assert(g===d);Nc&&1===Z&&0===Pc.length&&(Ra+=1,Z=0,Mc(A._asyncify_stop_unwind),"undefined"!==typeof Fibers&&Fibers.me(),Uc&&(Uc(),Uc=null))}}}:f})(c);return b}
function Yc(){var a=U(4108),b=a+12;w()[a>>2]=b;w()[a+4>>2]=b+4096;b=Pc[0];var c=Qc[b];void 0===c&&(c=Tc++,Qc[b]=c,Sc[c]=b);b=c;w()[a+8>>2]=b;return a}function Zc(){var a=Nc;a=w()[a+8>>2];a=A.asm[Sc[a]];--Ra;return a()}
function $c(a){if(!Ba){if(0===Z){var b=!1,c=!1;a(function(d){if(!Ba&&(Oc=d||0,b=!0,c)){Z=2;Mc(function(){A._asyncify_start_rewind(Nc)});"undefined"!==typeof Pb&&Pb.Vb.rc&&Pb.Vb.resume();var f=Zc();Nc||(d=Vc,Vc=[],d.forEach(function(g){g(f)}))}});c=!0;b||(Z=1,Nc=Yc(),Mc(function(){A._asyncify_start_unwind(Nc)}),"undefined"!==typeof Pb&&Pb.Vb.rc&&Pb.Vb.pause())}else 2===Z?(Z=0,Mc(A._asyncify_stop_rewind),kb(Nc),Nc=null,Wc.forEach(function(d){mc(d)})):M("invalid state: "+Z);return Oc}}
function ad(a){return $c(function(b){a().then(b)})}function bd(a,b,c,d){a||(a=this);this.parent=a;this.Ca=a.Ca;this.pb=null;this.id=P.rd++;this.name=b;this.mode=c;this.xa={};this.za={};this.rdev=d}Object.defineProperties(bd.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},jd:{get:function(){return P.Da(this.mode)}},Tb:{get:function(){return P.wb(this.mode)}}});
P.Gc=bd;P.Ed();var Pb,cd=[null,function(a,b){if(G)return Y(1,1,a,b)},Ub,Wb,Xb,Yb,Zb,$b,ac,bc,dc,lc,zc,Ac,Bc,Cc,Dc,Ec,Fc];function Jb(a,b){var c=Array(Ha(a)+1);a=Ga(a,c,0,c.length);b&&(c.length=a);return c}
var fd={c:function(a,b,c,d){M("Assertion failed: "+O(a)+", at: "+[b?O(b):"unknown filename",c,d?O(d):"unknown function"])},G:function(a,b){dd(a,b)},q:function(a,b){B.cc.push(function(){dynCall_vi.apply(null,[a,b])})},O:function(a,b,c,d){if("undefined"===typeof SharedArrayBuffer)return N("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;if(!a)return N("pthread_create called with a null thread pointer!"),28;var f=[];if(G&&0===f.length)return ed(687865856,a,b,c,
d);var g=0,k=0;if(b&&-1!=b){var p=w()[b>>2];p+=81920;g=w()[b+8>>2];k=0!==w()[b+12>>2]}else p=2097152;(b=0==g)?g=Nb(16,p):(g-=p,assert(0<g));for(var t=U(228),n=0;57>n;++n)x()[(t>>2)+n]=0;w()[a>>2]=t;w()[t+12>>2]=t;a=t+152;w()[a>>2]=a;c={cb:g,ib:p,Ib:b,detached:k,Dd:c,Ab:t,mb:d,Ld:f};return G?(c.Pd="spawnThread",postMessage(c,f),0):nb(c)},M:function(a){G?B.Ec(a):(B.Bc(),ob(a));throw"unwind";},N:function(a,b){return wb(a,b)},j:Ub,F:Wb,w:Xb,B:function(){N("warning: unsupported syscall: __sys_madvise1");
return 0},D:Yb,C:Zb,k:$b,E:ac,R:function(a,b){if(a==b)postMessage({cmd:"processQueuedMainThreadWork"});else if(G)postMessage({targetThread:a,cmd:"processThreadQueue"});else{a=(a=B.Ja[a])&&a.worker;if(!a)return;a.postMessage({cmd:"processThreadQueue"})}return 1},b:bc,y:function(a,b){if(0===a)a=Date.now();else if(1===a||4===a)a=sb();else return w()[Vb()>>2]=28,-1;w()[b>>2]=a/1E3|0;w()[b+4>>2]=a%1E3*1E6|0;return 0},m:function(a,b,c){cc.length=0;var d;for(c>>=2;d=v()[b++];)(d=105>d)&&c&1&&c++,cc.push(d?
ea()[c++>>1]:w()[c]),++c;return cb[a].apply(null,cc)},x:vb,i:function(){},A:dc,d:ub,e:db,g:sb,o:function(a,b,c){v().copyWithin(a,b,b+c)},I:function(a,b,c){gc.length=b;c>>=3;for(var d=0;d<b;d++)gc[d]=ea()[c+d];return(0>a?cb[-a-1]:cd[a]).apply(null,gc)},p:function(a){var b=v().length;a>>>=0;if(a<=b||2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0<d%65536&&(d+=65536-d%65536);a:{try{h.grow(Math.min(2147483648,d)-m.byteLength+65535>>>16);q(h.buffer);
var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},K:function(a,b,c){return ic(a)?jc(a,b,c):lc(a,b,c)},l:function(){},H:function(){},Q:function(a,b,c){Ra+=1;return setTimeout(function(){--Ra;mc(function(){dynCall_vi.apply(null,[a,c])})},b)},J:function(){return ad(async()=>{var a=await A.queue.get();const b=Ha(a)+1,c=U(b);Ga(a,v(),c,b);return c})},L:function(a,b){b>>=2;var c=w()[b+6];b={alpha:!!w()[b],depth:!!w()[b+1],stencil:!!w()[b+2],antialias:!!w()[b+3],premultipliedAlpha:!!w()[b+4],preserveDrawingBuffer:!!w()[b+
5],powerPreference:vc[c],failIfMajorPerformanceCaveat:!!w()[b+7],md:w()[b+8],be:w()[b+9],mc:w()[b+10],Zc:w()[b+11],ge:w()[b+12],ie:w()[b+13]};a=ic(a);return!a||b.Zc?0:rc(a,b)},s:zc,t:Ac,f:function(a){ob(a)},h:Bc,z:Cc,v:Dc,n:Ec,u:Fc,P:function(){B.ed()},a:h||A.wasmMemory,r:function(a,b,c,d){return Lc(a,b,c,d)}};
(function(){function a(g,k){g=g.exports;g=Xc(g);A.asm=g;Oa.unshift(A.asm.S);B.dc.push(A.asm.V);Aa=k;G||Za()}function b(g){a(g.instance,g.module)}function c(g){return bb().then(function(k){return WebAssembly.instantiate(k,d)}).then(g,function(k){N("failed to asynchronously prepare wasm: "+k);M(k)})}var d={a:fd};G||Ya();if(A.instantiateWasm)try{var f=A.instantiateWasm(d,a);return f=Xc(f)}catch(g){return N("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return za||"function"!==
typeof WebAssembly.instantiateStreaming||$a()||"function"!==typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(k){N("wasm streaming compile failed: "+k);N("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ia);return{}})();A.___wasm_call_ctors=function(){return(A.___wasm_call_ctors=A.asm.S).apply(null,arguments)};
var dd=A._main=function(){return(dd=A._main=A.asm.T).apply(null,arguments)},kb=A._free=function(){return(kb=A._free=A.asm.U).apply(null,arguments)};A._emscripten_tls_init=function(){return(A._emscripten_tls_init=A.asm.V).apply(null,arguments)};A._emscripten_current_thread_process_queued_calls=function(){return(A._emscripten_current_thread_process_queued_calls=A.asm.X).apply(null,arguments)};
var hb=A._emscripten_register_main_browser_thread_id=function(){return(hb=A._emscripten_register_main_browser_thread_id=A.asm.Y).apply(null,arguments)},xb=A._emscripten_main_browser_thread_id=function(){return(xb=A._emscripten_main_browser_thread_id=A.asm.Z).apply(null,arguments)},ed=A._emscripten_sync_run_in_main_thread_4=function(){return(ed=A._emscripten_sync_run_in_main_thread_4=A.asm._).apply(null,arguments)},mb=A._emscripten_main_thread_process_queued_calls=function(){return(mb=A._emscripten_main_thread_process_queued_calls=
A.asm.$).apply(null,arguments)},fc=A._emscripten_run_in_main_runtime_thread_js=function(){return(fc=A._emscripten_run_in_main_runtime_thread_js=A.asm.aa).apply(null,arguments)},kc=A.__emscripten_call_on_thread=function(){return(kc=A.__emscripten_call_on_thread=A.asm.ba).apply(null,arguments)};A._emscripten_proxy_main=function(){return(A._emscripten_proxy_main=A.asm.ca).apply(null,arguments)};
var yb=A._pthread_testcancel=function(){return(yb=A._pthread_testcancel=A.asm.da).apply(null,arguments)},jb=A._pthread_self=function(){return(jb=A._pthread_self=A.asm.ea).apply(null,arguments)},U=A._malloc=function(){return(U=A._malloc=A.asm.fa).apply(null,arguments)},nc=A._pthread_exit=function(){return(nc=A._pthread_exit=A.asm.ga).apply(null,arguments)},gb=A.__emscripten_thread_init=function(){return(gb=A.__emscripten_thread_init=A.asm.ha).apply(null,arguments)},tb=A._emscripten_get_global_libc=
function(){return(tb=A._emscripten_get_global_libc=A.asm.ia).apply(null,arguments)},Vb=A.___errno_location=function(){return(Vb=A.___errno_location=A.asm.ja).apply(null,arguments)},ib=A.___pthread_tsd_run_dtors=function(){return(ib=A.___pthread_tsd_run_dtors=A.asm.ka).apply(null,arguments)},ec=A.stackSave=function(){return(ec=A.stackSave=A.asm.la).apply(null,arguments)},qb=A.stackRestore=function(){return(qb=A.stackRestore=A.asm.ma).apply(null,arguments)},Ja=A.stackAlloc=function(){return(Ja=A.stackAlloc=
A.asm.na).apply(null,arguments)},pb=A._emscripten_stack_set_limits=function(){return(pb=A._emscripten_stack_set_limits=A.asm.oa).apply(null,arguments)},Nb=A._memalign=function(){return(Nb=A._memalign=A.asm.pa).apply(null,arguments)},dynCall_vi=A.dynCall_vi=function(){return(dynCall_vi=A.dynCall_vi=A.asm.qa).apply(null,arguments)},rb=A.dynCall_ii=function(){return(rb=A.dynCall_ii=A.asm.ra).apply(null,arguments)},dynCall_v=A.dynCall_v=function(){return(dynCall_v=A.dynCall_v=A.asm.sa).apply(null,arguments)};
A._asyncify_start_unwind=function(){return(A._asyncify_start_unwind=A.asm.ta).apply(null,arguments)};A._asyncify_stop_unwind=function(){return(A._asyncify_stop_unwind=A.asm.ua).apply(null,arguments)};A._asyncify_start_rewind=function(){return(A._asyncify_start_rewind=A.asm.va).apply(null,arguments)};A._asyncify_stop_rewind=function(){return(A._asyncify_stop_rewind=A.asm.wa).apply(null,arguments)};var lb=A.__emscripten_allow_main_runtime_queued_calls=12065324,eb=A.__emscripten_main_thread_futex=13280700;
A.keepRuntimeAlive=va;A.FS=P;A.PThread=B;A.PThread=B;A.wasmMemory=h;A.ExitStatus=ua;var gd;function ua(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}Xa=function hd(){gd||jd();gd||(Xa=hd)};
function jd(a){function b(){if(!gd&&(gd=!0,A.calledRun=!0,!Ba)){Sa();G||Ta(Pa);ha(A);if(A.onRuntimeInitialized)A.onRuntimeInitialized();if(kd){var c=a,d=A._emscripten_proxy_main;c=c||[];var f=c.length+1,g=Ja(4*(f+1));w()[g>>2]=Ia(na);for(var k=1;k<f;k++)w()[(g>>2)+k]=Ia(c[k-1]);w()[(g>>2)+f]=0;d(f,g)}if(!G){if(A.postRun)for("function"==typeof A.postRun&&(A.postRun=[A.postRun]);A.postRun.length;)c=A.postRun.shift(),Qa.unshift(c);Ta(Qa)}}}a=a||ma;if(!(0<Va))if(G)ha(A),Sa(),postMessage({cmd:"loaded"});
else{if(!G){if(A.preRun)for("function"==typeof A.preRun&&(A.preRun=[A.preRun]);A.preRun.length;)Ua();Ta(Na)}0<Va||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1);b()},1)):b())}}A.run=jd;function ob(a){Ca=a;if(G)throw postMessage({cmd:"exitProcess",returnCode:a}),new ua(a);va()||B.bc();Ca=a;if(!va()){B.bc();if(A.onExit)A.onExit(a);Ba=!0}oa(a,new ua(a))}if(A.preInit)for("function"==typeof A.preInit&&(A.preInit=[A.preInit]);0<A.preInit.length;)A.preInit.pop()();
var kd=!0;A.noInitialRun&&(kd=!1);G&&(noExitRuntime=!1,B.gd());jd();


  return Stockfish.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
  module.exports = Stockfish;
else if (typeof define === 'function' && define['amd'])
  define([], function() { return Stockfish; });
else if (typeof exports === 'object')
  exports["Stockfish"] = Stockfish;