var f;f||(f=typeof Module !== 'undefined' ? Module : {});var aa=Object.assign({},f),ba=[],ca="./this.program",k=(a,b)=>{throw b;},da="object"==typeof window,l="function"==typeof importScripts,ea="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r="",fa,u,v,fs,w,ha; if(ea)r=l?require("path").dirname(r)+"/":__dirname+"/",ha=()=>{w||(fs=require("fs"),w=require("path"))},fa=function(a,b){ha();a=w.normalize(a);return fs.readFileSync(a,b?void 0:"utf8")},v=a=>{a=fa(a,!0);a.buffer||(a=new Uint8Array(a));return a},u=(a,b,c)=>{ha();a=w.normalize(a);fs.readFile(a,function(d,e){d?c(d):b(e.buffer)})},1{if(noExitRuntime)throw process.exitCode=a,b;b instanceof x||y("exiting due to exception: "+b);process.exit(a)},f.inspect=function(){return"[Emscripten Module object]"};else if(da||l)l?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",fa=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1); b.send(null);return b.responseText},l&&(v=a=>{var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),u=(a,b,c)=>{var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=()=>{200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var ia=f.print||console.log.bind(console),y=f.printErr||console.warn.bind(console);Object.assign(f,aa);aa=null;f.arguments&&(ba=f.arguments); f.thisProgram&&(ca=f.thisProgram);f.quit&&(k=f.quit);var z;f.wasmBinary&&(z=f.wasmBinary);var noExitRuntime=f.noExitRuntime||!0;"object"!=typeof WebAssembly&&ja("no native wasm support detected");var ka,la=!1; function ma(a,b,c,d){var e={string:function(p){var q=0;if(null!==p&&void 0!==p&&0!==p){var t=(p.length<<2)+1;q=A(t);B(p,C,q,t)}return q},array:function(p){var q=A(p.length);na.set(p,q);return q}};a=f["_"+a];var h=[],g=0;if(d)for(var m=0;m=d);)++c;if(16e?d+=String.fromCharCode(e):(e-=65536,d+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else d+=String.fromCharCode(e)}return d}function D(a,b){return a?ra(C,a,b):""} function B(a,b,c,d){if(!(0=g){var m=a.charCodeAt(++h);g=65536+((g&1023)<<10)|m&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0;return c-e} function sa(a){for(var b=0,c=0;c=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}function ta(a){var b=sa(a)+1,c=A(b);B(a,na,c,b);return c}var ua,na,C,va,wa,E,xa,F,G; function ya(){var a=ka.buffer;ua=a;f.HEAP8=na=new Int8Array(a);f.HEAP16=va=new Int16Array(a);f.HEAP32=E=new Int32Array(a);f.HEAPU8=C=new Uint8Array(a);f.HEAPU16=wa=new Uint16Array(a);f.HEAPU32=xa=new Uint32Array(a);f.HEAPF32=F=new Float32Array(a);f.HEAPF64=G=new Float64Array(a)}var za,Aa=[],Ba=[],Ca=[],Da=[],Ea=[];function Fa(){var a=f.preRun.shift();Aa.unshift(a)}var H=0,Ga=null,I=null;f.preloadedImages={};f.preloadedAudios={}; function ja(a){if(f.onAbort)f.onAbort(a);a="Aborted("+a+")";y(a);la=!0;throw new WebAssembly.RuntimeError(a+". Build with -s ASSERTIONS=1 for more info.");}function Ha(){return J.startsWith("data:application/octet-stream;base64,")}var J;J="cpc-ui.wasm";if(!Ha()){var Ia=J;J=f.locateFile?f.locateFile(Ia,r):r+Ia}function Ja(){var a=J;try{if(a==J&&z)return new Uint8Array(z);if(v)return v(a);throw"both async and sync fetching of the wasm failed";}catch(b){ja(b)}} function Ka(){if(!z&&(da||l)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+J+"'";return a.arrayBuffer()}).catch(function(){return Ja()});if(u)return new Promise(function(a,b){u(J,function(c){a(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return Ja()})} function La(a){for(;0=Ma.length&&(Ma.length=a+1),Ma[a]=b=za.get(a));return b}var Na=[null,[],[]],Oa={},Pa=0;function Qa(){for(var a=L.length-1;0<=a;--a)Ra(a);L=[];Sa=[]}var Sa=[];function Ta(){if(Pa&&Ua.pc)for(var a=0;adb.indexOf(a)?a.getBoundingClientRect():{left:0,top:0}}var fb;fb=ea?()=>{var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:()=>performance.now(); function gb(a,b,c,d,e,h){Xa||(Xa=O(256));a={target:N(a),hc:h,jc:d,kc:function(g){g=g||event;var m=g.target.id?g.target.id:"",n=Xa;B(Wa(g.target),C,n+0,128);B(m,C,n+128,128);K(d)(e,n,b)&&g.preventDefault()},ic:c};M(a)} function hb(a,b,c,d,e,h){Ya||(Ya=O(176));a={target:N(a),pc:!0,hc:h,jc:d,kc:function(g){var m=Ya;G[m>>3]=g.timeStamp;var n=m>>2;E[n+2]=g.location;E[n+3]=g.ctrlKey;E[n+4]=g.shiftKey;E[n+5]=g.altKey;E[n+6]=g.metaKey;E[n+7]=g.repeat;E[n+8]=g.charCode;E[n+9]=g.keyCode;E[n+10]=g.which;B(g.key||"",C,m+44,32);B(g.code||"",C,m+76,32);B(g.char||"",C,m+108,32);B(g.locale||"",C,m+140,32);K(d)(e,m,b)&&g.preventDefault()},ic:c};M(a)} function ib(a,b,c){G[a>>3]=b.timeStamp;a>>=2;E[a+2]=b.screenX;E[a+3]=b.screenY;E[a+4]=b.clientX;E[a+5]=b.clientY;E[a+6]=b.ctrlKey;E[a+7]=b.shiftKey;E[a+8]=b.altKey;E[a+9]=b.metaKey;va[2*a+20]=b.button;va[2*a+21]=b.buttons;E[a+11]=b.movementX;E[a+12]=b.movementY;c=eb(c);E[a+13]=b.clientX-c.left;E[a+14]=b.clientY-c.top} function P(a,b,c,d,e,h){Za||(Za=O(72));a=N(a);M({target:a,pc:"mousemove"!=h&&"mouseenter"!=h&&"mouseleave"!=h,hc:h,jc:d,kc:function(g){g=g||event;ib(Za,g,a);K(d)(e,Za,b)&&g.preventDefault()},ic:c})}function jb(a,b,c,d,e){$a||($a=O(260));M({target:a,hc:e,jc:d,kc:function(h){h=h||event;var g=$a,m=document.pointerLockElement||document.mc||document.zc||document.yc;E[g>>2]=!!m;var n=m&&m.id?m.id:"";B(Wa(m),C,g+4,128);B(n,C,g+132,128);K(d)(20,g,b)&&h.preventDefault()},ic:c})} function kb(a,b,c,d,e){M({target:a,hc:e,jc:d,kc:function(h){h=h||event;K(d)(38,0,b)&&h.preventDefault()},ic:c})} function lb(a,b,c,d){ab||(ab=O(36));a=N(a);M({target:a,hc:"resize",jc:d,kc:function(e){e=e||event;if(e.target==a){var h=document.body;if(h){var g=ab;E[g>>2]=e.detail;E[g+4>>2]=h.clientWidth;E[g+8>>2]=h.clientHeight;E[g+12>>2]=innerWidth;E[g+16>>2]=innerHeight;E[g+20>>2]=outerWidth;E[g+24>>2]=outerHeight;E[g+28>>2]=pageXOffset;E[g+32>>2]=pageYOffset;K(d)(10,g,b)&&e.preventDefault()}}},ic:c})} function mb(a,b,c,d,e,h){bb||(bb=O(1696));a=N(a);M({target:a,pc:"touchstart"==h||"touchend"==h,hc:h,jc:d,kc:function(g){for(var m,n={},p=g.touches,q=0;q>3]=g.timeStamp;var t=p>>2;E[t+3]=g.ctrlKey;E[t+4]=g.shiftKey;E[t+5]=g.altKey;E[t+6]=g.metaKey;t+=7;var qb=eb(a),rb=0;for(q in n)if(m= n[q],E[t]=m.identifier,E[t+1]=m.screenX,E[t+2]=m.screenY,E[t+3]=m.clientX,E[t+4]=m.clientY,E[t+5]=m.pageX,E[t+6]=m.pageY,E[t+7]=m.Ac,E[t+8]=m.Bc,E[t+9]=m.clientX-qb.left,E[t+10]=m.clientY-qb.top,t+=13,31<++rb)break;E[p+8>>2]=rb;K(d)(e,p,b)&&g.preventDefault()},ic:c})}function nb(a,b,c,d,e,h){a={target:N(a),hc:h,jc:d,kc:function(g){g=g||event;K(d)(e,0,b)&&g.preventDefault()},ic:c};M(a)} function ob(a,b,c,d){cb||(cb=O(104));M({target:a,pc:!0,hc:"wheel",jc:d,kc:function(e){e=e||event;var h=cb;ib(h,e,a);G[h+72>>3]=e.deltaX;G[h+80>>3]=e.deltaY;G[h+88>>3]=e.deltaZ;E[h+96>>2]=e.deltaMode;K(d)(9,h,b)&&e.preventDefault()},ic:c})} function pb(a){var b=a.getExtension("ANGLE_instanced_arrays");b&&(a.vertexAttribDivisor=function(c,d){b.vertexAttribDivisorANGLE(c,d)},a.drawArraysInstanced=function(c,d,e,h){b.drawArraysInstancedANGLE(c,d,e,h)},a.drawElementsInstanced=function(c,d,e,h,g){b.drawElementsInstancedANGLE(c,d,e,h,g)})} function sb(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 tb(a){var b=a.getExtension("WEBGL_draw_buffers");b&&(a.drawBuffers=function(c,d){b.drawBuffersWEBGL(c,d)})}function ub(a){a.Yc=a.getExtension("WEBGL_multi_draw")} var vb=1,wb=[],Q=[],xb=[],R=[],S=[],T=[],yb=[],zb={};function U(a){Ab||(Ab=a)}function Bb(a){for(var b=vb++,c=a.length;c>2]=g}} function Ib(a,b){if(b){var c=void 0;switch(a){case 36346:c=1;break;case 36344:return;case 36345:c=0;break;case 34466:var d=V.getParameter(34467);c=d?d.length:0}if(void 0===c)switch(d=V.getParameter(a),typeof d){case "number":c=d;break;case "boolean":c=d?1:0;break;case "string":U(1280);return;case "object":if(null===d)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:c=0;break;default:U(1280);return}else{if(d instanceof Float32Array||d instanceof Uint32Array|| d instanceof Int32Array||d instanceof Array){for(a=0;a>2]=d[a];return}try{c=d.name|0}catch(e){U(1280);y("GL_INVALID_ENUM in glGet0v: Unknown object returned from WebGL getParameter("+a+")! (error: "+e+")");return}}break;default:U(1280);y("GL_INVALID_ENUM in glGet0v: Native code calling glGet0v("+a+") and it returns "+d+" of type "+typeof d+"!");return}E[b>>2]=c}else U(1281)}function Jb(a){var b=sa(a)+1,c=O(b);B(a,C,c,b);return c} function Kb(a){return"]"==a.slice(-1)&&a.lastIndexOf("[")}function Lb(a,b,c,d,e){a-=5120;a=1==a?C:4==a?E:6==a?F:5==a||28922==a?xa:wa;var h=31-Math.clz32(a.BYTES_PER_ELEMENT);return a.subarray(e>>h,e+d*(c*({5:3,6:4,8:2,29502:3,29504:4}[b-6402]||1)*(1<>h)}function W(a){var b=V.Kc;if(b){var c=b.oc[a];"number"==typeof c&&(b.oc[a]=c=V.getUniformLocation(b,b.Ic[a]+(0Z;++Z)X[Z]=Mb.subarray(0,Z+1); var Nb=new Int32Array(288);for(Z=0;288>Z;++Z)Y[Z]=Nb.subarray(0,Z+1); var Yb={ka:function(){return 0},hb:function(){return 0},ib:function(){},bb:function(){ja("")},G:function(){return"number"==typeof devicePixelRatio&&devicePixelRatio||1},M:function(a,b,c){a=N(a);if(!a)return-4;a=eb(a);G[b>>3]=a.width;G[c>>3]=a.height;return 0},D:fb,db:function(a,b,c){C.copyWithin(a,b,b+c)},Eb:function(a,b){function c(d){K(a)(d,b)&&requestAnimationFrame(c)}return requestAnimationFrame(c)},cb:function(a){var b=C.length;a>>>=0;if(2147483648=c;c*=2){var d=b*(1+ .2/c);d=Math.min(d,a+100663296);var e=Math;d=Math.max(a,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{ka.grow(e-ua.byteLength+65535>>>16);ya();var h=1;break a}catch(g){}h=void 0}if(h)return!0}return!1},U:function(a,b,c,d){gb(a,b,c,d,12,"blur");return 0},sa:function(a,b,c){a=N(a);if(!a)return-4;a.width=b;a.height=c;return 0},V:function(a,b,c,d){gb(a,b,c,d,13,"focus");return 0},ca:function(a,b,c,d){hb(a,b,c,d,2,"keydown");return 0},aa:function(a,b,c,d){hb(a,b,c,d,1,"keypress");return 0}, ba:function(a,b,c,d){hb(a,b,c,d,3,"keyup");return 0},ia:function(a,b,c,d){P(a,b,c,d,5,"mousedown");return 0},fa:function(a,b,c,d){P(a,b,c,d,33,"mouseenter");return 0},ea:function(a,b,c,d){P(a,b,c,d,34,"mouseleave");return 0},ga:function(a,b,c,d){P(a,b,c,d,8,"mousemove");return 0},ha:function(a,b,c,d){P(a,b,c,d,6,"mouseup");return 0},X:function(a,b,c,d){if(!document||!document.body||!(document.body.requestPointerLock||document.body.mc||document.body.zc||document.body.yc))return-1;a=N(a);if(!a)return-4; jb(a,b,c,d,"pointerlockchange");jb(a,b,c,d,"mozpointerlockchange");jb(a,b,c,d,"webkitpointerlockchange");jb(a,b,c,d,"mspointerlockchange");return 0},W:function(a,b,c,d){if(!document||!(document.body.requestPointerLock||document.body.mc||document.body.zc||document.body.yc))return-1;a=N(a);if(!a)return-4;kb(a,b,c,d,"pointerlockerror");kb(a,b,c,d,"mozpointerlockerror");kb(a,b,c,d,"webkitpointerlockerror");kb(a,b,c,d,"mspointerlockerror");return 0},Ea:function(a,b,c,d){lb(a,b,c,d);return 0},Y:function(a, b,c,d){mb(a,b,c,d,25,"touchcancel");return 0},Z:function(a,b,c,d){mb(a,b,c,d,23,"touchend");return 0},_:function(a,b,c,d){mb(a,b,c,d,24,"touchmove");return 0},$:function(a,b,c,d){mb(a,b,c,d,22,"touchstart");return 0},T:function(a,b,c,d){nb(a,b,c,d,31,"webglcontextlost");return 0},S:function(a,b,c,d){nb(a,b,c,d,32,"webglcontextrestored");return 0},da:function(a,b,c,d){a=N(a);return"undefined"!=typeof a.onwheel?(ob(a,b,c,d),0):-1},oa:function(a,b){b>>=2;b={alpha:!!E[b],depth:!!E[b+1],stencil:!!E[b+ 2],antialias:!!E[b+3],premultipliedAlpha:!!E[b+4],preserveDrawingBuffer:!!E[b+5],powerPreference:Gb[E[b+6]],failIfMajorPerformanceCaveat:!!E[b+7],Oc:E[b+8],Xc:E[b+9],xc:E[b+10],Mc:E[b+11],Zc:E[b+12],$c:E[b+13]};a=N(a);return!a||b.Mc?0:Cb(a,b)},$a:function(a,b){a=yb[a];b=D(b);b.startsWith("GL_")&&(b=b.substr(3));"ANGLE_instanced_arrays"==b&&pb(V);"OES_vertex_array_object"==b&&sb(V);"WEBGL_draw_buffers"==b&&tb(V);"WEBGL_multi_draw"==b&&ub(V);return!!a.tc.getExtension(b)},ub:function(a){a>>=2;for(var b= 0;14>b;++b)E[a+b]=0;E[a]=E[a+1]=E[a+3]=E[a+4]=E[a+8]=E[a+10]=1},eb:function(a){Fb=yb[a];f.Rc=V=Fb&&Fb.tc;return!a||V?0:-5},ja:function(){return 0},gb:function(a,b,c,d){a=Oa.Vc(a);b=Oa.Tc(a,b,c);E[d>>2]=b;return 0},ab:function(){},fb:function(a,b,c,d){for(var e=0,h=0;h>2],m=E[b+4>>2];b+=8;for(var n=0;n>2]=e;return 0},b:function(a){V.activeTexture(a)},I:function(a,b){V.attachShader(Q[a], T[b])},c:function(a,b){V.bindBuffer(a,wb[b])},g:function(a,b){V.bindFramebuffer(a,xb[b])},Ga:function(a,b){V.bindRenderbuffer(a,R[b])},a:function(a,b){V.bindTexture(a,S[b])},N:function(a,b,c,d){V.blendColor(a,b,c,d)},O:function(a,b){V.blendEquationSeparate(a,b)},P:function(a,b,c,d){V.blendFuncSeparate(a,b,c,d)},Ia:function(a,b,c,d){V.bufferData(a,c?C.subarray(c,c+b):b,d)},k:function(a,b,c,d){V.bufferSubData(a,b,C.subarray(d,d+c))},s:function(a){return V.checkFramebufferStatus(a)},Fb:function(a){V.clear(a)}, Hb:function(a,b,c,d){V.clearColor(a,b,c,d)},ra:function(a){V.clearDepth(a)},Gb:function(a){V.clearStencil(a)},p:function(a,b,c,d){V.colorMask(!!a,!!b,!!c,!!d)},va:function(a){V.compileShader(T[a])},Ca:function(a,b,c,d,e,h,g,m){V.compressedTexImage2D(a,b,c,d,e,h,m?C.subarray(m,m+g):null)},Aa:function(){var a=Bb(Q),b=V.createProgram();b.name=a;b.sc=b.qc=b.rc=0;b.wc=1;Q[a]=b;return a},xa:function(a){var b=Bb(T);T[b]=V.createShader(a);return b},J:function(a){V.cullFace(a)},Oa:function(a,b){for(var c= 0;c>2],e=wb[d];e&&(V.deleteBuffer(e),e.name=0,wb[d]=null)}},d:function(a,b){for(var c=0;c>2],e=xb[d];e&&(V.deleteFramebuffer(e),e.name=0,xb[d]=null)}},q:function(a){if(a){var b=Q[a];b?(V.deleteProgram(b),b.name=0,Q[a]=null):U(1281)}},R:function(a,b){for(var c=0;c>2],e=R[d];e&&(V.deleteRenderbuffer(e),e.name=0,R[d]=null)}},x:function(a){if(a){var b=T[a];b?(V.deleteShader(b),T[a]=null):U(1281)}},Na:function(a,b){for(var c=0;c>2],e=S[d];e&&(V.deleteTexture(e),e.name=0,S[d]=null)}},A:function(a){V.depthFunc(a)},z:function(a){V.depthMask(!!a)},e:function(a){V.disable(a)},Q:function(a){V.disableVertexAttribArray(a)},nb:function(a,b,c){V.drawArrays(a,b,c)},ob:function(a,b,c,d){V.drawArraysInstanced(a,b,c,d)},pb:function(a,b,c,d){V.drawElements(a,b,c,d)},qb:function(a,b,c,d,e){V.drawElementsInstanced(a,b,c,d,e)},i:function(a){V.enable(a)},Bb:function(a){V.enableVertexAttribArray(a)},n:function(a,b,c,d){V.framebufferRenderbuffer(a, b,c,R[d])},h:function(a,b,c,d,e){V.framebufferTexture2D(a,b,c,S[d],e)},K:function(a){V.frontFace(a)},Ja:function(a,b){Hb(a,b,"createBuffer",wb)},o:function(a,b){Hb(a,b,"createFramebuffer",xb)},Ha:function(a,b){Hb(a,b,"createRenderbuffer",R)},Da:function(a,b){Hb(a,b,"createTexture",S)},ta:function(a,b){return V.getAttribLocation(Q[a],D(b))},f:function(a,b){Ib(a,b)},ya:function(a,b,c,d){a=V.getProgramInfoLog(Q[a]);null===a&&(a="(unknown error)");b=0>2]=b)},H:function(a,b, c){if(c)if(a>=vb)U(1281);else if(a=Q[a],35716==b)a=V.getProgramInfoLog(a),null===a&&(a="(unknown error)"),E[c>>2]=a.length+1;else if(35719==b){if(!a.sc)for(b=0;b>2]=a.sc}else if(35722==b){if(!a.qc)for(b=0;b>2]=a.qc}else if(35381==b){if(!a.rc)for(b=0;b>2]=a.rc}else E[c>>2]=V.getProgramParameter(a,b);else U(1281)},ua:function(a,b,c,d){a=V.getShaderInfoLog(T[a]);null===a&&(a="(unknown error)");b=0>2]=b)},E:function(a,b,c){c?35716==b?(a=V.getShaderInfoLog(T[a]),null===a&&(a="(unknown error)"),E[c>>2]=a?a.length+1:0):35720==b?(a=V.getShaderSource(T[a]),E[c>>2]=a?a.length+1:0):E[c>>2]=V.getShaderParameter(T[a],b):U(1281)},Pa:function(a){var b=zb[a];if(!b){switch(a){case 7939:b= V.getSupportedExtensions()||[];b=b.concat(b.map(function(d){return"GL_"+d}));b=Jb(b.join(" "));break;case 7936:case 7937:case 37445:case 37446:(b=V.getParameter(a))||U(1280);b=b&&Jb(b);break;case 7938:b=Jb("OpenGL ES 2.0 ("+V.getParameter(7938)+")");break;case 35724:b=V.getParameter(35724);var c=b.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==c&&(3==c[1].length&&(c[1]+="0"),b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=Jb(b);break;default:U(1280)}zb[a]=b}return b},t:function(a,b){b=D(b); if(a=Q[a]){var c=a,d=c.oc,e=c.Jc,h;if(!d)for(c.oc=d={},c.Ic={},h=0;h>>0,e=b.slice(0,h));if((e=a.Jc[e])&&d>2]:-1;e+=D(E[c+4*h>>2],0>g?void 0:g)}V.shaderSource(T[a],e)},La:function(a,b,c){V.stencilFunc(a,b,c)},qa:function(a,b,c,d){V.stencilFuncSeparate(a,b,c,d)},y:function(a){V.stencilMask(a)},Ka:function(a,b,c){V.stencilOp(a,b,c)},pa:function(a,b,c,d){V.stencilOpSeparate(a,b,c,d)},Ba:function(a,b,c,d,e,h,g,m,n){V.texImage2D(a,b,c,d,e,h,g,m,n?Lb(m, g,d,e,n):null)},j:function(a,b,c){V.texParameteri(a,b,c)},mb:function(a,b,c,d,e,h,g,m,n){var p=null;n&&(p=Lb(m,g,e,h,n));V.texSubImage2D(a,b,c,d,e,h,g,m,p)},Ab:function(a,b,c){if(288>=b)for(var d=X[b-1],e=0;e>2];else d=F.subarray(c>>2,c+4*b>>2);V.uniform1fv(W(a),d)},F:function(a,b){V.uniform1i(W(a),b)},wb:function(a,b,c){if(288>=b)for(var d=Y[b-1],e=0;e>2];else d=E.subarray(c>>2,c+4*b>>2);V.uniform1iv(W(a),d)},zb:function(a,b,c){if(144>=b)for(var d=X[2*b-1], e=0;e<2*b;e+=2)d[e]=F[c+4*e>>2],d[e+1]=F[c+(4*e+4)>>2];else d=F.subarray(c>>2,c+8*b>>2);V.uniform2fv(W(a),d)},vb:function(a,b,c){if(144>=b)for(var d=Y[2*b-1],e=0;e<2*b;e+=2)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2];else d=E.subarray(c>>2,c+8*b>>2);V.uniform2iv(W(a),d)},yb:function(a,b,c){if(96>=b)for(var d=X[3*b-1],e=0;e<3*b;e+=3)d[e]=F[c+4*e>>2],d[e+1]=F[c+(4*e+4)>>2],d[e+2]=F[c+(4*e+8)>>2];else d=F.subarray(c>>2,c+12*b>>2);V.uniform3fv(W(a),d)},tb:function(a,b,c){if(96>=b)for(var d=Y[3*b-1],e=0;e< 3*b;e+=3)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2],d[e+2]=E[c+(4*e+8)>>2];else d=E.subarray(c>>2,c+12*b>>2);V.uniform3iv(W(a),d)},xb:function(a,b,c){if(72>=b){var d=X[4*b-1],e=F;c>>=2;for(var h=0;h<4*b;h+=4){var g=c+h;d[h]=e[g];d[h+1]=e[g+1];d[h+2]=e[g+2];d[h+3]=e[g+3]}}else d=F.subarray(c>>2,c+16*b>>2);V.uniform4fv(W(a),d)},sb:function(a,b,c){if(72>=b)for(var d=Y[4*b-1],e=0;e<4*b;e+=4)d[e]=E[c+4*e>>2],d[e+1]=E[c+(4*e+4)>>2],d[e+2]=E[c+(4*e+8)>>2],d[e+3]=E[c+(4*e+12)>>2];else d=E.subarray(c>>2,c+16* b>>2);V.uniform4iv(W(a),d)},rb:function(a,b,c,d){if(18>=b){var e=X[16*b-1],h=F;d>>=2;for(var g=0;g<16*b;g+=16){var m=d+g;e[g]=h[m];e[g+1]=h[m+1];e[g+2]=h[m+2];e[g+3]=h[m+3];e[g+4]=h[m+4];e[g+5]=h[m+5];e[g+6]=h[m+6];e[g+7]=h[m+7];e[g+8]=h[m+8];e[g+9]=h[m+9];e[g+10]=h[m+10];e[g+11]=h[m+11];e[g+12]=h[m+12];e[g+13]=h[m+13];e[g+14]=h[m+14];e[g+15]=h[m+15]}}else e=F.subarray(d>>2,d+64*b>>2);V.uniformMatrix4fv(W(a),!!c,e)},l:function(a){a=Q[a];V.useProgram(a);V.Kc=a},Cb:function(a,b){V.vertexAttribDivisor(a, b)},Db:function(a,b,c,d,e,h){V.vertexAttribPointer(a,b,c,!!d,e,h)},m:function(a,b,c,d){V.viewport(a,b,c,d)},Za:function(){f.Cc=function(a){0!=Ob()&&(a.preventDefault(),a.returnValue=" ")};window.addEventListener("beforeunload",f.Cc)},Ya:function(){f.Hc=function(a){a=a.clipboardData.getData("text");ma("_sapp_emsc_onpaste","void",["string"],[a])};window.addEventListener("paste",f.Hc)},Xa:function(a){f.ad=[];a=D(a);a=document.getElementById(a);f.Dc=function(b){b.stopPropagation();b.preventDefault()}; f.Ec=function(b){b.stopPropagation();b.preventDefault()};f.Fc=function(b){b.stopPropagation();b.preventDefault()};f.Gc=function(b){b.stopPropagation();b.preventDefault();var c=b.dataTransfer.files;f.vc=c;Pb(c.length);var d;for(d=0;da||a>=f.vc.length?0:f.vc[a].size},Ib:function(a,b,c,d,e){var h=new FileReader;h.onload=function(g){g=g.target.result;g.byteLength>d?Sb(a,0,1,b,0,c,d,e):(C.set(new Uint8Array(g),c),Sb(a,1,0,b,g.byteLength,c, d,e))};h.onerror=function(){Sb(a,0,2,b,0,c,d,e)};h.readAsArrayBuffer(f.vc[a])},v:function(){document.getElementById("_sokol_app_input_element").focus()},Ma:function(a){a=D(a);f.nc=document.getElementById(a);f.nc||console.log("sokol_app.h: invalid target:"+a);f.nc.requestPointerLock||console.log("sokol_app.h: target doesn't support requestPointerLock:"+a)},Va:function(){window.removeEventListener("beforeunload",f.Cc)},Ua:function(){window.removeEventListener("paste",f.Hc)},Ta:function(a){a=D(a);a= document.getElementById(a);a.removeEventListener("dragenter",f.Dc);a.removeEventListener("dragleave",f.Ec);a.removeEventListener("dragover",f.Fc);a.removeEventListener("drop",f.Gc)},C:function(){f.nc&&f.nc.requestPointerLock&&f.nc.requestPointerLock()},Qa:function(a,b,c){var d=document.createElement("canvas");d.width=a;d.height=b;var e=d.getContext("2d"),h=e.createImageData(a,b);h.data.set(C.subarray(c,c+a*b*4));e.putImageData(h,0,0);a=document.createElement("link");a.id="sokol-app-favicon";a.rel= "shortcut icon";a.href=d.toDataURL();document.head.appendChild(a)},u:function(){document.getElementById("_sokol_app_input_element").blur()},Sa:function(a){a=D(a);var b=document.createElement("textarea");b.setAttribute("autocomplete","off");b.setAttribute("autocorrect","off");b.setAttribute("autocapitalize","off");b.setAttribute("spellcheck","false");b.style.left="-100px";b.style.top="-100px";b.style.height=1;b.style.width=1;b.value=a;document.body.appendChild(b);b.select();document.execCommand("copy"); document.body.removeChild(b)},Wa:function(){for(var a=(new URLSearchParams(window.location.search)).entries(),b=a.next();!b.done;b=a.next())ma("_sargs_add_kvp","void",["string","string"],[b.value[0],b.value[1]])},jb:function(){return f.lc?f.lc.bufferSize:0},lb:function(a,b,c){f.fc=null;f.lc=null;"undefined"!==typeof AudioContext?f.fc=new AudioContext({sampleRate:a,latencyHint:"interactive"}):"undefined"!==typeof webkitAudioContext?f.fc=new webkitAudioContext({sampleRate:a,latencyHint:"interactive"}): (f.fc=null,console.log("sokol_audio.h: no WebAudio support"));return f.fc?(console.log("sokol_audio.h: sample rate ",f.fc.sampleRate),f.lc=f.fc.createScriptProcessor(c,0,b),f.lc.onaudioprocess=function(d){var e=d.outputBuffer.length,h=Tb(e);if(h)for(var g=d.outputBuffer.numberOfChannels,m=0;m>2)+(g*p+m)]},f.lc.connect(f.fc.destination),a=function(){f.fc&&"suspended"===f.fc.state&&f.fc.resume()},document.addEventListener("click", a,{once:!0}),document.addEventListener("touchstart",a,{once:!0}),document.addEventListener("keydown",a,{once:!0}),1):0},kb:function(){return f.fc?f.fc.sampleRate:0},na:function(){null!==f.fc&&(f.lc&&f.lc.disconnect(),f.fc.close(),f.fc=null,f.lc=null)},_a:function(){if(f.fc)return"suspended"===f.fc.state?1:0},B:function(a,b,c,d,e,h){b=D(b);var g=new XMLHttpRequest;g.open("GET",b);g.responseType="arraybuffer";var m=0>2]=ta(ca);for(var g=1;g>2)+g]=ta(c[g-1]);E[(h>>2)+e]=0;try{var m=d(e,h);if(!noExitRuntime){if(f.onExit)f.onExit(m);la=!0}k(m,new x(m))}catch(n){n instanceof x||"unwind"==n||k(1,n)}finally{}}if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;)c=f.postRun.shift(), Ea.unshift(c);La(Ea)}}a=a||ba;if(!(0