2025-05-16 12:46:25 -04:00

161 lines
78 KiB
JavaScript

(function(){'use strict';const da=["DEBUG","INFO","WARN","ERROR"];var ea="main",ka=null;function la(a,b,f){if(!(1>a)){var g="EagRuntimeJS: ["+(new Date).toLocaleTimeString()+"]["+ea+"/"+(da[a]||"UNKNOWN")+"] ";a:{if(0<f.length){for(var r=[],u=0;u<f.length;++u){var D=b.indexOf("{}");if(-1!=D)r.push(b.substring(0,D)),r.push(f[u]),b=b.substring(D+2);else break}if(0<r.length){r.push(b);f=r.join("");break a}}f=b}b=g+f;3<=a?console.error(b):console.log(b);ka&&ka(b,3<=a)}}function c(a,...b){la(1,a,b)}
function k(a,...b){la(3,a,b)}function oa(a,b){if(b){if(b.message?la(3,'{}: {} - "{}"',[a,b.name,b.message]):la(3,"{}: {}",[a,b.name]),"string"===typeof b.stack)for(b=qa(b.stack),a=0;a<b.length;++a)la(3," at "+b[a],[])}else la(3,"{}: <null>",[a])}function ra(a){return function(){k("Unsupported function called: {}.{}",a);return 0}}function y(a,b){a[b]=ra(b)}function sa(a){return new Promise(function(b){setTimeout(b,a)})}
class ua{constructor(){this.i=this.g=null;this.m=0}A(){return this.m}push(a){this.i&&(this.i._next=a);this.i=a;this.g||(this.g=a);++this.m}s(){if(this.g){const a=this.g;(this.g=a._next||null)?a._next=null:this.i=null;--this.m;return a}return null}};var va={},A={},wa={},xa={},ya={},F={},za={},H={},Ca={},Da=null,Ea=null,Fa=null,Ia=null,Ja=null,I=null,Ka=null,M=null,R=null,La=null,Ma=!1,Pa=0,S=null,Qa=!1,Ra=!1;const Sa=[];var Ta=null,Ua="_eaglercraftX",Va=!1,Wa=!1,Xa=!1,Ya=!1,Za=!0,tb=!0,ub=!1;
function vb(){"string"===typeof I.localStorageNamespace&&(Ua=I.localStorageNamespace);"boolean"===typeof I.openDebugConsoleOnLaunch&&(Va=I.openDebugConsoleOnLaunch);"boolean"===typeof I.fixDebugConsoleUnloadListener&&(Wa=I.fixDebugConsoleUnloadListener);"boolean"===typeof I.forceWebGL1&&(Xa=I.forceWebGL1);"boolean"===typeof I.forceWebGL2&&(Ya=I.forceWebGL2);"boolean"===typeof I.allowExperimentalWebGL1&&(Za=I.allowExperimentalWebGL1);"boolean"===typeof I.useWebGLExt&&(tb=I.useWebGLExt);"boolean"===
typeof I.useDelayOnSwap&&(ub=I.useDelayOnSwap)}
async function wb(){function a(){try{r=new AudioContext}catch(D){oa("Could not initialize audio context",D)}}vb();ka=xb;"yes"!==window.__isEaglerX188UnloadListenerSet&&(window.onbeforeunload=function(){window.__curEaglerX188UnloadListenerCB&&window.__curEaglerX188UnloadListenerCB();return!1},window.__isEaglerX188UnloadListenerSet="yes");c("Initializing EagRuntime JS context...");await yb();zb();Ka.classList.add("_eaglercraftX_root_element");Ka.style.overflow="hidden";for(var b=null,f;f=Ka.lastChild;)b||=
f,Ka.removeChild(f);M=document.createElement("div");M.classList.add("_eaglercraftX_wrapper_element");M.style.position="relative";M.style.width="100%";M.style.height="100%";M.style.overflow="hidden";M.style.backgroundColor="black";Ka.appendChild(M);b&&(b.style.position="absolute",b.style.top="0px",b.style.left="0px",b.style.right="0px",b.style.bottom="0px",b.style.zIndex="2",b.classList.add("_eaglercraftX_early_splash_element"),M.appendChild(b));await sa(10);f=window.devicePixelRatio;b=f*M.clientWidth|
0;f=f*M.clientHeight|0;c("Initializing audio context");if("function"===typeof document.exitPointerLock){var g=navigator.userAgent;null!==g?(g=g.toLowerCase(),Qa=-1!==g.indexOf("mobi")||-1!==g.indexOf("tablet")):Qa=!1}else Qa=!0;var r=null;!Qa&&navigator.userActivation&&navigator.userActivation.hasBeenActive?a():(g=document.createElement("div"),g.classList.add("_eaglercraftX_press_any_key_image"),g.style.position="absolute",g.style.top="0px",g.style.left="0px",g.style.right="0px",g.style.bottom="0px",
g.style.width="100%",g.style.height="100%",g.style.zIndex="3",g.style.touchAction="pan-x pan-y",g.style.background='center / contain no-repeat url("'+Fa+'"), left / 1000000% 100% no-repeat url("'+Fa+'") white',g.style.setProperty("image-rendering","pixelated"),M.appendChild(g),await new Promise(function(D,J){function G(){if(!N){N=!0;Qa?M.removeChild(O):(window.removeEventListener("keydown",G),M.removeEventListener("mousedown",G),M.removeEventListener("touchstart",G));try{a()}catch(B){J(B);return}D()}}
var N=!1;if(Qa){var O=document.createElement("div");O.classList.add("_eaglercraftX_mobile_press_any_key");O.setAttribute("style","position:absolute;background-color:white;font-family:sans-serif;top:10%;left:10%;right:10%;bottom:10%;border:5px double black;padding:calc(5px + 7vh) 15px;text-align:center;font-size:20px;user-select:none;z-index:10;");O.innerHTML='<h3 style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Mobile Browser Detected</h3><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 5px;">Warning: EaglercraftX WASM-GC requires a lot of memory and may not be stable on most mobile devices!</p><p style="margin-block-start:0px;margin-block-end:0px;margin:20px 2px;"><button style="font: 24px sans-serif;font-weight:bold;" class="_eaglercraftX_mobile_launch_client">Launch EaglercraftX</button></p><p style="margin-block-start:0px;margin-block-end:0px;margin:25px 5px;">(Tablets and phones with large screens work best)</p>';
O.querySelector("._eaglercraftX_mobile_launch_client").addEventListener("click",G);M.appendChild(O)}else window.addEventListener("keydown",G),M.addEventListener("mousedown",G),M.addEventListener("touchstart",G)}),M.removeChild(g));r?Ab(r):Bb();c("Creating main canvas");R=document.createElement("canvas");R.classList.add("_eaglercraftX_canvas_element");R.style.width="100%";R.style.height="100%";R.style.zIndex="1";R.style.touchAction="pan-x pan-y";R.style.setProperty("-webkit-touch-callout","none");
R.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");R.style.setProperty("image-rendering","pixelated");R.width=b;R.height=f;M.appendChild(R);await Cb();c("Creating WebGL context");M.addEventListener("webglcontextcreationerror",function(D){k("[WebGL Error]: {}",D.statusMessage)});b={antialias:!1,depth:!1,powerPreference:"high-performance",desynchronized:!0,preserveDrawingBuffer:!1,premultipliedAlpha:!1,alpha:!1};g=!1;if(Ya){c("Note: Forcing WebGL 2.0 context");f=300;var u=R.getContext("webgl2",
b);if(!u)return Db("WebGL 2.0 is not supported on this device!"),!1}else if(Xa){if(c("Note: Forcing WebGL 1.0 context"),f=200,u=R.getContext("webgl",b),!u)if(Za){if(g=!0,u=R.getContext("experimental-webgl",b),!u)return Db("WebGL is not supported on this device!"),!1}else return Db("WebGL is not supported on this device!"),!1}else if(f=300,u=R.getContext("webgl2",b),!u&&(f=200,u=R.getContext("webgl",b),!u))if(Za){if(g=!0,u=R.getContext("experimental-webgl",b),!u)return Db("WebGL is not supported on this device!"),
!1}else return Db("WebGL is not supported on this device!"),!1;g&&alert('WARNING: Detected "experimental" WebGL 1.0 support, certain graphics API features may be missing, and therefore EaglercraftX may malfunction and crash!');Pa=f;La=u;Ma=g;Eb(u,f);c("OpenGL Version: {}",H.glGetString(7938));c("OpenGL Renderer: {}",H.glGetString(7937));b=H.dumpActiveExtensions();if(0===b.length)c("Unlocked the following OpenGL ES extensions: (NONE)");else for(b.sort(),c("Unlocked the following OpenGL ES extensions:"),
f=0;f<b.length;++f)c(" - {}",b[f]);H.glClearColor(0,0,0,1);H.glClear(16384);await sa(20);c("EagRuntime JS context initialization complete");return!0}
async function Fb(){vb();ka=function(a,b){postMessage({ch:"~!LOGGER",txt:a,err:b})};c("Initializing EagRuntime worker JS context...");await yb();y(A,"setClipboard");y(A,"getClipboard");y(A,"displayFileChooser");y(A,"fileChooserHasResult");y(A,"getFileChooserResult");y(A,"clearFileChooserResult");y(A,"downloadFileWithNameU8");y(A,"downloadFileWithNameA");y(A,"downloadScreenshot");y(A,"showDebugConsole");y(A,"addLogMessage");y(A,"isShowingDebugConsole");y(A,"getFaviconURL");Bb();y(F,"keyboardLayoutSupported");
y(F,"iterateKeyboardLayout");y(F,"updateCanvasSize");y(F,"updatePlatformAndSleep");y(F,"isVSyncSupported");y(F,"mouseSetGrabbed");y(F,"isMouseGrabSupported");y(F,"isMouseGrabbed");y(F,"isPointerLocked");y(F,"supportsFullscreen");y(F,"toggleFullscreen");y(F,"isFullscreen");y(F,"touchSetOpenKeyboardZone");y(F,"touchCloseDeviceKeyboard");y(F,"touchIsDeviceKeyboardOpenMAYBE");y(F,"gamepadSupported");y(F,"isVisualViewport");y(H,"getCapBits");y(H,"glEnable");y(H,"glDisable");y(H,"glClearColor");y(H,"glClearDepth");
y(H,"glClear");y(H,"glDepthFunc");y(H,"glDepthMask");y(H,"glCullFace");y(H,"glViewport");y(H,"glBlendFunc");y(H,"glBlendFuncSeparate");y(H,"glBlendEquation");y(H,"glBlendColor");y(H,"glColorMask");y(H,"glDrawBuffers");y(H,"glReadBuffer");y(H,"glReadPixels");y(H,"glPolygonOffset");y(H,"glLineWidth");y(H,"glGenBuffers");y(H,"glGenTextures");y(H,"glCreateProgram");y(H,"glCreateShader");y(H,"glCreateFramebuffer");y(H,"glCreateRenderbuffer");y(H,"glGenQueries");y(H,"glDeleteBuffers");y(H,"glDeleteTextures");
y(H,"glDeleteProgram");y(H,"glDeleteShader");y(H,"glDeleteFramebuffer");y(H,"glDeleteRenderbuffer");y(H,"glDeleteQueries");y(H,"glBindBuffer");y(H,"glBufferData");y(H,"glBufferSubData");y(H,"glEnableVertexAttribArray");y(H,"glDisableVertexAttribArray");y(H,"glVertexAttribPointer");y(H,"glActiveTexture");y(H,"glBindTexture");y(H,"glTexParameterf");y(H,"glTexParameteri");y(H,"glTexImage3D");y(H,"glTexImage2D");y(H,"glTexSubImage2D");y(H,"glCopyTexSubImage2D");y(H,"glTexStorage2D");y(H,"glPixelStorei");
y(H,"glGenerateMipmap");y(H,"glShaderSource");y(H,"glCompileShader");y(H,"glGetShaderi");y(H,"glGetShaderInfoLog");y(H,"glUseProgram");y(H,"glAttachShader");y(H,"glDetachShader");y(H,"glLinkProgram");y(H,"glGetProgrami");y(H,"glGetProgramInfoLog");y(H,"glDrawArrays");y(H,"glDrawElements");y(H,"glBindAttribLocation");y(H,"glGetAttribLocation");y(H,"glGetUniformLocation");y(H,"glGetUniformBlockIndex");y(H,"glBindBufferRange");y(H,"glUniformBlockBinding");y(H,"glUniform1f");y(H,"glUniform2f");y(H,"glUniform3f");
y(H,"glUniform4f");y(H,"glUniform1i");y(H,"glUniform2i");y(H,"glUniform3i");y(H,"glUniform4i");y(H,"glUniformMatrix2fv");y(H,"glUniformMatrix3fv");y(H,"glUniformMatrix4fv");y(H,"glUniformMatrix3x2fv");y(H,"glUniformMatrix4x2fv");y(H,"glUniformMatrix4x3fv");y(H,"glBindFramebuffer");y(H,"glCheckFramebufferStatus");y(H,"glBlitFramebuffer");y(H,"glRenderbufferStorage");y(H,"glFramebufferTexture2D");y(H,"glFramebufferTextureLayer");y(H,"glBindRenderbuffer");y(H,"glFramebufferRenderbuffer");y(H,"glGetInteger");
y(H,"glGetError");y(H,"getAllExtensions");y(H,"dumpActiveExtensions");y(H,"glGetString");y(H,"glGenVertexArrays");y(H,"glDeleteVertexArrays");y(H,"glBindVertexArray");y(H,"glVertexAttribDivisor");y(H,"glDrawArraysInstanced");y(H,"glDrawElementsInstanced");y(H,"isContextLost");c("EagRuntime worker JS context initialization complete")}
function Gb(a){S=a.buffer;c("WebAssembly direct memory resized to {} MiB",.01*(S.byteLength/1024/10.24|0));new Uint8Array(S);new Int8Array(S);new Uint16Array(S);new Int16Array(S);new Uint32Array(S);new Int32Array(S);new Float32Array(S)}const Hb=new ua;function Y(a,b,f){Hb.push({eventType:a<<5|b,eventObj:f,_next:null})}let Ib=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/;
function qa(a){if(!a)return null;const b=[];for(let f of a.split("\n")){if(Da&&(a=Ib.exec(f),null!==a&&2<=a.length&&(a=parseInt(a[1],16),!isNaN(a))))try{const g=Da([a]);if(0<g.length){for(let r of g)b.push(""+r.className+"."+r.method+"("+r.file+":"+r.line+")");continue}}catch(g){}f=f.trim();f.startsWith("at ")&&(f=f.substring(3));b.push(f)}return b}
function Jb(a){const b=a?qa(a.stack):null;a="Native Browser Exception\n----------------------------------\n Line: "+(a&&"string"===typeof a.fileName?a.fileName:"unknown")+":"+(a&&"number"===typeof a.lineNumber?a.lineNumber:"unknown")+":"+(a&&"number"===typeof a.columnNumber?a.columnNumber:"unknown")+"\n Type: "+(a&&"string"===typeof a.name?a.name:"unknown")+"\n Desc: "+(a&&"string"===typeof a.message?a.message:"null")+"\n----------------------------------\n\nDeobfuscated stack trace:\n at "+
(b?b.join("\n at "):"null")+"\n\nThis exception was not handled by the WASM binary\n";"undefined"!==typeof window?Kb(a,!0):k("\n{}",a)}
function Kb(a,b){k("Game crashed!");var f="Game Crashed! I have fallen and I can't get up!\n\n"+a+"\n\n",g='eaglercraft.version = "'+Sa[0]+'"\neaglercraft.minecraft = "'+Sa[2]+'"\neaglercraft.brand = "'+Sa[1]+'"\n\n'+Lb()+"\nwindow.eaglercraftXOpts = "+JSON.stringify(I)+"\n\ncurrentTime = "+(new Date).toLocaleString()+"\n\n"+Mb("userAgent")+Mb("vendor")+Mb("language")+Mb("hardwareConcurrency")+Mb("deviceMemory")+Mb("platform")+Mb("product")+Nb()+"\n"+Ob("localStorage")+Ob("sessionStorage")+Ob("indexedDB")+
"\nrootElement.clientWidth = "+(M?M.clientWidth:"undefined")+"\nrootElement.clientHeight = "+(M?M.clientHeight:"undefined")+"\n"+Ob("innerWidth")+Ob("innerHeight")+Ob("outerWidth")+Ob("outerHeight")+Ob("devicePixelRatio")+Pb("availWidth")+Pb("availHeight")+Pb("colorDepth")+Pb("pixelDepth")+"\n"+Qb()+"\n",r=f+g;const u=[];try{"object"===typeof I&&"object"===typeof I.hooks&&"function"===typeof I.hooks.crashReportShow&&I.hooks.crashReportShow(r,function(D){u.push(D)})}catch(D){oa("Uncaught exception invoking crash report hook",
D)}if(Ra){k("");k("An additional crash report was supressed:");r=a.split(/[\r\n]+/);for(a=0;a<r.length;++a)k(" {}",r[a]);if(0<u.length)for(a=0;a<u.length;++a)if(r=u[a]){k("");k(" ----------[ CRASH HOOK ]----------");r=r.split(/[\r\n]+/);for(a=0;a<r.length;++a)k(" {}",r[a]);k(" ----------------------------------")}}else{Ra=!0;if(0<u.length){r=f+"Got the following messages from the crash report hook registered in eaglercraftXOpts:\n\n";for(a=0;a<u.length;++a)r+="----------[ CRASH HOOK ]----------\n"+
u[a]+"\n----------------------------------\n\n";r+=g}(g=M||Ka)?(b&&k("\n{}",r),b=document.createElement("img"),a=document.createElement("div"),b.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);"),b.src=Ia,a.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;white-space:pre-wrap;font: 14px monospace;padding:10px;"),
a.classList.add("_eaglercraftX_crash_element"),g.appendChild(b),g.appendChild(a),a.appendChild(document.createTextNode(r)),Ta&&Ta(),window.__curEaglerX188UnloadListenerCB=null):(alert("Root element not found, crash report was printed to console"),k("\n{}",r))}}
function Db(a){if(!Ra){Ra=!0;var b=M||Ka;k("Compatibility error: {}",a);if(b){var f=document.createElement("img"),g=document.createElement("div");f.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");f.src=Ia;g.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:50px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;font:18px sans-serif;padding:40px;");g.classList.add("_eaglercraftX_incompatible_element");
b.appendChild(f);b.appendChild(g);g.innerHTML='<h2><svg style="vertical-align:middle;margin:0px 16px 8px 8px;" xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48" fill="none"><path stroke="#000000" stroke-width="3" stroke-linecap="square" d="M1.5 8.5v34h45v-28m-3-3h-10v-3m-3-3h-10m15 6h-18v-3m-3-3h-10"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M12 21h0m0 4h0m4 0h0m0-4h0m-2 2h0m20-2h0m0 4h0m4 0h0m0-4h0m-2 2h0"/><path stroke="#000000" stroke-width="2" stroke-linecap="square" d="M20 30h0 m2 2h0 m2 2h0 m2 2h0 m2 -2h0 m2 -2h0 m2 -2h0"/></svg>+ This device is incompatible with Eaglercraft&ensp;:(</h2><div style="margin-left:40px;"><p style="font-size:1.2em;"><b style="font-size:1.1em;">Issue:</b> <span style="color:#BB0000;" id="_eaglercraftX_crashReason"></span><br /></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashUserAgent"></p><p style="margin-left:10px;font:0.9em monospace;" id="_eaglercraftX_crashWebGL"></p><p style="margin-left:10px;font:0.9em monospace;">Current Date: '+
(new Date).toLocaleString()+'</p><p><br /><span style="font-size:1.1em;border-bottom:1px dashed #AAAAAA;padding-bottom:5px;">Things you can try:</span></p><ol><li><span style="font-weight:bold;">Just try using Eaglercraft on a different device</span>, it isn\'t a bug it\'s common sense</li><li style="margin-top:7px;">If this screen just appeared randomly, try restarting your browser or device</li><li style="margin-top:7px;">If you are not using Chrome/Edge, try installing the latest Google Chrome</li><li style="margin-top:7px;">If your browser is out of date, please update it to the latest version</li></ol></div>';
g.querySelector("#_eaglercraftX_crashReason").appendChild(document.createTextNode(a));try{var r=window.navigator.userAgent}catch(D){r="<error>"}g.querySelector("#_eaglercraftX_crashUserAgent").appendChild(document.createTextNode(r));Ta&&Ta();window.__curEaglerX188UnloadListenerCB=null;a="No GL_RENDERER string could be queried";try{const D=document.createElement("canvas");D.width=64;D.height=64;const J=D.getContext("webgl");if(J){if(J.getExtension("WEBGL_debug_renderer_info"))var u=J.getParameter(37446);
else(u=J.getParameter(WebGLRenderingContext.RENDERER))&&(u+=" [masked]");u&&(a=u)}}catch(D){}g.querySelector("#_eaglercraftX_crashWebGL").appendChild(document.createTextNode(a))}else alert("Compatibility error: "+a)}}var Rb=null;
function Lb(){if(Rb)return Rb;try{var a=La,b=Ma;if(!a){b=!1;var f=document.createElement("canvas");f.width=64;f.height=64;a=f.getContext("webgl2");a||(a=f.getContext("webgl"),a||(b=!0,a=f.getContext("experimental-webgl")))}return a?(f="",0<Pa&&(f+="webgl.version = "+a.getParameter(7938)+"\n"),f=a.getExtension("WEBGL_debug_renderer_info")?f+("webgl.renderer = "+a.getParameter(37446)+"\nwebgl.vendor = "+a.getParameter(37445)+"\n"):f+("webgl.renderer = "+a.getParameter(7937)+" [masked]\nwebgl.vendor = "+
a.getParameter(7936)+" [masked]\n"),0<Pa?(f+="\nwebgl.version.id = "+Pa+"\nwebgl.experimental = "+b,200===Pa?f+="\nwebgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+!!a.getExtension("OES_texture_float")+
"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear"):300<=Pa&&(f+="\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")),f+="\nwebgl.ext.EXT_texture_filter_anisotropic = "+
!!a.getExtension("EXT_texture_filter_anisotropic")+"\n"):f+="webgl.ext.ANGLE_instanced_arrays = "+!!a.getExtension("ANGLE_instanced_arrays")+"\nwebgl.ext.EXT_color_buffer_float = "+!!a.getExtension("EXT_color_buffer_float")+"\nwebgl.ext.EXT_color_buffer_half_float = "+!!a.getExtension("EXT_color_buffer_half_float")+"\nwebgl.ext.EXT_shader_texture_lod = "+!!a.getExtension("EXT_shader_texture_lod")+"\nwebgl.ext.OES_fbo_render_mipmap = "+!!a.getExtension("OES_fbo_render_mipmap")+"\nwebgl.ext.OES_texture_float = "+
!!a.getExtension("OES_texture_float")+"\nwebgl.ext.OES_texture_float_linear = "+!!a.getExtension("OES_texture_float_linear")+"\nwebgl.ext.OES_texture_half_float = "+!!a.getExtension("OES_texture_half_float")+"\nwebgl.ext.OES_texture_half_float_linear = "+!!a.getExtension("OES_texture_half_float_linear")+"\nwebgl.ext.EXT_texture_filter_anisotropic = "+!!a.getExtension("EXT_texture_filter_anisotropic")+"\n",Rb=f):Rb="Failed to query GPU info!\n"}catch(g){return Rb="ERROR: could not query webgl info - "+
g+"\n"}}function Mb(a){try{var b=window.navigator[a]}catch(f){b="<error>"}return"window.navigator."+a+" = "+b+"\n"}function Nb(){try{var a=[];if("object"===typeof navigator.plugins){var b=navigator.plugins.length;if(0<b)for(var f=0;f<b;++f){var g=navigator.plugins[f];a.push({name:g.name,filename:g.filename,desc:g.description})}}var r=JSON.stringify(a)}catch(u){r="<error>"}return"window.navigator.plugins = "+r+"\n"}
function Pb(a){try{var b=window.screen[a]}catch(f){b="<error>"}return"window.screen."+a+" = "+b+"\n"}function Qb(){try{var a=window.location.href}catch(b){a="<error>"}return"window.location.href = "+a+"\n"}function Ob(a){try{var b=window[a]}catch(f){b="<error>"}return"window."+a+" = "+b+"\n"};function Sb(a,b,f){const g=document.createElement("a");g.style.position="absolute";g.style.left="0px";g.style.top="0px";g.style.zIndex="-100";g.style.color="transparent";g.innerText="Download File";g.href=b;g.target="_blank";g.download=a;M.appendChild(g);setTimeout(function(){g.click();setTimeout(function(){M.removeChild(g)},50);f&&setTimeout(f,6E4)},50)}var Tb=0,Ub=null,Vb=null,Z=null,Wb=null;
function xb(a,b){if(Z)Wb&&Wb(a,b);else for(a={msg:a,err:b,next:null},Vb&&(Vb.next=a),Ub||=a,Vb=a,++Tb;256<Tb;)--Tb,Ub&&=Ub.next}
function zb(){function a(){D=!1;J=null;null!==N?(M.removeChild(N),G=N=null):null!==G&&(M.removeChild(G),G=null)}function b(d){try{window.localStorage&&window.localStorage.setItem(ha,d?"true":"false")}catch(q){}}function f(){try{if(window.localStorage){const d=window.localStorage.getItem(ha);return d&&"true"===d.toLowerCase()}return!1}catch(d){return!1}}function g(){if(Z)Z.focus();else{var d=Math.round(1E3*window.devicePixelRatio);const q=Math.round(400*window.devicePixelRatio);if(Z=window.open("",
"_blank","top="+Math.round((window.screen.height-q)/2)+",left="+Math.round((window.screen.width-d)/2)+",width="+d+",height="+q+",menubar=0,status=0,titlebar=0,toolbar=0")){Z.focus();O=Z.document;O.write('<!DOCTYPE html><html><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Debug Console</title><link type="image/png" rel="shortcut icon" href="'+Ja+'" /></head><body style="overflow-x:hidden;overflow-y:scroll;padding:0px;"><p id="loggerMessageContainer" style="overflow-wrap:break-word;white-space:pre-wrap;font:14px monospace;padding:10px;"></p></body></html>');
O.close();B=O.body;X=O.getElementById("loggerMessageContainer");for(d=Ub;d;)r(d.msg+"\n",d.err?"#DD0000":"#000000"),d=d.next;Vb=Ub=null;Tb=0;u();d=()=>{null!=Z&&(Z=null,b(!1))};Z.addEventListener("beforeunload",d);Z.addEventListener("unload",d)}else k("Logger popup was blocked!"),window.alert("ERROR: Popup blocked!\n\nPlease make sure you have popups enabled for this site!")}}function r(d,q){var v=O.createElement("span");v.innerText=d;v.style.color=q;X.appendChild(v);for(d=X.children;2048<d.length;)d[0].remove()}
function u(){setTimeout(()=>{Z.scrollTo(0,B.scrollHeight||B.clientHeight)},1)}A.setClipboard=function(d){try{if(window.navigator.clipboard)return window.navigator.clipboard.writeText(d),!0}catch(q){k("Failed to set clipboard data!")}return!1};A.getClipboard=new WebAssembly.Suspending(async function(){var d=null;try{window.navigator.clipboard&&(d=await navigator.clipboard.readText())}catch(q){k("Failed to read clipboard data!")}return d});var D=!1,J=null,G=null,N=null;A.displayFileChooser=function(d,
q){a();if(Qa){const n=N=document.createElement("div");n.classList.add("_eaglercraftX_mobile_file_chooser_popup");n.style.position="absolute";n.style.backgroundColor="white";n.style.fontFamily="sans-serif";n.style.top="10%";n.style.left="10%";n.style.right="10%";n.style.border="5px double black";n.style.padding="15px";n.style.textAlign="left";n.style.fontSize="20px";n.style.userSelect="none";n.style.zIndex="150";var v=document.createElement("h3");v.appendChild(document.createTextNode("File Chooser"));
n.appendChild(v);v=document.createElement("p");const w=G=document.createElement("input");w.type="file";w.accept=null===d?"."+q:d;w.multiple=!1;v.appendChild(w);n.appendChild(v);d=document.createElement("p");q=document.createElement("button");q.classList.add("_eaglercraftX_mobile_file_chooser_btn_cancel");q.style.fontSize="1.0em";q.addEventListener("click",function(){N===n&&(M.removeChild(n),G=N=null)});q.appendChild(document.createTextNode("Cancel"));d.appendChild(q);d.appendChild(document.createTextNode(" "));
q=document.createElement("button");q.classList.add("_eaglercraftX_mobile_file_chooser_btn_done");q.style.fontSize="1.0em";q.style.fontWeight="bold";q.addEventListener("click",function(){if(N===n){if(0<w.files.length){const l=w.files[0];l.arrayBuffer().then(function(z){D=!0;J={fileName:l.name,fileData:z}}).catch(function(){D=!0;J=null})}else D=!0,J=null;M.removeChild(n);G=N=null}});q.appendChild(document.createTextNode("Done"));d.appendChild(q);n.appendChild(d);M.appendChild(n)}else{const n=G=document.createElement("input");
n.type="file";n.style.position="absolute";n.style.left="0px";n.style.top="0px";n.style.zIndex="-100";n.accept=null===d?"."+q:d;n.multiple=!1;n.addEventListener("change",function(){if(G===n){if(0<n.files.length){const w=n.files[0];w.arrayBuffer().then(function(l){D=!0;J={fileName:w.name,fileData:l}}).catch(function(){D=!0;J=null})}else D=!0,J=null;M.removeChild(n);G=null}});M.appendChild(n);window.setTimeout(function(){n.click()},50)}};A.fileChooserHasResult=function(){return D};A.getFileChooserResult=
function(){D=!1;const d=J;J=null;return d};A.clearFileChooserResult=a;A.downloadFileWithNameU8=function(d,q){const v=URL.createObjectURL(new Blob([q],{type:"application/octet-stream"}));Sb(d,v,function(){URL.revokeObjectURL(v)})};A.downloadFileWithNameA=function(d,q){const v=URL.createObjectURL(new Blob([q],{type:"application/octet-stream"}));Sb(d,v,function(){URL.revokeObjectURL(v)})};A.downloadScreenshot=function(d,q){Sb(d,q.toDataURL("image/png"),null)};var O=null,B=null,X=null;const ha=Ua+"showDebugConsole",
p=Wa?"beforeunload":"unload";try{window.addEventListener(p,()=>{if(Z){var d=Z;X=B=O=Z=null;d.close()}})}catch(d){}(Va||f())&&g();Wb=function(d,q){var v=Z.innerHeight+Z.pageYOffset>=B.offsetHeight;r(d+"\n",q?"#DD0000":"#000000");v&&u()};A.showDebugConsole=function(){b(!0);g()};A.addLogMessage=xb;A.isShowingDebugConsole=function(){return!!Z};A.getFaviconURL=function(){return Ja}};wa.getEPKFileData=function(a){const b=Ea[a];Ea[a]=null;return b};wa.getEPKFileCount=function(){return Ea.length};
if("undefined"!==typeof window){wa.loadImageFile0=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=URL.createObjectURL(new Blob([a],{type:b}));if(g){const r=document.createElement("img");r.addEventListener("load",function(){URL.revokeObjectURL(g);f({width:r.width,height:r.height,img:r})});r.addEventListener("error",function(){URL.revokeObjectURL(g);f(null)});r.src=g}else f(null)})});var Xb=null,Yb=null;wa.loadImageFile1=function(a,b){const f=a.width,g=a.height;if(a=
a.img)Xb||=document.createElement("canvas"),Xb.width<f&&(Xb.width=f),Xb.height<g&&(Xb.height=g),Yb||(Yb=Xb.getContext("2d",{willReadFrequently:!0}),Yb.imageSmoothingEnabled=!1),Yb.clearRect(0,0,f,g),Yb.drawImage(a,0,0,f,g),b.set(Yb.getImageData(0,0,f,g).data,0)}}else y(wa,"loadImageFile0"),y(wa,"loadImageFile1");function Ab(a){xa.getContext=function(){return a};xa.registerIsEndedHandler=function(b,f){f.selfEndHandler||(f.selfEndHandler=function(){f.isEnded=!0});b.addEventListener("ended",f.selfEndHandler)};xa.releaseIsEndedHandler=function(b,f){f.selfEndHandler&&b.removeEventListener("ended",f.selfEndHandler)};xa.decodeAudioBrowser=new WebAssembly.Suspending(function(b,f){return new Promise(function(g){const r=new Uint8Array(b.length);r.set(b,0);a.decodeAudioData(r.buffer,g,function(){k("Failed to load audio: {}",
f);g(null)})})})}function Bb(){xa.getContext=function(){return null};y(xa,"registerIsEndedHandler");y(xa,"releaseIsEndedHandler");y(xa,"decodeAudioBrowser")};function Zb(a){return"string"===typeof a?a:"undefined"===typeof a?null:"string"===typeof a[0]?a[0]:null}function $b(a){return"undefined"===typeof a?null:"undefined"===typeof a.data?null:a.data}
ya.openDB=new WebAssembly.Suspending(function(a){return new Promise(function(b){if("undefined"===typeof indexedDB)b({failedInit:!0,failedLocked:!1,failedError:"IndexedDB not supported",database:null});else{try{var f=indexedDB.open(a,1)}catch(r){b({failedInit:!0,failedLocked:!1,failedError:"Exception opening database",database:null});return}var g=b;f.addEventListener("success",function(){g&&g({failedInit:!1,failedLocked:!1,failedError:null,database:f.result});g=null});f.addEventListener("blocked",
function(){g&&g({failedInit:!1,failedLocked:!0,failedError:"Database is locked",database:null});g=null});f.addEventListener("error",function(){g&&g({failedInit:!0,failedLocked:!1,failedError:"Opening database failed",database:null});g=null});f.addEventListener("upgradeneeded",function(){f.result.createObjectStore("filesystem",{keyPath:["path"]})})}})});
function ac(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readwrite").objectStore("filesystem").delete([b]);g.addEventListener("success",function(){f(!0)});g.addEventListener("error",function(){f(!1)})})}ya.eaglerDelete=new WebAssembly.Suspending(ac);
function bc(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);g.addEventListener("success",function(){f($b(g.result))});g.addEventListener("error",function(){f(null)})})}ya.eaglerRead=new WebAssembly.Suspending(bc);
function cc(a,b,f){return new Promise(function(g){const r=a.transaction("filesystem","readwrite").objectStore("filesystem").put({path:b,data:f});r.addEventListener("success",function(){g(!0)});r.addEventListener("error",function(){g(!1)})})}ya.eaglerWrite=new WebAssembly.Suspending(cc);
ya.eaglerExists=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").count([b]);g.addEventListener("success",function(){f(0<g.result)});g.addEventListener("error",function(){f(!1)})})});ya.eaglerMove=new WebAssembly.Suspending(async function(a,b,f){const g=await bc(a,b);return g&&await cc(a,f,g)?await ac(a,b):!1});
ya.eaglerCopy=new WebAssembly.Suspending(async function(a,b,f){return(b=await bc(a,b))&&await cc(a,f,b)});ya.eaglerSize=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){const g=a.transaction("filesystem","readonly").objectStore("filesystem").get([b]);g.addEventListener("success",function(){const r=$b(g.result);f(r?r.byteLength:-1)});g.addEventListener("error",function(){f(-1)})})});
function dc(a){if(0===a.length)return-1;for(var b=0,f=0,g=a.length;f<g;++f)47===a.charCodeAt(f)&&++b;return b}
ya.eaglerIterate=new WebAssembly.Suspending(function(a,b,f){return new Promise(function(g){const r=[],u=a.transaction("filesystem","readonly").objectStore("filesystem").openCursor(),D=0===b.length,J=f?-1:dc(b);u.addEventListener("success",function(){const G=u.result;if(null===G||null===G.key)g({length:r.length,getRow:function(O){return r[O]}});else{var N=Zb(G.key);null!=N&&(!D&&!N.startsWith(b)||!f&&dc(N)!==J||r.push(N));G.continue()}});u.addEventListener("error",function(){g(null)})})});async function Cb(){function a(){var e=window.devicePixelRatio;.01>e&&(e=1);ha=X=0;for(var t=R;t&&!isNaN(t.offsetLeft)&&!isNaN(t.offsetTop);)X+=t.offsetLeft-t.scrollLeft,ha+=t.offsetTop-t.scrollTop,t=t.offsetParent;t=M.clientWidth*e|0;var Q=M.clientHeight*e|0,K=0,U=0,ja=t,fa=Q;if(aa){fa=window.visualViewport;var V=fa.scale;K=fa.pageLeft*e*V;U=fa.pageTop*e*V;ja=fa.width*e*V;fa=fa.height*e*V;1>ja&&(ja=1);1>fa&&(fa=1);0>K?(ja+=K,K=0):K>=t&&(K=t-1);0>U?(fa+=U,U=0):U>=Q&&(U=Q-1);K+ja>t&&(ja=t-K);U+fa>
Q&&(fa=Q-U)}V={eventTypeMask:0};L!==e&&(L=e,V.eventTypeMask|=4,V.windowDPI=e);if(C!==t||T!==Q)C=t,T=Q,V.eventTypeMask|=1,V.windowWidth=t,V.windowHeight=Q;if(ia!==K||Na!==U||Aa!==ja||Oa!==fa)ia=K,Na=U,Aa=ja,Oa=fa,V.eventTypeMask|=2,V.visualViewportX=K,V.visualViewportY=U,V.visualViewportW=ja,V.visualViewportH=fa;0!==V.eventTypeMask&&Y(0,9,V)}function b(e){const t=e.length,Q=Array(t);for(var K=0;K<t;++K){const U=e.item(K);Q[K]={pointX:U.pageX-X,pointY:U.pageY-ha,radius:.5*(U.radiusX+U.radiusY),force:U.force,
pointUID:U.identifier}}return Q}function f(e,t){return{eventType:e,keyCode:t.code||null,keyName:t.key||null,legacyCode:"number"===typeof t.which?t.which:"number"===typeof t.keyCode?t.keyCode:0,location:t.location,mods:(t.ctrlKey?1:0)|(t.shiftKey?2:0)|(t.metaKey?4:0)}}function g(){return new Promise(function(e){if(-1!==E)throw Error("Main thread is already waiting for VSync!");const t=[!1];window.requestAnimationFrame(function(){t[0]||(t[0]=!0,-1!==E&&(window.clearTimeout(E),E=-1),e())});E=window.setTimeout(function(){t[0]||
(t[0]=!0,E=-1,e())},20)})}function r(e){return new Promise(function(t){setTimeout(t,e)})}function u(e){if(0<e&&1E3>=e){const Q=1E3/e;if(0===ba)ba=performance.now()+Q;else{e=performance.now();var t=ba-e|0;if(0<t)return!ub&&ec?fc().then(function(){var K=performance.now(),U=ba-K|0;if(0<U)return r(U).then(function(){var ja=performance.now();(ba+=Q)<ja&&(ba=ja)});(ba+=Q)<K&&(ba=K)}):r(t).then(function(){var K=performance.now();(ba+=Q)<K&&(ba=K)});(ba+=Q)<e&&(ba=e)}}else ba=0;return ub?gc(0):fc()}function D(e){if(ta){pa=
!!e;var t=performance.now()|0;if(e){Ba=!0;try{R.requestPointerLock()}catch(Q){}-1!==ma&&window.clearTimeout(ma);ma=-1;3E3>t-Ga&&(ma=window.setTimeout(function(){try{R.requestPointerLock()}catch(Q){}},3100-(t-Ga)))}else if(-1!==ma&&window.clearTimeout(ma),ma=-1,!Ba)try{document.exitPointerLock()}catch(Q){}}}function J(){if(ca)if(h.matches){if(m)try{navigator.keyboard.unlock()}catch(e){}try{document.exitFullscreen()}catch(e){}}else{if(m)try{navigator.keyboard.lock()}catch(e){}try{R.requestFullscreen()}catch(e){}}}
function G(){O()?N():d?(d.blur(),d.value="",setTimeout(function(){d&&(p?p.removeChild(d):d.remove(),d=null);p&&(M.removeChild(p),p=null)},10)):(p&&(M.removeChild(p),p=null),p=document.createElement("form"),p.setAttribute("autocomplete","off"),p.classList.add("_eaglercraftX_text_input_wrapper"),p.style.position="absolute",p.style.top="0px",p.style.left="0px",p.style.right="0px",p.style.bottom="0px",p.style.zIndex="-100",p.style.margin="0px",p.style.padding="0px",p.style.border="none",p.addEventListener("submit",
function(e){e.preventDefault();e.stopPropagation();e=e.timeStamp;e&&(0!==w&&10>e-w||0!==l&&10>e-l||0!==z&&10>e-z)||(n||(c("Note: Generating return keystroke from submit event on form, this browser probably doesn't generate keydown/beforeinput/input when enter/return is pressed on the on-screen keyboard"),n=!0),Y(0,3,{eventType:0,absoluteCode:28,absoluteChar:10}))}),d=document.createElement("input"),d.type="password",d.value=" ",d.classList.add("_eaglercraftX_text_input_element"),d.setAttribute("autocomplete",
"off"),d.style.position="absolute",d.style.top="0px",d.style.left="0px",d.style.right="0px",d.style.bottom="0px",d.style.zIndex="-100",d.style.margin="0px",d.style.padding="0px",d.style.border="none",d.style.setProperty("-webkit-touch-callout","default"),d.addEventListener("beforeinput",function(e){if(d===e.target){q||(c("Note: Caught beforeinput event from on-screen keyboard, browser probably does not generate global keydown/keyup events on text fields, or does not respond to cancelling keydown"),
q=!0);var t=e.timeStamp;if(t){if(0!==w&&10>t-w)return;l=t}e.preventDefault();e.stopPropagation();switch(e.inputType){case "insertParagraph":case "insertLineBreak":Y(0,3,{eventType:0,absoluteCode:28,absoluteChar:10});break;case "deleteWordBackward":case "deleteSoftLineBackward":case "deleteHardLineBackward":case "deleteEntireSoftLine":case "deleteContentBackward":case "deleteContent":Y(0,3,{eventType:0,absoluteCode:14,absoluteChar:0});break;case "deleteWordForward":case "deleteSoftLineForward":case "deleteHardLineForward":case "deleteContentForward":Y(0,
3,{eventType:0,absoluteCode:211,absoluteChar:0});break;case "insertText":case "insertCompositionText":case "insertReplacementText":(e=e.data)&&0<e.length&&Y(0,3,{eventType:1,codepoints:e});break;case "insertFromPaste":case "insertFromPasteAsQuotation":case "insertFromDrop":case "insertFromYank":case "insertLink":(e=e.data)&&0<e.length&&Y(0,4,e);break;case "historyUndo":case "historyRedo":case "deleteByDrag":case "deleteByCut":break;default:c('Ignoring InputEvent.inputType "{}" from on-screen keyboard',
e.inputType)}}}),d.addEventListener("input",function(e){if(d===e.target){v||(c("Note: Caught legacy input events from on-screen keyboard, browser could be outdated and doesn't support beforeinput event, or does not respond to cancelling beforeinput"),v=!0);if(e=e.timeStamp){if(0!==w&&10>e-w||0!==l&&10>e-l)return;z=e}e=d.value;var t=e.length;0===t?Y(0,3,{eventType:0,absoluteCode:14,absoluteChar:0}):1===t?Y(0,3,{eventType:1,codepoints:e}):(e=e.trim(),t=e.length,0===t?Y(0,3,{eventType:0,absoluteCode:57,
absoluteChar:32}):Y(0,3,{eventType:1,codepoints:e.charAt(t-1)}));d.value=" ";d.setSelectionRange(1,1)}}),d.addEventListener("focus",function(e){d===e.target&&(d.value=" ",d.setSelectionRange(1,1))}),d.addEventListener("select",function(e){d===e.target&&(e.preventDefault(),e.stopPropagation(),d.value=" ",d.setSelectionRange(1,1))}),p.appendChild(d),M.appendChild(p),d.value=" ",d.focus(),d.select(),d.setSelectionRange(1,1))}function N(){if(d){d.blur();d.value="";const e=d,t=p;window.setTimeout(function(){null!==
t?(t.removeChild(e),t.remove()):e.remove()},10);p=d=null}else p&&(M?M.removeChild(p):p.remove(),p=null)}function O(){return!!d&&document.activeElement===d}var B=null,X=0,ha=0,p=null,d=null,q=!1,v=!1,n=!1,w=0,l=0,z=0,C=-1,T=-1,L=-1,aa=!1,ia=-1,Na=-1,Aa=-1,Oa=-1,ta=!1,pa=!1,Ba=!1,Ga=0,ma=-1,ca=!1,h=null,m=!1,x=!1,E=-1,P=!1,W=null,na=null,Ha=null,$a=null,ab=null,bb=null,cb=null,db=null,eb=null,fb=null,gb=null,hb=null,ib=null,jb=null,kb=null,lb=null,mb=null,nb=null,ob=null,pb=null,qb=null,rb=null,sb=
null;B=document.createElement("div");B.classList.add("_eaglercraftX_keyboard_open_zone");B.style.display="none";B.style.position="absolute";B.style.backgroundColor="transparent";B.style.top="0px";B.style.left="0px";B.style.width="0px";B.style.height="0px";B.style.zIndex="100";B.style.touchAction="pan-x pan-y";B.style.setProperty("-webkit-touch-callout","none");B.style.setProperty("-webkit-tap-highlight-color","rgba(255, 255, 255, 0)");M.appendChild(B);a();M.addEventListener("contextmenu",W=function(e){e.preventDefault();
e.stopPropagation()});R.addEventListener("mousedown",na=function(e){e.preventDefault();e.stopPropagation();ta&&pa&&document.pointerLockElement!==R?D(1):Y(0,0,{eventType:0,posX:e.offsetX,posY:e.offsetY,button:e.button})});R.addEventListener("mouseup",Ha=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:1,posX:e.offsetX,posY:e.offsetY,button:e.button})});R.addEventListener("mousemove",$a=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:2,posX:e.offsetX,posY:e.offsetY,
movementX:e.movementX,movementY:e.movementY})});R.addEventListener("mouseenter",ab=function(){Y(0,7,null)});R.addEventListener("mouseleave",bb=function(){Y(0,8,null)});R.addEventListener("touchstart",cb=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:0,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)});N()});R.addEventListener("touchend",db=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:2,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});
R.addEventListener("touchmove",eb=function(e){e.preventDefault();e.stopPropagation();Y(0,2,{eventType:1,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});R.addEventListener("touchcancel",fb=function(e){Y(0,2,{eventType:2,changedTouches:b(e.changedTouches),targetTouches:b(e.targetTouches)})});R.addEventListener("wheel",nb=function(e){e.preventDefault();e.stopPropagation();Y(0,0,{eventType:3,posX:e.offsetX,posY:e.offsetY,wheel:e.deltaY})});window.addEventListener("blur",pb=function(){Y(0,
6,null)});window.addEventListener("focus",ob=function(){Y(0,5,null)});window.addEventListener("keydown",ib=function(e){e.preventDefault();e.stopPropagation();"F11"!==e.key||e.repeat?(Y(0,1,f(e.repeat?2:0,e)),e.timeStamp&&"Unidentified"!==e.key&&(w=e.timeStamp)):J()});window.addEventListener("keyup",jb=function(e){e.preventDefault();e.stopPropagation();Y(0,1,f(1,e))});B.addEventListener("touchstart",kb=function(e){e.preventDefault();e.stopPropagation()});B.addEventListener("touchend",lb=function(e){e.preventDefault();
e.stopPropagation();G()});B.addEventListener("touchmove",mb=function(e){e.preventDefault();e.stopPropagation()});(ta="function"===typeof document.exitPointerLock)?(document.addEventListener("pointerlockchange",qb=function(){window.setTimeout(function(){const e=document.pointerLockElement===R;e||pa&&(Ga=performance.now()|0);pa=e},60);Ba=!1}),document.addEventListener("pointerlockerror",rb=function(){Ba=!1})):k("Pointer lock is not supported on this browser");(ca="function"===typeof document.exitFullscreen)?
(h=window.matchMedia("(display-mode: fullscreen)"),(m=!(!navigator.keyboard||!navigator.keyboard.lock))&&h.addEventListener("change",sb=function(){h.matches||navigator.keyboard.unlock()})):k("Fullscreen is not supported on this browser");if("undefined"!==typeof window.visualViewport)if("body"===Ka.tagName.toLowerCase())aa=!0;else{const e=document.body;10>=Math.abs(e.clientWidth-M.clientWidth)&&10>=Math.abs(e.clientHeight-M.clientHeight)&&(aa=!0)}else aa=!1;aa&&c("Note: Detected game is embedded in body, some screens may be resized to window.visualViewport instead for a better mobile experience");
try{await g(),x=!0}catch(e){x=!1}x||k("VSync is not supported on this browser");(P="function"===typeof navigator.getGamepads)?(window.addEventListener("gamepadconnected",gb=function(){Y(0,10,{eventType:0})}),window.addEventListener("gamepaddisconnected",hb=function(e){Y(0,10,{eventType:1,gamepad:e.gamepad})})):k("Gamepad detected as unsupported!");F.keyboardLayoutSupported=function(){return!(!navigator.keyboard||!navigator.keyboard.getLayoutMap)};F.iterateKeyboardLayout=new WebAssembly.Suspending(async function(){const e=
[];try{const t=await navigator.keyboard.getLayoutMap();t&&t.forEach&&t.forEach(function(Q,K){e.push({key:Q,value:K})})}catch(t){}return e});F.updateCanvasSize=function(e,t){R.width!==e&&(R.width=e);R.height!==t&&(R.height=t)};var ba=0;F.updatePlatformAndSleep=new WebAssembly.Suspending(function(e,t){a();if("string"!==typeof document.visibilityState||"visible"===document.visibilityState)return x&&t?(ba=0,g()):0>=e?(ba=0,ub?gc(0):fc()):u(e);ba=0;return r(50)});F.isVSyncSupported=function(){return x};
F.mouseSetGrabbed=D;F.isMouseGrabSupported=function(){return ta};F.isMouseGrabbed=function(){return pa};F.isPointerLocked=function(){return ta&&(Ba||document.pointerLockElement===R)};F.supportsFullscreen=function(){return ca};F.toggleFullscreen=J;F.isFullscreen=function(){return ca&&h.matches};F.touchSetOpenKeyboardZone=function(e,t,Q,K){0!==Q&&0!==K?(B.style.display="block",B.style.top=""+(T-t-K)/L+"px",B.style.left=""+e/L+"px",B.style.width=""+Q/L+"px",B.style.height=""+K/L+"px"):(B.style.display=
"none",B.style.top="0px",B.style.left="0px",B.style.width="0px",B.style.height="0px")};F.touchCloseDeviceKeyboard=N;F.touchIsDeviceKeyboardOpenMAYBE=O;F.gamepadSupported=function(){return P};F.isVisualViewport=function(){return aa};Ta=function(){try{W&&(M.removeEventListener("contextmenu",W),W=null),na&&(R.removeEventListener("mousedown",na),na=null),Ha&&(R.removeEventListener("mouseup",Ha),Ha=null),$a&&(R.removeEventListener("mousemove",$a),$a=null),ab&&(R.removeEventListener("mouseenter",ab),ab=
null),bb&&(R.removeEventListener("mouseleave",bb),bb=null),cb&&(R.removeEventListener("touchstart",cb),cb=null),db&&(R.removeEventListener("touchend",db),db=null),eb&&(R.removeEventListener("touchmove",eb),eb=null),fb&&(R.removeEventListener("touchcancel",fb),fb=null),gb&&(window.removeEventListener("gamepadconnected",gb),gb=null),hb&&(window.removeEventListener("gamepaddisconnected",hb),hb=null),ib&&(window.removeEventListener("keydown",ib),ib=null),jb&&(window.removeEventListener("keyup",jb),jb=
null),kb&&(B.removeEventListener("touchstart",kb),kb=null),lb&&(B.removeEventListener("touchend",lb),lb=null),mb&&(B.removeEventListener("touchmove",mb),mb=null),nb&&(R.removeEventListener("wheel",nb),nb=null),ob&&(window.removeEventListener("focus",ob),ob=null),pb&&(window.removeEventListener("blur",pb),pb=null),qb&&(document.removeEventListener("pointerlockchange",qb),qb=null),rb&&(document.removeEventListener("pointerlockerror",rb),rb=null),sb&&(h.removeEventListener("change",sb),sb=null)}catch(e){k("Failed to remove event listeners! {}",
e)}Ta=null}};(function(){function a(){this._socket.close()}function b(l){this._socket.send(l)}function f(l){this._socket.send(l)}function g(){return this._frameCountStr+this._frameCountBin}function r(){const l=this._queue;return l?(l._next===l&&l._prev===l?this._queue=null:(this._queue=l._next,l._prev._next=l._next,l._next._prev=l._prev),l._next=null,l._prev=null,0===l.type?--this._frameCountStr:--this._frameCountBin,l):null}function u(){var l=this._frameCountStr+this._frameCountBin;if(0===l)return null;l=Array(l);
var z=0,C=this._queue;const T=C;do{l[z++]=C;var L=C._next;C._next=null;C._prev=null;C=L}while(C!==T);this._queue=null;this._frameCountBin=this._frameCountStr=0;return l}function D(){this._queue=null;this._frameCountBin=this._frameCountStr=0}function J(l,z){var C=l._queue;if(!C)return null;const T=C;do{var L=C._next;if(C.type===z)return z=C._prev,L===C&&z===C?l._queue=null:(C===T&&(l._queue=L),z._next=L,L._prev=z),C._next=null,C._prev=null,C;C=L}while(C!==T);return null}function G(l,z,C){var T=0,L=
l._queue,aa=L;do{var ia=L._next;L.type===z&&(C[T++]=L);L=ia}while(L!==aa);C.length=T;for(aa=0;aa<T;++aa)L=C[aa],ia=L._next,z=L._prev,ia===L&&z===L?l._queue=null:(L===l._queue&&(l._queue=ia),z._next=ia,ia._prev=z)}function N(){return this._frameCountStr}function O(){if(0===this._frameCountStr)return null;const l=J(this,0);l?--this._frameCountStr:this._frameCountStr=0;return l}function B(){var l=this._frameCountStr;if(0===l)return null;l=Array(l);G(this,0,l);this._frameCountStr=0;return l}function X(){const l=
this._frameCountStr;if(0===l)return null;G(this,0,Array(l));this._frameCountStr=0}function ha(){return this._frameCountBin}function p(){if(0===this._frameCountBin)return null;const l=J(this,1);l?--this._frameCountBin:this._frameCountBin=0;return l}function d(){var l=this._frameCountBin;if(0===l)return null;l=Array(l);G(this,1,l);this._frameCountBin=0;return l}function q(){const l=this._frameCountBin;if(0===l)return null;G(this,1,Array(l));this._frameCountBin=0}function v(l){this._enableStringFrames=
l}function n(l){this._enableBinaryFrames=l}function w(l){const z="string"===typeof l;if(z){if(!this._enableStringFrames)return}else if(!this._enableBinaryFrames)return;l={type:z?0:1,data:l,timestamp:performance.now(),_next:null,_prev:null};const C=this._queue;if(C){const T=C._prev;T._next=l;l._prev=T;l._next=C;C._prev=l}else this._queue=l,l._next=l,l._prev=l;z?++this._frameCountStr:++this._frameCountBin}za.createWebSocketHandle=function(l){let z;try{z=new WebSocket(l)}catch(T){return k("Failed to create WebSocket: {}",
l),oa("Exception Caught",T),null}z.binaryType="arraybuffer";const C={state:1,_socket:z,_queue:null,_frameCountStr:0,_frameCountBin:0,_addRecievedFrame:w,_enableStringFrames:!0,_enableBinaryFrames:!0,closeSocket:a,sendStringFrame:b,sendBinaryFrame:f,availableFrames:g,getNextFrame:r,getAllFrames:u,clearFrames:D,availableStringFrames:N,getNextStringFrame:O,getAllStringFrames:B,clearStringFrames:X,availableBinaryFrames:ha,getNextBinaryFrame:p,getAllBinaryFrames:d,clearBinaryFrames:q,setEnableStringFrames:v,
setEnableBinaryFrames:n};z.addEventListener("open",function(){C.state=2});z.addEventListener("message",function(T){C._addRecievedFrame(T.data)});z.addEventListener("close",function(){3!==C.state&&(C.state=0)});z.addEventListener("error",function(){1===C.state&&(C.state=3)});return C}})();function Eb(a,b){var f=tb;const g=f&&200===b?a.getExtension("OES_vertex_array_object"):null,r=f&&200===b?a.getExtension("ANGLE_instanced_arrays"):null,u=f&&200===b&&null!==r,D=f&&(310===b||300===b)&&null!==a.getExtension("EXT_color_buffer_float"),J=f&&!D&&(310===b||300===b||200===b)&&null!==a.getExtension("EXT_color_buffer_half_float"),G=f&&200===b&&null!==a.getExtension("EXT_shader_texture_lod"),N=f&&200===b&&null!==a.getExtension("OES_fbo_render_mipmap"),O=f&&200===b&&null!==g,B=f&&200===b&&null!==
a.getExtension("OES_texture_float"),X=f&&300<=b&&null!==a.getExtension("OES_texture_float_linear"),ha=f&&200===b&&null!==a.getExtension("OES_texture_half_float"),p=f&&200===b&&null!==a.getExtension("OES_texture_half_float_linear");f=f&&null!==a.getExtension("EXT_texture_filter_anisotropic");const d=null!==a.getExtension("WEBGL_debug_renderer_info"),q=300<=b?0:200===b&&O?1:-1,v=300<=b?0:200===b&&u?1:-1,n=[b,q,v,0,0];if(300<=b||N)n[3]|=4;if(300<=b||G)n[3]|=8;300<=b&&(n[3]|=16);(320<=b||(300<=b||B)&&
(D||J))&&(n[3]|=32);(320<=b||(300<=b||ha)&&D)&&(n[3]|=64);f&&(n[3]|=128);(300<=b||p)&&(n[4]|=1);300<=b&&X&&(n[4]|=2);H.getCapBits=function(l){return n[l]};H.glEnable=a.enable.bind(a);H.glDisable=a.disable.bind(a);H.glClearColor=a.clearColor.bind(a);H.glClearDepth=a.clearDepth.bind(a);H.glClear=a.clear.bind(a);H.glDepthFunc=a.depthFunc.bind(a);H.glDepthMask=a.depthMask.bind(a);H.glCullFace=a.cullFace.bind(a);H.glViewport=a.viewport.bind(a);H.glBlendFunc=a.blendFunc.bind(a);H.glBlendFuncSeparate=a.blendFuncSeparate.bind(a);
H.glBlendEquation=a.blendEquation.bind(a);H.glBlendColor=a.blendColor.bind(a);H.glColorMask=a.colorMask.bind(a);H.glDrawBuffers=300<=b?a.drawBuffers.bind(a):ra("glDrawBuffers");H.glReadBuffer=300<=b?a.readBuffer.bind(a):ra("glReadBuffer");H.glReadPixels=a.readPixels.bind(a);H.glPolygonOffset=a.polygonOffset.bind(a);H.glLineWidth=a.lineWidth.bind(a);H.glGenBuffers=a.createBuffer.bind(a);H.glGenTextures=a.createTexture.bind(a);H.glCreateProgram=a.createProgram.bind(a);H.glCreateShader=a.createShader.bind(a);
H.glCreateFramebuffer=a.createFramebuffer.bind(a);H.glCreateRenderbuffer=a.createRenderbuffer.bind(a);H.glGenQueries=300<=b?a.createQuery.bind(a):ra("glGenQueries");H.glDeleteBuffers=a.deleteBuffer.bind(a);H.glDeleteTextures=a.deleteTexture.bind(a);H.glDeleteProgram=a.deleteProgram.bind(a);H.glDeleteShader=a.deleteShader.bind(a);H.glDeleteFramebuffer=a.deleteFramebuffer.bind(a);H.glDeleteRenderbuffer=a.deleteRenderbuffer.bind(a);H.glDeleteQueries=300<=b?a.deleteQuery.bind(a):ra("glDeleteQueries");
H.glBindBuffer=a.bindBuffer.bind(a);H.glBufferData=a.bufferData.bind(a);H.glBufferSubData=a.bufferSubData.bind(a);H.glEnableVertexAttribArray=a.enableVertexAttribArray.bind(a);H.glDisableVertexAttribArray=a.disableVertexAttribArray.bind(a);H.glVertexAttribPointer=a.vertexAttribPointer.bind(a);H.glActiveTexture=a.activeTexture.bind(a);H.glBindTexture=a.bindTexture.bind(a);H.glTexParameterf=a.texParameterf.bind(a);H.glTexParameteri=a.texParameteri.bind(a);H.glTexImage3D=300<=b?a.texImage3D.bind(a):
ra("glTexImage3D");H.glTexImage2D=a.texImage2D.bind(a);H.glTexSubImage2D=a.texSubImage2D.bind(a);H.glCopyTexSubImage2D=a.copyTexSubImage2D.bind(a);H.glTexStorage2D=300<=b?a.texStorage2D.bind(a):ra("glTexStorage2D");H.glPixelStorei=a.pixelStorei.bind(a);H.glGenerateMipmap=a.generateMipmap.bind(a);H.glShaderSource=a.shaderSource.bind(a);H.glCompileShader=a.compileShader.bind(a);H.glGetShaderi=a.getShaderParameter.bind(a);H.glGetShaderInfoLog=a.getShaderInfoLog.bind(a);H.glUseProgram=a.useProgram.bind(a);
H.glAttachShader=a.attachShader.bind(a);H.glDetachShader=a.detachShader.bind(a);H.glLinkProgram=a.linkProgram.bind(a);H.glGetProgrami=a.getProgramParameter.bind(a);H.glGetProgramInfoLog=a.getProgramInfoLog.bind(a);H.glDrawArrays=a.drawArrays.bind(a);H.glDrawElements=a.drawElements.bind(a);H.glBindAttribLocation=a.bindAttribLocation.bind(a);H.glGetAttribLocation=a.getAttribLocation.bind(a);H.glGetUniformLocation=a.getUniformLocation.bind(a);H.glGetUniformBlockIndex=300<=b?a.getUniformBlockIndex.bind(a):
ra("glGetUniformBlockIndex");H.glBindBufferRange=300<=b?a.bindBufferRange.bind(a):ra("glBindBufferRange");H.glUniformBlockBinding=300<=b?a.uniformBlockBinding.bind(a):ra("glUniformBlockBinding");H.glUniform1f=a.uniform1f.bind(a);H.glUniform2f=a.uniform2f.bind(a);H.glUniform3f=a.uniform3f.bind(a);H.glUniform4f=a.uniform4f.bind(a);H.glUniform1i=a.uniform1i.bind(a);H.glUniform2i=a.uniform2i.bind(a);H.glUniform3i=a.uniform3i.bind(a);H.glUniform4i=a.uniform4i.bind(a);H.glUniformMatrix2fv=a.uniformMatrix2fv.bind(a);
H.glUniformMatrix3fv=a.uniformMatrix3fv.bind(a);H.glUniformMatrix4fv=a.uniformMatrix4fv.bind(a);H.glUniformMatrix3x2fv=300<=b?a.uniformMatrix3x2fv.bind(a):ra("glUniformMatrix3x2fv");H.glUniformMatrix4x2fv=300<=b?a.uniformMatrix4x2fv.bind(a):ra("glUniformMatrix4x2fv");H.glUniformMatrix4x3fv=300<=b?a.uniformMatrix4x3fv.bind(a):ra("glUniformMatrix4x3fv");H.glBindFramebuffer=a.bindFramebuffer.bind(a);H.glCheckFramebufferStatus=a.checkFramebufferStatus.bind(a);H.glBlitFramebuffer=300<=b?a.blitFramebuffer.bind(a):
ra("glBlitFramebuffer");H.glRenderbufferStorage=a.renderbufferStorage.bind(a);H.glFramebufferTexture2D=a.framebufferTexture2D.bind(a);H.glFramebufferTextureLayer=300<=b?a.framebufferTextureLayer.bind(a):ra("glFramebufferTextureLayer");H.glBindRenderbuffer=a.bindRenderbuffer.bind(a);H.glFramebufferRenderbuffer=a.framebufferRenderbuffer.bind(a);H.glGetError=a.getError.bind(a);H.getAllExtensions=a.getSupportedExtensions.bind(a);H.isContextLost=a.isContextLost.bind(a);const w=[];u&&w.push("ANGLE_instanced_arrays");
D&&w.push("EXT_color_buffer_float");J&&w.push("EXT_color_buffer_half_float");G&&w.push("EXT_shader_texture_lod");N&&w.push("OES_fbo_render_mipmap");O&&w.push("OES_vertex_array_object");B&&w.push("OES_texture_float");X&&w.push("OES_texture_float_linear");ha&&w.push("OES_texture_half_float");p&&w.push("OES_texture_half_float_linear");f&&w.push("EXT_texture_filter_anisotropic");d&&w.push("WEBGL_debug_renderer_info");H.dumpActiveExtensions=function(){return w};H.glGetInteger=function(l){l=a.getParameter(l);
return"number"===typeof l?l:0};H.glGetString=function(l){if(d)switch(l){case 7936:l=a.getParameter(37445);null==l&&(l=a.getParameter(7936));break;case 7937:l=a.getParameter(37446);null==l&&(l=a.getParameter(7937));break;default:l=a.getParameter(l)}else l=a.getParameter(l);return"string"===typeof l?l:null};switch(q){case 0:H.glGenVertexArrays=a.createVertexArray.bind(a);H.glDeleteVertexArrays=a.deleteVertexArray.bind(a);H.glBindVertexArray=a.bindVertexArray.bind(a);break;case 1:H.glGenVertexArrays=
g.createVertexArrayOES.bind(g);H.glDeleteVertexArrays=g.deleteVertexArrayOES.bind(g);H.glBindVertexArray=g.bindVertexArrayOES.bind(g);break;default:y(H,"glGenVertexArrays"),y(H,"glDeleteVertexArrays"),y(H,"glBindVertexArray")}switch(v){case 0:H.glVertexAttribDivisor=a.vertexAttribDivisor.bind(a);H.glDrawArraysInstanced=a.drawArraysInstanced.bind(a);H.glDrawElementsInstanced=a.drawElementsInstanced.bind(a);break;case 1:H.glVertexAttribDivisor=r.vertexAttribDivisorANGLE.bind(r);H.glDrawArraysInstanced=
r.drawArraysInstancedANGLE.bind(r);H.glDrawElementsInstanced=r.drawElementsInstancedANGLE.bind(r);break;default:y(H,"glVertexAttribDivisor"),y(H,"glDrawArraysInstanced"),y(H,"glDrawElementsInstanced")}};var ec=!1;const hc=new MessageChannel;var ic=null;hc.port2.addEventListener("message",function(){ic()});async function yb(){hc.port1.start();hc.port2.start();ic=function(){ic=null};hc.port1.postMessage(0);ic?await new Promise(function(a){setTimeout(function(){ic?k("Immediate continue hack is not supported"):ec=!0;a()},25)}):k("Immediate continue hack is not supported")}Ca.getRootElement=function(){return Ka};Ca.getParentElement=function(){return M};Ca.getCanvasElement=function(){return R};
Ca.getEaglercraftXOpts=function(){return I};Ca.getEventCount=Hb.A.bind(Hb);Ca.getNextEvent=Hb.s.bind(Hb);
Ca.queueAsyncDownload=function(a,b,f){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(g){return g.arrayBuffer()}).then(function(g){Y(1,0,{requestId:f,arrayBuffer:g})}).catch(function(g){k("Failed to complete async download: {}",a);oa("Exception Caught",g);Y(1,0,{requestId:f,arrayBuffer:null})})}catch(g){k("Failed to fetch: {}",a),oa("Exception Caught",g),Y(1,0,{requestId:f,arrayBuffer:null})}};
Ca.download=new WebAssembly.Suspending(function(a,b){return new Promise(function(f){try{fetch(a,{cache:b?"force-cache":"no-store",mode:"cors"}).then(function(g){return g.arrayBuffer()}).then(function(g){f(g)}).catch(function(g){k("Failed to complete download: {}",a);oa("Exception Caught",g);f(null)})}catch(g){k("Failed to fetch: {}",a),oa("Exception Caught",g),f(null)}})});Ca.writeCrashReport=function(a){Kb(a,!1)};Ca.steadyTimeMillis=performance.now.bind(performance);
function gc(a){return new Promise(function(b){setTimeout(b,a)})}Ca.sleep=new WebAssembly.Suspending(gc);function jc(a){ec?(ic=a,hc.port1.postMessage(0)):setTimeout(a,0)}function fc(){return new Promise(jc)}Ca.immediateContinue=new WebAssembly.Suspending(fc);Ca.immediateContinueSupported=function(){return ec};Ca.setCrashReportString=function(a,b){Sa[a]=b};va.getByteBufferView=function(a,b){return new Int8Array(S,a,b)};va.getUnsignedByteBufferView=function(a,b){return new Uint8Array(S,a,b)};va.getUnsignedClampedByteBufferView=function(a,b){return new Uint8ClampedArray(S,a,b)};va.getShortBufferView=function(a,b){return new Int16Array(S,a,b)};va.getUnsignedShortBufferView=function(a,b){return new Uint16Array(S,a,b)};va.getIntBufferView=function(a,b){return new Int32Array(S,a,b)};va.getFloatBufferView=function(a,b){return new Float32Array(S,a,b)};const kc={172351395:{name:"EBML",type:"Container"},646:{name:"EBMLVersion",type:"Uint"},759:{name:"EBMLReadVersion",type:"Uint"},754:{name:"EBMLMaxIDLength",type:"Uint"},755:{name:"EBMLMaxSizeLength",type:"Uint"},642:{name:"DocType",type:"String"},647:{name:"DocTypeVersion",type:"Uint"},645:{name:"DocTypeReadVersion",type:"Uint"},108:{name:"Void",type:"Binary"},63:{name:"CRC-32",type:"Binary"},190023271:{name:"SignatureSlot",type:"Container"},16010:{name:"SignatureAlgo",type:"Uint"},16026:{name:"SignatureHash",
type:"Uint"},16037:{name:"SignaturePublicKey",type:"Binary"},16053:{name:"Signature",type:"Binary"},15963:{name:"SignatureElements",type:"Container"},15995:{name:"SignatureElementList",type:"Container"},9522:{name:"SignedElement",type:"Binary"},139690087:{name:"Segment",type:"Container"},21863284:{name:"SeekHead",type:"Container"},3515:{name:"Seek",type:"Container"},5035:{name:"SeekID",type:"Binary"},5036:{name:"SeekPosition",type:"Uint"},88713574:{name:"Info",type:"Container"},13220:{name:"SegmentUID",
type:"Binary"},13188:{name:"SegmentFilename",type:"String"},1882403:{name:"PrevUID",type:"Binary"},1868715:{name:"PrevFilename",type:"String"},2013475:{name:"NextUID",type:"Binary"},1999803:{name:"NextFilename",type:"String"},1092:{name:"SegmentFamily",type:"Binary"},10532:{name:"ChapterTranslate",type:"Container"},10748:{name:"ChapterTranslateEditionUID",type:"Uint"},10687:{name:"ChapterTranslateCodec",type:"Uint"},10661:{name:"ChapterTranslateID",type:"Binary"},710577:{name:"TimecodeScale",type:"Uint"},
1161:{name:"Duration",type:"Float"},1121:{name:"DateUTC",type:"Date"},15273:{name:"Title",type:"String"},3456:{name:"MuxingApp",type:"String"},5953:{name:"WritingApp",type:"String"},103:{name:"Timecode",type:"Uint"},6228:{name:"SilentTracks",type:"Container"},6359:{name:"SilentTrackNumber",type:"Uint"},39:{name:"Position",type:"Uint"},43:{name:"PrevSize",type:"Uint"},35:{name:"SimpleBlock",type:"Binary"},32:{name:"BlockGroup",type:"Container"},33:{name:"Block",type:"Binary"},34:{name:"BlockVirtual",
type:"Binary"},13729:{name:"BlockAdditions",type:"Container"},38:{name:"BlockMore",type:"Container"},110:{name:"BlockAddID",type:"Uint"},37:{name:"BlockAdditional",type:"Binary"},27:{name:"BlockDuration",type:"Uint"},122:{name:"ReferencePriority",type:"Uint"},123:{name:"ReferenceBlock",type:"Int"},125:{name:"ReferenceVirtual",type:"Int"},36:{name:"CodecState",type:"Binary"},13730:{name:"DiscardPadding",type:"Int"},14:{name:"Slices",type:"Container"},104:{name:"TimeSlice",type:"Container"},76:{name:"LaceNumber",
type:"Uint"},77:{name:"FrameNumber",type:"Uint"},75:{name:"BlockAdditionID",type:"Uint"},78:{name:"Delay",type:"Uint"},79:{name:"SliceDuration",type:"Uint"},72:{name:"ReferenceFrame",type:"Container"},73:{name:"ReferenceOffset",type:"Uint"},74:{name:"ReferenceTimeCode",type:"Uint"},47:{name:"EncryptedBlock",type:"Binary"},106212971:{name:"Tracks",type:"Container"},46:{name:"TrackEntry",type:"Container"},87:{name:"TrackNumber",type:"Uint"},13253:{name:"TrackUID",type:"Uint"},3:{name:"TrackType",type:"Uint"},
57:{name:"FlagEnabled",type:"Uint"},8:{name:"FlagDefault",type:"Uint"},5546:{name:"FlagForced",type:"Uint"},28:{name:"FlagLacing",type:"Uint"},11751:{name:"MinCache",type:"Uint"},11768:{name:"MaxCache",type:"Uint"},254851:{name:"DefaultDuration",type:"Uint"},216698:{name:"DefaultDecodedFieldDuration",type:"Uint"},209231:{name:"TrackTimecodeScale",type:"Float"},4991:{name:"TrackOffset",type:"Int"},5614:{name:"MaxBlockAdditionID",type:"Uint"},4974:{name:"Name",type:"String"},177564:{name:"Language",
type:"String"},6:{name:"CodecID",type:"String"},9122:{name:"CodecPrivate",type:"Binary"},362120:{name:"CodecName",type:"String"},13382:{name:"AttachmentLink",type:"Uint"},1742487:{name:"CodecSettings",type:"String"},1785920:{name:"CodecInfoURL",type:"String"},438848:{name:"CodecDownloadURL",type:"String"},42:{name:"CodecDecodeAll",type:"Uint"},12203:{name:"TrackOverlay",type:"Uint"},5802:{name:"CodecDelay",type:"Uint"},5819:{name:"SeekPreRoll",type:"Uint"},9764:{name:"TrackTranslate",type:"Container"},
9980:{name:"TrackTranslateEditionUID",type:"Uint"},9919:{name:"TrackTranslateCodec",type:"Uint"},9893:{name:"TrackTranslateTrackID",type:"Binary"},96:{name:"Video",type:"Container"},26:{name:"FlagInterlaced",type:"Uint"},5048:{name:"StereoMode",type:"Uint"},5056:{name:"AlphaMode",type:"Uint"},5049:{name:"OldStereoMode",type:"Uint"},48:{name:"PixelWidth",type:"Uint"},58:{name:"PixelHeight",type:"Uint"},5290:{name:"PixelCropBottom",type:"Uint"},5307:{name:"PixelCropTop",type:"Uint"},5324:{name:"PixelCropLeft",
type:"Uint"},5341:{name:"PixelCropRight",type:"Uint"},5296:{name:"DisplayWidth",type:"Uint"},5306:{name:"DisplayHeight",type:"Uint"},5298:{name:"DisplayUnit",type:"Uint"},5299:{name:"AspectRatioType",type:"Uint"},963876:{name:"ColourSpace",type:"Binary"},1029411:{name:"GammaValue",type:"Float"},230371:{name:"FrameRate",type:"Float"},97:{name:"Audio",type:"Container"},53:{name:"SamplingFrequency",type:"Float"},14517:{name:"OutputSamplingFrequency",type:"Float"},31:{name:"Channels",type:"Uint"},15739:{name:"ChannelPositions",
type:"Binary"},8804:{name:"BitDepth",type:"Uint"},98:{name:"TrackOperation",type:"Container"},99:{name:"TrackCombinePlanes",type:"Container"},100:{name:"TrackPlane",type:"Container"},101:{name:"TrackPlaneUID",type:"Uint"},102:{name:"TrackPlaneType",type:"Uint"},105:{name:"TrackJoinBlocks",type:"Container"},109:{name:"TrackJoinUID",type:"Uint"},64:{name:"TrickTrackUID",type:"Uint"},65:{name:"TrickTrackSegmentUID",type:"Binary"},70:{name:"TrickTrackFlag",type:"Uint"},71:{name:"TrickMasterTrackUID",
type:"Uint"},68:{name:"TrickMasterTrackSegmentUID",type:"Binary"},11648:{name:"ContentEncodings",type:"Container"},8768:{name:"ContentEncoding",type:"Container"},4145:{name:"ContentEncodingOrder",type:"Uint"},4146:{name:"ContentEncodingScope",type:"Uint"},4147:{name:"ContentEncodingType",type:"Uint"},4148:{name:"ContentCompression",type:"Container"},596:{name:"ContentCompAlgo",type:"Uint"},597:{name:"ContentCompSettings",type:"Binary"},4149:{name:"ContentEncryption",type:"Container"},2017:{name:"ContentEncAlgo",
type:"Uint"},2018:{name:"ContentEncKeyID",type:"Binary"},2019:{name:"ContentSignature",type:"Binary"},2020:{name:"ContentSigKeyID",type:"Binary"},2021:{name:"ContentSigAlgo",type:"Uint"},2022:{name:"ContentSigHashAlgo",type:"Uint"},206814059:{name:"Cues",type:"Container"},59:{name:"CuePoint",type:"Container"},51:{name:"CueTime",type:"Uint"},55:{name:"CueTrackPositions",type:"Container"},119:{name:"CueTrack",type:"Uint"},113:{name:"CueClusterPosition",type:"Uint"},112:{name:"CueRelativePosition",type:"Uint"},
50:{name:"CueDuration",type:"Uint"},4984:{name:"CueBlockNumber",type:"Uint"},106:{name:"CueCodecState",type:"Uint"},91:{name:"CueReference",type:"Container"},22:{name:"CueRefTime",type:"Uint"},23:{name:"CueRefCluster",type:"Uint"},4959:{name:"CueRefNumber",type:"Uint"},107:{name:"CueRefCodecState",type:"Uint"},155296873:{name:"Attachments",type:"Container"},8615:{name:"AttachedFile",type:"Container"},1662:{name:"FileDescription",type:"String"},1646:{name:"FileName",type:"String"},1632:{name:"FileMimeType",
type:"String"},1628:{name:"FileData",type:"Binary"},1710:{name:"FileUID",type:"Uint"},1653:{name:"FileReferral",type:"Binary"},1633:{name:"FileUsedStartTime",type:"Uint"},1634:{name:"FileUsedEndTime",type:"Uint"},4433776:{name:"Chapters",type:"Container"},1465:{name:"EditionEntry",type:"Container"},1468:{name:"EditionUID",type:"Uint"},1469:{name:"EditionFlagHidden",type:"Uint"},1499:{name:"EditionFlagDefault",type:"Uint"},1501:{name:"EditionFlagOrdered",type:"Uint"},54:{name:"ChapterAtom",type:"Container"},
13252:{name:"ChapterUID",type:"Uint"},5716:{name:"ChapterStringUID",type:"String"},17:{name:"ChapterTimeStart",type:"Uint"},18:{name:"ChapterTimeEnd",type:"Uint"},24:{name:"ChapterFlagHidden",type:"Uint"},1432:{name:"ChapterFlagEnabled",type:"Uint"},11879:{name:"ChapterSegmentUID",type:"Binary"},11964:{name:"ChapterSegmentEditionUID",type:"Uint"},9155:{name:"ChapterPhysicalEquiv",type:"Uint"},15:{name:"ChapterTrack",type:"Container"},9:{name:"ChapterTrackNumber",type:"Uint"},0:{name:"ChapterDisplay",
type:"Container"},5:{name:"ChapString",type:"String"},892:{name:"ChapLanguage",type:"String"},894:{name:"ChapCountry",type:"String"},10564:{name:"ChapProcess",type:"Container"},10581:{name:"ChapProcessCodecID",type:"Uint"},1293:{name:"ChapProcessPrivate",type:"Binary"},10513:{name:"ChapProcessCommand",type:"Container"},10530:{name:"ChapProcessTime",type:"Uint"},10547:{name:"ChapProcessData",type:"Binary"},39109479:{name:"Tags",type:"Container"},13171:{name:"Tag",type:"Container"},9152:{name:"Targets",
type:"Container"},10442:{name:"TargetTypeValue",type:"Uint"},9162:{name:"TargetType",type:"String"},9157:{name:"TagTrackUID",type:"Uint"},9161:{name:"TagEditionUID",type:"Uint"},9156:{name:"TagChapterUID",type:"Uint"},9158:{name:"TagAttachmentUID",type:"Uint"},10184:{name:"SimpleTag",type:"Container"},1443:{name:"TagName",type:"String"},1146:{name:"TagLanguage",type:"String"},1156:{name:"TagDefault",type:"Uint"},1159:{name:"TagString",type:"String"},1157:{name:"TagBinary",type:"Binary"}};
function lc(a,b){a.prototype=Object.create(b.prototype);a.prototype.constructor=a}function mc(a,b){this.name=a||"Unknown";this.type=b||"Unknown"}mc.prototype.g=function(){};function nc(a,b){mc.call(this,a,b||"Uint")}lc(nc,mc);nc.prototype.g=function(){this.data="";for(var a=0;a<this.source.length;a++){var b=this.source[a].toString(16);this.data+=1===b.length%2?"0"+b:b}};function oc(a,b){mc.call(this,a,b||"Float")}lc(oc,mc);
oc.prototype.g=function(){var a=this.source.reverse();this.data=(new (this.source&&4===this.source.length?Float32Array:Float64Array)(a.buffer))[0]};function pc(a,b){mc.call(this,a,b||"Container")}lc(pc,mc);function qc(a){var b=a.source[a.offset++],f=8-b.toString(2).length;b-=1<<7-f;for(var g=0;g<f;g++)b*=256,b+=a.source[a.offset++];return b}
pc.prototype.g=function(){this.data=[];for(this.offset=0;this.offset<this.source.length;this.offset=b){var a=qc(this);var b=qc(this);b=Math.min(this.offset+b,this.source.length);var f=this.source.slice(this.offset,b),g=kc[a]||{name:"Unknown",type:"Unknown"},r=mc;switch(g.type){case "Container":r=pc;break;case "Uint":r=nc;break;case "Float":r=oc}r=g=new r(g.name,g.type);r.source=f;r.g();this.data.push({id:a,K:a.toString(16),data:g})}};
lc(function(a){pc.call(this,"File","File");this.source=a;this.g()},pc);var rc;
(function(){function a(p){let d=O.get(p);"undefined"===typeof d&&(d=new Function("return "+p+";"),O.set(p,d));return d()}function b(p){let d={exports:null,h:null,j:null};f(p);g(p);r(p,d);u(p,d);p.teavmMath=Math;return{u(q){d.exports=q},F(q){d.h=q},D(q){d.j=q}}}function f(p){p.teavmDate={currentTimeMillis:()=>(new Date).getTime(),dateToString:d=>(new Date(d)).toString(),getYear:d=>(new Date(d)).getFullYear(),setYear:(d,q)=>{d=new Date(d);d.setFullYear(q);return d.getTime()},getMonth:d=>(new Date(d)).getMonth(),setMonth:(d,
q)=>{d=new Date(d);d.setMonth(q);return d.getTime()},getDate:d=>(new Date(d)).getDate(),setDate:(d,q)=>{d=new Date(d);d.setDate(q);return d.getTime()},create:(d,q,v,n,w,l)=>(new Date(d,q,v,n,w,l)).getTime(),createFromUTC:(d,q,v,n,w,l)=>Date.UTC(d,q,v,n,w,l)}}function g(p){let d=[],q=[];p.teavmConsole={putcharStderr:function(v){10===v?(v=String.fromCharCode(...d),console.error(v),ka&&ka(v,!0),d.length=0):d.push(v)},putcharStdout:function(v){10===v?(v=String.fromCharCode(...q),console.log(v),ka&&ka(v,
!1),q.length=0):q.push(v)}}}function r(p,d){let q=new FinalizationRegistry(n=>{let w=d.exports["teavm.reportGarbageCollectedValue"];"undefined"!==typeof w&&d.j(function(){w(n.B,n.C)})}),v=new FinalizationRegistry(n=>{let w=d.exports["teavm.reportGarbageCollectedString"];"function"===typeof w&&d.j(function(){w(n)})});p.teavm={createWeakRef:(n,w,l)=>{null!==l&&q.register(n,{C:w,B:l});return new WeakRef(n)},deref:n=>n.deref(),createStringWeakRef:(n,w)=>{v.register(n,w);return new WeakRef(n)},stringDeref:n=>
n.deref(),takeStackTrace:()=>{var n=Error().stack;let w=[];for(let l of n.split("\n"))n=B.exec(l),null!==n&&2<=n.length&&w.push(parseInt(n[1],16));return{getStack:function(){let l;if(d.h)try{l=d.h(w)}catch(z){console.warn("Could not deobfuscate stack",z)}l||=w.map(z=>({className:"java.lang.Throwable$FakeClass",method:"fakeMethod",file:"Throwable.java",line:z}));return l}}},decorateException:n=>{new ha(d,n)}}}function u(p,d){function q(h){return h}function v(h){var m=h.charAt(0);var x=""+(n(m)?m:"_");
for(m=1;m<h.length;++m){let P=h.charAt(m);var E=P;E=n(E)||"0"<=E&&"9">=E;x+=E?P:"_"}return x}function n(h){return"A"<=h&&"Z">=h||"a"<=h&&"z">=h||"_"===h||"$"===h}function w(h,m,x){null===h?(new Function("value",m+" = value;"))(x):h[m]=x}function l(h){d.exports["teavm.js.throwException"](X in h?h[X]:d.exports["teavm.js.wrapException"](h))}function z(h){a:{if(h instanceof WebAssembly.Exception){var m=d.exports["teavm.javaException"];var x=d.exports["teavm.getJsException"];if(h.is(m)){h=h.getArg(m,0);
m=d.exports["teavm.js.extractException"](h);if(null!==m){x=m;break a}x=x(h);"undefined"===typeof x&&(x=new ha(d,h));break a}}x=h}throw x;}function C(h){var m=[];for(let x=0;x<h.length;++x)m.push("p"+x);m=0===m.length?"":m.join(", ");m=(new Function("rethrowJavaAsJs","fn",`return function(${m}) {\n`+" try {\n"+` return fn(${m});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,h);m.__impl=h;m.__rethrow=z;return m}function T(h,m){return(new Function("constructor",`return function ${h}(marker, javaObject) {\n`+
" return constructor.call(this, marker, javaObject);\n}\n"))(m)}function L(h){try{return h()}catch(m){l(m)}}let aa=Symbol("javaObject"),ia=Symbol("functions"),Na=Symbol("functionOrigin"),Aa=Symbol("wrapperCallMarker"),Oa=new WeakMap,ta=new WeakMap,pa=new Map,Ba=new FinalizationRegistry(h=>pa.delete(h)),Ga=new WeakMap,ma=2463534242;p.teavmJso={emptyString:()=>"",stringFromCharCode:h=>String.fromCharCode(h),concatStrings:(h,m)=>h+m,stringLength:h=>h.length,charAt:(h,m)=>h.charCodeAt(m),emptyArray:()=>
[],appendToArray:(h,m)=>h.push(m),unwrapBoolean:h=>h?1:0,wrapBoolean:h=>!!h,getProperty:function(h,m){try{return null!==h?h[m]:a(m)}catch(x){l(x)}},setProperty:w,setPropertyPure:w,global:h=>{try{return a(h)}catch(m){l(m)}},createClass:(h,m,x)=>{h=v(h||"JavaObject");let E;E=null===m?function(W){this[aa]=W;this[ia]=null}:function(W){m.call(this,W)};let P=T(h,function(W,na){if(W===Aa)E.call(this,na);else{if(null===x)throw Error("This class can't be instantiated directly");try{return x.apply(null,arguments)}catch(Ha){z(Ha)}}});
P.prototype=Object.create(m||Object.prototype);P.prototype.constructor=P;h=T(h,function(W){return P.call(this,Aa,W)});h[Aa]=P;h.prototype=P.prototype;return h},exportClass:h=>h[Aa],defineMethod:(h,m,x)=>{let E=[];for(let P=1;P<x.length;++P)E.push("p"+P);h.prototype[m]=(new Function("rethrowJavaAsJs","fn",`return function(${0===E.length?"":E.join(", ")}) {\n`+" try {\n"+` return fn(${["this",E].join(", ")});\n`+" } catch (e) {\n rethrowJavaAsJs(e);\n }\n};"))(z,x)},defineStaticMethod:(h,
m,x)=>{h[m]=C(x)},defineFunction:C,defineProperty:(h,m,x,E)=>{let P={get(){try{return x(this)}catch(W){z(W)}}};null!==E&&(P.set=function(W){try{E(this,W)}catch(na){z(na)}});Object.defineProperty(h.prototype,m,P)},defineStaticProperty:(h,m,x,E)=>{let P={get(){try{return x()}catch(W){z(W)}}};null!==E&&(P.set=function(W){try{E(W)}catch(na){z(na)}});Object.defineProperty(h,m,P)},javaObjectToJS:(h,m)=>{if(null===h)return null;var x=Oa.get(h);if("undefined"!=typeof x&&(x=x.deref(),"undefined"!==typeof x))return x;
m=new m(h);Oa.set(h,new WeakRef(m));return m},unwrapJavaObject:h=>h[aa],asFunction:(h,m)=>{let x=h[ia];null===x&&(x=Object.create(null),h[ia]=x);let E=x[m];"function"!==typeof E&&(E=function(){return h[m].apply(h,arguments)},E[Na]=h,x[m]=E);return E},functionAsObject:(h,m)=>{let x=h[Na];if("undefined"!==typeof x){let E=x[ia];if(void 0!==E&&E[m]===h)return x}return{[m]:function(...E){try{return h(...E)}catch(P){z(P)}}}},wrapObject:h=>{if(null===h)return null;if("object"===typeof h||"function"===typeof h){var m=
h[aa];if("object"===typeof m)return m;m=ta.get(h);if(void 0!==m&&(m=m.deref(),void 0!==m))return m;m=d.exports["teavm.jso.createWrapper"](h);ta.set(h,new WeakRef(m));return m}m=pa.get(h);if(void 0!==m&&(m=m.deref(),void 0!==m))return m;m=d.exports["teavm.jso.createWrapper"](h);pa.set(h,new WeakRef(m));Ba.register(m,h);return m},isPrimitive:(h,m)=>typeof h===m,instanceOf:(h,m)=>h instanceof m,instanceOfOrNull:(h,m)=>null===h||h instanceof m,sameRef:(h,m)=>h===m,hashCode:h=>{if("object"===typeof h||
"function"===typeof h||"symbol"===typeof h){var m=Ga.get(h);if("number"===typeof m)return m;m=ma;m^=m<<13;m^=m>>>17;ma=m^=m<<5;Ga.set(h,m);return m}return"number"===typeof h?h|0:"bigint"===typeof h?BigInt.asIntN(32,h):"boolean"===typeof h?h?1:0:0},apply:(h,m,x)=>{try{return null===h?a(m)(...x):h[m](...x)}catch(E){l(E)}},concatArray:(h,m)=>h.concat(m),getJavaException:h=>h[X]};for(var ca of"wrapByte wrapShort wrapChar wrapInt wrapFloat wrapDouble unwrapByte unwrapShort unwrapChar unwrapInt unwrapFloat unwrapDouble".split(" "))p.teavmJso[ca]=
q;ca=[];for(let h=0;32>h;++h){let m=0===ca.length?"":ca.join(", "),x=[...ca,"body"].join(", ");p.teavmJso["createFunction"+h]=(new Function("wrapCallFromJavaToJs",...ca,"body",`return new Function('wrapCallFromJavaToJs', ${x}).bind(this, wrapCallFromJavaToJs);`)).bind(null,L);p.teavmJso["bindFunction"+h]=(E,...P)=>E.bind(null,...P);p.teavmJso["callFunction"+h]=(new Function("rethrowJsAsJava","fn",...ca,"try {\n"+` return fn(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l);p.teavmJso["callMethod"+
h]=(new Function("rethrowJsAsJava","getGlobalName","instance","method",...ca,"try {\n return instance !== null\n"+` ? instance[method](${m})\n`+` : getGlobalName(method)(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l,a);p.teavmJso["construct"+h]=(new Function("rethrowJsAsJava","constructor",...ca,"try {\n"+` return new constructor(${m});\n`+"} catch (e) {\n rethrowJsAsJava(e);\n}")).bind(null,l);p.teavmJso["arrayOf"+h]=new Function(...ca,"return ["+m+"]");
ca.push("p"+(h+1))}}async function D(p){try{const d={},q=b(d),v=p.path instanceof WebAssembly.Module?p.path:await WebAssembly.compileStreaming(fetch(p.path)),n=new WebAssembly.Instance(v,d);q.u(n.exports);return{module:v,instance:n}}catch(d){return console.warn("Could not load deobfuscator",d),null}}function J(p,d,q){let v=null,n=!1;return w=>{if(!n){n=!0;if(null!==d)try{v=q.exports.createFromExternalFile.value(d)}catch(l){console.warn("Could not load create deobfuscator",l)}if(null==v&&null!==p)try{v=
q.exports.createForModule.value(p)}catch(l){console.warn("Could not create deobfuscator from module data",l)}}return null!==v?v.deobfuscate(w):[]}}async function G(p,d){if(!d.enabled||"auto"!==p&&"external"!==p)return null;if(d.l instanceof ArrayBuffer)return new Int8Array(d.l);p=await fetch(d.l);return p.ok?new Int8Array(await p.arrayBuffer()):null}function N(p){const d=new ua;p.teavm.pollAsyncCallbacks=function(){for(var q;q=d.s();)q.fn()};return function(q){d.push({fn:q,_next:null})}}let O=new Map,
B=/.+:wasm-function\[[0-9]+]:0x([0-9a-f]+).*/,X=Symbol("javaException");class ha extends Error{constructor(p,d){super();this.g=p;this[X]=d;p.exports["teavm.setJsException"](d,this)}get message(){var p=this.g.exports["teavm.exceptionMessage"];return"function"===typeof p&&(p=p(this[X]),null!=p)?p:"(could not fetch message)"}}rc={load:async function(p,d){d||={};var q=d.h||{};let [v,n,w]=await Promise.all([q.enabled?D(q):Promise.resolve(null),p instanceof WebAssembly.Module?Promise.resolve(p):WebAssembly.compileStreaming(fetch(p)),
G(q.v,q)]);q={};p=b(q);"undefined"!==typeof d.o&&d.o(q);p.D(N(q));d=await WebAssembly.instantiate(n,q);q={};p.u(d.exports);if(v){let l=J(null,w,v.instance);null!==l&&(p.F(l),q.deobfuscator=l)}p={exports:q,instance:d,L:{G:n,J:v?v.module:null}};for(let l in d.exports){let z=d.exports[l];z instanceof WebAssembly.Global?Object.defineProperty(q,l,{get:()=>z.value}):"function"===typeof z&&(q[l]=z)}q.memory=d.exports["teavm.memory"];q.H=w;return p},I:b,M:function(p){return new Proxy(p,{get(d,q){return new WebAssembly.Global({value:"externref",
mutable:!1},d[q])}})}}})();async function sc(){try{Error.stackTraceLimit=1024;I=self.__eaglercraftXLoaderContext.getEaglercraftXOpts();self.__eaglercraftXLoaderContext.getEagRuntimeJSURL();const a=self.__eaglercraftXLoaderContext.getClassesWASMURL(),b=self.__eaglercraftXLoaderContext.getClassesDeobfWASMURL(),f=self.__eaglercraftXLoaderContext.getClassesTEADBGURL();Ea=self.__eaglercraftXLoaderContext.getEPKFiles();Ka=self.__eaglercraftXLoaderContext.getRootElement();self.__eaglercraftXLoaderContext.getImageURL(0);Fa=self.__eaglercraftXLoaderContext.getImageURL(1);
Ia=self.__eaglercraftXLoaderContext.getImageURL(2);Ja=self.__eaglercraftXLoaderContext.getImageURL(3);const g=self.__eaglercraftXLoaderContext.getMainArgs();delete self.__eaglercraftXLoaderContext;if("_worker_process_"!==g[0]){if(!await wb())return}else ea="worker",await Fb();c("Loading EaglercraftX WASM GC binary...");const r=await rc.load(a,{h:{enabled:!0,path:b,v:"external",l:f},o:function(u){u.WASMGCBufferAllocator=va;u.platformApplication=A;u.platformAssets=wa;u.platformAudio=xa;u.platformFilesystem=
ya;u.platformInput=F;u.platformNetworking=za;u.platformOpenGL=H;u.platformRuntime=Ca;u.teavm.notifyHeapResized=function(){Gb(r.exports.memory)}}});Gb(r.exports.memory);Da=r.exports.deobfuscator;c("Calling entry point with args: {}",JSON.stringify(g));try{await WebAssembly.promising(r.exports.main.__impl)(g)}catch(u){r.exports.main.__rethrow(u)}finally{la(2,"Main function has returned!",[])}}catch(a){Jb(a)}}
"object"===typeof self.__eaglercraftXLoaderContext?self.__eaglercraftXLoaderContext.runMain(sc):console.error("???");}).call(this);