var e=void 0!==e?e:{},t=Object.assign({},e),r="./this.program",n=(e,t)=>{throw t},o="object"==typeof window,a="function"==typeof importScripts,i="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,s=e.ENVIRONMENT_IS_PTHREAD||!1,l=e.$ww,c="undefined"!=typeof document&&document.currentScript?document.currentScript.src:void 0;a&&(c=self.location.href);var u,d,m,f="";function p(t){return e.locateFile?e.locateFile(t,f):f+t}(o||a)&&(a?f=self.location.href:"undefined"!=typeof document&&document.currentScript&&(f=document.currentScript.src),f=f.startsWith("blob:")?"":f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1),u=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(m=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),d=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)});var h,v,g,_=e.print||console.log.bind(console),y=e.printErr||console.error.bind(console);Object.assign(e,t),t=null,e.arguments&&e.arguments,e.thisProgram&&(r=e.thisProgram),e.quit&&(n=e.quit),e.wasmBinary&&(h=e.wasmBinary),"object"!=typeof WebAssembly&&U("no native wasm support detected");var w,b,E,k,x,L,C,S,T=!1;function A(e,t){e||U(t)}var F,D=e.INITIAL_MEMORY||2147483648;if(s)v=e.wasmMemory;else if(e.wasmMemory)v=e.wasmMemory;else if(!((v=new WebAssembly.Memory({initial:D/65536,maximum:D/65536,shared:!0})).buffer instanceof SharedArrayBuffer))throw y("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"),i&&y("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and/or recent version)"),Error("bad memory");F=v.buffer,e.HEAP_DATA_VIEW=S=new DataView(F),e.HEAP8=b=new Int8Array(F),e.HEAP16=new Int16Array(F),e.HEAPU8=E=new Uint8Array(F),e.HEAPU16=k=new Uint16Array(F),e.HEAP32=x=new Int32Array(F),e.HEAPU32=L=new Uint32Array(F),e.HEAPF32=C=new Float32Array(F),e.HEAPF64=new Float64Array(F),D=v.buffer.byteLength;var P=[],M=[],R=[],B=[];function I(){if(!0,l)return Re();s||(e.noFSInit||ot.init.initialized||ot.init(),ot.ignorePermissions=!1,et.init(),Ie(M))}function O(e){P.unshift(e)}var N=0,z=null,G=null;function j(t){N++,e.monitorRunDependencies?.(N)}function W(t){if(N--,e.monitorRunDependencies?.(N),0==N&&(null!==z&&(clearInterval(z),z=null),G)){var r=G;G=null,r()}}function U(t){throw e.onAbort?.(t),y(t="Aborted("+t+")"),T=!0,w=1,t+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(t)}var H,q,X,V="data:application/octet-stream;base64,",$=e=>e.startsWith(V);function Y(e){if(e==H&&h)return new Uint8Array(h);if(m)return m(e);throw"both async and sync fetching of the wasm failed"}function Q(e,t,r){return function(e){return h||!o&&!a||"function"!=typeof fetch?Promise.resolve().then((()=>Y(e))):fetch(e,{credentials:"same-origin"}).then((t=>{if(!t.ok)throw`failed to load wasm binary file at '${e}'`;return t.arrayBuffer()})).catch((()=>Y(e)))}(e).then((e=>WebAssembly.instantiate(e,t))).then(r,(e=>{y(`failed to asynchronously prepare wasm: ${e}`),U(e)}))}$(H="a0-003.wasm")||(H=p(H));var K={352396560:()=>{ot.mkdir("/snd")},352396596:()=>"undefined"!=typeof AudioContext||"undefined"!=typeof webkitAudioContext,352396743:()=>void 0!==navigator.mediaDevices&&void 0!==navigator.mediaDevices.getUserMedia||void 0!==navigator.webkitGetUserMedia,352396977:t=>{void 0===e.SDL2&&(e.SDL2={});var r=e.SDL2;return t?r.capture={}:r.audio={},r.audioContext||("undefined"!=typeof AudioContext?r.audioContext=new AudioContext:"undefined"!=typeof webkitAudioContext&&(r.audioContext=new webkitAudioContext),r.audioContext&&Be(r.audioContext)),void 0===r.audioContext?-1:0},352397470:()=>e.SDL2.audioContext.sampleRate,352397538:(t,r,n,o)=>{var a=e.SDL2,i=function(e){void 0!==a.capture.silenceTimer&&(clearTimeout(a.capture.silenceTimer),a.capture.silenceTimer=void 0),a.capture.mediaStreamNode=a.audioContext.createMediaStreamSource(e),a.capture.scriptProcessorNode=a.audioContext.createScriptProcessor(r,t,1),a.capture.scriptProcessorNode.onaudioprocess=function(e){void 0!==a&&void 0!==a.capture&&(e.outputBuffer.getChannelData(0).fill(0),a.capture.currentCaptureBuffer=e.inputBuffer,Oe("vi",n,[o]))},a.capture.mediaStreamNode.connect(a.capture.scriptProcessorNode),a.capture.scriptProcessorNode.connect(a.audioContext.destination),a.capture.stream=e},s=function(e){};a.capture.silenceBuffer=a.audioContext.createBuffer(t,r,a.audioContext.sampleRate),a.capture.silenceBuffer.getChannelData(0).fill(0);a.capture.silenceTimer=setTimeout((function(){a.capture.currentCaptureBuffer=a.capture.silenceBuffer,Oe("vi",n,[o])}),r/a.audioContext.sampleRate*1e3),void 0!==navigator.mediaDevices&&void 0!==navigator.mediaDevices.getUserMedia?navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(i).catch(s):void 0!==navigator.webkitGetUserMedia&&navigator.webkitGetUserMedia({audio:!0,video:!1},i,s)},352399190:(t,r,n,o)=>{var a=e.SDL2;a.audio.scriptProcessorNode=a.audioContext.createScriptProcessor(r,0,t),a.audio.scriptProcessorNode.onaudioprocess=function(e){void 0!==a&&void 0!==a.audio&&(a.audio.currentOutputBuffer=e.outputBuffer,Oe("vi",n,[o]))},a.audio.scriptProcessorNode.connect(a.audioContext.destination)},352399600:(t,r)=>{for(var n=e.SDL2,o=n.capture.currentCaptureBuffer.numberOfChannels,a=0;a<o;++a){var i=n.capture.currentCaptureBuffer.getChannelData(a);if(i.length!=r)throw"Web Audio capture buffer length mismatch! Destination size: "+i.length+" samples vs expected "+r+" samples!";if(1==o)for(var s=0;s<r;++s)je(t+4*s,i[s],"float");else for(s=0;s<r;++s)je(t+4*(s*o+a),i[s],"float")}},352400205:(t,r)=>{for(var n=e.SDL2,o=n.audio.currentOutputBuffer.numberOfChannels,a=0;a<o;++a){var i=n.audio.currentOutputBuffer.getChannelData(a);if(i.length!=r)throw"Web Audio output buffer length mismatch! Destination size: "+i.length+" samples vs expected "+r+" samples!";for(var s=0;s<r;++s)i[s]=we(4*(t+(s*o+a<<2)>>2))}},352400685:t=>{var r=e.SDL2;if(t){if(void 0!==r.capture.silenceTimer&&clearTimeout(r.capture.silenceTimer),void 0!==r.capture.stream){for(var n=r.capture.stream.getAudioTracks(),o=0;o<n.length;o++)r.capture.stream.removeTrack(n[o]);r.capture.stream=void 0}void 0!==r.capture.scriptProcessorNode&&(r.capture.scriptProcessorNode.onaudioprocess=function(e){},r.capture.scriptProcessorNode.disconnect(),r.capture.scriptProcessorNode=void 0),void 0!==r.capture.mediaStreamNode&&(r.capture.mediaStreamNode.disconnect(),r.capture.mediaStreamNode=void 0),void 0!==r.capture.silenceBuffer&&(r.capture.silenceBuffer=void 0),r.capture=void 0}else null!=r.audio.scriptProcessorNode&&(r.audio.scriptProcessorNode.disconnect(),r.audio.scriptProcessorNode=void 0),r.audio=void 0;void 0!==r.audioContext&&void 0===r.audio&&void 0===r.capture&&(r.audioContext.close(),r.audioContext=void 0)},352401857:(t,r,n)=>{var o=t,a=r,i=n;e.SDL2||(e.SDL2={});var s=e.SDL2;s.ctxCanvas!==e.canvas&&(s.ctx=e.createContext(e.canvas,!1,!0),s.ctxCanvas=e.canvas),s.w===o&&s.h===a&&s.imageCtx===s.ctx||(s.image=s.ctx.createImageData(o,a),s.w=o,s.h=a,s.imageCtx=s.ctx);var l,c=s.image.data,u=i>>2,d=0;if("undefined"!=typeof CanvasPixelArray&&c instanceof CanvasPixelArray)for(l=c.length;d<l;){var m=Ee(4*u);c[d]=255&m,c[d+1]=m>>8&255,c[d+2]=m>>16&255,c[d+3]=255,u++,d+=4}else{s.data32Data!==c&&(s.data32=new Int32Array(c.buffer),s.data8=new Uint8Array(c.buffer),s.data32Data=c);var f=s.data32;l=f.length,f.set(x.subarray(u,u+l));var p=s.data8,h=3,v=h+4*l;if(l%8==0)for(;h<v;)p[h]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,p[h=h+4|0]=255,h=h+4|0;else for(;h<v;)p[h]=255,h=h+4|0}s.ctx.putImageData(s.image,0,0)},352403326:(e,t,r,n,o)=>{var a=e,i=t,s=r,l=n,c=o,u=document.createElement("canvas");u.width=a,u.height=i;var d,m=u.getContext("2d"),f=m.createImageData(a,i),p=f.data,h=c>>2,v=0;if("undefined"!=typeof CanvasPixelArray&&p instanceof CanvasPixelArray)for(d=p.length;v<d;){var g=Ee(4*h);p[v]=255&g,p[v+1]=g>>8&255,p[v+2]=g>>16&255,p[v+3]=g>>24&255,h++,v+=4}else{var _=new Int32Array(p.buffer);d=_.length,_.set(x.subarray(h,h+d))}m.putImageData(f,0,0);var y=0===s&&0===l?"url("+u.toDataURL()+"), auto":"url("+u.toDataURL()+") "+s+" "+l+", auto",w=Ui(y.length+1);return St(y,w,y.length+1),w},352404315:t=>{e.canvas&&(e.canvas.style.cursor=Ue(t))},352404398:()=>{e.canvas&&(e.canvas.style.cursor="none")},352404467:()=>window.innerWidth,352404497:()=>window.innerHeight};var Z,J=0,ee=()=>{J+=1},te=(t,r)=>{if(ye.mainLoop.timingMode=t,ye.mainLoop.timingValue=r,!ye.mainLoop.func)return 1;if(ye.mainLoop.running||(ee(),ye.mainLoop.running=!0),0==t)ye.mainLoop.scheduler=function(){var e=0|Math.max(0,ye.mainLoop.tickStartTime+r-Z());setTimeout(ye.mainLoop.runner,e)},ye.mainLoop.method="timeout";else if(1==t)ye.mainLoop.scheduler=function(){ye.requestAnimationFrame(ye.mainLoop.runner)},ye.mainLoop.method="rAF";else if(2==t){if(void 0===ye.setImmediate)if("undefined"==typeof setImmediate){var n=[],o="setimmediate";addEventListener("message",(e=>{e.data!==o&&e.data.target!==o||(e.stopPropagation(),n.shift()())}),!0),ye.setImmediate=function(t){n.push(t),a?(void 0===e.setImmediates&&(e.setImmediates=[]),e.setImmediates.push(t),postMessage({target:o})):postMessage(o,"*")}}else ye.setImmediate=setImmediate;ye.mainLoop.scheduler=function(){ye.setImmediate(ye.mainLoop.runner)},ye.mainLoop.method="immediate"}return 0};Z=()=>performance.timeOrigin+performance.now();var re=()=>{J-=1},ne=e=>{if(e instanceof oe||"unwind"==e)return w;n(1,e)};function oe(e){this.name="ExitStatus",this.message=`Program terminated with exit(${e})`,this.status=e}var ae=()=>ze||J>0,ie=e=>{var t=Yi(),r=e();return Qi(t),r},se=e=>{e.terminate(),e.onmessage=e=>{}},le=e=>{var t=ue.pthreads[e];ue.returnWorkerToPool(t)},ce=e=>{var t=ue.getNewWorker();if(!t)return 6;ue.runningWorkers.push(t),ue.pthreads[e.pthread_ptr]=t,t.pthread_ptr=e.pthread_ptr;var r={cmd:"run",start_routine:e.startRoutine,arg:e.arg,pthread_ptr:e.pthread_ptr};return t.postMessage(r,e.transferList),0},ue={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init(){s?ue.initWorker():ue.initMainThread()},initMainThread(){O((()=>{j(),ue.loadWasmModuleToAllWorkers((()=>W()))}))},initWorker(){ue.receiveObjectTransfer=ue.receiveObjectTransfer,ue.threadInitTLS=ue.threadInitTLS,ue.setExitStatus=ue.setExitStatus,ze=!1},setExitStatus:e=>w=e,terminateAllThreads__deps:["$terminateWorker"],terminateAllThreads:()=>{for(var e of ue.runningWorkers)se(e);for(var e of ue.unusedWorkers)se(e);ue.unusedWorkers=[],ue.runningWorkers=[],ue.pthreads=[]},returnWorkerToPool:e=>{var t=e.pthread_ptr;delete ue.pthreads[t],ue.unusedWorkers.push(e),ue.runningWorkers.splice(ue.runningWorkers.indexOf(e),1),e.pthread_ptr=0,Ni(t)},receiveObjectTransfer(e){},threadInitTLS(){ue.tlsInitFunctions.forEach((e=>e()))},loadWasmModuleToWorker:t=>new Promise((r=>{t.onmessage=n=>{var o=n.data,a=o.cmd;if(o.targetThread&&o.targetThread!=Gi()){var i=ue.pthreads[o.targetThread];i?i.postMessage(o,o.transferList):y(`Internal error! Worker sent a message "${a}" to target pthread ${o.targetThread}, but that thread no longer exists!`)}else{var s;"checkMailbox"===a?ut():"spawnThread"===a?ce(o):"cleanupThread"===a?le(o.thread):"killThread"===a?(e=>{var t=ue.pthreads[e];delete ue.pthreads[e],se(t),Ni(e),ue.runningWorkers.splice(ue.runningWorkers.indexOf(t),1),t.pthread_ptr=0})(o.thread):"cancelThread"===a?(s=o.thread,ue.pthreads[s].postMessage({cmd:"cancel"})):"loaded"===a?(t.loaded=!0,r(t)):"alert"===a?alert(`Thread ${o.threadId}: ${o.text}`):"setimmediate"===o.target?t.postMessage(o):"callHandler"===a?e[o.handler](...o.args):a&&y(`worker sent an unknown command ${a}`)}},t.onerror=e=>{throw y(`worker sent an error! ${e.filename}:${e.lineno}: ${e.message}`),e};var n=[];for(var o of["onExit","onAbort","print","printErr"])e.hasOwnProperty(o)&&n.push(o);t.postMessage({cmd:"load",handlers:n,urlOrBlob:e.mainScriptUrlOrBlob||c,wasmMemory:v,wasmModule:g})})),loadWasmModuleToAllWorkers(e){e()},allocateUnusedWorker(){var e,t=p("a0-003.worker.js");if("undefined"!=typeof trustedTypes&&trustedTypes.createPolicy){var r=trustedTypes.createPolicy("emscripten#workerPolicy2",{createScriptURL:e=>t});e=new Worker(r.createScriptURL("ignored"))}else e=new Worker(t);ue.unusedWorkers.push(e)},getNewWorker:()=>(0==ue.unusedWorkers.length&&(ue.allocateUnusedWorker(),ue.loadWasmModuleToWorker(ue.unusedWorkers[0])),ue.unusedWorkers.pop())};e.PThread=ue;var de=(e,t,r,...n)=>ie((()=>{for(var o=n.length,a=Ki(8*o),i=a>>3,s=0;s<n.length;s++){var l=n[s];Le(8*(i+s),l)}return Oi(e,t,o,a,r)}));function me(t){if(s)return de(0,0,1,t);w=t,ae()||(ue.terminateAllThreads(),e.onExit?.(t),T=!0),n(t,new oe(t))}var fe,pe=(e,t)=>{if(w=e,s)throw Ne(e),"unwind";me(e)},he=pe,ve=e=>{if(!T)try{e(),(()=>{if(!ae())try{s?zi(w):he(w)}catch(e){ne(e)}})()}catch(e){ne(e)}},ge=(e,t)=>(ee(),setTimeout((()=>{re(),ve(e)}),t)),_e=e.preloadPlugins||[],ye={mainLoop:{running:!1,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause(){ye.mainLoop.scheduler=null,ye.mainLoop.currentlyRunningMainloop++},resume(){ye.mainLoop.currentlyRunningMainloop++;var e=ye.mainLoop.timingMode,t=ye.mainLoop.timingValue,r=ye.mainLoop.func;ye.mainLoop.func=null,((e,t,r,n,o)=>{A(!ye.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),ye.mainLoop.func=e,ye.mainLoop.arg=n;var a=ye.mainLoop.currentlyRunningMainloop;function i(){return!(a<ye.mainLoop.currentlyRunningMainloop&&(re(),1))}if(ye.mainLoop.running=!1,ye.mainLoop.runner=function(){if(!T)if(ye.mainLoop.queue.length>0){Date.now();var t=ye.mainLoop.queue.shift();if(t.func(t.arg),ye.mainLoop.remainingBlockers){var r=ye.mainLoop.remainingBlockers,n=r%1==0?r-1:Math.floor(r);t.counted?ye.mainLoop.remainingBlockers=n:(n+=.5,ye.mainLoop.remainingBlockers=(8*r+n)/9)}if(ye.mainLoop.updateStatus(),!i())return;setTimeout(ye.mainLoop.runner,0)}else i()&&(ye.mainLoop.currentFrameNumber=ye.mainLoop.currentFrameNumber+1|0,1==ye.mainLoop.timingMode&&ye.mainLoop.timingValue>1&&ye.mainLoop.currentFrameNumber%ye.mainLoop.timingValue!=0?ye.mainLoop.scheduler():(0==ye.mainLoop.timingMode&&(ye.mainLoop.tickStartTime=Z()),ye.mainLoop.runIter(e),i()&&("object"==typeof SDL&&SDL.audio?.queueNewAudioData?.(),ye.mainLoop.scheduler())))},o||(t&&t>0?te(0,1e3/t):te(1,1),ye.mainLoop.scheduler()),r)throw"unwind"})(r,0,!1,ye.mainLoop.arg,!0),te(e,t),ye.mainLoop.scheduler()},updateStatus(){if(e.setStatus){var t=e.statusMessage||"Please wait...",r=ye.mainLoop.remainingBlockers,n=ye.mainLoop.expectedBlockers;r?r<n?e.setStatus("{message} ({expected - remaining}/{expected})"):e.setStatus(t):e.setStatus("")}},runIter(t){if(!T){if(e.preMainLoop)if(!1===e.preMainLoop())return;ve(t),e.postMainLoop?.()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init(){if(!ye.initted){ye.initted=!0;var t={canHandle:function(t){return!e.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(t)},handle:function(e,t,r,n){var o=new Blob([e],{type:ye.getMimetype(t)});o.size!==e.length&&(o=new Blob([new Uint8Array(e).buffer],{type:ye.getMimetype(t)}));var a=URL.createObjectURL(o),i=new Image;i.onload=()=>{A(i.complete,`Image ${t} could not be decoded`);var n=document.createElement("canvas");n.width=i.width,n.height=i.height,n.getContext("2d").drawImage(i,0,0),Ei[t]=n,URL.revokeObjectURL(a),r?.(e)},i.onerror=e=>{y(`Image ${a} could not be decoded`),n?.()},i.src=a}};_e.push(t);var r={canHandle:function(t){return!e.noAudioDecoding&&t.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(e,t,r,n){var o=!1;function a(n){o||(o=!0,ki[t]=n,r?.(e))}var i=new Blob([e],{type:ye.getMimetype(t)}),s=URL.createObjectURL(i),l=new Audio;l.addEventListener("canplaythrough",(()=>a(l)),!1),l.onerror=function(r){o||(y(`warning: browser could not fully decode audio ${t}, trying slower base64 approach`),l.src="data:audio/x-"+t.substr(-3)+";base64,"+function(e){for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r="",n=0,o=0,a=0;a<e.length;a++)for(n=n<<8|e[a],o+=8;o>=6;){var i=n>>o-6&63;o-=6,r+=t[i]}return 2==o?(r+=t[(3&n)<<4],r+="=="):4==o&&(r+=t[(15&n)<<2],r+="="),r}(e),a(l))},l.src=s,ge((()=>{a(l)}),1e4)}};_e.push(r);var n=e.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||(()=>{}),n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||(()=>{}),n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",o,!1),document.addEventListener("mozpointerlockchange",o,!1),document.addEventListener("webkitpointerlockchange",o,!1),document.addEventListener("mspointerlockchange",o,!1),e.elementPointerLock&&n.addEventListener("click",(t=>{!ye.pointerLock&&e.canvas.requestPointerLock&&(e.canvas.requestPointerLock(),t.preventDefault())}),!1))}function o(){ye.pointerLock=document.pointerLockElement===e.canvas||document.mozPointerLockElement===e.canvas||document.webkitPointerLockElement===e.canvas||document.msPointerLockElement===e.canvas}},createContext(t,r,n,o){if(r&&e.ctx&&t==e.canvas)return e.ctx;var a,i;if(r){var s={antialias:!1,alpha:!1,majorVersion:1};if(o)for(var l in o)s[l]=o[l];void 0!==gt&&(i=gt.createContext(t,s))&&(a=gt.getContext(i).GLctx)}else a=t.getContext("2d");return a?(n&&(r||A(void 0===xi,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),e.ctx=a,r&&gt.makeContextCurrent(i),e.useWebGL=r,ye.moduleContextCreatedCallbacks.forEach((e=>e())),ye.init()),a):null},destroyContext(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen(t,r){ye.lockPointer=t,ye.resizeCanvas=r,void 0===ye.lockPointer&&(ye.lockPointer=!0),void 0===ye.resizeCanvas&&(ye.resizeCanvas=!1);var n=e.canvas;function o(){ye.isFullscreen=!1;var t=n.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t?(n.exitFullscreen=ye.exitFullscreen,ye.lockPointer&&n.requestPointerLock(),ye.isFullscreen=!0,ye.resizeCanvas?ye.setFullscreenCanvasSize():ye.updateCanvasDimensions(n)):(t.parentNode.insertBefore(n,t),t.parentNode.removeChild(t),ye.resizeCanvas?ye.setWindowedCanvasSize():ye.updateCanvasDimensions(n)),e.onFullScreen?.(ye.isFullscreen),e.onFullscreen?.(ye.isFullscreen)}ye.fullscreenHandlersInstalled||(ye.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",o,!1),document.addEventListener("mozfullscreenchange",o,!1),document.addEventListener("webkitfullscreenchange",o,!1),document.addEventListener("MSFullscreenChange",o,!1));var a=document.createElement("div");n.parentNode.insertBefore(a,n),a.appendChild(n),a.requestFullscreen=a.requestFullscreen||a.mozRequestFullScreen||a.msRequestFullscreen||(a.webkitRequestFullscreen?()=>a.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):null)||(a.webkitRequestFullScreen?()=>a.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT):null),a.requestFullscreen()},exitFullscreen:()=>!!ye.isFullscreen&&((document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||(()=>{})).apply(document,[]),!0),nextRAF:0,fakeRequestAnimationFrame(e){var t=Date.now();if(0===ye.nextRAF)ye.nextRAF=t+1e3/60;else for(;t+2>=ye.nextRAF;)ye.nextRAF+=1e3/60;var r=Math.max(ye.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame(e){"function"!=typeof requestAnimationFrame?(0,ye.fakeRequestAnimationFrame)(e):requestAnimationFrame(e)},safeSetTimeout:(e,t)=>ge(e,t),safeRequestAnimationFrame:e=>(ee(),ye.requestAnimationFrame((()=>{re(),ve(e)}))),getMimetype:e=>({jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]),getUserMedia(e){window.getUserMedia||=navigator.getUserMedia||navigator.mozGetUserMedia,window.getUserMedia(e)},getMovementX:e=>e.movementX||e.mozMovementX||e.webkitMovementX||0,getMovementY:e=>e.movementY||e.mozMovementY||e.webkitMovementY||0,getMouseWheelDelta(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail/3;break;case"mousewheel":t=e.wheelDelta/120;break;case"wheel":switch(t=e.deltaY,e.deltaMode){case 0:t/=100;break;case 1:t/=3;break;case 2:t*=80;break;default:throw"unrecognized mouse wheel delta mode: "+e.deltaMode}break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseCoords(t,r){var n=e.canvas.getBoundingClientRect(),o=e.canvas.width,a=e.canvas.height,i=void 0!==window.scrollX?window.scrollX:window.pageXOffset,s=void 0!==window.scrollY?window.scrollY:window.pageYOffset,l=t-(i+n.left),c=r-(s+n.top);return{x:l*=o/n.width,y:c*=a/n.height}},setMouseCoords(e,t){const{x:r,y:n}=ye.calculateMouseCoords(e,t);ye.mouseMovementX=r-ye.mouseX,ye.mouseMovementY=n-ye.mouseY,ye.mouseX=r,ye.mouseY=n},calculateMouseEvent(e){if(ye.pointerLock)"mousemove"!=e.type&&"mozMovementX"in e?ye.mouseMovementX=ye.mouseMovementY=0:(ye.mouseMovementX=ye.getMovementX(e),ye.mouseMovementY=ye.getMovementY(e)),"undefined"!=typeof SDL?(ye.mouseX=SDL.mouseX+ye.mouseMovementX,ye.mouseY=SDL.mouseY+ye.mouseMovementY):(ye.mouseX+=ye.mouseMovementX,ye.mouseY+=ye.mouseMovementY);else{if("touchstart"===e.type||"touchend"===e.type||"touchmove"===e.type){var t=e.touch;if(void 0===t)return;var r=ye.calculateMouseCoords(t.pageX,t.pageY);if("touchstart"===e.type)ye.lastTouches[t.identifier]=r,ye.touches[t.identifier]=r;else if("touchend"===e.type||"touchmove"===e.type){var n=ye.touches[t.identifier];n||=r,ye.lastTouches[t.identifier]=n,ye.touches[t.identifier]=r}return}ye.setMouseCoords(e.pageX,e.pageY)}},resizeListeners:[],updateResizeListeners(){var t=e.canvas;ye.resizeListeners.forEach((e=>e(t.width,t.height)))},setCanvasSize(t,r,n){var o=e.canvas;ye.updateCanvasDimensions(o,t,r),n||ye.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize(){if("undefined"!=typeof SDL){var t=ke(4*(SDL.screen>>2));t|=8388608,Se(4*(SDL.screen>>2),t)}ye.updateCanvasDimensions(e.canvas),ye.updateResizeListeners()},setWindowedCanvasSize(){if("undefined"!=typeof SDL){var t=ke(4*(SDL.screen>>2));t&=-8388609,Se(4*(SDL.screen>>2),t)}ye.updateCanvasDimensions(e.canvas),ye.updateResizeListeners()},updateCanvasDimensions(t,r,n){r&&n?(t.widthNative=r,t.heightNative=n):(r=t.widthNative,n=t.heightNative);var o=r,a=n;if(e.forcedAspectRatio&&e.forcedAspectRatio>0&&(o/a<e.forcedAspectRatio?o=Math.round(a*e.forcedAspectRatio):a=Math.round(o/e.forcedAspectRatio)),(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===t.parentNode&&"undefined"!=typeof screen){var i=Math.min(screen.width/o,screen.height/a);o=Math.round(o*i),a=Math.round(a*i)}ye.resizeCanvas?(t.width!=o&&(t.width=o),t.height!=a&&(t.height=a),void 0!==t.style&&(t.style.removeProperty("width"),t.style.removeProperty("height"))):(t.width!=r&&(t.width=r),t.height!=n&&(t.height=n),void 0!==t.style&&(o!=r||a!=n?(t.style.setProperty("width",o+"px","important"),t.style.setProperty("height",a+"px","important")):(t.style.removeProperty("width"),t.style.removeProperty("height"))))}},we=e=>S.getFloat32(e,!0),be=e=>S.getFloat64(e,!0),Ee=e=>S.getInt32(e,!0),ke=e=>S.getUint32(e,!0),xe=(e,t)=>S.setFloat32(e,t,!0),Le=(e,t)=>S.setFloat64(e,t,!0),Ce=(e,t)=>S.setInt16(e,t,!0),Se=(e,t)=>S.setInt32(e,t,!0),Te=(e,t)=>S.setUint32(e,t,!0),Ae=[],Fe=[],De=e=>{var t=Fe[e];return t||(e>=Fe.length&&(Fe.length=e+1),Fe[e]=t=fe.get(e)),t},Pe=e=>{let t=e.data,r=t._wsc;r&&De(r)(...t.x)},Me=e=>{Ae.push(e)},Re=()=>{let t=e;$i(t.sb,t.sz),Ii(0,0,0,0),removeEventListener("message",Me),Ae=Ae.forEach(Pe),addEventListener("message",Pe)},Be=(e,t)=>{t||(t=[document,document.getElementById("canvas")]),["keydown","mousedown","touchstart"].forEach((r=>{t.forEach((t=>{t&&((e,t,r)=>{e.addEventListener(t,r,{once:!0})})(t,r,(()=>{"suspended"===e.state&&e.resume()}))}))}))},Ie=t=>{for(;t.length>0;)t.shift()(e)},Oe=(t,r,n=[])=>t.includes("j")?((t,r,n)=>(0,e["dynCall_"+t])(r,...n))(t,r,n):De(r)(...n);function Ne(e){if(s)return de(1,0,0,e);he(e)}e.establishStackSpace=()=>{var e=Gi(),t=ke(4*(e+52>>2)),r=ke(4*(e+56>>2));Vi(t,t-r),Qi(t)};e.invokeEntryPoint=(e,t)=>{!function(e){ae()?ue.setExitStatus(e):zi(e)}(De(e)(t))};var ze=e.noExitRuntime||!0,Ge=e=>ue.tlsInitFunctions.push(e);function je(e,t,r="i8"){switch(r.endsWith("*")&&(r="*"),r){case"i1":case"i8":b[e]=t;break;case"i16":Ce(2*(e>>1),t);break;case"i32":Se(4*(e>>2),t);break;case"i64":U("to do setValue(i64) use WASM_BIGINT");case"float":xe(4*(e>>2),t);break;case"double":Le(8*(e>>3),t);break;case"*":Te(4*(e>>2),t);break;default:U(`invalid type for setValue: ${r}`)}}var We=(e,t,r)=>{for(var n=t+r,o="";!(t>=n);){var a=e[t++];if(!a)return o;if(128&a){var i=63&e[t++];if(192!=(224&a)){var s=63&e[t++];if((a=224==(240&a)?(15&a)<<12|i<<6|s:(7&a)<<18|i<<12|s<<6|63&e[t++])<65536)o+=String.fromCharCode(a);else{var l=a-65536;o+=String.fromCharCode(55296|l>>10,56320|1023&l)}}else o+=String.fromCharCode((31&a)<<6|i)}else o+=String.fromCharCode(a)}return o},Ue=(e,t)=>e?We(E,e,t):"";class He{constructor(e){this.excPtr=e,this.ptr=e-24}set_type(e){Te(4*(this.ptr+4>>2),e)}get_type(){return ke(4*(this.ptr+4>>2))}set_destructor(e){Te(4*(this.ptr+8>>2),e)}get_destructor(){return ke(4*(this.ptr+8>>2))}set_caught(e){e=e?1:0,b[this.ptr+12]=e}get_caught(){return 0!=b[this.ptr+12]}set_rethrown(e){e=e?1:0,b[this.ptr+13]=e}get_rethrown(){return 0!=b[this.ptr+13]}init(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t)}set_adjusted_ptr(e){Te(4*(this.ptr+16>>2),e)}get_adjusted_ptr(){return ke(4*(this.ptr+16>>2))}get_exception_ptr(){if(Wi(this.get_type()))return ke(4*(this.excPtr>>2));var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}function qe(e,t,r,n){return s?de(2,0,1,e,t,r,n):Xe(e,t,r,n)}var Xe=(e,t,r,n)=>{if("undefined"==typeof SharedArrayBuffer)return y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var o=[];if(s&&0===o.length)return qe(e,t,r,n);var a={startRoutine:r,pthread_ptr:e,arg:n,transferList:o};return s?(a.cmd="spawnThread",postMessage(a,o),0):ce(a)},Ve={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;n>=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=Ve.isAbs(e),r="/"===e.substr(-1);return(e=Ve.normalizeArray(e.split("/").filter((e=>!!e)),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var t=Ve.splitPath(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=Ve.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:(...e)=>Ve.normalize(e.join("/")),join2:(e,t)=>Ve.normalize(e+"/"+t)},$e=e=>($e=(()=>{if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=>(e.set(crypto.getRandomValues(new Uint8Array(e.byteLength))),e);U("initRandomDevice")})())(e),Ye={resolve:(...e)=>{for(var t="",r=!1,n=e.length-1;n>=-1&&!r;n--){var o=n>=0?e[n]:ot.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");if(!o)return"";t=o+"/"+t,r=Ve.isAbs(o)}return(r?"/":"")+(t=Ve.normalizeArray(t.split("/").filter((e=>!!e)),!r).join("/"))||"."},relative:(e,t)=>{function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=Ye.resolve(e).substr(1),t=Ye.resolve(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),a=Math.min(n.length,o.length),i=a,s=0;s<a;s++)if(n[s]!==o[s]){i=s;break}var l=[];for(s=i;s<n.length;s++)l.push("..");return(l=l.concat(o.slice(i))).join("/")}},Qe=[],Ke=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);n<=127?t++:n<=2047?t+=2:n>=55296&&n<=57343?(t+=4,++r):t+=3}return t},Ze=(e,t,r,n)=>{if(!(n>0))return 0;for(var o=r,a=r+n-1,i=0;i<e.length;++i){var s=e.charCodeAt(i);if(s>=55296&&s<=57343)s=65536+((1023&s)<<10)|1023&e.charCodeAt(++i);if(s<=127){if(r>=a)break;t[r++]=s}else if(s<=2047){if(r+1>=a)break;t[r++]=192|s>>6,t[r++]=128|63&s}else if(s<=65535){if(r+2>=a)break;t[r++]=224|s>>12,t[r++]=128|s>>6&63,t[r++]=128|63&s}else{if(r+3>=a)break;t[r++]=240|s>>18,t[r++]=128|s>>12&63,t[r++]=128|s>>6&63,t[r++]=128|63&s}}return t[r]=0,r-o};function Je(e,t,r){var n=r>0?r:Ke(e)+1,o=new Array(n),a=Ze(e,o,0,o.length);return t&&(o.length=a),o}var et={ttys:[],init(){},shutdown(){},register(e,t){et.ttys[e]={input:[],output:[],ops:t},ot.registerDevice(e,et.stream_ops)},stream_ops:{open(e){var t=et.ttys[e.node.rdev];if(!t)throw new ot.ErrnoError(43);e.tty=t,e.seekable=!1},close(e){e.tty.ops.fsync(e.tty)},fsync(e){e.tty.ops.fsync(e.tty)},read(e,t,r,n,o){if(!e.tty||!e.tty.ops.get_char)throw new ot.ErrnoError(60);for(var a=0,i=0;i<n;i++){var s;try{s=e.tty.ops.get_char(e.tty)}catch(e){throw new ot.ErrnoError(29)}if(void 0===s&&0===a)throw new ot.ErrnoError(6);if(null==s)break;a++,t[r+i]=s}return a&&(e.node.timestamp=Date.now()),a},write(e,t,r,n,o){if(!e.tty||!e.tty.ops.put_char)throw new ot.ErrnoError(60);try{for(var a=0;a<n;a++)e.tty.ops.put_char(e.tty,t[r+a])}catch(e){throw new ot.ErrnoError(29)}return n&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:e=>(()=>{if(!Qe.length){var e=null;if("undefined"!=typeof window&&"function"==typeof window.prompt?null!==(e=window.prompt("Input: "))&&(e+="\n"):"function"==typeof readline&&null!==(e=readline())&&(e+="\n"),!e)return null;Qe=Je(e,!0)}return Qe.shift()})(),put_char(e,t){null===t||10===t?(_(We(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(_(We(e.output,0)),e.output=[])},ioctl_tcgets:e=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(e,t,r)=>0,ioctl_tiocgwinsz:e=>[24,80]},default_tty1_ops:{put_char(e,t){null===t||10===t?(y(We(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},fsync(e){e.output&&e.output.length>0&&(y(We(e.output,0)),e.output=[])}}},tt=e=>{U()},rt={ops_table:null,mount:e=>rt.createNode(null,"/",16895,0),createNode(e,t,r,n){if(ot.isBlkdev(r)||ot.isFIFO(r))throw new ot.ErrnoError(63);rt.ops_table||={dir:{node:{getattr:rt.node_ops.getattr,setattr:rt.node_ops.setattr,lookup:rt.node_ops.lookup,mknod:rt.node_ops.mknod,rename:rt.node_ops.rename,unlink:rt.node_ops.unlink,rmdir:rt.node_ops.rmdir,readdir:rt.node_ops.readdir,symlink:rt.node_ops.symlink},stream:{llseek:rt.stream_ops.llseek}},file:{node:{getattr:rt.node_ops.getattr,setattr:rt.node_ops.setattr},stream:{llseek:rt.stream_ops.llseek,read:rt.stream_ops.read,write:rt.stream_ops.write,allocate:rt.stream_ops.allocate,mmap:rt.stream_ops.mmap,msync:rt.stream_ops.msync}},link:{node:{getattr:rt.node_ops.getattr,setattr:rt.node_ops.setattr,readlink:rt.node_ops.readlink},stream:{}},chrdev:{node:{getattr:rt.node_ops.getattr,setattr:rt.node_ops.setattr},stream:ot.chrdev_stream_ops}};var o=ot.createNode(e,t,r,n);return ot.isDir(o.mode)?(o.node_ops=rt.ops_table.dir.node,o.stream_ops=rt.ops_table.dir.stream,o.contents={}):ot.isFile(o.mode)?(o.node_ops=rt.ops_table.file.node,o.stream_ops=rt.ops_table.file.stream,o.usedBytes=0,o.contents=null):ot.isLink(o.mode)?(o.node_ops=rt.ops_table.link.node,o.stream_ops=rt.ops_table.link.stream):ot.isChrdev(o.mode)&&(o.node_ops=rt.ops_table.chrdev.node,o.stream_ops=rt.ops_table.chrdev.stream),o.timestamp=Date.now(),e&&(e.contents[t]=o,e.timestamp=o.timestamp),o},getFileDataAsTypedArray:e=>e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array(0),expandFileStorage(e,t){var r=e.contents?e.contents.length:0;if(!(r>=t)){t=Math.max(t,r*(r<1048576?2:1.125)>>>0),0!=r&&(t=Math.max(t,256));var n=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(n.subarray(0,e.usedBytes),0)}},resizeFileStorage(e,t){if(e.usedBytes!=t)if(0==t)e.contents=null,e.usedBytes=0;else{var r=e.contents;e.contents=new Uint8Array(t),r&&e.contents.set(r.subarray(0,Math.min(t,e.usedBytes))),e.usedBytes=t}},node_ops:{getattr(e){var t={};return t.dev=ot.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,ot.isDir(e.mode)?t.size=4096:ot.isFile(e.mode)?t.size=e.usedBytes:ot.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&rt.resizeFileStorage(e,t.size)},lookup(e,t){throw ot.genericErrors[44]},mknod:(e,t,r,n)=>rt.createNode(e,t,r,n),rename(e,t,r){if(ot.isDir(e.mode)){var n;try{n=ot.lookupNode(t,r)}catch(e){}if(n)for(var o in n.contents)throw new ot.ErrnoError(55)}delete e.parent.contents[e.name],e.parent.timestamp=Date.now(),e.name=r,t.contents[r]=e,t.timestamp=e.parent.timestamp,e.parent=t},unlink(e,t){delete e.contents[t],e.timestamp=Date.now()},rmdir(e,t){var r=ot.lookupNode(e,t);for(var n in r.contents)throw new ot.ErrnoError(55);delete e.contents[t],e.timestamp=Date.now()},readdir(e){var t=[".",".."];for(var r of Object.keys(e.contents))t.push(r);return t},symlink(e,t,r){var n=rt.createNode(e,t,41471,0);return n.link=r,n},readlink(e){if(!ot.isLink(e.mode))throw new ot.ErrnoError(28);return e.link}},stream_ops:{read(e,t,r,n,o){var a=e.node.contents;if(o>=e.node.usedBytes)return 0;var i=Math.min(e.node.usedBytes-o,n);if(i>8&&a.subarray)t.set(a.subarray(o,o+i),r);else for(var s=0;s<i;s++)t[r+s]=a[o+s];return i},write(e,t,r,n,o,a){if(!n)return 0;var i=e.node;if(i.timestamp=Date.now(),t.subarray&&(!i.contents||i.contents.subarray)){if(a)return i.contents=t.subarray(r,r+n),i.usedBytes=n,n;if(0===i.usedBytes&&0===o)return i.contents=t.slice(r,r+n),i.usedBytes=n,n;if(o+n<=i.usedBytes)return i.contents.set(t.subarray(r,r+n),o),n}if(rt.expandFileStorage(i,o+n),i.contents.subarray&&t.subarray)i.contents.set(t.subarray(r,r+n),o);else for(var s=0;s<n;s++)i.contents[o+s]=t[r+s];return i.usedBytes=Math.max(i.usedBytes,o+n),n},llseek(e,t,r){var n=t;if(1===r?n+=e.position:2===r&&ot.isFile(e.node.mode)&&(n+=e.node.usedBytes),n<0)throw new ot.ErrnoError(28);return n},allocate(e,t,r){rt.expandFileStorage(e.node,t+r),e.node.usedBytes=Math.max(e.node.usedBytes,t+r)},mmap(e,t,r,n,o){if(!ot.isFile(e.node.mode))throw new ot.ErrnoError(43);var a,i,s=e.node.contents;if(2&o||s.buffer!==b.buffer){if((r>0||r+t<s.length)&&(s=s.subarray?s.subarray(r,r+t):Array.prototype.slice.call(s,r,r+t)),i=!0,!(a=tt()))throw new ot.ErrnoError(48);b.set(s,a)}else i=!1,a=s.byteOffset;return{ptr:a,allocated:i}},msync:(e,t,r,n,o)=>(rt.stream_ops.write(e,t,0,n,r,!1),0)}},nt=(e,t)=>{var r=0;return e&&(r|=365),t&&(r|=146),r},ot={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:class{constructor(e){this.name="ErrnoError",this.errno=e}},genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath(e,t={}){if(!(e=Ye.resolve(e)))return{path:"",node:null};if((t=Object.assign({follow_mount:!0,recurse_count:0},t)).recurse_count>8)throw new ot.ErrnoError(32);for(var r=e.split("/").filter((e=>!!e)),n=ot.root,o="/",a=0;a<r.length;a++){var i=a===r.length-1;if(i&&t.parent)break;if(n=ot.lookupNode(n,r[a]),o=Ve.join2(o,r[a]),ot.isMountpoint(n)&&(!i||i&&t.follow_mount)&&(n=n.mounted.root),!i||t.follow)for(var s=0;ot.isLink(n.mode);){var l=ot.readlink(o);if(o=Ye.resolve(Ve.dirname(o),l),n=ot.lookupPath(o,{recurse_count:t.recurse_count+1}).node,s++>40)throw new ot.ErrnoError(32)}}return{path:o,node:n}},getPath(e){for(var t;;){if(ot.isRoot(e)){var r=e.mount.mountpoint;return t?"/"!==r[r.length-1]?`${r}/${t}`:r+t:r}t=t?`${e.name}/${t}`:e.name,e=e.parent}},hashName(e,t){for(var r=0,n=0;n<t.length;n++)r=(r<<5)-r+t.charCodeAt(n)|0;return(e+r>>>0)%ot.nameTable.length},hashAddNode(e){var t=ot.hashName(e.parent.id,e.name);e.name_next=ot.nameTable[t],ot.nameTable[t]=e},hashRemoveNode(e){var t=ot.hashName(e.parent.id,e.name);if(ot.nameTable[t]===e)ot.nameTable[t]=e.name_next;else for(var r=ot.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode(e,t){var r=ot.mayLookup(e);if(r)throw new ot.ErrnoError(r);for(var n=ot.hashName(e.id,t),o=ot.nameTable[n];o;o=o.name_next){var a=o.name;if(o.parent.id===e.id&&a===t)return o}return ot.lookup(e,t)},createNode(e,t,r,n){var o=new ot.FSNode(e,t,r,n);return ot.hashAddNode(o),o},destroyNode(e){ot.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagsToPermissionString(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>ot.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup(e){if(!ot.isDir(e.mode))return 54;var t=ot.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate(e,t){try{ot.lookupNode(e,t);return 20}catch(e){}return ot.nodePermissions(e,"wx")},mayDelete(e,t,r){var n;try{n=ot.lookupNode(e,t)}catch(e){return e.errno}var o=ot.nodePermissions(e,"wx");if(o)return o;if(r){if(!ot.isDir(n.mode))return 54;if(ot.isRoot(n)||ot.getPath(n)===ot.cwd())return 10}else if(ot.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?ot.isLink(e.mode)?32:ot.isDir(e.mode)&&("r"!==ot.flagsToPermissionString(t)||512&t)?31:ot.nodePermissions(e,ot.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd(){for(var e=0;e<=ot.MAX_OPEN_FDS;e++)if(!ot.streams[e])return e;throw new ot.ErrnoError(33)},getStreamChecked(e){var t=ot.getStream(e);if(!t)throw new ot.ErrnoError(8);return t},getStream:e=>ot.streams[e],createStream:(e,t=-1)=>(ot.FSStream||(ot.FSStream=function(){this.shared={}},ot.FSStream.prototype={},Object.defineProperties(ot.FSStream.prototype,{object:{get(){return this.node},set(e){this.node=e}},isRead:{get(){return 1!=(2097155&this.flags)}},isWrite:{get(){return 0!=(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(e){this.shared.flags=e}},position:{get(){return this.shared.position},set(e){this.shared.position=e}}})),e=Object.assign(new ot.FSStream,e),-1==t&&(t=ot.nextfd()),e.fd=t,ot.streams[t]=e,e),closeStream(e){ot.streams[e]=null},chrdev_stream_ops:{open(e){var t=ot.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open?.(e)},llseek(){throw new ot.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice(e,t){ot.devices[e]={stream_ops:t}},getDevice:e=>ot.devices[e],getMounts(e){for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push(...n.mounts)}return t},syncfs(e,t){"function"==typeof e&&(t=e,e=!1),ot.syncFSRequests++,ot.syncFSRequests>1&&y(`warning: ${ot.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var r=ot.getMounts(ot.root.mount),n=0;function o(e){return ot.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,o(e));++n>=r.length&&o(null)}r.forEach((t=>{if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount(e,t,r){var n,o="/"===r,a=!r;if(o&&ot.root)throw new ot.ErrnoError(10);if(!o&&!a){var i=ot.lookupPath(r,{follow_mount:!1});if(r=i.path,n=i.node,ot.isMountpoint(n))throw new ot.ErrnoError(10);if(!ot.isDir(n.mode))throw new ot.ErrnoError(54)}var s={type:e,opts:t,mountpoint:r,mounts:[]},l=e.mount(s);return l.mount=s,s.root=l,o?ot.root=l:n&&(n.mounted=s,n.mount&&n.mount.mounts.push(s)),l},unmount(e){var t=ot.lookupPath(e,{follow_mount:!1});if(!ot.isMountpoint(t.node))throw new ot.ErrnoError(28);var r=t.node,n=r.mounted,o=ot.getMounts(n);Object.keys(ot.nameTable).forEach((e=>{for(var t=ot.nameTable[e];t;){var r=t.name_next;o.includes(t.mount)&&ot.destroyNode(t),t=r}})),r.mounted=null;var a=r.mount.mounts.indexOf(n);r.mount.mounts.splice(a,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod(e,t,r){var n=ot.lookupPath(e,{parent:!0}).node,o=Ve.basename(e);if(!o||"."===o||".."===o)throw new ot.ErrnoError(28);var a=ot.mayCreate(n,o);if(a)throw new ot.ErrnoError(a);if(!n.node_ops.mknod)throw new ot.ErrnoError(63);return n.node_ops.mknod(n,o,t,r)},create:(e,t)=>(t=void 0!==t?t:438,t&=4095,t|=32768,ot.mknod(e,t,0)),mkdir:(e,t)=>(t=void 0!==t?t:511,t&=1023,t|=16384,ot.mknod(e,t,0)),mkdirTree(e,t){for(var r=e.split("/"),n="",o=0;o<r.length;++o)if(r[o]){n+="/"+r[o];try{ot.mkdir(n,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:(e,t,r)=>(void 0===r&&(r=t,t=438),t|=8192,ot.mknod(e,t,r)),symlink(e,t){if(!Ye.resolve(e))throw new ot.ErrnoError(44);var r=ot.lookupPath(t,{parent:!0}).node;if(!r)throw new ot.ErrnoError(44);var n=Ve.basename(t),o=ot.mayCreate(r,n);if(o)throw new ot.ErrnoError(o);if(!r.node_ops.symlink)throw new ot.ErrnoError(63);return r.node_ops.symlink(r,n,e)},rename(e,t){var r,n,o=Ve.dirname(e),a=Ve.dirname(t),i=Ve.basename(e),s=Ve.basename(t);if(r=ot.lookupPath(e,{parent:!0}).node,n=ot.lookupPath(t,{parent:!0}).node,!r||!n)throw new ot.ErrnoError(44);if(r.mount!==n.mount)throw new ot.ErrnoError(75);var l,c=ot.lookupNode(r,i),u=Ye.relative(e,a);if("."!==u.charAt(0))throw new ot.ErrnoError(28);if("."!==(u=Ye.relative(t,o)).charAt(0))throw new ot.ErrnoError(55);try{l=ot.lookupNode(n,s)}catch(e){}if(c!==l){var d=ot.isDir(c.mode),m=ot.mayDelete(r,i,d);if(m)throw new ot.ErrnoError(m);if(m=l?ot.mayDelete(n,s,d):ot.mayCreate(n,s))throw new ot.ErrnoError(m);if(!r.node_ops.rename)throw new ot.ErrnoError(63);if(ot.isMountpoint(c)||l&&ot.isMountpoint(l))throw new ot.ErrnoError(10);if(n!==r&&(m=ot.nodePermissions(r,"w")))throw new ot.ErrnoError(m);ot.hashRemoveNode(c);try{r.node_ops.rename(c,n,s)}catch(e){throw e}finally{ot.hashAddNode(c)}}},rmdir(e){var t=ot.lookupPath(e,{parent:!0}).node,r=Ve.basename(e),n=ot.lookupNode(t,r),o=ot.mayDelete(t,r,!0);if(o)throw new ot.ErrnoError(o);if(!t.node_ops.rmdir)throw new ot.ErrnoError(63);if(ot.isMountpoint(n))throw new ot.ErrnoError(10);t.node_ops.rmdir(t,r),ot.destroyNode(n)},readdir(e){var t=ot.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new ot.ErrnoError(54);return t.node_ops.readdir(t)},unlink(e){var t=ot.lookupPath(e,{parent:!0}).node;if(!t)throw new ot.ErrnoError(44);var r=Ve.basename(e),n=ot.lookupNode(t,r),o=ot.mayDelete(t,r,!1);if(o)throw new ot.ErrnoError(o);if(!t.node_ops.unlink)throw new ot.ErrnoError(63);if(ot.isMountpoint(n))throw new ot.ErrnoError(10);t.node_ops.unlink(t,r),ot.destroyNode(n)},readlink(e){var t=ot.lookupPath(e).node;if(!t)throw new ot.ErrnoError(44);if(!t.node_ops.readlink)throw new ot.ErrnoError(28);return Ye.resolve(ot.getPath(t.parent),t.node_ops.readlink(t))},stat(e,t){var r=ot.lookupPath(e,{follow:!t}).node;if(!r)throw new ot.ErrnoError(44);if(!r.node_ops.getattr)throw new ot.ErrnoError(63);return r.node_ops.getattr(r)},lstat:e=>ot.stat(e,!0),chmod(e,t,r){var n;"string"==typeof e?n=ot.lookupPath(e,{follow:!r}).node:n=e;if(!n.node_ops.setattr)throw new ot.ErrnoError(63);n.node_ops.setattr(n,{mode:4095&t|-4096&n.mode,timestamp:Date.now()})},lchmod(e,t){ot.chmod(e,t,!0)},fchmod(e,t){var r=ot.getStreamChecked(e);ot.chmod(r.node,t)},chown(e,t,r,n){var o;"string"==typeof e?o=ot.lookupPath(e,{follow:!n}).node:o=e;if(!o.node_ops.setattr)throw new ot.ErrnoError(63);o.node_ops.setattr(o,{timestamp:Date.now()})},lchown(e,t,r){ot.chown(e,t,r,!0)},fchown(e,t,r){var n=ot.getStreamChecked(e);ot.chown(n.node,t,r)},truncate(e,t){if(t<0)throw new ot.ErrnoError(28);var r;"string"==typeof e?r=ot.lookupPath(e,{follow:!0}).node:r=e;if(!r.node_ops.setattr)throw new ot.ErrnoError(63);if(ot.isDir(r.mode))throw new ot.ErrnoError(31);if(!ot.isFile(r.mode))throw new ot.ErrnoError(28);var n=ot.nodePermissions(r,"w");if(n)throw new ot.ErrnoError(n);r.node_ops.setattr(r,{size:t,timestamp:Date.now()})},ftruncate(e,t){var r=ot.getStreamChecked(e);if(0==(2097155&r.flags))throw new ot.ErrnoError(28);ot.truncate(r.node,t)},utime(e,t,r){var n=ot.lookupPath(e,{follow:!0}).node;n.node_ops.setattr(n,{timestamp:Math.max(t,r)})},open(t,r,n){if(""===t)throw new ot.ErrnoError(44);var o;if(n=void 0===n?438:n,n=64&(r="string"==typeof r?(e=>{var t={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[e];if(void 0===t)throw new Error(`Unknown file open mode: ${e}`);return t})(r):r)?4095&n|32768:0,"object"==typeof t)o=t;else{t=Ve.normalize(t);try{o=ot.lookupPath(t,{follow:!(131072&r)}).node}catch(e){}}var a=!1;if(64&r)if(o){if(128&r)throw new ot.ErrnoError(20)}else o=ot.mknod(t,n,0),a=!0;if(!o)throw new ot.ErrnoError(44);if(ot.isChrdev(o.mode)&&(r&=-513),65536&r&&!ot.isDir(o.mode))throw new ot.ErrnoError(54);if(!a){var i=ot.mayOpen(o,r);if(i)throw new ot.ErrnoError(i)}512&r&&!a&&ot.truncate(o,0),r&=-131713;var s=ot.createStream({node:o,path:ot.getPath(o),flags:r,seekable:!0,position:0,stream_ops:o.stream_ops,ungotten:[],error:!1});return s.stream_ops.open&&s.stream_ops.open(s),!e.logReadFiles||1&r||(ot.readFiles||(ot.readFiles={}),t in ot.readFiles||(ot.readFiles[t]=1)),s},close(e){if(ot.isClosed(e))throw new ot.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{ot.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new ot.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new ot.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read(e,t,r,n,o){if(n<0||o<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(1==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.read)throw new ot.ErrnoError(28);var a=void 0!==o;if(a){if(!e.seekable)throw new ot.ErrnoError(70)}else o=e.position;var i=e.stream_ops.read(e,t,r,n,o);return a||(e.position+=i),i},write(e,t,r,n,o,a){if(n<0||o<0)throw new ot.ErrnoError(28);if(ot.isClosed(e))throw new ot.ErrnoError(8);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(ot.isDir(e.node.mode))throw new ot.ErrnoError(31);if(!e.stream_ops.write)throw new ot.ErrnoError(28);e.seekable&&1024&e.flags&&ot.llseek(e,0,2);var i=void 0!==o;if(i){if(!e.seekable)throw new ot.ErrnoError(70)}else o=e.position;var s=e.stream_ops.write(e,t,r,n,o,a);return i||(e.position+=s),s},allocate(e,t,r){if(ot.isClosed(e))throw new ot.ErrnoError(8);if(t<0||r<=0)throw new ot.ErrnoError(28);if(0==(2097155&e.flags))throw new ot.ErrnoError(8);if(!ot.isFile(e.node.mode)&&!ot.isDir(e.node.mode))throw new ot.ErrnoError(43);if(!e.stream_ops.allocate)throw new ot.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap(e,t,r,n,o){if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new ot.ErrnoError(2);if(1==(2097155&e.flags))throw new ot.ErrnoError(2);if(!e.stream_ops.mmap)throw new ot.ErrnoError(43);return e.stream_ops.mmap(e,t,r,n,o)},msync:(e,t,r,n,o)=>e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0,munmap:e=>0,ioctl(e,t,r){if(!e.stream_ops.ioctl)throw new ot.ErrnoError(59);return e.stream_ops.ioctl(e,t,r)},readFile(e,t={}){if(t.flags=t.flags||0,t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error(`Invalid encoding type "${t.encoding}"`);var r,n=ot.open(e,t.flags),o=ot.stat(e).size,a=new Uint8Array(o);return ot.read(n,a,0,o,0),"utf8"===t.encoding?r=We(a,0):"binary"===t.encoding&&(r=a),ot.close(n),r},writeFile(e,t,r={}){r.flags=r.flags||577;var n=ot.open(e,r.flags,r.mode);if("string"==typeof t){var o=new Uint8Array(Ke(t)+1),a=Ze(t,o,0,o.length);ot.write(n,o,0,a,void 0,r.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");ot.write(n,t,0,t.byteLength,void 0,r.canOwn)}ot.close(n)},cwd:()=>ot.currentPath,chdir(e){var t=ot.lookupPath(e,{follow:!0});if(null===t.node)throw new ot.ErrnoError(44);if(!ot.isDir(t.node.mode))throw new ot.ErrnoError(54);var r=ot.nodePermissions(t.node,"x");if(r)throw new ot.ErrnoError(r);ot.currentPath=t.path},createDefaultDirectories(){ot.mkdir("/tmp"),ot.mkdir("/home"),ot.mkdir("/home/web_user")},createDefaultDevices(){ot.mkdir("/dev"),ot.registerDevice(ot.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),ot.mkdev("/dev/null",ot.makedev(1,3)),et.register(ot.makedev(5,0),et.default_tty_ops),et.register(ot.makedev(6,0),et.default_tty1_ops),ot.mkdev("/dev/tty",ot.makedev(5,0)),ot.mkdev("/dev/tty1",ot.makedev(6,0));var e=new Uint8Array(1024),t=0,r=()=>(0===t&&(t=$e(e).byteLength),e[--t]);ot.createDevice("/dev","random",r),ot.createDevice("/dev","urandom",r),ot.mkdir("/dev/shm"),ot.mkdir("/dev/shm/tmp")},createSpecialDirectories(){ot.mkdir("/proc");var e=ot.mkdir("/proc/self");ot.mkdir("/proc/self/fd"),ot.mount({mount(){var t=ot.createNode(e,"fd",16895,73);return t.node_ops={lookup(e,t){var r=+t,n=ot.getStreamChecked(r),o={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>n.path}};return o.parent=o,o}},t}},{},"/proc/self/fd")},createStandardStreams(){e.stdin?ot.createDevice("/dev","stdin",e.stdin):ot.symlink("/dev/tty","/dev/stdin"),e.stdout?ot.createDevice("/dev","stdout",null,e.stdout):ot.symlink("/dev/tty","/dev/stdout"),e.stderr?ot.createDevice("/dev","stderr",null,e.stderr):ot.symlink("/dev/tty1","/dev/stderr");ot.open("/dev/stdin",0),ot.open("/dev/stdout",1),ot.open("/dev/stderr",1)},staticInit(){[44].forEach((e=>{ot.genericErrors[e]=new ot.ErrnoError(e),ot.genericErrors[e].stack="<generic error, no stack>"})),ot.nameTable=new Array(4096),ot.mount(rt,{},"/"),ot.createDefaultDirectories(),ot.createDefaultDevices(),ot.createSpecialDirectories(),ot.filesystems={MEMFS:rt}},init(t,r,n){ot.init.initialized=!0,e.stdin=t||e.stdin,e.stdout=r||e.stdout,e.stderr=n||e.stderr,ot.createStandardStreams()},quit(){ot.init.initialized=!1;for(var e=0;e<ot.streams.length;e++){var t=ot.streams[e];t&&ot.close(t)}},findObject(e,t){var r=ot.analyzePath(e,t);return r.exists?r.object:null},analyzePath(e,t){try{e=(n=ot.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=ot.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=Ve.basename(e),n=ot.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath(e,t,r,n){e="string"==typeof e?e:ot.getPath(e);for(var o=t.split("/").reverse();o.length;){var a=o.pop();if(a){var i=Ve.join2(e,a);try{ot.mkdir(i)}catch(e){}e=i}}return i},createFile(e,t,r,n,o){var a=Ve.join2("string"==typeof e?e:ot.getPath(e),t),i=nt(n,o);return ot.create(a,i)},createDataFile(e,t,r,n,o,a){var i=t;e&&(e="string"==typeof e?e:ot.getPath(e),i=t?Ve.join2(e,t):e);var s=nt(n,o),l=ot.create(i,s);if(r){if("string"==typeof r){for(var c=new Array(r.length),u=0,d=r.length;u<d;++u)c[u]=r.charCodeAt(u);r=c}ot.chmod(l,146|s);var m=ot.open(l,577);ot.write(m,r,0,r.length,0,a),ot.close(m),ot.chmod(l,s)}},createDevice(e,t,r,n){var o=Ve.join2("string"==typeof e?e:ot.getPath(e),t),a=nt(!!r,!!n);ot.createDevice.major||(ot.createDevice.major=64);var i=ot.makedev(ot.createDevice.major++,0);return ot.registerDevice(i,{open(e){e.seekable=!1},close(e){n?.buffer?.length&&n(10)},read(e,t,n,o,a){for(var i=0,s=0;s<o;s++){var l;try{l=r()}catch(e){throw new ot.ErrnoError(29)}if(void 0===l&&0===i)throw new ot.ErrnoError(6);if(null==l)break;i++,t[n+s]=l}return i&&(e.node.timestamp=Date.now()),i},write(e,t,r,o,a){for(var i=0;i<o;i++)try{n(t[r+i])}catch(e){throw new ot.ErrnoError(29)}return o&&(e.node.timestamp=Date.now()),i}}),ot.mkdev(o,a,i)},forceLoadFile(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new 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(!u)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Je(u(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new ot.ErrnoError(29)}},createLazyFile(e,t,r,n,o){function i(){this.lengthKnown=!1,this.chunks=[]}if(i.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,r=e/this.chunkSize|0;return this.getter(r)[t]}},i.prototype.setDataGetter=function(e){this.getter=e},i.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",r,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+r+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),o=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,i=1048576;o||(i=n);var s=this;s.setDataGetter((e=>{var t=e*i,o=(e+1)*i-1;if(o=Math.min(o,n-1),void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>n-1)throw new Error("only "+n+" bytes available! programmer error!");var o=new XMLHttpRequest;if(o.open("GET",r,!1),n!==i&&o.setRequestHeader("Range","bytes="+e+"-"+t),o.responseType="arraybuffer",o.overrideMimeType&&o.overrideMimeType("text/plain; charset=x-user-defined"),o.send(null),!(o.status>=200&&o.status<300||304===o.status))throw new Error("Couldn't load "+r+". Status: "+o.status);return void 0!==o.response?new Uint8Array(o.response||[]):Je(o.responseText||"",!0)})(t,o)),void 0===s.chunks[e])throw new Error("doXHR failed!");return s.chunks[e]})),!a&&n||(i=n=1,n=this.getter(0).length,i=n,_("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=n,this._chunkSize=i,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!a)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var s=new i;Object.defineProperties(s,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var l={isDevice:!1,contents:s}}else l={isDevice:!1,url:r};var c=ot.createFile(e,t,l,n,o);l.contents?c.contents=l.contents:l.url&&(c.contents=null,c.url=l.url),Object.defineProperties(c,{usedBytes:{get:function(){return this.contents.length}}});var u={};function d(e,t,r,n,o){var a=e.node.contents;if(o>=a.length)return 0;var i=Math.min(a.length-o,n);if(a.slice)for(var s=0;s<i;s++)t[r+s]=a[o+s];else for(s=0;s<i;s++)t[r+s]=a.get(o+s);return i}return Object.keys(c.stream_ops).forEach((e=>{var t=c.stream_ops[e];u[e]=(...e)=>(ot.forceLoadFile(c),t(...e))})),u.read=(e,t,r,n,o)=>(ot.forceLoadFile(c),d(e,t,r,n,o)),u.mmap=(e,t,r,n,o)=>{ot.forceLoadFile(c);var a=tt();if(!a)throw new ot.ErrnoError(48);return d(e,b,a,t,r),{ptr:a,allocated:!0}},c.stream_ops=u,c}},at={DEFAULT_POLLMASK:5,calculateAt(e,t,r){if(Ve.isAbs(t))return t;var n;-100===e?n=ot.cwd():n=at.getStreamFromFD(e).path;if(0==t.length){if(!r)throw new ot.ErrnoError(44);return n}return Ve.join2(n,t)},doStat(e,t,r){var n=e(t);Se(4*(r>>2),n.dev),Se(4*(r+4>>2),n.mode),Te(4*(r+8>>2),n.nlink),Se(4*(r+12>>2),n.uid),Se(4*(r+16>>2),n.gid),Se(4*(r+20>>2),n.rdev),X=[n.size>>>0,(q=n.size,+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(r+24>>2),X[0]),Se(4*(r+28>>2),X[1]),Se(4*(r+32>>2),4096),Se(4*(r+36>>2),n.blocks);var o=n.atime.getTime(),a=n.mtime.getTime(),i=n.ctime.getTime();return X=[Math.floor(o/1e3)>>>0,(q=Math.floor(o/1e3),+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(r+40>>2),X[0]),Se(4*(r+44>>2),X[1]),Te(4*(r+48>>2),o%1e3*1e3),X=[Math.floor(a/1e3)>>>0,(q=Math.floor(a/1e3),+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(r+56>>2),X[0]),Se(4*(r+60>>2),X[1]),Te(4*(r+64>>2),a%1e3*1e3),X=[Math.floor(i/1e3)>>>0,(q=Math.floor(i/1e3),+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(r+72>>2),X[0]),Se(4*(r+76>>2),X[1]),Te(4*(r+80>>2),i%1e3*1e3),X=[n.ino>>>0,(q=n.ino,+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(r+88>>2),X[0]),Se(4*(r+92>>2),X[1]),0},doMsync(e,t,r,n,o){if(!ot.isFile(t.node.mode))throw new ot.ErrnoError(43);if(2&n)return 0;var a=E.slice(e,e+r);ot.msync(t,a,o,r,n)},varargs:void 0,get(){var e=Ee(4*(+at.varargs>>2));return at.varargs+=4,e},getp:()=>at.get(),getStr:e=>Ue(e),getStreamFromFD:e=>ot.getStreamChecked(e)};function it(e,t,r){if(s)return de(3,0,1,e,t,r);at.varargs=r;try{var n=at.getStreamFromFD(e);switch(t){case 0:if((o=at.get())<0)return-28;for(;ot.streams[o];)o++;return ot.createStream(n,o).fd;case 1:case 2:case 13:case 14:return 0;case 3:return n.flags;case 4:var o=at.get();return n.flags|=o,0;case 12:o=at.getp();return Ce(2*(o+0>>1),2),0}return-28}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return-e.errno}}function st(e,t,r){if(s)return de(4,0,1,e,t,r);at.varargs=r;try{var n=at.getStreamFromFD(e);switch(t){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return n.tty?0:-59;case 21505:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcgets){var o=n.tty.ops.ioctl_tcgets(n),a=at.getp();Se(4*(a>>2),o.c_iflag||0),Se(4*(a+4>>2),o.c_oflag||0),Se(4*(a+8>>2),o.c_cflag||0),Se(4*(a+12>>2),o.c_lflag||0);for(var i=0;i<32;i++)b[a+i+17]=o.c_cc[i]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!n.tty)return-59;if(n.tty.ops.ioctl_tcsets){a=at.getp();var l=Ee(4*(a>>2)),c=Ee(4*(a+4>>2)),u=Ee(4*(a+8>>2)),d=Ee(4*(a+12>>2)),m=[];for(i=0;i<32;i++)m.push(b[a+i+17]);return n.tty.ops.ioctl_tcsets(n.tty,t,{c_iflag:l,c_oflag:c,c_cflag:u,c_lflag:d,c_cc:m})}return 0;case 21519:if(!n.tty)return-59;a=at.getp();return Se(4*(a>>2),0),0;case 21520:return n.tty?-28:-59;case 21531:a=at.getp();return ot.ioctl(n,t,a);case 21523:if(!n.tty)return-59;if(n.tty.ops.ioctl_tiocgwinsz){var f=n.tty.ops.ioctl_tiocgwinsz(n.tty);a=at.getp();Ce(2*(a>>1),f[0]),Ce(2*(a+2>>1),f[1])}return 0;default:return-28}}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return-e.errno}}function lt(e,t,r,n){if(s)return de(5,0,1,e,t,r,n);at.varargs=n;try{t=at.getStr(t),t=at.calculateAt(e,t);var o=n?at.get():0;return ot.open(t,r,o).fd}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return-e.errno}}var ct=e=>{if("function"==typeof Atomics.waitAsync){Atomics.waitAsync(x,e>>2,e).value.then(ut);var t=e+128;Atomics.store(x,t>>2,1)}};e.__emscripten_thread_mailbox_await=ct;var ut=()=>{var e=Gi();e&&(ct(e),ve(ji))};e.checkMailbox=ut;var dt=[];function mt(){if(s)return de(6,0,1);ze=!1,J=0}var ft={errorCode:12288,defaultDisplayInitialized:!1,currentContext:0,currentReadSurface:0,currentDrawSurface:0,contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1},stringCache:{},setErrorCode(e){ft.errorCode=e},chooseConfig(e,t,r,n,o){if(62e3!=e)return ft.setErrorCode(12296),0;if(t)for(;;){var a=Ee(4*(t>>2));if(12321==a){var i=Ee(4*(t+4>>2));ft.contextAttributes.alpha=i>0}else if(12325==a){var s=Ee(4*(t+4>>2));ft.contextAttributes.depth=s>0}else if(12326==a){var l=Ee(4*(t+4>>2));ft.contextAttributes.stencil=l>0}else if(12337==a){var c=Ee(4*(t+4>>2));ft.contextAttributes.antialias=c>0}else if(12338==a){c=Ee(4*(t+4>>2));ft.contextAttributes.antialias=1==c}else if(12544==a){var u=Ee(4*(t+4>>2));ft.contextAttributes.lowLatency=12547!=u}else if(12344==a)break;t+=8}return r&&n||o?(o&&Se(4*(o>>2),1),r&&n>0&&Te(4*(r>>2),62002),ft.setErrorCode(12288),1):(ft.setErrorCode(12300),0)}};function pt(e){return s?de(7,0,1,e):12448==e?(ft.setErrorCode(12288),1):(ft.setErrorCode(12300),0)}function ht(e,t,r,n,o){return s?de(8,0,1,e,t,r,n,o):ft.chooseConfig(e,t,r,n,o)}var vt=e=>{var t=["ANGLE_instanced_arrays","EXT_blend_minmax","EXT_disjoint_timer_query","EXT_frag_depth","EXT_shader_texture_lod","EXT_sRGB","OES_element_index_uint","OES_fbo_render_mipmap","OES_standard_derivatives","OES_texture_float","OES_texture_half_float","OES_texture_half_float_linear","OES_vertex_array_object","WEBGL_color_buffer_float","WEBGL_depth_texture","WEBGL_draw_buffers","EXT_color_buffer_half_float","EXT_depth_clamp","EXT_float_blend","EXT_texture_compression_bptc","EXT_texture_compression_rgtc","EXT_texture_filter_anisotropic","KHR_parallel_shader_compile","OES_texture_float_linear","WEBGL_blend_func_extended","WEBGL_compressed_texture_astc","WEBGL_compressed_texture_etc","WEBGL_compressed_texture_etc1","WEBGL_compressed_texture_s3tc","WEBGL_compressed_texture_s3tc_srgb","WEBGL_debug_renderer_info","WEBGL_debug_shaders","WEBGL_lose_context","WEBGL_multi_draw"];return(e.getSupportedExtensions()||[]).filter((e=>t.includes(e)))},gt={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:{},offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:e=>{gt.lastError||(gt.lastError=e)},getNewId:e=>{for(var t=gt.counter++,r=e.length;r<t;r++)e[r]=null;return t},genObject:(e,t,r,n)=>{for(var o=0;o<e;o++){var a=xi[r](),i=a&&gt.getNewId(n);a?(a.name=i,n[i]=a):gt.recordError(1282),Se(4*(t+4*o>>2),i)}},getSource:(e,t,r,n)=>{for(var o="",a=0;a<t;++a){var i=n?ke(4*(n+4*a>>2)):void 0;o+=Ue(ke(4*(r+4*a>>2)),i)}return o},createContext:(e,t)=>{if(!e.getContextSafariWebGL2Fixed){e.getContextSafariWebGL2Fixed=e.getContext,e.getContext=function(t,r){var n=e.getContextSafariWebGL2Fixed(t,r);return"webgl"==t==n instanceof WebGLRenderingContext?n:null}}var r=e.getContext("webgl",t);return r?gt.registerContext(r,t):0},registerContext:(e,t)=>{var r=Ui(8);Te(4*(r+4>>2),Gi());var n={handle:r,attributes:t,version:t.majorVersion,GLctx:e};return e.canvas&&(e.canvas.GLctxObject=n),gt.contexts[r]=n,(void 0===t.enableExtensionsByDefault||t.enableExtensionsByDefault)&&gt.initExtensions(n),r},makeContextCurrent:t=>(gt.currentContext=gt.contexts[t],e.ctx=xi=gt.currentContext?.GLctx,!(t&&!xi)),getContext:e=>gt.contexts[e],deleteContext:e=>{gt.currentContext===gt.contexts[e]&&(gt.currentContext=null),"object"==typeof Nt&&Nt.removeAllHandlersOnTarget(gt.contexts[e].GLctx.canvas),gt.contexts[e]&&gt.contexts[e].GLctx.canvas&&(gt.contexts[e].GLctx.canvas.GLctxObject=void 0),Hi(gt.contexts[e].handle),gt.contexts[e]=null},initExtensions:e=>{if(e||=gt.currentContext,!e.initExtensionsDone){e.initExtensionsDone=!0;var t,r=e.GLctx;(e=>{var t=e.getExtension("ANGLE_instanced_arrays");if(t)e.vertexAttribDivisor=(e,r)=>t.vertexAttribDivisorANGLE(e,r),e.drawArraysInstanced=(e,r,n,o)=>t.drawArraysInstancedANGLE(e,r,n,o),e.drawElementsInstanced=(e,r,n,o,a)=>t.drawElementsInstancedANGLE(e,r,n,o,a)})(r),(e=>{var t=e.getExtension("OES_vertex_array_object");if(t)e.createVertexArray=()=>t.createVertexArrayOES(),e.deleteVertexArray=e=>t.deleteVertexArrayOES(e),e.bindVertexArray=e=>t.bindVertexArrayOES(e),e.isVertexArray=e=>t.isVertexArrayOES(e)})(r),(e=>{var t=e.getExtension("WEBGL_draw_buffers");if(t)e.drawBuffers=(e,r)=>t.drawBuffersWEBGL(e,r)})(r),r.disjointTimerQueryExt=r.getExtension("EXT_disjoint_timer_query"),(t=r).multiDrawWebgl=t.getExtension("WEBGL_multi_draw"),vt(r).forEach((e=>{e.includes("lose_context")||e.includes("debug")||r.getExtension(e)}))}}};function _t(t,r,n,o){if(s)return de(9,0,1,t,r,n,o);if(62e3!=t)return ft.setErrorCode(12296),0;for(var a=1;;){var i=Ee(4*(o>>2));if(12440!=i){if(12344==i)break;return ft.setErrorCode(12292),0}a=Ee(4*(o+4>>2)),o+=8}return 2!=a?(ft.setErrorCode(12293),0):(ft.contextAttributes.majorVersion=a-1,ft.contextAttributes.minorVersion=0,ft.context=gt.createContext(e.canvas,ft.contextAttributes),0!=ft.context?(ft.setErrorCode(12288),gt.makeContextCurrent(ft.context),e.useWebGL=!0,ye.moduleContextCreatedCallbacks.forEach((function(e){e()})),gt.makeContextCurrent(null),62004):(ft.setErrorCode(12297),0))}function yt(e,t,r,n){return s?de(10,0,1,e,t,r,n):62e3!=e?(ft.setErrorCode(12296),0):62002!=t?(ft.setErrorCode(12293),0):(ft.setErrorCode(12288),62006)}function wt(e,t){return s?de(11,0,1,e,t):62e3!=e?(ft.setErrorCode(12296),0):62004!=t?(ft.setErrorCode(12294),0):(gt.deleteContext(ft.context),ft.setErrorCode(12288),ft.currentContext==t&&(ft.currentContext=0),1)}function bt(e,t){return s?de(12,0,1,e,t):62e3!=e?(ft.setErrorCode(12296),0):62006!=t?(ft.setErrorCode(12301),1):(ft.currentReadSurface==t&&(ft.currentReadSurface=0),ft.currentDrawSurface==t&&(ft.currentDrawSurface=0),ft.setErrorCode(12288),1)}function Et(e,t,r,n){if(s)return de(13,0,1,e,t,r,n);if(62e3!=e)return ft.setErrorCode(12296),0;if(62002!=t)return ft.setErrorCode(12293),0;if(!n)return ft.setErrorCode(12300),0;switch(ft.setErrorCode(12288),r){case 12320:return Se(4*(n>>2),ft.contextAttributes.alpha?32:24),1;case 12321:return Se(4*(n>>2),ft.contextAttributes.alpha?8:0),1;case 12322:case 12323:case 12324:return Se(4*(n>>2),8),1;case 12325:return Se(4*(n>>2),ft.contextAttributes.depth?24:0),1;case 12326:return Se(4*(n>>2),ft.contextAttributes.stencil?8:0),1;case 12327:case 12335:case 12340:return Se(4*(n>>2),12344),1;case 12328:return Se(4*(n>>2),62002),1;case 12329:case 12333:case 12334:case 12345:case 12346:case 12347:case 12349:case 12350:case 12354:return Se(4*(n>>2),0),1;case 12330:case 12332:return Se(4*(n>>2),4096),1;case 12331:return Se(4*(n>>2),16777216),1;case 12337:return Se(4*(n>>2),ft.contextAttributes.antialias?4:0),1;case 12338:return Se(4*(n>>2),ft.contextAttributes.antialias?1:0),1;case 12339:case 12352:return Se(4*(n>>2),4),1;case 12341:case 12342:case 12343:return Se(4*(n>>2),-1),1;case 12348:return Se(4*(n>>2),1),1;case 12351:return Se(4*(n>>2),12430),1;default:return ft.setErrorCode(12292),0}}function kt(e){return s?de(14,0,1,e):(ft.setErrorCode(12288),0!=e&&1!=e?0:62e3)}function xt(){return s?de(15,0,1):ft.errorCode}function Lt(e,t,r){return s?de(16,0,1,e,t,r):62e3!=e?(ft.setErrorCode(12296),0):(t&&Se(4*(t>>2),1),r&&Se(4*(r>>2),4),ft.defaultDisplayInitialized=!0,ft.setErrorCode(12288),1)}function Ct(e,t,r,n){return s?de(17,0,1,e,t,r,n):62e3!=e?(ft.setErrorCode(12296),0):0!=n&&62004!=n?(ft.setErrorCode(12294),0):0!=r&&62006!=r||0!=t&&62006!=t?(ft.setErrorCode(12301),0):(gt.makeContextCurrent(n?ft.context:null),ft.currentContext=n,ft.currentDrawSurface=t,ft.currentReadSurface=r,ft.setErrorCode(12288),1)}var St=(e,t,r)=>Ze(e,E,t,r),Tt=e=>{var t=Ke(e)+1,r=Ui(t);return r&&St(e,r,t),r};function At(e,t){if(s)return de(18,0,1,e,t);if(62e3!=e)return ft.setErrorCode(12296),0;if(ft.setErrorCode(12288),ft.stringCache[t])return ft.stringCache[t];var r;switch(t){case 12371:r=Tt("Emscripten");break;case 12372:r=Tt("1.4 Emscripten EGL");break;case 12373:r=Tt("");break;case 12429:r=Tt("OpenGL_ES");break;default:return ft.setErrorCode(12300),0}return ft.stringCache[t]=r,r}function Ft(t,r){if(s)return de(19,0,1,t,r);if(ft.defaultDisplayInitialized)if(e.ctx){if(!e.ctx.isContextLost())return ft.setErrorCode(12288),1;ft.setErrorCode(12302)}else ft.setErrorCode(12290);else ft.setErrorCode(12289);return 0}function Dt(e,t){return s?de(20,0,1,e,t):62e3!=e?(ft.setErrorCode(12296),0):(0==t?te(0,0):te(1,t),ft.setErrorCode(12288),1)}function Pt(e){return s?de(21,0,1,e):62e3!=e?(ft.setErrorCode(12296),0):(ft.currentContext=0,ft.currentReadSurface=0,ft.currentDrawSurface=0,ft.defaultDisplayInitialized=!1,ft.setErrorCode(12288),1)}function Mt(){return s?de(22,0,1):(ft.setErrorCode(12288),1)}var Rt=Mt;function Bt(e){return s?de(23,0,1,e):(ft.setErrorCode(12288),1)}var It=[],Ot=(e,t)=>{var r;for(It.length=0;r=E[e++];){var n=105!=r;t+=(n&=112!=r)&&t%8?4:0,It.push(112==r?ke(4*(t>>2)):105==r?Ee(4*(t>>2)):be(8*(t>>3))),t+=n?8:4}return It},Nt={removeAllEventListeners(){for(;Nt.eventHandlers.length;)Nt._removeHandler(Nt.eventHandlers.length-1);Nt.deferredCalls=[]},inEventHandler:0,deferredCalls:[],deferCall(e,t,r){function n(e,t){if(e.length!=t.length)return!1;for(var r in e)if(e[r]!=t[r])return!1;return!0}for(var o in Nt.deferredCalls){var a=Nt.deferredCalls[o];if(a.targetFunction==e&&n(a.argsList,r))return}Nt.deferredCalls.push({targetFunction:e,precedence:t,argsList:r}),Nt.deferredCalls.sort(((e,t)=>e.precedence<t.precedence))},removeDeferredCalls(e){for(var t=0;t<Nt.deferredCalls.length;++t)Nt.deferredCalls[t].targetFunction==e&&(Nt.deferredCalls.splice(t,1),--t)},canPerformEventHandlerRequests:()=>navigator.userActivation?navigator.userActivation.isActive:Nt.inEventHandler&&Nt.currentEventHandler.allowsDeferredCalls,runDeferredCalls(){if(Nt.canPerformEventHandlerRequests())for(var e=0;e<Nt.deferredCalls.length;++e){var t=Nt.deferredCalls[e];Nt.deferredCalls.splice(e,1),--e,t.targetFunction(...t.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:(e,t)=>{for(var r=0;r<Nt.eventHandlers.length;++r)Nt.eventHandlers[r].target!=e||t&&t!=Nt.eventHandlers[r].eventTypeString||Nt._removeHandler(r--)},_removeHandler(e){var t=Nt.eventHandlers[e];t.target.removeEventListener(t.eventTypeString,t.eventListenerFunc,t.useCapture),Nt.eventHandlers.splice(e,1)},registerOrRemoveHandler(e){if(!e.target)return-4;if(e.callbackfunc)e.eventListenerFunc=function(t){++Nt.inEventHandler,Nt.currentEventHandler=e,Nt.runDeferredCalls(),e.handlerFunc(t),Nt.runDeferredCalls(),--Nt.inEventHandler},e.target.addEventListener(e.eventTypeString,e.eventListenerFunc,e.useCapture),Nt.eventHandlers.push(e);else for(var t=0;t<Nt.eventHandlers.length;++t)Nt.eventHandlers[t].target==e.target&&Nt.eventHandlers[t].eventTypeString==e.eventTypeString&&Nt._removeHandler(t--);return 0},getTargetThreadForEventCallback(e){switch(e){case 1:return 0;case 2:return ue.currentProxiedOperationCallerThread;default:return e}},getNodeNameForTarget:e=>e?e==window?"#window":e==screen?"#screen":e?.nodeName||"":"",fullscreenEnabled:()=>document.fullscreenEnabled||document.webkitFullscreenEnabled},zt={},Gt=[0,"undefined"!=typeof document?document:0,"undefined"!=typeof window?window:0],jt=e=>{var t;return e=(t=e)>2?Ue(t):t,Gt[e]||("undefined"!=typeof document?document.querySelector(e):void 0)},Wt=jt,Ut=(e,t,r)=>{var n=Wt(e);return n?n.controlTransferredOffscreen?-4:(Se(4*(t>>2),n.width),Se(4*(r>>2),n.height),0):-4};function Ht(e,t,r){return s?de(25,0,1,e,t,r):Ut(e,t,r)}var qt=e=>{var t=Ke(e)+1,r=Ki(t);return St(e,r,t),r},Xt=e=>ie((()=>{var t=Ki(8),r=t+4;((e,t,r)=>{Wt(e)?Ut(e,t,r):Ht(e,t,r)})(qt(e.id),t,r);return[Ee(4*(t>>2)),Ee(4*(r>>2))]})),Vt=(e,t,r)=>{var n=Wt(e);if(!n)return-4;if(n.controlTransferredOffscreen)return-4;var o=!1;if(n.GLctxObject?.GLctx){var a=n.GLctxObject.GLctx.getParameter(2978);o=0===a[0]&&0===a[1]&&a[2]===n.width&&a[3]===n.height}return n.width=t,n.height=r,o&&n.GLctxObject.GLctx.viewport(0,0,t,r),0};function $t(e,t,r){return s?de(26,0,1,e,t,r):Vt(e,t,r)}var Yt=(e,t,r)=>Wt(e)?Vt(e,t,r):$t(e,t,r),Qt=(e,t,r)=>{e.controlTransferredOffscreen?ie((()=>{var n=qt(e.id);Yt(n,t,r)})):(e.width=t,e.height=r)},Kt=(e,t,r)=>{e.style.paddingLeft=e.style.paddingRight=r+"px",e.style.paddingTop=e.style.paddingBottom=t+"px"},Zt=e=>Gt.indexOf(e)<0?e.getBoundingClientRect():{left:0,top:0},Jt=(e,t)=>{var r=(e=>{var t=Xt(e),r=t[0],n=t[1],o=e.style.width,a=e.style.height,i=e.style.backgroundColor,s=document.body.style.backgroundColor,l=e.style.paddingLeft,c=e.style.paddingRight,u=e.style.paddingTop,d=e.style.paddingBottom,m=e.style.marginLeft,f=e.style.marginRight,p=e.style.marginTop,h=e.style.marginBottom,v=document.body.style.margin,g=document.documentElement.style.overflow,_=document.body.scroll,y=e.style.imageRendering;function w(){document.fullscreenElement||document.webkitFullscreenElement||(document.removeEventListener("fullscreenchange",w),document.removeEventListener("webkitfullscreenchange",w),Qt(e,r,n),e.style.width=o,e.style.height=a,e.style.backgroundColor=i,s||(document.body.style.backgroundColor="white"),document.body.style.backgroundColor=s,e.style.paddingLeft=l,e.style.paddingRight=c,e.style.paddingTop=u,e.style.paddingBottom=d,e.style.marginLeft=m,e.style.marginRight=f,e.style.marginTop=p,e.style.marginBottom=h,document.body.style.margin=v,document.documentElement.style.overflow=g,document.body.scroll=_,e.style.imageRendering=y,e.GLctxObject&&e.GLctxObject.GLctx.viewport(0,0,r,n),zt.canvasResizedCallback&&(zt.canvasResizedCallbackTargetThread?Xi(zt.canvasResizedCallbackTargetThread,zt.canvasResizedCallback,37,0,zt.canvasResizedCallbackUserData):De(zt.canvasResizedCallback)(37,0,zt.canvasResizedCallbackUserData)))}return document.addEventListener("fullscreenchange",w),document.addEventListener("webkitfullscreenchange",w),w})(e),n=t.softFullscreen?innerWidth:screen.width,o=t.softFullscreen?innerHeight:screen.height,a=Zt(e),i=a.width,s=a.height,l=Xt(e),c=l[0],u=l[1];if(3==t.scaleMode)Kt(e,(o-s)/2,(n-i)/2),n=i,o=s;else if(2==t.scaleMode)if(n*u<c*o){var d=u*n/c;Kt(e,(o-d)/2,0),o=d}else{var m=c*o/u;Kt(e,0,(n-m)/2),n=m}e.style.backgroundColor||(e.style.backgroundColor="black"),document.body.style.backgroundColor||(document.body.style.backgroundColor="black"),e.style.width=n+"px",e.style.height=o+"px",1==t.filteringMode&&(e.style.imageRendering="optimizeSpeed",e.style.imageRendering="-moz-crisp-edges",e.style.imageRendering="-o-crisp-edges",e.style.imageRendering="-webkit-optimize-contrast",e.style.imageRendering="optimize-contrast",e.style.imageRendering="crisp-edges",e.style.imageRendering="pixelated");var f=2==t.canvasResolutionScaleMode?devicePixelRatio:1;if(0!=t.canvasResolutionScaleMode){var p=n*f|0,h=o*f|0;Qt(e,p,h),e.GLctxObject&&e.GLctxObject.GLctx.viewport(0,0,p,h)}return r},er=(e,t)=>{if(0==t.scaleMode&&0==t.canvasResolutionScaleMode||Jt(e,t),e.requestFullscreen)e.requestFullscreen();else{if(!e.webkitRequestFullscreen)return Nt.fullscreenEnabled()?-3:-1;e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}return zt=t,t.canvasResizedCallback&&(t.canvasResizedCallbackTargetThread?Xi(t.canvasResizedCallbackTargetThread,t.canvasResizedCallback,37,0,t.canvasResizedCallbackUserData):De(t.canvasResizedCallback)(37,0,t.canvasResizedCallbackUserData)),0};function tr(){if(s)return de(24,0,1);if(!Nt.fullscreenEnabled())return-1;Nt.removeDeferredCalls(er);var e=Gt[1];if(e.exitFullscreen)e.fullscreenElement&&e.exitFullscreen();else{if(!e.webkitExitFullscreen)return-1;e.webkitFullscreenElement&&e.webkitExitFullscreen()}return 0}var rr=e=>e.requestPointerLock?(e.requestPointerLock(),0):document.body.requestPointerLock?-3:-1;function nr(){return s?de(27,0,1):(Nt.removeDeferredCalls(rr),document.exitPointerLock?(document.exitPointerLock(),0):-1)}function or(){return s?de(28,0,1):devicePixelRatio}function ar(e,t,r){if(s)return de(29,0,1,e,t,r);if(!(e=jt(e)))return-4;var n=Zt(e);return Le(8*(t>>3),n.width),Le(8*(r>>3),n.height),0}var ir=(e,t)=>{Le(8*(e>>3),t.timestamp);for(var r=0;r<t.axes.length;++r)Le(8*(e+8*r+16>>3),t.axes[r]);for(r=0;r<t.buttons.length;++r)"object"==typeof t.buttons[r]?Le(8*(e+8*r+528>>3),t.buttons[r].value):Le(8*(e+8*r+528>>3),t.buttons[r]);for(r=0;r<t.buttons.length;++r)"object"==typeof t.buttons[r]?Se(4*(e+4*r+1040>>2),t.buttons[r].pressed):Se(4*(e+4*r+1040>>2),1==t.buttons[r]);Se(4*(e+1296>>2),t.connected),Se(4*(e+1300>>2),t.index),Se(4*(e+8>>2),t.axes.length),Se(4*(e+12>>2),t.buttons.length),St(t.id,e+1304,64),St(t.mapping,e+1368,64)};function sr(e,t){return s?de(30,0,1,e,t):e<0||e>=Nt.lastGamepadState.length?-5:Nt.lastGamepadState[e]?(ir(t,Nt.lastGamepadState[e]),0):-7}function lr(){return s?de(31,0,1):Nt.lastGamepadState.length}function cr(e,t){if(s)return de(32,0,1,e,t);Se(4*(e>>2),screen.width),Se(4*(t>>2),screen.height)}var ur=e=>xi.activeTexture(e),dr=(e,t)=>{xi.attachShader(gt.programs[e],gt.shaders[t])},mr=(e,t)=>{xi.disjointTimerQueryExt.beginQueryEXT(e,gt.queries[t])},fr=(e,t,r)=>{xi.bindAttribLocation(gt.programs[e],t,Ue(r))},pr=(e,t)=>{xi.bindBuffer(e,gt.buffers[t])},hr=(e,t)=>{xi.bindFramebuffer(e,gt.framebuffers[t])},vr=(e,t)=>{xi.bindRenderbuffer(e,gt.renderbuffers[t])},gr=(e,t)=>{xi.bindTexture(e,gt.textures[t])},_r=e=>{xi.bindVertexArray(gt.vaos[e])},yr=_r,wr=(e,t,r,n)=>xi.blendColor(e,t,r,n),br=e=>xi.blendEquation(e),Er=(e,t)=>xi.blendEquationSeparate(e,t),kr=(e,t)=>xi.blendFunc(e,t),xr=(e,t,r,n)=>xi.blendFuncSeparate(e,t,r,n),Lr=(e,t,r,n)=>{xi.bufferData(e,r?E.subarray(r,r+t):t,n)},Cr=(e,t,r,n)=>{xi.bufferSubData(e,t,E.subarray(n,n+r))},Sr=e=>xi.checkFramebufferStatus(e),Tr=e=>xi.clear(e),Ar=(e,t,r,n)=>xi.clearColor(e,t,r,n),Fr=e=>xi.clearDepth(e),Dr=e=>xi.clearStencil(e),Pr=(e,t,r,n)=>{xi.colorMask(!!e,!!t,!!r,!!n)},Mr=e=>{xi.compileShader(gt.shaders[e])},Rr=(e,t,r,n,o,a,i,s)=>{xi.compressedTexImage2D(e,t,r,n,o,a,s?E.subarray(s,s+i):null)},Br=(e,t,r,n,o,a,i,s,l)=>{xi.compressedTexSubImage2D(e,t,r,n,o,a,i,l?E.subarray(l,l+s):null)},Ir=(e,t,r,n,o,a,i,s)=>xi.copyTexImage2D(e,t,r,n,o,a,i,s),Or=(e,t,r,n,o,a,i,s)=>xi.copyTexSubImage2D(e,t,r,n,o,a,i,s),Nr=()=>{var e=gt.getNewId(gt.programs),t=xi.createProgram();return t.name=e,t.maxUniformLength=t.maxAttributeLength=t.maxUniformBlockNameLength=0,t.uniformIdCounter=1,gt.programs[e]=t,e},zr=e=>{var t=gt.getNewId(gt.shaders);return gt.shaders[t]=xi.createShader(e),t},Gr=e=>xi.cullFace(e),jr=(e,t)=>{for(var r=0;r<e;r++){var n=Ee(4*(t+4*r>>2)),o=gt.buffers[n];o&&(xi.deleteBuffer(o),o.name=0,gt.buffers[n]=null)}},Wr=(e,t)=>{for(var r=0;r<e;++r){var n=Ee(4*(t+4*r>>2)),o=gt.framebuffers[n];o&&(xi.deleteFramebuffer(o),o.name=0,gt.framebuffers[n]=null)}},Ur=e=>{if(e){var t=gt.programs[e];t?(xi.deleteProgram(t),t.name=0,gt.programs[e]=null):gt.recordError(1281)}},Hr=(e,t)=>{for(var r=0;r<e;r++){var n=Ee(4*(t+4*r>>2)),o=gt.queries[n];o&&(xi.disjointTimerQueryExt.deleteQueryEXT(o),gt.queries[n]=null)}},qr=(e,t)=>{for(var r=0;r<e;r++){var n=Ee(4*(t+4*r>>2)),o=gt.renderbuffers[n];o&&(xi.deleteRenderbuffer(o),o.name=0,gt.renderbuffers[n]=null)}},Xr=e=>{if(e){var t=gt.shaders[e];t?(xi.deleteShader(t),gt.shaders[e]=null):gt.recordError(1281)}},Vr=(e,t)=>{for(var r=0;r<e;r++){var n=Ee(4*(t+4*r>>2)),o=gt.textures[n];o&&(xi.deleteTexture(o),o.name=0,gt.textures[n]=null)}},$r=(e,t)=>{for(var r=0;r<e;r++){var n=Ee(4*(t+4*r>>2));xi.deleteVertexArray(gt.vaos[n]),gt.vaos[n]=null}},Yr=$r,Qr=e=>xi.depthFunc(e),Kr=e=>{xi.depthMask(!!e)},Zr=(e,t)=>xi.depthRange(e,t),Jr=(e,t)=>{xi.detachShader(gt.programs[e],gt.shaders[t])},en=e=>xi.disable(e),tn=e=>{xi.disableVertexAttribArray(e)},rn=(e,t,r)=>{xi.drawArrays(e,t,r)},nn=(e,t,r,n)=>{xi.drawArraysInstanced(e,t,r,n)},on=nn,an=[],sn=(e,t)=>{for(var r=an[e],n=0;n<e;n++)r[n]=Ee(4*(t+4*n>>2));xi.drawBuffers(r)},ln=sn,cn=(e,t,r,n)=>{xi.drawElements(e,t,r,n)},un=(e,t,r,n,o)=>{xi.drawElementsInstanced(e,t,r,n,o)},dn=un,mn=e=>xi.enable(e),fn=e=>{xi.enableVertexAttribArray(e)},pn=e=>{xi.disjointTimerQueryExt.endQueryEXT(e)},hn=()=>xi.finish(),vn=()=>xi.flush(),gn=(e,t,r,n)=>{xi.framebufferRenderbuffer(e,t,r,gt.renderbuffers[n])},_n=(e,t,r,n,o)=>{xi.framebufferTexture2D(e,t,r,gt.textures[n],o)},yn=e=>xi.frontFace(e),wn=(e,t)=>{gt.genObject(e,t,"createBuffer",gt.buffers)},bn=(e,t)=>{gt.genObject(e,t,"createFramebuffer",gt.framebuffers)},En=(e,t)=>{for(var r=0;r<e;r++){var n=xi.disjointTimerQueryExt.createQueryEXT();if(!n){for(gt.recordError(1282);r<e;)Se(4*(t+4*r++>>2),0);return}var o=gt.getNewId(gt.queries);n.name=o,gt.queries[o]=n,Se(4*(t+4*r>>2),o)}},kn=(e,t)=>{gt.genObject(e,t,"createRenderbuffer",gt.renderbuffers)},xn=(e,t)=>{gt.genObject(e,t,"createTexture",gt.textures)},Ln=(e,t)=>{gt.genObject(e,t,"createVertexArray",gt.vaos)},Cn=Ln,Sn=e=>xi.generateMipmap(e),Tn=(e,t,r,n,o,a,i,s)=>{t=gt.programs[t];var l=xi[e](t,r);if(l){var c=s&&St(l.name,s,n);o&&Se(4*(o>>2),c),a&&Se(4*(a>>2),l.size),i&&Se(4*(i>>2),l.type)}},An=(e,t,r,n,o,a,i)=>{Tn("getActiveAttrib",e,t,r,n,o,a,i)},Fn=(e,t,r,n,o,a,i)=>{Tn("getActiveUniform",e,t,r,n,o,a,i)},Dn=(e,t,r,n)=>{var o=xi.getAttachedShaders(gt.programs[e]),a=o.length;a>t&&(a=t),Se(4*(r>>2),a);for(var i=0;i<a;++i){var s=gt.shaders.indexOf(o[i]);Se(4*(n+4*i>>2),s)}},Pn=(e,t)=>xi.getAttribLocation(gt.programs[e],Ue(t)),Mn=(e,t)=>{Te(4*(e>>2),t);var r=ke(4*(e>>2));Te(4*(e+4>>2),(t-r)/4294967296)},Rn=(e,t,r)=>{if(t){var n=void 0;switch(e){case 36346:n=1;break;case 36344:return void(0!=r&&1!=r&&gt.recordError(1280));case 36345:n=0;break;case 34466:var o=xi.getParameter(34467);n=o?o.length:0}if(void 0===n){var a=xi.getParameter(e);switch(typeof a){case"number":n=a;break;case"boolean":n=a?1:0;break;case"string":return void gt.recordError(1280);case"object":if(null===a)switch(e){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:n=0;break;default:return void gt.recordError(1280)}else{if(a instanceof Float32Array||a instanceof Uint32Array||a instanceof Int32Array||a instanceof Array){for(var i=0;i<a.length;++i)switch(r){case 0:Se(4*(t+4*i>>2),a[i]);break;case 2:xe(4*(t+4*i>>2),a[i]);break;case 4:b[t+i]=a[i]?1:0}return}try{n=0|a.name}catch(t){return gt.recordError(1280),void y(`GL_INVALID_ENUM in glGet${r}v: Unknown object returned from WebGL getParameter(${e})! (error: ${t})`)}}break;default:return gt.recordError(1280),void y(`GL_INVALID_ENUM in glGet${r}v: Native code calling glGet${r}v(${e}) and it returns ${a} of type ${typeof a}!`)}}switch(r){case 1:Mn(t,n);break;case 0:Se(4*(t>>2),n);break;case 2:xe(4*(t>>2),n);break;case 4:b[t]=n?1:0}}else gt.recordError(1281)},Bn=(e,t)=>Rn(e,t,4),In=(e,t,r)=>{r?Se(4*(r>>2),xi.getBufferParameter(e,t)):gt.recordError(1281)},On=()=>{var e=xi.getError()||gt.lastError;return gt.lastError=0,e},Nn=(e,t)=>Rn(e,t,2),zn=(e,t,r,n)=>{var o=xi.getFramebufferAttachmentParameter(e,t,r);(o instanceof WebGLRenderbuffer||o instanceof WebGLTexture)&&(o=0|o.name),Se(4*(n>>2),o)},Gn=(e,t)=>Rn(e,t,0),jn=(e,t,r,n)=>{var o=xi.getProgramInfoLog(gt.programs[e]);null===o&&(o="(unknown error)");var a=t>0&&n?St(o,n,t):0;r&&Se(4*(r>>2),a)},Wn=(e,t,r)=>{if(r)if(e>=gt.counter)gt.recordError(1281);else if(e=gt.programs[e],35716==t){var n=xi.getProgramInfoLog(e);null===n&&(n="(unknown error)"),Se(4*(r>>2),n.length+1)}else if(35719==t){if(!e.maxUniformLength)for(var o=0;o<xi.getProgramParameter(e,35718);++o)e.maxUniformLength=Math.max(e.maxUniformLength,xi.getActiveUniform(e,o).name.length+1);Se(4*(r>>2),e.maxUniformLength)}else if(35722==t){if(!e.maxAttributeLength)for(o=0;o<xi.getProgramParameter(e,35721);++o)e.maxAttributeLength=Math.max(e.maxAttributeLength,xi.getActiveAttrib(e,o).name.length+1);Se(4*(r>>2),e.maxAttributeLength)}else if(35381==t){if(!e.maxUniformBlockNameLength)for(o=0;o<xi.getProgramParameter(e,35382);++o)e.maxUniformBlockNameLength=Math.max(e.maxUniformBlockNameLength,xi.getActiveUniformBlockName(e,o).length+1);Se(4*(r>>2),e.maxUniformBlockNameLength)}else Se(4*(r>>2),xi.getProgramParameter(e,t));else gt.recordError(1281)},Un=(e,t,r)=>{if(r){var n,o=gt.queries[e];n=xi.disjointTimerQueryExt.getQueryObjectEXT(o,t),Mn(r,"boolean"==typeof n?n?1:0:n)}else gt.recordError(1281)},Hn=Un,qn=(e,t,r)=>{if(r){var n=gt.queries[e],o=xi.disjointTimerQueryExt.getQueryObjectEXT(n,t);Se(4*(r>>2),"boolean"==typeof o?o?1:0:o)}else gt.recordError(1281)},Xn=qn,Vn=Un,$n=qn,Yn=(e,t,r)=>{r?Se(4*(r>>2),xi.disjointTimerQueryExt.getQueryEXT(e,t)):gt.recordError(1281)},Qn=(e,t,r)=>{r?Se(4*(r>>2),xi.getRenderbufferParameter(e,t)):gt.recordError(1281)},Kn=(e,t,r,n)=>{var o=xi.getShaderInfoLog(gt.shaders[e]);null===o&&(o="(unknown error)");var a=t>0&&n?St(o,n,t):0;r&&Se(4*(r>>2),a)},Zn=(e,t,r,n)=>{var o=xi.getShaderPrecisionFormat(e,t);Se(4*(r>>2),o.rangeMin),Se(4*(r+4>>2),o.rangeMax),Se(4*(n>>2),o.precision)},Jn=(e,t,r,n)=>{var o=xi.getShaderSource(gt.shaders[e]);if(o){var a=t>0&&n?St(o,n,t):0;r&&Se(4*(r>>2),a)}},eo=(e,t,r)=>{if(r)if(35716==t){var n=xi.getShaderInfoLog(gt.shaders[e]);null===n&&(n="(unknown error)");var o=n?n.length+1:0;Se(4*(r>>2),o)}else if(35720==t){var a=xi.getShaderSource(gt.shaders[e]),i=a?a.length+1:0;Se(4*(r>>2),i)}else Se(4*(r>>2),xi.getShaderParameter(gt.shaders[e],t));else gt.recordError(1281)},to=e=>{var t,r=gt.stringCache[e];if(!r){switch(e){case 7939:r=Tt((t=vt(xi),t.concat(t.map((e=>"GL_"+e)))).join(" "));break;case 7936:case 7937:case 37445:case 37446:var n=xi.getParameter(e);n||gt.recordError(1280),r=n?Tt(n):0;break;case 7938:var o=xi.getParameter(7938);r=Tt(o=`OpenGL ES 2.0 (${o})`);break;case 35724:var a=xi.getParameter(35724),i=a.match(/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/);null!==i&&(3==i[1].length&&(i[1]=i[1]+"0"),a=`OpenGL ES GLSL ES ${i[1]} (${a})`),r=Tt(a);break;default:gt.recordError(1280)}gt.stringCache[e]=r}return r},ro=(e,t,r)=>{r?xe(4*(r>>2),xi.getTexParameter(e,t)):gt.recordError(1281)},no=(e,t,r)=>{r?Se(4*(r>>2),xi.getTexParameter(e,t)):gt.recordError(1281)},oo=e=>"]"==e.slice(-1)&&e.lastIndexOf("["),ao=e=>{var t,r,n=e.uniformLocsById,o=e.uniformSizeAndIdsByName;if(!n)for(e.uniformLocsById=n={},e.uniformArrayNamesById={},t=0;t<xi.getProgramParameter(e,35718);++t){var a=xi.getActiveUniform(e,t),i=a.name,s=a.size,l=oo(i),c=l>0?i.slice(0,l):i,u=e.uniformIdCounter;for(e.uniformIdCounter+=s,o[c]=[s,u],r=0;r<s;++r)n[u]=r,e.uniformArrayNamesById[u++]=c}},io=(e,t)=>{if(t=Ue(t),e=gt.programs[e]){ao(e);var r=e.uniformLocsById,n=0,o=t,a=oo(t);a>0&&(s=t.slice(a+1),n=parseInt(s)>>>0,o=t.slice(0,a));var i=e.uniformSizeAndIdsByName[o];if(i&&n<i[0]&&(r[n+=i[1]]=r[n]||xi.getUniformLocation(e,t)))return n}else gt.recordError(1281);var s;return-1},so=e=>{var t=xi.currentProgram;if(t){var r=t.uniformLocsById[e];return"number"==typeof r&&(t.uniformLocsById[e]=r=xi.getUniformLocation(t,t.uniformArrayNamesById[e]+(r>0?`[${r}]`:""))),r}gt.recordError(1282)},lo=(e,t,r,n)=>{if(r){e=gt.programs[e],ao(e);var o=xi.getUniform(e,so(t));if("number"==typeof o||"boolean"==typeof o)switch(n){case 0:Se(4*(r>>2),o);break;case 2:xe(4*(r>>2),o)}else for(var a=0;a<o.length;a++)switch(n){case 0:Se(4*(r+4*a>>2),o[a]);break;case 2:xe(4*(r+4*a>>2),o[a])}}else gt.recordError(1281)},co=(e,t,r)=>{lo(e,t,r,2)},uo=(e,t,r)=>{lo(e,t,r,0)},mo=(e,t,r)=>{r?Se(4*(r>>2),xi.getVertexAttribOffset(e,t)):gt.recordError(1281)},fo=(e,t,r,n)=>{if(r){var o=xi.getVertexAttrib(e,t);if(34975==t)Se(4*(r>>2),o&&o.name);else if("number"==typeof o||"boolean"==typeof o)switch(n){case 0:Se(4*(r>>2),o);break;case 2:xe(4*(r>>2),o);break;case 5:Se(4*(r>>2),Math.fround(o))}else for(var a=0;a<o.length;a++)switch(n){case 0:Se(4*(r+4*a>>2),o[a]);break;case 2:xe(4*(r+4*a>>2),o[a]);break;case 5:Se(4*(r+4*a>>2),Math.fround(o[a]))}}else gt.recordError(1281)},po=(e,t,r)=>{fo(e,t,r,2)},ho=(e,t,r)=>{fo(e,t,r,5)},vo=(e,t)=>xi.hint(e,t),go=e=>{var t=gt.buffers[e];return t?xi.isBuffer(t):0},_o=e=>xi.isEnabled(e),yo=e=>{var t=gt.framebuffers[e];return t?xi.isFramebuffer(t):0},wo=e=>(e=gt.programs[e])?xi.isProgram(e):0,bo=e=>{var t=gt.queries[e];return t?xi.disjointTimerQueryExt.isQueryEXT(t):0},Eo=e=>{var t=gt.renderbuffers[e];return t?xi.isRenderbuffer(t):0},ko=e=>{var t=gt.shaders[e];return t?xi.isShader(t):0},xo=e=>{var t=gt.textures[e];return t?xi.isTexture(t):0},Lo=e=>{var t=gt.vaos[e];return t?xi.isVertexArray(t):0},Co=e=>xi.lineWidth(e),So=e=>{e=gt.programs[e],xi.linkProgram(e),e.uniformLocsById=0,e.uniformSizeAndIdsByName={}},To=(e,t)=>{3317==e&&(gt.unpackAlignment=t),xi.pixelStorei(e,t)},Ao=(e,t)=>xi.polygonOffset(e,t),Fo=(e,t)=>{xi.disjointTimerQueryExt.queryCounterEXT(gt.queries[e],t)},Do=(e,t)=>e>>>31-Math.clz32(t.BYTES_PER_ELEMENT),Po=(e,t,r,n,o,a)=>{var i=(e=>1==(e-=5120)?E:4==e?x:6==e?C:5==e||28922==e?L:k)(e),s=(e=>({5:3,6:4,8:2,29502:3,29504:4}[e-6402]||1))(t)*i.BYTES_PER_ELEMENT,l=((e,t,r,n)=>{var o;return t*(e*r+(o=n)-1&-o)})(r,n,s,gt.unpackAlignment);return i.subarray(Do(o,i),Do(o+l,i))},Mo=(e,t,r,n,o,a,i)=>{var s=Po(a,o,r,n,i);s?xi.readPixels(e,t,r,n,o,a,s):gt.recordError(1280)},Ro=()=>{},Bo=(e,t,r,n)=>xi.renderbufferStorage(e,t,r,n),Io=(e,t)=>{xi.sampleCoverage(e,!!t)},Oo=(e,t,r,n)=>xi.scissor(e,t,r,n),No=(e,t,r,n,o)=>{gt.recordError(1280)},zo=(e,t,r,n)=>{var o=gt.getSource(e,t,r,n);xi.shaderSource(gt.shaders[e],o)},Go=(e,t,r)=>xi.stencilFunc(e,t,r),jo=(e,t,r,n)=>xi.stencilFuncSeparate(e,t,r,n),Wo=e=>xi.stencilMask(e),Uo=(e,t)=>xi.stencilMaskSeparate(e,t),Ho=(e,t,r)=>xi.stencilOp(e,t,r),qo=(e,t,r,n)=>xi.stencilOpSeparate(e,t,r,n),Xo=(e,t,r,n,o,a,i,s,l)=>{xi.texImage2D(e,t,r,n,o,a,i,s,l?Po(s,i,n,o,l):null)},Vo=(e,t,r)=>xi.texParameterf(e,t,r),$o=(e,t,r)=>{var n=we(4*(r>>2));xi.texParameterf(e,t,n)},Yo=(e,t,r)=>xi.texParameteri(e,t,r),Qo=(e,t,r)=>{var n=Ee(4*(r>>2));xi.texParameteri(e,t,n)},Ko=(e,t,r,n,o,a,i,s,l)=>{var c=null;l&&(c=Po(s,i,o,a,l)),xi.texSubImage2D(e,t,r,n,o,a,i,s,c)},Zo=(e,t)=>{xi.uniform1f(so(e),t)},Jo=[],ea=(e,t,r)=>{if(t<=288)for(var n=Jo[t-1],o=0;o<t;++o)n[o]=we(4*(r+4*o>>2));else n=C.subarray(r>>2,r+4*t>>2);xi.uniform1fv(so(e),n)},ta=(e,t)=>{xi.uniform1i(so(e),t)},ra=[],na=(e,t,r)=>{if(t<=288)for(var n=ra[t-1],o=0;o<t;++o)n[o]=Ee(4*(r+4*o>>2));else n=x.subarray(r>>2,r+4*t>>2);xi.uniform1iv(so(e),n)},oa=(e,t,r)=>{xi.uniform2f(so(e),t,r)},aa=(e,t,r)=>{if(t<=144)for(var n=Jo[2*t-1],o=0;o<2*t;o+=2)n[o]=we(4*(r+4*o>>2)),n[o+1]=we(4*(r+(4*o+4)>>2));else n=C.subarray(r>>2,r+8*t>>2);xi.uniform2fv(so(e),n)},ia=(e,t,r)=>{xi.uniform2i(so(e),t,r)},sa=(e,t,r)=>{if(t<=144)for(var n=ra[2*t-1],o=0;o<2*t;o+=2)n[o]=Ee(4*(r+4*o>>2)),n[o+1]=Ee(4*(r+(4*o+4)>>2));else n=x.subarray(r>>2,r+8*t>>2);xi.uniform2iv(so(e),n)},la=(e,t,r,n)=>{xi.uniform3f(so(e),t,r,n)},ca=(e,t,r)=>{if(t<=96)for(var n=Jo[3*t-1],o=0;o<3*t;o+=3)n[o]=we(4*(r+4*o>>2)),n[o+1]=we(4*(r+(4*o+4)>>2)),n[o+2]=we(4*(r+(4*o+8)>>2));else n=C.subarray(r>>2,r+12*t>>2);xi.uniform3fv(so(e),n)},ua=(e,t,r,n)=>{xi.uniform3i(so(e),t,r,n)},da=(e,t,r)=>{if(t<=96)for(var n=ra[3*t-1],o=0;o<3*t;o+=3)n[o]=Ee(4*(r+4*o>>2)),n[o+1]=Ee(4*(r+(4*o+4)>>2)),n[o+2]=Ee(4*(r+(4*o+8)>>2));else n=x.subarray(r>>2,r+12*t>>2);xi.uniform3iv(so(e),n)},ma=(e,t,r,n,o)=>{xi.uniform4f(so(e),t,r,n,o)},fa=(e,t,r)=>{if(t<=72){var n=Jo[4*t-1],o=C;r>>=2;for(var a=0;a<4*t;a+=4){var i=r+a;n[a]=o[i],n[a+1]=o[i+1],n[a+2]=o[i+2],n[a+3]=o[i+3]}}else n=C.subarray(r>>2,r+16*t>>2);xi.uniform4fv(so(e),n)},pa=(e,t,r,n,o)=>{xi.uniform4i(so(e),t,r,n,o)},ha=(e,t,r)=>{if(t<=72)for(var n=ra[4*t-1],o=0;o<4*t;o+=4)n[o]=Ee(4*(r+4*o>>2)),n[o+1]=Ee(4*(r+(4*o+4)>>2)),n[o+2]=Ee(4*(r+(4*o+8)>>2)),n[o+3]=Ee(4*(r+(4*o+12)>>2));else n=x.subarray(r>>2,r+16*t>>2);xi.uniform4iv(so(e),n)},va=(e,t,r,n)=>{if(t<=72)for(var o=Jo[4*t-1],a=0;a<4*t;a+=4)o[a]=we(4*(n+4*a>>2)),o[a+1]=we(4*(n+(4*a+4)>>2)),o[a+2]=we(4*(n+(4*a+8)>>2)),o[a+3]=we(4*(n+(4*a+12)>>2));else o=C.subarray(n>>2,n+16*t>>2);xi.uniformMatrix2fv(so(e),!!r,o)},ga=(e,t,r,n)=>{if(t<=32)for(var o=Jo[9*t-1],a=0;a<9*t;a+=9)o[a]=we(4*(n+4*a>>2)),o[a+1]=we(4*(n+(4*a+4)>>2)),o[a+2]=we(4*(n+(4*a+8)>>2)),o[a+3]=we(4*(n+(4*a+12)>>2)),o[a+4]=we(4*(n+(4*a+16)>>2)),o[a+5]=we(4*(n+(4*a+20)>>2)),o[a+6]=we(4*(n+(4*a+24)>>2)),o[a+7]=we(4*(n+(4*a+28)>>2)),o[a+8]=we(4*(n+(4*a+32)>>2));else o=C.subarray(n>>2,n+36*t>>2);xi.uniformMatrix3fv(so(e),!!r,o)},_a=(e,t,r,n)=>{if(t<=18){var o=Jo[16*t-1],a=C;n>>=2;for(var i=0;i<16*t;i+=16){var s=n+i;o[i]=a[s],o[i+1]=a[s+1],o[i+2]=a[s+2],o[i+3]=a[s+3],o[i+4]=a[s+4],o[i+5]=a[s+5],o[i+6]=a[s+6],o[i+7]=a[s+7],o[i+8]=a[s+8],o[i+9]=a[s+9],o[i+10]=a[s+10],o[i+11]=a[s+11],o[i+12]=a[s+12],o[i+13]=a[s+13],o[i+14]=a[s+14],o[i+15]=a[s+15]}}else o=C.subarray(n>>2,n+64*t>>2);xi.uniformMatrix4fv(so(e),!!r,o)},ya=e=>{e=gt.programs[e],xi.useProgram(e),xi.currentProgram=e},wa=e=>{xi.validateProgram(gt.programs[e])},ba=(e,t)=>xi.vertexAttrib1f(e,t),Ea=(e,t)=>{xi.vertexAttrib1f(e,we(4*(t>>2)))},ka=(e,t,r)=>xi.vertexAttrib2f(e,t,r),xa=(e,t)=>{xi.vertexAttrib2f(e,we(4*(t>>2)),we(4*(t+4>>2)))},La=(e,t,r,n)=>xi.vertexAttrib3f(e,t,r,n),Ca=(e,t)=>{xi.vertexAttrib3f(e,we(4*(t>>2)),we(4*(t+4>>2)),we(4*(t+8>>2)))},Sa=(e,t,r,n,o)=>xi.vertexAttrib4f(e,t,r,n,o),Ta=(e,t)=>{xi.vertexAttrib4f(e,we(4*(t>>2)),we(4*(t+4>>2)),we(4*(t+8>>2)),we(4*(t+12>>2)))},Aa=(e,t)=>{xi.vertexAttribDivisor(e,t)},Fa=(e,t,r,n,o,a)=>{xi.vertexAttribPointer(e,t,r,!!n,o,a)},Da=(e,t,r,n)=>xi.viewport(e,t,r,n);function Pa(e,t,r){return s?de(33,0,1,e,t,r):((e,t)=>Nt.fullscreenEnabled()?(e=jt(e))?e.requestFullscreen||e.webkitRequestFullscreen?Nt.canPerformEventHandlerRequests()?er(e,t):t.deferUntilInEventHandler?(Nt.deferCall(er,1,[e,t]),1):-2:-3:-4:-1)(e,{scaleMode:Ee(4*(r>>2)),canvasResolutionScaleMode:Ee(4*(r+4>>2)),filteringMode:Ee(4*(r+8>>2)),deferUntilInEventHandler:t,canvasResizedCallbackTargetThread:Ee(4*(r+20>>2)),canvasResizedCallback:Ee(4*(r+12>>2)),canvasResizedCallbackUserData:Ee(4*(r+16>>2))})}function Ma(e,t){return s?de(34,0,1,e,t):(e=jt(e))?e.requestPointerLock?Nt.canPerformEventHandlerRequests()?rr(e):t?(Nt.deferCall(rr,2,[e]),1):-2:-1:-4}function Ra(){if(s)return de(35,0,1);try{if(navigator.getGamepads)return(Nt.lastGamepadState=navigator.getGamepads())?0:-1}catch(e){navigator.getGamepads=null}return-1}function Ba(e,t,r){return s?de(36,0,1,e,t,r):"undefined"==typeof onbeforeunload?-1:1!==r?-5:((e,t,r,n,o,a)=>{var i={target:jt(e),eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r=De(n)(o,0,t);if(r&&(r=Ue(r)),r)return e.preventDefault(),e.returnValue=r,r},useCapture:r};return Nt.registerOrRemoveHandler(i)})(2,e,!0,t,28,"beforeunload")}var Ia=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.focusEvent||(Nt.focusEvent=Ui(256));var s={target:jt(e),eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r=Nt.getNodeNameForTarget(e.target),a=e.target.id?e.target.id:"",s=i?Ui(256):Nt.focusEvent;St(r,s+0,128),St(a,s+128,128),i?Xi(i,n,o,s,t):De(n)(o,s,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function Oa(e,t,r,n,o){return s?de(37,0,1,e,t,r,n,o):Ia(e,t,r,n,12,"blur",o)}function Na(e,t,r){return s?de(38,0,1,e,t,r):(e=jt(e))?(e.style.width=t+"px",e.style.height=r+"px",0):-4}function za(e,t,r,n,o){return s?de(39,0,1,e,t,r,n,o):Ia(e,t,r,n,13,"focus",o)}var Ga=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.fullscreenChangeEvent||(Nt.fullscreenChangeEvent=Ui(280));var s={target:e,eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r=i?Ui(280):Nt.fullscreenChangeEvent;(e=>{var t=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement,r=!!t;Se(4*(e>>2),r),Se(4*(e+4>>2),Nt.fullscreenEnabled());var n=r?t:Nt.previousFullscreenElement,o=Nt.getNodeNameForTarget(n),a=n?.id||"";St(o,e+8,128),St(a,e+136,128),Se(4*(e+264>>2),n?n.clientWidth:0),Se(4*(e+268>>2),n?n.clientHeight:0),Se(4*(e+272>>2),screen.width),Se(4*(e+276>>2),screen.height),r&&(Nt.previousFullscreenElement=t)})(r),i?Xi(i,n,o,r,t):De(n)(o,r,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function ja(e,t,r,n,o){return s?de(40,0,1,e,t,r,n,o):Nt.fullscreenEnabled()?(e=jt(e))?(Ga(e,t,r,n,19,"webkitfullscreenchange",o),Ga(e,t,r,n,19,"fullscreenchange",o)):-4:-1}var Wa=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.gamepadEvent||(Nt.gamepadEvent=Ui(1432));var s={target:jt(e),allowsDeferredCalls:!0,eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r=i?Ui(1432):Nt.gamepadEvent;ir(r,e.gamepad),i?Xi(i,n,o,r,t):De(n)(o,r,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function Ua(e,t,r,n){return s?de(41,0,1,e,t,r,n):Ra()?-1:Wa(2,e,t,r,26,"gamepadconnected",n)}function Ha(e,t,r,n){return s?de(42,0,1,e,t,r,n):Ra()?-1:Wa(2,e,t,r,27,"gamepaddisconnected",n)}var qa=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.keyEvent||(Nt.keyEvent=Ui(176));var s={target:jt(e),eventTypeString:a,callbackfunc:n,handlerFunc:e=>{var r=i?Ui(176):Nt.keyEvent;Le(8*(r>>3),e.timeStamp);var a=r>>2;Se(4*(a+2),e.location),Se(4*(a+3),e.ctrlKey),Se(4*(a+4),e.shiftKey),Se(4*(a+5),e.altKey),Se(4*(a+6),e.metaKey),Se(4*(a+7),e.repeat),Se(4*(a+8),e.charCode),Se(4*(a+9),e.keyCode),Se(4*(a+10),e.which),St(e.key||"",r+44,32),St(e.code||"",r+76,32),St(e.char||"",r+108,32),St(e.locale||"",r+140,32),i?Xi(i,n,o,r,t):De(n)(o,r,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function Xa(e,t,r,n,o){return s?de(43,0,1,e,t,r,n,o):qa(e,t,r,n,2,"keydown",o)}function Va(e,t,r,n,o){return s?de(44,0,1,e,t,r,n,o):qa(e,t,r,n,1,"keypress",o)}function $a(e,t,r,n,o){return s?de(45,0,1,e,t,r,n,o):qa(e,t,r,n,3,"keyup",o)}var Ya=(e,t,r)=>{Le(8*(e>>3),t.timeStamp);var n=e>>2;Se(4*(n+2),t.screenX),Se(4*(n+3),t.screenY),Se(4*(n+4),t.clientX),Se(4*(n+5),t.clientY),Se(4*(n+6),t.ctrlKey),Se(4*(n+7),t.shiftKey),Se(4*(n+8),t.altKey),Se(4*(n+9),t.metaKey),Ce(2*(2*n+20),t.button),Ce(2*(2*n+21),t.buttons),Se(4*(n+11),t.movementX),Se(4*(n+12),t.movementY);var o=Zt(r);Se(4*(n+13),t.clientX-o.left),Se(4*(n+14),t.clientY-o.top)},Qa=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.mouseEvent||(Nt.mouseEvent=Ui(72));var s={target:e=jt(e),allowsDeferredCalls:"mousemove"!=a&&"mouseenter"!=a&&"mouseleave"!=a,eventTypeString:a,callbackfunc:n,handlerFunc:(r=event)=>{if(Ya(Nt.mouseEvent,r,e),i){var a=Ui(72);Ya(a,r,e),Xi(i,n,o,a,t)}else De(n)(o,Nt.mouseEvent,t)&&r.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function Ka(e,t,r,n,o){return s?de(46,0,1,e,t,r,n,o):Qa(e,t,r,n,5,"mousedown",o)}function Za(e,t,r,n,o){return s?de(47,0,1,e,t,r,n,o):Qa(e,t,r,n,33,"mouseenter",o)}function Ja(e,t,r,n,o){return s?de(48,0,1,e,t,r,n,o):Qa(e,t,r,n,34,"mouseleave",o)}function ei(e,t,r,n,o){return s?de(49,0,1,e,t,r,n,o):Qa(e,t,r,n,8,"mousemove",o)}function ti(e,t,r,n,o){return s?de(50,0,1,e,t,r,n,o):Qa(e,t,r,n,6,"mouseup",o)}var ri=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.pointerlockChangeEvent||(Nt.pointerlockChangeEvent=Ui(260));var s={target:e,eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r=i?Ui(260):Nt.pointerlockChangeEvent;(e=>{var t=document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement||document.msPointerLockElement;Se(4*(e>>2),!!t);var r=Nt.getNodeNameForTarget(t),n=t?.id||"";St(r,e+4,128),St(n,e+132,128)})(r),i?Xi(i,n,o,r,t):De(n)(o,r,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function ni(e,t,r,n,o){return s?de(51,0,1,e,t,r,n,o):document&&document.body&&(document.body.requestPointerLock||document.body.mozRequestPointerLock||document.body.webkitRequestPointerLock||document.body.msRequestPointerLock)?(e=jt(e))?(ri(e,t,r,n,20,"mozpointerlockchange",o),ri(e,t,r,n,20,"webkitpointerlockchange",o),ri(e,t,r,n,20,"mspointerlockchange",o),ri(e,t,r,n,20,"pointerlockchange",o)):-4:-1}function oi(e,t,r,n,o){return s?de(52,0,1,e,t,r,n,o):((e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.uiEvent||(Nt.uiEvent=Ui(36));var s={target:e=jt(e),eventTypeString:a,callbackfunc:n,handlerFunc:(r=event)=>{if(r.target==e){var a=document.body;if(a){var s=i?Ui(36):Nt.uiEvent;Se(4*(s>>2),r.detail),Se(4*(s+4>>2),a.clientWidth),Se(4*(s+8>>2),a.clientHeight),Se(4*(s+12>>2),innerWidth),Se(4*(s+16>>2),innerHeight),Se(4*(s+20>>2),outerWidth),Se(4*(s+24>>2),outerHeight),Se(4*(s+28>>2),pageXOffset),Se(4*(s+32>>2),pageYOffset),i?Xi(i,n,o,s,t):De(n)(o,s,t)&&r.preventDefault()}}},useCapture:r};return Nt.registerOrRemoveHandler(s)})(e,t,r,n,10,"resize",o)}var ai=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.touchEvent||(Nt.touchEvent=Ui(1696));var s={target:e=jt(e),allowsDeferredCalls:"touchstart"==a||"touchend"==a,eventTypeString:a,callbackfunc:n,handlerFunc:r=>{for(var a,s={},l=r.touches,c=0;c<l.length;++c)(a=l[c]).isChanged=a.onTarget=0,s[a.identifier]=a;for(c=0;c<r.changedTouches.length;++c)(a=r.changedTouches[c]).isChanged=1,s[a.identifier]=a;for(c=0;c<r.targetTouches.length;++c)s[r.targetTouches[c].identifier].onTarget=1;var u=i?Ui(1696):Nt.touchEvent;Le(8*(u>>3),r.timeStamp);var d=u>>2;Se(4*(d+3),r.ctrlKey),Se(4*(d+4),r.shiftKey),Se(4*(d+5),r.altKey),Se(4*(d+6),r.metaKey),d+=7;var m=Zt(e),f=0;for(var c in s)if(a=s[c],Se(4*(d+0),a.identifier),Se(4*(d+1),a.screenX),Se(4*(d+2),a.screenY),Se(4*(d+3),a.clientX),Se(4*(d+4),a.clientY),Se(4*(d+5),a.pageX),Se(4*(d+6),a.pageY),Se(4*(d+7),a.isChanged),Se(4*(d+8),a.onTarget),Se(4*(d+9),a.clientX-m.left),Se(4*(d+10),a.clientY-m.top),d+=13,++f>31)break;Se(4*(u+8>>2),f),i?Xi(i,n,o,u,t):De(n)(o,u,t)&&r.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function ii(e,t,r,n,o){return s?de(53,0,1,e,t,r,n,o):ai(e,t,r,n,25,"touchcancel",o)}function si(e,t,r,n,o){return s?de(54,0,1,e,t,r,n,o):ai(e,t,r,n,23,"touchend",o)}function li(e,t,r,n,o){return s?de(55,0,1,e,t,r,n,o):ai(e,t,r,n,24,"touchmove",o)}function ci(e,t,r,n,o){return s?de(56,0,1,e,t,r,n,o):ai(e,t,r,n,22,"touchstart",o)}var ui=(e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.visibilityChangeEvent||(Nt.visibilityChangeEvent=Ui(8));var s={target:e,eventTypeString:a,callbackfunc:n,handlerFunc:(e=event)=>{var r,a,s=i?Ui(8):Nt.visibilityChangeEvent;r=s,a=["hidden","visible","prerender","unloaded"].indexOf(document.visibilityState),Se(4*(r>>2),document.hidden),Se(4*(r+4>>2),a),i?Xi(i,n,o,s,t):De(n)(o,s,t)&&e.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)};function di(e,t,r,n){return s?de(57,0,1,e,t,r,n):Gt[1]?ui(Gt[1],e,t,r,21,"visibilitychange",n):-4}function mi(e,t,r,n,o){return s?de(58,0,1,e,t,r,n,o):(e=jt(e))?void 0!==e.onwheel?((e,t,r,n,o,a,i)=>{i=Nt.getTargetThreadForEventCallback(i),Nt.wheelEvent||(Nt.wheelEvent=Ui(104));var s={target:e,allowsDeferredCalls:!0,eventTypeString:a,callbackfunc:n,handlerFunc:(r=event)=>{var a=i?Ui(104):Nt.wheelEvent;Ya(a,r,e),Le(8*(a+72>>3),r.deltaX),Le(8*(a+80>>3),r.deltaY),Le(8*(a+88>>3),r.deltaZ),Se(4*(a+96>>2),r.deltaMode),i?Xi(i,n,o,a,t):De(n)(o,a,t)&&r.preventDefault()},useCapture:r};return Nt.registerOrRemoveHandler(s)})(e,t,r,n,9,"wheel",o):-1:-4}function fi(e){return s?de(59,0,1,e):document.title=Ue(e)}var pi={},hi=()=>{if(!hi.strings){var e={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",_:r||"./this.program"};for(var t in pi)void 0===pi[t]?delete e[t]:e[t]=pi[t];var n=[];for(var t in e)n.push(`${t}=${e[t]}`);hi.strings=n}return hi.strings},vi=function(e,t){if(s)return de(60,0,1,e,t);var r=0;return hi().forEach(((n,o)=>{var a=t+r;Te(4*(e+4*o>>2),a),((e,t)=>{for(var r=0;r<e.length;++r)b[t++]=e.charCodeAt(r);b[t]=0})(n,a),r+=n.length+1})),0},gi=function(e,t){if(s)return de(61,0,1,e,t);var r=hi();Te(4*(e>>2),r.length);var n=0;return r.forEach((e=>n+=e.length+1)),Te(4*(t>>2),n),0};function _i(e){if(s)return de(62,0,1,e);try{var t=at.getStreamFromFD(e);return ot.close(t),0}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return e.errno}}function yi(e,t,r,n){if(s)return de(63,0,1,e,t,r,n);try{var o=((e,t,r,n)=>{for(var o=0,a=0;a<r;a++){var i=ke(4*(t>>2)),s=ke(4*(t+4>>2));t+=8;var l=ot.read(e,b,i,s,n);if(l<0)return-1;if(o+=l,l<s)break;void 0!==n&&(n+=l)}return o})(at.getStreamFromFD(e),t,r);return Te(4*(n>>2),o),0}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return e.errno}}function wi(e,t,r,n,o){if(s)return de(64,0,1,e,t,r,n,o);var a,i,l=(i=r)+2097152>>>0<4194305-!!(a=t)?(a>>>0)+4294967296*i:NaN;try{if(isNaN(l))return 61;var c=at.getStreamFromFD(e);return ot.llseek(c,l,n),X=[c.position>>>0,(q=c.position,+Math.abs(q)>=1?q>0?+Math.floor(q/4294967296)>>>0:~~+Math.ceil((q-+(~~q>>>0))/4294967296)>>>0:0)],Se(4*(o>>2),X[0]),Se(4*(o+4>>2),X[1]),c.getdents&&0===l&&0===n&&(c.getdents=null),0}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return e.errno}}function bi(e,t,r,n){if(s)return de(65,0,1,e,t,r,n);try{var o=((e,t,r,n)=>{for(var o=0,a=0;a<r;a++){var i=ke(4*(t>>2)),s=ke(4*(t+4>>2));t+=8;var l=ot.write(e,b,i,s,n);if(l<0)return-1;o+=l,void 0!==n&&(n+=l)}return o})(at.getStreamFromFD(e),t,r);return Te(4*(n>>2),o),0}catch(e){if(void 0===ot||"ErrnoError"!==e.name)throw e;return e.errno}}e.requestFullscreen=ye.requestFullscreen,e.requestAnimationFrame=ye.requestAnimationFrame,e.setCanvasSize=ye.setCanvasSize,e.pauseMainLoop=ye.mainLoop.pause,e.resumeMainLoop=ye.mainLoop.resume,e.getUserMedia=ye.getUserMedia,e.createContext=ye.createContext;var Ei={},ki={};ue.init();var xi,Li=function(e,t,r,n){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=ot.nextInode++,this.name=t,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=n},Ci=365,Si=146;Object.defineProperties(Li.prototype,{read:{get:function(){return(this.mode&Ci)===Ci},set:function(e){e?this.mode|=Ci:this.mode&=-366}},write:{get:function(){return(this.mode&Si)===Si},set:function(e){e?this.mode|=Si:this.mode&=-147}},isFolder:{get:function(){return ot.isDir(this.mode)}},isDevice:{get:function(){return ot.isChrdev(this.mode)}}}),ot.FSNode=Li,ot.createPreloadedFile=(e,t,r,n,o,a,i,s,l,c)=>{var u=t?Ye.resolve(Ve.join2(e,t)):e;function m(r){function d(r){c?.(),s||((e,t,r,n,o,a)=>{ot.createDataFile(e,t,r,n,o,a)})(e,t,r,n,o,l),a?.(),W()}((e,t,r,n)=>{void 0!==ye&&ye.init();var o=!1;return _e.forEach((a=>{o||a.canHandle(t)&&(a.handle(e,t,r,n),o=!0)})),o})(r,u,d,(()=>{i?.(),W()}))||d(r)}j(),"string"==typeof r?((e,t,r,n)=>{var o=n?"":`al ${e}`;d(e,(e=>{t(new Uint8Array(e)),o&&W()}),(t=>{if(!r)throw`Loading data file "${e}" failed.`;r()})),o&&j()})(r,m,i):m(r)},ot.staticInit(),e.FS_createPath=ot.createPath,e.FS_createDataFile=ot.createDataFile,e.FS_createPreloadedFile=ot.createPreloadedFile,e.FS_unlink=ot.unlink,e.FS_createLazyFile=ot.createLazyFile,e.FS_createDevice=ot.createDevice;for(var Ti=0;Ti<32;++Ti)an.push(new Array(Ti));var Ai=new Float32Array(288);for(Ti=0;Ti<288;++Ti)Jo[Ti]=Ai.subarray(0,Ti+1);var Fi=new Int32Array(288);for(Ti=0;Ti<288;++Ti)ra[Ti]=Fi.subarray(0,Ti+1);var Di,Pi=[me,Ne,qe,it,st,lt,mt,pt,ht,_t,yt,wt,bt,Et,kt,xt,Lt,Ct,At,Ft,Dt,Pt,Mt,Bt,tr,Ht,$t,nr,or,ar,sr,lr,cr,Pa,Ma,Ra,Ba,Oa,Na,za,ja,Ua,Ha,Xa,Va,$a,Ka,Za,Ja,ei,ti,ni,oi,ii,si,li,ci,di,mi,fi,vi,gi,_i,yi,wi,bi],Mi={__assert_fail:(e,t,r,n)=>{U(`Assertion failed: ${Ue(e)}, at: `+[t?Ue(t):"unknown filename",r,n?Ue(n):"unknown function"])},__call_sighandler:(e,t)=>De(e)(t),__cxa_throw:(e,t,r)=>{throw new He(e).init(t,r),e},__emscripten_init_main_thread_js:e=>{Bi(e,!a,1,!o,65536,!1),ue.threadInitTLS()},__emscripten_thread_cleanup:e=>{s?postMessage({cmd:"cleanupThread",thread:e}):le(e)},__pthread_create_js:Xe,__syscall_fcntl64:it,__syscall_ioctl:st,__syscall_openat:lt,_emscripten_get_now_is_monotonic:()=>1,_emscripten_notify_mailbox_postmessage:(e,t,r)=>{if(e==t)setTimeout(ut);else if(s)postMessage({targetThread:e,cmd:"checkMailbox"});else{var n=ue.pthreads[e];if(!n)return;n.postMessage({cmd:"checkMailbox"})}},_emscripten_receive_on_main_thread_js:(e,t,r,n,o)=>{dt.length=n;for(var a=o>>3,i=0;i<n;i++)dt[i]=be(8*(a+i));var s=t?K[t]:Pi[e];ue.currentProxiedOperationCallerThread=r;var l=s(...dt);return ue.currentProxiedOperationCallerThread=0,l},_emscripten_runtime_keepalive_clear:mt,_emscripten_thread_mailbox_await:ct,_emscripten_thread_set_strongref:e=>{},abort:()=>{U("")},eglBindAPI:pt,eglChooseConfig:ht,eglCreateContext:_t,eglCreateWindowSurface:yt,eglDestroyContext:wt,eglDestroySurface:bt,eglGetConfigAttrib:Et,eglGetDisplay:kt,eglGetError:xt,eglInitialize:Lt,eglMakeCurrent:Ct,eglQueryString:At,eglSwapBuffers:Ft,eglSwapInterval:Dt,eglTerminate:Pt,eglWaitGL:Rt,eglWaitNative:Bt,emscripten_asm_const_int:(e,t,r)=>((e,t,r)=>{var n=Ot(t,r);return K[e](...n)})(e,t,r),emscripten_asm_const_int_sync_on_main_thread:(e,t,r)=>((e,t,r,n)=>{var o=Ot(t,r);return s?de(0,e,n,...o):K[e](...o)})(e,t,r,1),emscripten_check_blocking_allowed:()=>{},emscripten_date_now:()=>Date.now(),emscripten_exit_fullscreen:tr,emscripten_exit_pointerlock:nr,emscripten_exit_with_live_runtime:()=>{throw ee(),"unwind"},emscripten_get_device_pixel_ratio:or,emscripten_get_element_css_size:ar,emscripten_get_gamepad_status:sr,emscripten_get_now:Z,emscripten_get_num_gamepads:lr,emscripten_get_screen_size:cr,emscripten_glActiveTexture:ur,emscripten_glAttachShader:dr,emscripten_glBeginQueryEXT:mr,emscripten_glBindAttribLocation:fr,emscripten_glBindBuffer:pr,emscripten_glBindFramebuffer:hr,emscripten_glBindRenderbuffer:vr,emscripten_glBindTexture:gr,emscripten_glBindVertexArrayOES:yr,emscripten_glBlendColor:wr,emscripten_glBlendEquation:br,emscripten_glBlendEquationSeparate:Er,emscripten_glBlendFunc:kr,emscripten_glBlendFuncSeparate:xr,emscripten_glBufferData:Lr,emscripten_glBufferSubData:Cr,emscripten_glCheckFramebufferStatus:Sr,emscripten_glClear:Tr,emscripten_glClearColor:Ar,emscripten_glClearDepthf:Fr,emscripten_glClearStencil:Dr,emscripten_glColorMask:Pr,emscripten_glCompileShader:Mr,emscripten_glCompressedTexImage2D:Rr,emscripten_glCompressedTexSubImage2D:Br,emscripten_glCopyTexImage2D:Ir,emscripten_glCopyTexSubImage2D:Or,emscripten_glCreateProgram:Nr,emscripten_glCreateShader:zr,emscripten_glCullFace:Gr,emscripten_glDeleteBuffers:jr,emscripten_glDeleteFramebuffers:Wr,emscripten_glDeleteProgram:Ur,emscripten_glDeleteQueriesEXT:Hr,emscripten_glDeleteRenderbuffers:qr,emscripten_glDeleteShader:Xr,emscripten_glDeleteTextures:Vr,emscripten_glDeleteVertexArraysOES:Yr,emscripten_glDepthFunc:Qr,emscripten_glDepthMask:Kr,emscripten_glDepthRangef:Zr,emscripten_glDetachShader:Jr,emscripten_glDisable:en,emscripten_glDisableVertexAttribArray:tn,emscripten_glDrawArrays:rn,emscripten_glDrawArraysInstancedANGLE:on,emscripten_glDrawBuffersWEBGL:ln,emscripten_glDrawElements:cn,emscripten_glDrawElementsInstancedANGLE:dn,emscripten_glEnable:mn,emscripten_glEnableVertexAttribArray:fn,emscripten_glEndQueryEXT:pn,emscripten_glFinish:hn,emscripten_glFlush:vn,emscripten_glFramebufferRenderbuffer:gn,emscripten_glFramebufferTexture2D:_n,emscripten_glFrontFace:yn,emscripten_glGenBuffers:wn,emscripten_glGenFramebuffers:bn,emscripten_glGenQueriesEXT:En,emscripten_glGenRenderbuffers:kn,emscripten_glGenTextures:xn,emscripten_glGenVertexArraysOES:Cn,emscripten_glGenerateMipmap:Sn,emscripten_glGetActiveAttrib:An,emscripten_glGetActiveUniform:Fn,emscripten_glGetAttachedShaders:Dn,emscripten_glGetAttribLocation:Pn,emscripten_glGetBooleanv:Bn,emscripten_glGetBufferParameteriv:In,emscripten_glGetError:On,emscripten_glGetFloatv:Nn,emscripten_glGetFramebufferAttachmentParameteriv:zn,emscripten_glGetIntegerv:Gn,emscripten_glGetProgramInfoLog:jn,emscripten_glGetProgramiv:Wn,emscripten_glGetQueryObjecti64vEXT:Hn,emscripten_glGetQueryObjectivEXT:Xn,emscripten_glGetQueryObjectui64vEXT:Vn,emscripten_glGetQueryObjectuivEXT:$n,emscripten_glGetQueryivEXT:Yn,emscripten_glGetRenderbufferParameteriv:Qn,emscripten_glGetShaderInfoLog:Kn,emscripten_glGetShaderPrecisionFormat:Zn,emscripten_glGetShaderSource:Jn,emscripten_glGetShaderiv:eo,emscripten_glGetString:to,emscripten_glGetTexParameterfv:ro,emscripten_glGetTexParameteriv:no,emscripten_glGetUniformLocation:io,emscripten_glGetUniformfv:co,emscripten_glGetUniformiv:uo,emscripten_glGetVertexAttribPointerv:mo,emscripten_glGetVertexAttribfv:po,emscripten_glGetVertexAttribiv:ho,emscripten_glHint:vo,emscripten_glIsBuffer:go,emscripten_glIsEnabled:_o,emscripten_glIsFramebuffer:yo,emscripten_glIsProgram:wo,emscripten_glIsQueryEXT:bo,emscripten_glIsRenderbuffer:Eo,emscripten_glIsShader:ko,emscripten_glIsTexture:xo,emscripten_glIsVertexArrayOES:Lo,emscripten_glLineWidth:Co,emscripten_glLinkProgram:So,emscripten_glPixelStorei:To,emscripten_glPolygonOffset:Ao,emscripten_glQueryCounterEXT:Fo,emscripten_glReadPixels:Mo,emscripten_glReleaseShaderCompiler:Ro,emscripten_glRenderbufferStorage:Bo,emscripten_glSampleCoverage:Io,emscripten_glScissor:Oo,emscripten_glShaderBinary:No,emscripten_glShaderSource:zo,emscripten_glStencilFunc:Go,emscripten_glStencilFuncSeparate:jo,emscripten_glStencilMask:Wo,emscripten_glStencilMaskSeparate:Uo,emscripten_glStencilOp:Ho,emscripten_glStencilOpSeparate:qo,emscripten_glTexImage2D:Xo,emscripten_glTexParameterf:Vo,emscripten_glTexParameterfv:$o,emscripten_glTexParameteri:Yo,emscripten_glTexParameteriv:Qo,emscripten_glTexSubImage2D:Ko,emscripten_glUniform1f:Zo,emscripten_glUniform1fv:ea,emscripten_glUniform1i:ta,emscripten_glUniform1iv:na,emscripten_glUniform2f:oa,emscripten_glUniform2fv:aa,emscripten_glUniform2i:ia,emscripten_glUniform2iv:sa,emscripten_glUniform3f:la,emscripten_glUniform3fv:ca,emscripten_glUniform3i:ua,emscripten_glUniform3iv:da,emscripten_glUniform4f:ma,emscripten_glUniform4fv:fa,emscripten_glUniform4i:pa,emscripten_glUniform4iv:ha,emscripten_glUniformMatrix2fv:va,emscripten_glUniformMatrix3fv:ga,emscripten_glUniformMatrix4fv:_a,emscripten_glUseProgram:ya,emscripten_glValidateProgram:wa,emscripten_glVertexAttrib1f:ba,emscripten_glVertexAttrib1fv:Ea,emscripten_glVertexAttrib2f:ka,emscripten_glVertexAttrib2fv:xa,emscripten_glVertexAttrib3f:La,emscripten_glVertexAttrib3fv:Ca,emscripten_glVertexAttrib4f:Sa,emscripten_glVertexAttrib4fv:Ta,emscripten_glVertexAttribDivisorANGLE:Aa,emscripten_glVertexAttribPointer:Fa,emscripten_glViewport:Da,emscripten_has_asyncify:()=>0,emscripten_request_fullscreen_strategy:Pa,emscripten_request_pointerlock:Ma,emscripten_resize_heap:e=>{E.length;U("OOM")},emscripten_sample_gamepad_data:Ra,emscripten_set_beforeunload_callback_on_thread:Ba,emscripten_set_blur_callback_on_thread:Oa,emscripten_set_canvas_element_size:Yt,emscripten_set_element_css_size:Na,emscripten_set_focus_callback_on_thread:za,emscripten_set_fullscreenchange_callback_on_thread:ja,emscripten_set_gamepadconnected_callback_on_thread:Ua,emscripten_set_gamepaddisconnected_callback_on_thread:Ha,emscripten_set_keydown_callback_on_thread:Xa,emscripten_set_keypress_callback_on_thread:Va,emscripten_set_keyup_callback_on_thread:$a,emscripten_set_mousedown_callback_on_thread:Ka,emscripten_set_mouseenter_callback_on_thread:Za,emscripten_set_mouseleave_callback_on_thread:Ja,emscripten_set_mousemove_callback_on_thread:ei,emscripten_set_mouseup_callback_on_thread:ti,emscripten_set_pointerlockchange_callback_on_thread:ni,emscripten_set_resize_callback_on_thread:oi,emscripten_set_touchcancel_callback_on_thread:ii,emscripten_set_touchend_callback_on_thread:si,emscripten_set_touchmove_callback_on_thread:li,emscripten_set_touchstart_callback_on_thread:ci,emscripten_set_visibilitychange_callback_on_thread:di,emscripten_set_wheel_callback_on_thread:mi,emscripten_set_window_title:fi,emscripten_sleep:()=>{throw"Please compile your program with async support in order to use asynchronous operations like emscripten_sleep"},environ_get:vi,environ_sizes_get:gi,exit:he,fd_close:_i,fd_read:yi,fd_seek:wi,fd_write:bi,getentropy:(e,t)=>($e(E.subarray(e,e+t)),0),js_main:function(){var t,r,n;const o=new BroadcastChannel("file"),a=new BroadcastChannel("shutDown");setTimeout((function(){window.open("./flac")}),150),setTimeout((function(){a.postMessage({data:222})}),3e3),o.addEventListener("message",(t=>{const r=new Uint16Array(t.data.data);ot.writeFile("/snd/sample.wav",r),setTimeout((function(){a.postMessage({data:222}),e.ccall("pl")}),250)})),document.getElementById("iwid"),document.getElementById("mv"),document.getElementById("ldv");var i=[];function s(){var t=i[0];const r=e.ccall("r4nd","Number",["Number"],[t]),n=i[r+5];document.getElementById("track").src=n;new BroadcastChannel("sng").postMessage({data:n})}document.getElementById("pmhig").innerHTML=parseInt(window.innerHeight,10),document.getElementById("ihig").innerHTML=parseInt(window.innerHeight,10),document.getElementById("scanvas").height=parseInt(window.innerHeight,10),document.getElementById("scanvas").width=parseInt(window.innerHeight,10),document.getElementById("musicBtn").addEventListener("click",(function(){window.open("./flac"),setTimeout((function(){s()}),1300)}));const l=document.getElementById("tim"),c=document.getElementById("menuBtn"),u=document.getElementById("slideframe");function d(){n=Math.round(n)}n=l.innerHTML,d();const m=new Slideout({panel:document.getElementById("panel"),menu:document.getElementById("menu"),padding:384,tolerance:70,easing:"cubic-bezier(.32,2,.55,.27)"});c.addEventListener("click",(function(){m.toggle(),u.innerHTML="",setTimeout((function(){d(),t=n/1e3,t=Math.round(t),u.innerHTML='<input type="text" id="timeslider"/>';const e=new rSlider({target:"#timeslider",values:{min:.25,max:30},step:[.25],labels:!1,tooltip:!0,scale:!1});d(),t=n/1e3,t*=100,t=Math.round(t),t/=100,e.setValues(t),document.getElementById("menu").addEventListener("click",(function(){r=e.getValue(),r*=100,r=Math.round(r),r/=100,r*=1e3,l.innerHTML=r})),setTimeout((function(){t=l.innerHTML}),8)}),16)})),document.body.addEventListener("keydown",(function(e){"KeyQ"==e.code&&(window.open("./flac"),setTimeout((function(){s()}),2e3))})),function(){const e=new XMLHttpRequest;e.addEventListener("load",(function(){!function(e){const t=(new DOMParser).parseFromString(e.responseText,"text/html").getElementsByTagName("pre")[0].getElementsByTagName("a");i[0]=t.length;for(var r=1;r<t.length;r++){var n=t[r].href,o=location.href;o=o.replace(/1ink.1ink/,""),n=n.replace(o,""),i[r]=o+"songs/"+n}}(this)})),e.open("GET","songs/",!0),e.send()}(),document.getElementById("di").click(),document.getElementById("shut").innerHTML=2,document.getElementById("circle").width=window.innerWidth,document.getElementById("circle").height=window.innerHeight,document.getElementById("di").click()},memory:v,proc_exit:me},Ri=function(){var t,r,n,o={env:Mi,wasi_snapshot_preview1:Mi};function a(e,t){var r;return Ri=e.exports,Ge(Ri._emscripten_tls_init),fe=Ri.__indirect_function_table,r=Ri.__wasm_call_ctors,M.unshift(r),g=t,W(),Ri}if(j(),e.instantiateWasm)try{return e.instantiateWasm(o,a)}catch(e){return y(`Module.instantiateWasm callback failed with error: ${e}`),!1}return t=H,r=o,n=function(e){a(e.instance,e.module)},h||"function"!=typeof WebAssembly.instantiateStreaming||$(t)||"function"!=typeof fetch?Q(t,r,n):fetch(t,{credentials:"same-origin"}).then((e=>WebAssembly.instantiateStreaming(e,r).then(n,(function(e){return y(`wasm streaming compile failed: ${e}`),y("falling back to ArrayBuffer instantiation"),Q(t,r,n)})))),{}}(),Bi=e.__emscripten_thread_init=(t,r,n,o,a,i)=>(Bi=e.__emscripten_thread_init=Ri._emscripten_thread_init)(t,r,n,o,a,i),Ii=(e,t,r,n)=>(Ii=Ri.__set_thread_state)(e,t,r,n),Oi=(e.__emscripten_thread_crashed=()=>(e.__emscripten_thread_crashed=Ri._emscripten_thread_crashed)(),(e,t,r,n,o)=>(Oi=Ri._emscripten_run_on_main_thread_js)(e,t,r,n,o)),Ni=e=>(Ni=Ri._emscripten_thread_free_data)(e),zi=e.__emscripten_thread_exit=t=>(zi=e.__emscripten_thread_exit=Ri._emscripten_thread_exit)(t),Gi=e._pthread_self=()=>(Gi=e._pthread_self=Ri.pthread_self)(),ji=()=>(ji=Ri._emscripten_check_mailbox)(),Wi=e=>(Wi=Ri.__cxa_is_pointer_type)(e),Ui=e=>(Ui=Ri.malloc)(e),Hi=e=>(Hi=Ri.free)(e),qi=(e._r4nd=t=>(e._r4nd=Ri.r4nd)(t),e._main=(t,r)=>(qi=e._main=Ri.main)(t,r)),Xi=(e._pl=()=>(e._pl=Ri.pl)(),e.__emscripten_tls_init=()=>(e.__emscripten_tls_init=Ri._emscripten_tls_init)(),(e,t,r,n,o)=>(Xi=Ri._emscripten_run_callback_on_thread)(e,t,r,n,o)),Vi=(e,t)=>(Vi=Ri.emscripten_stack_set_limits)(e,t),$i=(e,t)=>($i=Ri.emscripten_wasm_worker_initialize)(e,t),Yi=()=>(Yi=Ri.stackSave)(),Qi=e=>(Qi=Ri.stackRestore)(e),Ki=e=>(Ki=Ri.stackAlloc)(e);e.dynCall_jiji=(t,r,n,o,a)=>(e.dynCall_jiji=Ri.dynCall_jiji)(t,r,n,o,a),e.dynCall_ji=(t,r)=>(e.dynCall_ji=Ri.dynCall_ji)(t,r),e.___start_em_js=352393128,e.___stop_em_js=352396560;function Zi(){if(!(N>0)){if(l)return I();if(s)return I(),void startWorker(e);!function(){if(e.preRun)for("function"==typeof e.preRun&&(e.preRun=[e.preRun]);e.preRun.length;)O(e.preRun.shift());Ie(P)}(),N>0||(e.setStatus?(e.setStatus("Running..."),setTimeout((function(){setTimeout((function(){e.setStatus("")}),1),t()}),1)):t())}function t(){Di||(Di=!0,e.calledRun=!0,T||(I(),s||Ie(R),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Ji&&function(){var e=qi;try{var t=e(0,0);return pe(t,!0),t}catch(e){return ne(e)}}(),function(){if(!s){if(e.postRun)for("function"==typeof e.postRun&&(e.postRun=[e.postRun]);e.postRun.length;)t=e.postRun.shift(),B.unshift(t);var t;Ie(B)}}()))}}if(e.addRunDependency=j,e.removeRunDependency=W,e.FS_createPath=ot.createPath,e.FS_createLazyFile=ot.createLazyFile,e.FS_createDevice=ot.createDevice,e.wasmMemory=v,e.keepRuntimeAlive=ae,e.ccall=(t,r,n,o,a)=>{var i={string:e=>{var t=0;return null!=e&&0!==e&&(t=qt(e)),t},array:e=>{var t,r,n=Ki(e.length);return t=e,r=n,b.set(t,r),n}};var s=(t=>e["_"+t])(t),l=[],c=0;if(o)for(var u=0;u<o.length;u++){var d=i[n[u]];d?(0===c&&(c=Yi()),l[u]=d(o[u])):l[u]=o[u]}var m=s(...l);return m=function(e){return 0!==c&&Qi(c),function(e){return"string"===r?Ue(e):"boolean"===r?Boolean(e):e}(e)}(m)},e.ExitStatus=oe,e.FS_createPreloadedFile=ot.createPreloadedFile,e.FS_createDataFile=ot.createDataFile,e.FS_unlink=ot.unlink,G=function e(){Di||Zi(),Di||(G=e)},e.preInit)for("function"==typeof e.preInit&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();var Ji=!0;e.noInitialRun&&(Ji=!1),Zi(),function(){var e=function(e){for(var t in this.input=null,this.inputDisplay=null,this.slider=null,this.sliderWidth=0,this.sliderLeft=0,this.pointerWidth=0,this.pointerR=null,this.pointerL=null,this.activePointer=null,this.selected=null,this.scale=null,this.step=0,this.tipL=null,this.tipR=null,this.timeout=null,this.valRange=!1,this.values={start:null,end:null},this.conf={target:null,values:null,set:null,range:!1,width:null,scale:!0,labels:!0,tooltip:!0,step:null,disabled:!1,onChange:null},this.cls={container:"rs-container",background:"rs-bg",selected:"rs-selected",pointer:"rs-pointer",scale:"rs-scale",noscale:"rs-noscale",tip:"rs-tooltip"},this.conf)e.hasOwnProperty(t)&&(this.conf[t]=e[t]);this.init()};e.prototype.init=function(){return"object"==typeof this.conf.target?this.input=this.conf.target:this.input=document.getElementById(this.conf.target.replace("#","")),this.input?(this.inputDisplay=getComputedStyle(this.input,null).display,this.input.style.display="none",this.valRange=!(this.conf.values instanceof Array),!this.valRange||this.conf.values.hasOwnProperty("min")&&this.conf.values.hasOwnProperty("max")?this.createSlider():console.log("Missing min or max value...")):console.log("Cannot find target element...")},e.prototype.createSlider=function(){return this.slider=t("div",this.cls.container),this.slider.innerHTML='<div class="rs-bg"></div>',this.selected=t("div",this.cls.selected),this.pointerL=t("div",this.cls.pointer,["dir","left"]),this.scale=t("div",this.cls.scale),this.conf.tooltip&&(this.tipL=t("div",this.cls.tip),this.tipR=t("div",this.cls.tip),this.pointerL.appendChild(this.tipL)),this.slider.appendChild(this.selected),this.slider.appendChild(this.scale),this.slider.appendChild(this.pointerL),this.conf.range&&(this.pointerR=t("div",this.cls.pointer,["dir","right"]),this.conf.tooltip&&this.pointerR.appendChild(this.tipR),this.slider.appendChild(this.pointerR)),this.input.parentNode.insertBefore(this.slider,this.input.nextSibling),this.conf.width&&(this.slider.style.width=parseInt(this.conf.width)+"px"),this.sliderLeft=this.slider.getBoundingClientRect().left,this.sliderWidth=this.slider.clientWidth,this.pointerWidth=this.pointerL.clientWidth,this.conf.scale||this.slider.classList.add(this.cls.noscale),this.setInitialValues()},e.prototype.setInitialValues=function(){if(this.disabled(this.conf.disabled),this.valRange&&(this.conf.values=n(this.conf)),this.values.start=0,this.values.end=this.conf.range?this.conf.values.length-1:0,this.conf.set&&this.conf.set.length&&o(this.conf)){var e=this.conf.set;this.conf.range?(this.values.start=this.conf.values.indexOf(e[0]),this.values.end=this.conf.set[1]?this.conf.values.indexOf(e[1]):null):this.values.end=this.conf.values.indexOf(e[0])}return this.createScale()},e.prototype.createScale=function(e){this.step=this.sliderWidth/(this.conf.values.length-1);for(var r=0,n=this.conf.values.length;r<n;r++){var o=t("span"),a=t("ins");o.appendChild(a),this.scale.appendChild(o),o.style.width=r===n-1?0:this.step+"px",this.conf.labels?a.innerHTML=this.conf.values[r]:0!==r&&r!==n-1||(a.innerHTML=this.conf.values[r]),a.style.marginLeft=a.clientWidth/2*-1+"px"}return this.addEvents()},e.prototype.updateScale=function(){this.step=this.sliderWidth/(this.conf.values.length-1);for(var e=this.slider.querySelectorAll("span"),t=0,r=e.length;t<r;t++)e[t].style.width=this.step+"px";return this.setValues()},e.prototype.addEvents=function(){var e=this.slider.querySelectorAll("."+this.cls.pointer),t=this.slider.querySelectorAll("span");r(document,"mousemove touchmove",this.move.bind(this)),r(document,"mouseup touchend touchcancel",this.drop.bind(this));for(var n=0,o=e.length;n<o;n++)r(e[n],"mousedown touchstart",this.drag.bind(this));for(n=0,o=t.length;n<o;n++)r(t[n],"click",this.onClickPiece.bind(this));return window.addEventListener("resize",this.onResize.bind(this)),this.setValues()},e.prototype.drag=function(e){if(e.preventDefault(),!this.conf.disabled){var t=e.target.getAttribute("data-dir");return"left"===t&&(this.activePointer=this.pointerL),"right"===t&&(this.activePointer=this.pointerR),this.slider.classList.add("sliding")}},e.prototype.move=function(e){if(this.activePointer&&!this.conf.disabled){var t=("touchmove"===e.type?e.touches[0].clientX:e.pageX)-this.sliderLeft-this.pointerWidth/2;return(t=Math.round(t/this.step))<=0&&(t=0),t>this.conf.values.length-1&&(t=this.conf.values.length-1),this.conf.range?(this.activePointer===this.pointerL&&(this.values.start=t),this.activePointer===this.pointerR&&(this.values.end=t)):this.values.end=t,this.setValues()}},e.prototype.drop=function(){this.activePointer=null},e.prototype.setValues=function(e,t){var r=this.conf.range?"start":"end";return e&&this.conf.values.indexOf(e)>-1&&(this.values[r]=this.conf.values.indexOf(e)),t&&this.conf.values.indexOf(t)>-1&&(this.values.end=this.conf.values.indexOf(t)),this.conf.range&&this.values.start>this.values.end&&(this.values.start=this.values.end),this.pointerL.style.left=this.values[r]*this.step-this.pointerWidth/2+"px",this.conf.range?(this.conf.tooltip&&(this.tipL.innerHTML=this.conf.values[this.values.start],this.tipR.innerHTML=this.conf.values[this.values.end]),this.input.value=this.conf.values[this.values.start]+","+this.conf.values[this.values.end],this.pointerR.style.left=this.values.end*this.step-this.pointerWidth/2+"px"):(this.conf.tooltip&&(this.tipL.innerHTML=this.conf.values[this.values.end]),this.input.value=this.conf.values[this.values.end]),this.values.end>this.conf.values.length-1&&(this.values.end=this.conf.values.length-1),this.values.start<0&&(this.values.start=0),this.selected.style.width=(this.values.end-this.values.start)*this.step+"px",this.selected.style.left=this.values.start*this.step+"px",this.onChange()},e.prototype.onClickPiece=function(e){if(!this.conf.disabled){var t=Math.round((e.clientX-this.sliderLeft)/this.step);return t>this.conf.values.length-1&&(t=this.conf.values.length-1),t<0&&(t=0),this.conf.range&&t-this.values.start<=this.values.end-t?this.values.start=t:this.values.end=t,this.slider.classList.remove("sliding"),this.setValues()}},e.prototype.onChange=function(){var e=this;this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout((function(){if(e.conf.onChange&&"function"==typeof e.conf.onChange)return e.conf.onChange(e.input.value)}),500)},e.prototype.onResize=function(){return this.sliderLeft=this.slider.getBoundingClientRect().left,this.sliderWidth=this.slider.clientWidth,this.updateScale()},e.prototype.disabled=function(e){this.conf.disabled=e,this.slider.classList[e?"add":"remove"]("disabled")},e.prototype.getValue=function(){return this.input.value},e.prototype.destroy=function(){this.input.style.display=this.inputDisplay,this.slider.remove()};var t=function(e,t,r){var n=document.createElement(e);return t&&(n.className=t),r&&2===r.length&&n.setAttribute("data-"+r[0],r[1]),n},r=function(e,t,r){for(var n=t.split(" "),o=0,a=n.length;o<a;o++)e.addEventListener(n[o],r)},n=function(e){var t=[],r=e.values.max-e.values.min;if(!e.step)return console.log("No step defined..."),[e.values.min,e.values.max];for(var n=0,o=r/e.step;n<o;n++)t.push(e.values.min+n*e.step);return t.indexOf(e.values.max)<0&&t.push(e.values.max),t},o=function(e){return!e.set||e.set.length<1||e.values.indexOf(e.set[0])<0?null:!e.range||!(e.set.length<2||e.values.indexOf(e.set[1])<0)||null};window.rSlider=e}(),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self),t.Slideout=e()}}((function(){return function e(t,r,n){function o(i,s){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};t[i][0].call(u.exports,(function(e){var r=t[i][1][e];return o(r||e)}),u,u.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;i<n.length;i++)o(n[i]);return o}({1:[function(e,t,r){var n,o=e("decouple"),a=e("emitter"),i=!1,s=window.document,l=s.documentElement,c=window.navigator.msPointerEnabled,u={start:c?"MSPointerDown":"touchstart",move:c?"MSPointerMove":"touchmove",end:c?"MSPointerUp":"touchend"},d=function(){var e=/^(Webkit|Khtml|Moz|ms|O)(?=[A-Z])/,t=s.getElementsByTagName("script")[0].style;for(var r in t)if(e.test(r))return"-"+r.match(e)[0].toLowerCase()+"-";return"WebkitOpacity"in t?"-webkit-":"KhtmlOpacity"in t?"-khtml-":""}();function m(e){e=e||{},this._startOffsetX=0,this._currentOffsetX=0,this._opening=!1,this._moved=!1,this._opened=!1,this._preventOpen=!1,this.panel=e.panel,this.menu=e.menu,this._touch=(void 0===e.touch||e.touch)&&!0,this._side=e.side||"left",this._easing=e.fx||e.easing||"ease",this._duration=parseInt(e.duration,10)||300,this._tolerance=parseInt(e.tolerance,10)||70,this._padding=this._translateTo=parseInt(e.padding,10)||256,this._orientation="right"===this._side?-1:1,this._translateTo*=this._orientation,this.panel.classList.contains("slideout-panel")||this.panel.classList.add("slideout-panel"),this.panel.classList.contains("slideout-panel-"+this._side)||this.panel.classList.add("slideout-panel-"+this._side),this.menu.classList.contains("slideout-menu")||this.menu.classList.add("slideout-menu"),this.menu.classList.contains("slideout-menu-"+this._side)||this.menu.classList.add("slideout-menu-"+this._side),this._touch&&this._initTouchEvents()}!function(e,t){e.prototype=function(e,t){for(var r in t)t[r]&&(e[r]=t[r]);return e}(e.prototype||{},t.prototype)}(m,a),m.prototype.open=function(){var e=this;return this.emit("beforeopen"),l.classList.contains("slideout-open")||l.classList.add("slideout-open"),this._setTransition(),this._translateXTo(this._translateTo),this._opened=!0,setTimeout((function(){e.panel.style.transition=e.panel.style["-webkit-transition"]="",e.emit("open")}),this._duration+50),this},m.prototype.close=function(){var e=this;return this.isOpen()||this._opening?(this.emit("beforeclose"),this._setTransition(),this._translateXTo(0),this._opened=!1,setTimeout((function(){l.classList.remove("slideout-open"),e.panel.style.transition=e.panel.style["-webkit-transition"]=e.panel.style[d+"transform"]=e.panel.style.transform="",e.emit("close")}),this._duration+50),this):this},m.prototype.toggle=function(){return this.isOpen()?this.close():this.open()},m.prototype.isOpen=function(){return this._opened},m.prototype._translateXTo=function(e){return this._currentOffsetX=e,this.panel.style[d+"transform"]=this.panel.style.transform="translateX("+e+"px)",this},m.prototype._setTransition=function(){return this.panel.style[d+"transition"]=this.panel.style.transition=d+"transform "+this._duration+"ms "+this._easing,this},m.prototype._initTouchEvents=function(){var e=this;return this._onScrollFn=o(s,"scroll",(function(){e._moved||(clearTimeout(n),i=!0,n=setTimeout((function(){i=!1}),250))})),this._preventMove=function(t){e._moved&&t.preventDefault()},s.addEventListener(u.move,this._preventMove),this._resetTouchFn=function(t){void 0!==t.touches&&(e._moved=!1,e._opening=!1,e._startOffsetX=t.touches[0].pageX,e._preventOpen=!e._touch||!e.isOpen()&&0!==e.menu.clientWidth)},this.panel.addEventListener(u.start,this._resetTouchFn),this._onTouchCancelFn=function(){e._moved=!1,e._opening=!1},this.panel.addEventListener("touchcancel",this._onTouchCancelFn),this._onTouchEndFn=function(){e._moved&&(e.emit("translateend"),e._opening&&Math.abs(e._currentOffsetX)>e._tolerance?e.open():e.close()),e._moved=!1},this.panel.addEventListener(u.end,this._onTouchEndFn),this._onTouchMoveFn=function(t){if(!(i||e._preventOpen||void 0===t.touches||function(e){for(;e.parentNode;){if(null!==e.getAttribute("data-slideout-ignore"))return e;e=e.parentNode}return null}(t.target))){var r=t.touches[0].clientX-e._startOffsetX,n=e._currentOffsetX=r;if(!(Math.abs(n)>e._padding)&&Math.abs(r)>20){e._opening=!0;var o=r*e._orientation;if(e._opened&&o>0||!e._opened&&o<0)return;e._moved||e.emit("translatestart"),o<=0&&(n=r+e._padding*e._orientation,e._opening=!1),e._moved&&l.classList.contains("slideout-open")||l.classList.add("slideout-open"),e.panel.style[d+"transform"]=e.panel.style.transform="translateX("+n+"px)",e.emit("translate",n),e._moved=!0}}},this.panel.addEventListener(u.move,this._onTouchMoveFn),this},m.prototype.enableTouch=function(){return this._touch=!0,this},m.prototype.disableTouch=function(){return this._touch=!1,this},m.prototype.destroy=function(){return this.close(),s.removeEventListener(u.move,this._preventMove),this.panel.removeEventListener(u.start,this._resetTouchFn),this.panel.removeEventListener("touchcancel",this._onTouchCancelFn),this.panel.removeEventListener(u.end,this._onTouchEndFn),this.panel.removeEventListener(u.move,this._onTouchMoveFn),s.removeEventListener("scroll",this._onScrollFn),this.open=this.close=function(){},this},t.exports=m},{decouple:2,emitter:3}],2:[function(e,t,r){var n=window.requestAnimationFrame||window.webkitRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)};t.exports=function(e,t,r){var o,a=!1;function i(e){o=e,a||(n(s),a=!0)}function s(){r.call(e,o),a=!1}return e.addEventListener(t,i,!1),i}},{}],3:[function(e,t,r){r.__esModule=!0;var n=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}return e.prototype.on=function(e,t){return this._eventCollection=this._eventCollection||{},this._eventCollection[e]=this._eventCollection[e]||[],this._eventCollection[e].push(t),this},e.prototype.once=function(e,t){var r=this;function n(){r.off(e,n),t.apply(this,arguments)}return n.listener=t,this.on(e,n),this},e.prototype.off=function(e,t){var r=void 0;return this._eventCollection&&(r=this._eventCollection[e])?(r.forEach((function(e,n){e!==t&&e.listener!==t||r.splice(n,1)})),0===r.length&&delete this._eventCollection[e],this):this},e.prototype.emit=function(e){for(var t=this,r=arguments.length,n=Array(r>1?r-1:0),o=1;o<r;o++)n[o-1]=arguments[o];var a=void 0;return this._eventCollection&&(a=this._eventCollection[e])?(a=a.slice(0),a.forEach((function(e){return e.apply(t,n)})),this):this},e}();r.default=n,t.exports=r.default},{}]},{},[1])(1)}));