diff --git a/config.jsonc b/config.jsonc
index 9c0d2a02..7ba9d5c6 100644
--- a/config.jsonc
+++ b/config.jsonc
@@ -280,6 +280,11 @@
"aliases": [],
"categories": []
},
+ "Drive Mad S": {
+ "path": "drive-mad-s",
+ "aliases": [],
+ "categories": []
+ },
"Duck Life": {
"path": "flash/?game=duck-life",
"aliases": [],
diff --git a/games/drive-mad-s/61520BFE8B79E9D8 b/games/drive-mad-s/61520BFE8B79E9D8
new file mode 100644
index 00000000..c846dcae
Binary files /dev/null and b/games/drive-mad-s/61520BFE8B79E9D8 differ
diff --git a/games/drive-mad-s/baloo2.woff b/games/drive-mad-s/baloo2.woff
new file mode 100644
index 00000000..7776315e
Binary files /dev/null and b/games/drive-mad-s/baloo2.woff differ
diff --git a/games/drive-mad-s/fancade_stripped.css b/games/drive-mad-s/fancade_stripped.css
new file mode 100644
index 00000000..7248ac9c
--- /dev/null
+++ b/games/drive-mad-s/fancade_stripped.css
@@ -0,0 +1,439 @@
+@font-face {
+ font-family: 'Baloo 2';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url("./baloo2.woff") format('woff');
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+}
+
+.fullscreen {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+}
+
+.center {
+ text-align: center;
+}
+
+.centered {
+ margin-left: auto;
+ margin-right: auto;
+ display: block;
+ text-align: center;
+}
+
+#play_overlay {
+ display: none;
+ z-index: 10;
+}
+
+.middle {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+}
+
+.middle_vertical {
+ position: absolute;
+ top: 50%;
+ transform: translate(0%, -50%);
+}
+
+.edge {
+ margin-left: auto;
+ margin-right: auto;
+ width: 164px;
+ height: 180px;
+ background-color: #cfdaed;
+ box-shadow: 5px 1px 5px rgba(0, 0, 0, 0.25);
+ transform: rotate(-5deg);
+}
+
+.box {
+ width: 164px;
+ height: 164px;
+ background-color: white;
+ position: relative;
+}
+
+.black {
+ width: 132px;
+ height: 156px;
+ background-color: black;
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ margin: 0 auto;
+}
+
+.cover {
+ width: 128px;
+ height: 128px;
+ margin: 2px;
+}
+
+.title {
+ font-size: 14px;
+}
+
+.author {
+ border-spacing: 0;
+ font-size: 14px;
+ color: #ccc;
+ text-align: right;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ position: absolute;
+ width: 150px;
+ top: 4px;
+ right: 142px;
+ transform-origin: right top;
+ transform: rotate(-90deg);
+}
+
+.loading {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+
+.description {
+ display: inline-block;
+ font-size: 16px;
+ line-height: 1.2em;
+ width: 240px;
+}
+
+.button {
+ display: inline-block;
+ border: 2px solid #00a2ff;
+ border-radius: 7px;
+ width: 133px;
+ height: 43px;
+ font-size: 16px;
+ line-height: 43px;
+ margin: 0 auto;
+}
+
+.overlay_button {
+ display: inline-block;
+ border: 2px solid #000;
+ border-radius: 12px;
+ width: 200px;
+ height: 50px;
+ font-size: 18px;
+ line-height: 50px;
+ margin: 11px;
+}
+
+#copy_button {
+ height: 28px;
+ line-height: 28px;
+ width: 55px;
+ text-align: center;
+ border: 2px solid #000;
+ color: #333;
+ background-color: #eee;
+ font-size: 0.7em;
+ margin: 11px;
+}
+
+#play_button {
+ color: #333;
+ background-color: #eee;
+}
+#stretch_button {
+ z-index: 11;
+ left: 50%;
+ transform: translate(-50%, 0%);
+}
+#stretch_button:link {
+ transition: 0.2s;
+}
+#stretch_button:hover, #stretch_button:active {
+ cursor: pointer;
+ opacity: 0.5;
+}
+.stretched {
+ color: rgb(20, 20, 20);
+ font-size: 0.8em;
+ font-family: sans-serif;
+}
+.unstretched {
+ color: #00B9FE;
+ font-size: 0.8em;
+ font-family: sans-serif;
+}
+
+.emscripten_border {
+ position: relative;
+}
+
+#gradient {
+ background-image: linear-gradient(135deg, #70e1fd, #00a2ff);
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 768px;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+}
+
+p, ul, ol, dl {
+ margin-bottom: 1em;
+}
+
+h1, h2, h3, h4, h5, h6, p, ul, ol, dl {
+ margin-left: 16px;
+ margin-right: 16px;
+}
+
+img {
+ vertical-align: top;
+}
+
+body {
+ font-family: 'Baloo 2', 'Ubuntu', verdana, sans-serif;
+ color: #bbb;
+ line-height: 1.8;
+}
+
+.store_modal_text {
+ font-size: 1em;
+ line-height: 1.2;
+}
+
+html, body {
+ font-family: 'Baloo 2', 'Ubuntu', verdana, sans-serif;
+ font-size: 18px;
+ color: #bbb;
+ padding: 0;
+ width: 100%;
+ height: 100%;
+ margin: 0px;
+ border: 0;
+ overflow: hidden; /* Disable scrollbars */
+ display: block; /* No floating content on sides */
+}
+
+canvas {
+ padding-right: 0;
+ margin-left: auto; margin-right: auto; display: block;
+ margin-top: auto; margin-bottom: auto;
+ position: relative;
+ width: 1024px;
+ height: 768px;
+}
+
+div.emscripten { text-align: center; }
+
+/* the canvas *must not* have any border or padding, or mouse coords will be wrong */
+canvas.emscripten {
+ border: 0px none;
+ background-color: black;
+ /* background-color: #00a2ff; */
+}
+
+#status {
+ display: inline-block;
+ width: 100%;
+ font-weight: bold;
+ color: rgb(120, 120, 120);
+ text-align: center;
+}
+
+#modal_parent {
+ display: none; /* Hidden by default */
+ position: fixed; /* Stay in place */
+ z-index: 1; /* Sit on top */
+ /* padding-top: 100px; Location of the box */
+ left: 0;
+ top: 0;
+ width: 100%; /* Full width */
+ height: 100%; /* Full height */
+ overflow: auto; /* Enable scroll if needed */
+ background-color: rgb(0,0,0); /* Fallback color */
+ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
+}
+
+.modal_inner {
+ display: none;
+}
+
+#play_content {
+ color: white;
+ z-index: 10;
+}
+
+#modal_content {
+ position: relative;
+ background-color: #fefefe;
+ margin: auto;
+ padding: 20px;
+ border: 1px solid #888;
+ box-sizing: border-box;
+}
+
+.error_message {
+ color: red;
+}
+
+.error_text {
+ color: red;
+ font-family: sans-serif;
+ font-size: 0.8em;
+}
+
+#modal_close_button {
+ color: #aaaaaa;
+ position: absolute;
+ right: 15px;
+ top: 10px;
+ /* float: right; */
+ font-size: 28px;
+ line-height: 28px;
+ font-weight: bold;
+ transition: 0.2s;
+}
+
+#modal_close_button:hover,
+#modal_close_button:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+a:link {
+ color: #00B9FE;
+ text-decoration: none;
+ transition: 0.2s;
+}
+a:visited {
+ color: #00B9FE;
+}
+a:hover, a:active {
+ opacity: 0.5;
+}
+
+.link_image_button {
+ margin-right: 10px;
+}
+
+.playstore075 {
+ width: 153px;
+ height: 45px;
+}
+
+.appstore075 {
+ width: 135px;
+ height: 45px;
+}
+
+#progress_or_play {
+ margin-top: 10px;
+}
+
+#terms_p {
+ font-family: sans-serif;
+ color: rgb(20, 20, 20);
+ font-size: 0.7em;
+ margin-bottom: 0px;
+}
+#terms_p a {
+ color: rgb(240, 240, 240);
+}
+
+.deeplink_message {
+ font-size: 1em;
+ color: rgb(240, 240, 240);
+ line-height: 1.1em;
+ font-size: 20px;
+}
+
+.menu {
+ color: rgb(240, 240, 240);
+}
+
+.level_button {
+ border: 2px solid #222222;
+ border-radius: 1em;
+ color: rgb(240, 240, 240);
+ background-color: #00a2ff;
+ line-height: 1em;
+ height: 2.5em;
+ width: 5em;
+ justify-self: center;
+ position: relative;
+ padding-top: 0.6em;
+}
+
+.grid_element_center {
+ justify-self: center;
+}
+
+.level_button_name {
+ font-size: 0.6em;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.level_button_number {
+ font-size: 1.2em;
+}
+
+.level_button:hover {
+ background-color: #00c2ff;
+}
+
+.level_checkmark {
+ position: absolute;
+ right: 0px;
+ top: 0px;
+ margin: 0px;
+ padding: 0px;
+ text-align: right;
+ font-size: 1.2em;
+ line-height: 1.2em;
+}
+
+.level_button a {
+ color: rgb(240, 240, 240);
+ opacity: 1;
+}
+
+.menu_items {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 10px;
+ margin-bottom: 20px;
+}
+
+.menu_header {
+ font-size: 3em;
+ margin-top: 40px;
+}
+
+#webview_content {
+ display: none;
+ background-color: transparent;
+ position: absolute;
+ top: 0px;
+ width: 100%;
+ height: 768px;
+}
+
+.webview {
+ width: 100%;
+ height: 100%;
+ background: transparent;
+ margin: 0px;
+ border: 0;
+ overflow: hidden;
+}
+
diff --git a/games/drive-mad-s/favicon.ico b/games/drive-mad-s/favicon.ico
new file mode 100644
index 00000000..84429cc6
Binary files /dev/null and b/games/drive-mad-s/favicon.ico differ
diff --git a/games/drive-mad-s/icon.jpg b/games/drive-mad-s/icon.jpg
new file mode 100644
index 00000000..142f0a1d
Binary files /dev/null and b/games/drive-mad-s/icon.jpg differ
diff --git a/games/drive-mad-s/index.html b/games/drive-mad-s/index.html
new file mode 100644
index 00000000..04cb612c
--- /dev/null
+++ b/games/drive-mad-s/index.html
@@ -0,0 +1,46 @@
+
+
+
+
+
+ Drive Mad S
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+
Drive Mad S
+
Codii
+
+
+
+
+
Just A 'Small' Drive Mad Mod.
+
+
+
+
+
+
+
+
+
diff --git a/games/drive-mad-s/index_stripped.data b/games/drive-mad-s/index_stripped.data
new file mode 100644
index 00000000..c02c0617
Binary files /dev/null and b/games/drive-mad-s/index_stripped.data differ
diff --git a/games/drive-mad-s/index_stripped.js b/games/drive-mad-s/index_stripped.js
new file mode 100644
index 00000000..8f0397b5
--- /dev/null
+++ b/games/drive-mad-s/index_stripped.js
@@ -0,0 +1 @@
+var Module=typeof Module!="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){if(Module["ENVIRONMENT_IS_PTHREAD"])return;var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="index_stripped.data";var REMOTE_PACKAGE_BASE="index_stripped.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","assets",true,true);Module["FS_createPath"]("/assets","blocks",true,true);Module["FS_createPath"]("/assets","games",true,true);Module["FS_createPath"]("/assets","sounds",true,true);Module["FS_createPath"]("/assets","views",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}var fs,nodePath;if(typeof require==="function"){fs=require("fs");nodePath=require("path")}read_=(filename,binary)=>{filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||124518400;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="index_stripped.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["jb"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Pb"];addOnInit(Module["asm"]["kb"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={277992:($0,$1,$2)=>{fetchUrl(UTF8ToString($0),$1,$2)},278029:$0=>{webViewOpen(UTF8ToString($0))},278062:()=>{webViewClose()},278080:$0=>{webViewExecuteJS(UTF8ToString($0))},278118:()=>{hideOverlayGradient()},278143:()=>{if(fsSyncStatus==="to")return;fsSyncStatus="to";FS.syncfs(false,function(err){if(err){simpleLogC("syncfs error "+err)}fsSyncStatus=""})},278304:()=>{if(fsSyncStatus==="from")return;fsSyncStatus="from";FS.syncfs(true,function(err){if(err){simpleLogC("syncfs error "+err)}fsSyncStatus=""})},278468:()=>{firebaseInit()},278486:()=>{firebaseDeinit()},278506:()=>{firebasePause()},278525:()=>{firebaseResume()},278545:()=>{firebaseSigninAnonymous()},278574:$0=>{firebaseSendPasswordResetEmail(UTF8ToString($0))},278626:($0,$1)=>{firebaseSignIn(UTF8ToString($0),UTF8ToString($1))},278680:($0,$1)=>{firebaseLinkUser(UTF8ToString($0),UTF8ToString($1))},278736:($0,$1,$2)=>{firebaseMerge(UTF8ToString($0),UTF8ToString($1),$2)},278793:($0,$1)=>{firebaseDeleteCurrentUser(UTF8ToString($0),UTF8ToString($1))},278858:()=>{firebaseSignout()},278879:()=>{return firebaseSignedInEmail()},278913:($0,$1)=>{firebaseWriteNick(UTF8ToString($0),UTF8ToString($1))},278970:$0=>{firebaseWriteGems($0)},278995:()=>{firebaseReadGems()},279017:($0,$1,$2,$3)=>{firebaseQueryGames($0,UTF8ToString($1),$2,$3)},279069:$0=>{firebaseReadVersion(UTF8ToString($0))},279110:($0,$1)=>{firebaseReadGame($0,UTF8ToString($1))},279152:($0,$1,$2)=>{firebaseWriteBuys(UTF8ToString($0),UTF8ToString($1),$2)},279213:$0=>{writeDailyReward($0)},279237:($0,$1,$2,$3)=>{firebaseUpdateScores(UTF8ToString($0),$1,$2,$3)},279291:($0,$1,$2)=>{firebaseReadCounts($0,UTF8ToString($1),$2)},279339:($0,$1)=>{firebaseReadLedger($0,UTF8ToString($1))},279383:($0,$1,$2,$3)=>{firebaseWriteLedger(UTF8ToString($0),UTF8ToString($1),$2,$3)},279450:($0,$1,$2)=>{firebaseDownload(UTF8ToString($0),UTF8ToString($1),UTF8ToString($2))},279524:($0,$1,$2,$3,$4,$5,$6)=>{firebaseUpload(UTF8ToString($0),UTF8ToString($1),UTF8ToString($2),UTF8ToString($3),UTF8ToString($4),$5,UTF8ToString($6))},279654:$0=>{firebaseSyncUpload(UTF8ToString($0))},279694:$0=>{firebaseSyncDownload(UTF8ToString($0))},279736:($0,$1)=>{firebaseSendBugReport(UTF8ToString($0),UTF8ToString($1))},279797:$0=>{},279831:($0,$1,$2,$3,$4,$5,$6)=>{},279961:($0,$1,$2,$3)=>{},280051:($0,$1,$2,$3,$4,$5,$6,$7,$8,$9)=>{firebaseAnalyticsPlay($0,$1,$2,UTF8ToString($3),$4,$5,$6,$7,$8,$9)},280131:($0,$1,$2)=>{firebaseAnalytics.logEvent("unlock",{world:$0,stars:$1,gems:$2})},280205:$0=>{},280282:()=>{firebaseRemoteConfigFetch()},280315:()=>{adInterstitialLoad()},280341:()=>{adInterstitialShow()},280367:()=>{adRewardedLoad()},280389:()=>{adRewardedShow()},280411:()=>{adInit()},280425:()=>{adInit()},280439:($0,$1,$2)=>{showShareFileModal(UTF8ToString($0),UTF8ToString($1),UTF8ToString($2))},280514:$0=>{window.open(UTF8ToString($0),"_blank")},280559:()=>{location.reload()},280582:($0,$1,$2,$3)=>{showStoreLinkModal(UTF8ToString($0),$1,$2,$3)},280634:()=>{FS.mkdir("/sandbox");FS.mount(IDBFS,{},"/sandbox");FS.syncfs(true,function(err){if(err){simpleLogC("syncfs error "+err)}ccall("app_init","v")})},280802:()=>{return document.getElementById("canvas").width},280852:()=>{return document.getElementById("canvas").height},280903:()=>{hideOverlayGradient()},280928:$0=>{setDeepLinkLoadingFraction($0)},280961:$0=>{downloadFileInBrowser(UTF8ToString($0))},281003:()=>{getServerTimeSeconds()}};function is_daily_reward_possible(){return dailyRewardPossible}function is_latest_browser_tab(){try{return localStorage["startup-time"]==startupTimeStr}catch(err){return true}}function set_latest_browser_tab(){startupTimeStr=Date.now().toString();try{localStorage["startup-time"]=startupTimeStr}catch(err){}}function get_device_pixel_ratio(){return window.devicePixelRatio}function get_single_game_link_guid(){return getGameGuidArgument()}function get_hostname(){return getHostname()}function get_url_level_index(){return getUrlLevelIndex()}function get_start_in_edit_mode(){return getStartInEditMode()}function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return()=>{crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return()=>crypto_module["randomBytes"](1)[0]}catch(e){}}return()=>abort("randomDevice")}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size);return address}function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(this.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>{return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(this.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){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.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=event=>{if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;tempI64=[Math.floor(stat.atime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.atime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=0;tempI64=[Math.floor(stat.mtime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.mtime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=0;tempI64=[Math.floor(stat.ctime.getTime()/1e3)>>>0,(tempDouble=Math.floor(stat.ctime.getTime()/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function maybeExit(){}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.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.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function callUserCallback(func){if(ABORT){return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;if(ENVIRONMENT_IS_NODE)text="warning: "+text;err(text)}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",()=>finish(audio),false);audio.onerror=function audio_onerror(event){if(done)return;err("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||(()=>{});canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||(()=>{});canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",ev=>{if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?()=>canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"]):null)||(canvasContainer["webkitRequestFullScreen"]?()=>canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"]):null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func,timeout){return safeSetTimeout(func,timeout)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h1)return 0;if(!surfData.buffer){surfData.buffer=_malloc(surfData.width*surfData.height*4);HEAPU32[surf+20>>2]=surfData.buffer}HEAPU32[surf+20>>2]=surfData.buffer;if(surf==SDL.screen&&Module.screenIsReadOnly&&surfData.image)return 0;if(SDL.defaults.discardOnLock){if(!surfData.image){surfData.image=surfData.ctx.createImageData(surfData.width,surfData.height)}if(!SDL.defaults.opaqueFrontBuffer)return}else{surfData.image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height)}if(surf==SDL.screen&&SDL.defaults.opaqueFrontBuffer){var data=surfData.image.data;var num=data.length;for(var i=0;i=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}var SDL={defaults:{width:320,height:200,copyOnLock:true,discardOnLock:false,opaqueFrontBuffer:true},version:null,surfaces:{},canvasPool:[],events:[],fonts:[null],audios:[null],rwops:[null],music:{audio:null,volume:1},mixerFrequency:22050,mixerFormat:32784,mixerNumChannels:2,mixerChunkSize:1024,channelMinimumNumber:0,GL:false,glAttributes:{0:3,1:3,2:2,3:0,4:0,5:1,6:16,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:1,16:0,17:0,18:0},keyboardState:null,keyboardMap:{},canRequestFullscreen:false,isRequestingFullscreen:false,textInput:false,startTime:null,initFlags:0,buttonState:0,modState:0,DOMButtons:[0,0,0],DOMEventToSDLEvent:{},TOUCH_DEFAULT_ID:0,eventHandler:null,eventHandlerContext:null,eventHandlerTemp:0,keyCodes:{16:1249,17:1248,18:1250,20:1081,33:1099,34:1102,35:1101,36:1098,37:1104,38:1106,39:1103,40:1105,44:316,45:1097,46:127,91:1251,93:1125,96:1122,97:1113,98:1114,99:1115,100:1116,101:1117,102:1118,103:1119,104:1120,105:1121,106:1109,107:1111,109:1110,110:1123,111:1108,112:1082,113:1083,114:1084,115:1085,116:1086,117:1087,118:1088,119:1089,120:1090,121:1091,122:1092,123:1093,124:1128,125:1129,126:1130,127:1131,128:1132,129:1133,130:1134,131:1135,132:1136,133:1137,134:1138,135:1139,144:1107,160:94,161:33,162:34,163:35,164:36,165:37,166:38,167:95,168:40,169:41,170:42,171:43,172:124,173:45,174:123,175:125,176:126,181:127,182:129,183:128,188:44,190:46,191:47,192:96,219:91,220:92,221:93,222:39,224:1251},scanCodes:{8:42,9:43,13:40,27:41,32:44,35:204,39:53,44:54,46:55,47:56,48:39,49:30,50:31,51:32,52:33,53:34,54:35,55:36,56:37,57:38,58:203,59:51,61:46,91:47,92:49,93:48,96:52,97:4,98:5,99:6,100:7,101:8,102:9,103:10,104:11,105:12,106:13,107:14,108:15,109:16,110:17,111:18,112:19,113:20,114:21,115:22,116:23,117:24,118:25,119:26,120:27,121:28,122:29,127:76,305:224,308:226,316:70},loadRect:function(rect){return{x:HEAP32[rect+0>>2],y:HEAP32[rect+4>>2],w:HEAP32[rect+8>>2],h:HEAP32[rect+12>>2]}},updateRect:function(rect,r){HEAP32[rect>>2]=r.x;HEAP32[rect+4>>2]=r.y;HEAP32[rect+8>>2]=r.w;HEAP32[rect+12>>2]=r.h},intersectionOfRects:function(first,second){var leftX=Math.max(first.x,second.x);var leftY=Math.max(first.y,second.y);var rightX=Math.min(first.x+first.w,second.x+second.w);var rightY=Math.min(first.y+first.h,second.y+second.h);return{x:leftX,y:leftY,w:Math.max(leftX,rightX)-leftX,h:Math.max(leftY,rightY)-leftY}},checkPixelFormat:function(fmt){},loadColorToCSSRGB:function(color){var rgba=HEAP32[color>>2];return"rgb("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+")"},loadColorToCSSRGBA:function(color){var rgba=HEAP32[color>>2];return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>24&255)/255+")"},translateColorToCSSRGBA:function(rgba){return"rgba("+(rgba&255)+","+(rgba>>8&255)+","+(rgba>>16&255)+","+(rgba>>>24)/255+")"},translateRGBAToCSSRGBA:function(r,g,b,a){return"rgba("+(r&255)+","+(g&255)+","+(b&255)+","+(a&255)/255+")"},translateRGBAToColor:function(r,g,b,a){return r|g<<8|b<<16|a<<24},makeSurface:function(width,height,flags,usePageCanvas,source,rmask,gmask,bmask,amask){flags=flags||0;var is_SDL_HWSURFACE=flags&1;var is_SDL_HWPALETTE=flags&2097152;var is_SDL_OPENGL=flags&67108864;var surf=_malloc(60);var pixelFormat=_malloc(44);var bpp=is_SDL_HWPALETTE?1:4;var buffer=0;if(!is_SDL_HWSURFACE&&!is_SDL_OPENGL){buffer=_malloc(width*height*4)}HEAP32[surf>>2]=flags;HEAPU32[surf+4>>2]=pixelFormat;HEAP32[surf+8>>2]=width;HEAP32[surf+12>>2]=height;HEAP32[surf+16>>2]=width*bpp;HEAPU32[surf+20>>2]=buffer;HEAP32[surf+36>>2]=0;HEAP32[surf+40>>2]=0;HEAP32[surf+44>>2]=Module["canvas"].width;HEAP32[surf+48>>2]=Module["canvas"].height;HEAP32[surf+56>>2]=1;HEAP32[pixelFormat>>2]=-2042224636;HEAP32[pixelFormat+4>>2]=0;HEAP8[pixelFormat+8>>0]=bpp*8;HEAP8[pixelFormat+9>>0]=bpp;HEAP32[pixelFormat+12>>2]=rmask||255;HEAP32[pixelFormat+16>>2]=gmask||65280;HEAP32[pixelFormat+20>>2]=bmask||16711680;HEAP32[pixelFormat+24>>2]=amask||4278190080;SDL.GL=SDL.GL||is_SDL_OPENGL;var canvas;if(!usePageCanvas){if(SDL.canvasPool.length>0){canvas=SDL.canvasPool.pop()}else{canvas=document.createElement("canvas")}canvas.width=width;canvas.height=height}else{canvas=Module["canvas"]}var webGLContextAttributes={antialias:SDL.glAttributes[13]!=0&&SDL.glAttributes[14]>1,depth:SDL.glAttributes[6]>0,stencil:SDL.glAttributes[7]>0,alpha:SDL.glAttributes[3]>0};var ctx=Browser.createContext(canvas,is_SDL_OPENGL,usePageCanvas,webGLContextAttributes);SDL.surfaces[surf]={width:width,height:height,canvas:canvas,ctx:ctx,surf:surf,buffer:buffer,pixelFormat:pixelFormat,alpha:255,flags:flags,locked:0,usePageCanvas:usePageCanvas,source:source,isFlagSet:function(flag){return flags&flag}};return surf},copyIndexedColorData:function(surfData,rX,rY,rW,rH){if(!surfData.colors){return}var fullWidth=Module["canvas"].width;var fullHeight=Module["canvas"].height;var startX=rX||0;var startY=rY||0;var endX=(rW||fullWidth-startX)+startX;var endY=(rH||fullHeight-startY)+startY;var buffer=surfData.buffer;if(!surfData.image.data32){surfData.image.data32=new Uint32Array(surfData.image.data.buffer)}var data32=surfData.image.data32;var colors32=surfData.colors32;for(var y=startY;y>0]]}}},freeSurface:function(surf){var refcountPointer=surf+56;var refcount=HEAP32[refcountPointer>>2];if(refcount>1){HEAP32[refcountPointer>>2]=refcount-1;return}var info=SDL.surfaces[surf];if(!info.usePageCanvas&&info.canvas)SDL.canvasPool.push(info.canvas);if(info.buffer)_free(info.buffer);_free(info.pixelFormat);_free(surf);SDL.surfaces[surf]=null;if(surf===SDL.screen){SDL.screen=null}},blitSurface:function(src,srcrect,dst,dstrect,scale){var srcData=SDL.surfaces[src];var dstData=SDL.surfaces[dst];var sr,dr;if(srcrect){sr=SDL.loadRect(srcrect)}else{sr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstrect){dr=SDL.loadRect(dstrect)}else{dr={x:0,y:0,w:srcData.width,h:srcData.height}}if(dstData.clipRect){var widthScale=!scale||sr.w===0?1:sr.w/dr.w;var heightScale=!scale||sr.h===0?1:sr.h/dr.h;dr=SDL.intersectionOfRects(dstData.clipRect,dr);sr.w=dr.w*widthScale;sr.h=dr.h*heightScale;if(dstrect){SDL.updateRect(dstrect,dr)}}var blitw,blith;if(scale){blitw=dr.w;blith=dr.h}else{blitw=sr.w;blith=sr.h}if(sr.w===0||sr.h===0||blitw===0||blith===0){return 0}var oldAlpha=dstData.ctx.globalAlpha;dstData.ctx.globalAlpha=srcData.alpha/255;dstData.ctx.drawImage(srcData.canvas,sr.x,sr.y,sr.w,sr.h,dr.x,dr.y,blitw,blith);dstData.ctx.globalAlpha=oldAlpha;if(dst!=SDL.screen){warnOnce("WARNING: copying canvas data to memory for compatibility");_SDL_LockSurface(dst);dstData.locked--}return 0},downFingers:{},savedKeydown:null,receiveEvent:function(event){function unpressAllPressedKeys(){for(var code in SDL.keyboardMap){SDL.events.push({type:"keyup",keyCode:SDL.keyboardMap[code]})}}switch(event.type){case"touchstart":case"touchmove":{event.preventDefault();var touches=[];if(event.type==="touchstart"){for(var i=0;i0?Math.max(delta,1):Math.min(delta,-1);var button=delta>0?3:4;SDL.events.push({type:"mousedown",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"mouseup",button:button,pageX:event.pageX,pageY:event.pageY});SDL.events.push({type:"wheel",deltaX:0,deltaY:delta});event.preventDefault();break;case"mousemove":if(SDL.DOMButtons[0]===1){SDL.events.push({type:"touchmove",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}if(Browser.pointerLock){if("mozMovementX"in event){event["movementX"]=event["mozMovementX"];event["movementY"]=event["mozMovementY"]}if(event["movementX"]==0&&event["movementY"]==0){event.preventDefault();return}}case"keydown":case"keyup":case"keypress":case"mousedown":case"mouseup":if(event.type!=="keydown"||!SDL_unicode()&&!SDL.textInput||(event.keyCode===8||event.keyCode===9)){event.preventDefault()}if(event.type=="mousedown"){SDL.DOMButtons[event.button]=1;SDL.events.push({type:"touchstart",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}})}else if(event.type=="mouseup"){if(!SDL.DOMButtons[event.button]){return}SDL.events.push({type:"touchend",touch:{identifier:0,deviceID:-1,pageX:event.pageX,pageY:event.pageY}});SDL.DOMButtons[event.button]=0}if(event.type==="keydown"||event.type==="mousedown"){SDL.canRequestFullscreen=true}else if(event.type==="keyup"||event.type==="mouseup"){if(SDL.isRequestingFullscreen){Module["requestFullscreen"](true,true);SDL.isRequestingFullscreen=false}SDL.canRequestFullscreen=false}if(event.type==="keypress"&&SDL.savedKeydown){SDL.savedKeydown.keypressCharCode=event.charCode;SDL.savedKeydown=null}else if(event.type==="keydown"){SDL.savedKeydown=event}if(event.type!=="keypress"||SDL.textInput){SDL.events.push(event)}break;case"mouseout":for(var i=0;i<3;i++){if(SDL.DOMButtons[i]){SDL.events.push({type:"mouseup",button:i,pageX:event.pageX,pageY:event.pageY});SDL.DOMButtons[i]=0}}event.preventDefault();break;case"focus":SDL.events.push(event);event.preventDefault();break;case"blur":SDL.events.push(event);unpressAllPressedKeys();event.preventDefault();break;case"visibilitychange":SDL.events.push({type:"visibilitychange",visible:!document.hidden});unpressAllPressedKeys();event.preventDefault();break;case"unload":if(Browser.mainLoop.runner){SDL.events.push(event);Browser.mainLoop.runner()}return;case"resize":SDL.events.push(event);if(event.preventDefault){event.preventDefault()}break}if(SDL.events.length>=1e4){err("SDL event queue full, dropping events");SDL.events=SDL.events.slice(0,1e4)}SDL.flushEventsToHandler();return},lookupKeyCodeForEvent:function(event){var code=event.keyCode;if(code>=65&&code<=90){code+=32}else{code=SDL.keyCodes[event.keyCode]||event.keyCode;if(event.location===2&&code>=(224|1<<10)&&code<=(227|1<<10)){code+=4}}return code},handleEvent:function(event){if(event.handled)return;event.handled=true;switch(event.type){case"touchstart":case"touchend":case"touchmove":{Browser.calculateMouseEvent(event);break}case"keydown":case"keyup":{var down=event.type==="keydown";var code=SDL.lookupKeyCodeForEvent(event);HEAP8[SDL.keyboardState+code>>0]=down;SDL.modState=(HEAP8[SDL.keyboardState+1248>>0]?64:0)|(HEAP8[SDL.keyboardState+1249>>0]?1:0)|(HEAP8[SDL.keyboardState+1250>>0]?256:0)|(HEAP8[SDL.keyboardState+1252>>0]?128:0)|(HEAP8[SDL.keyboardState+1253>>0]?2:0)|(HEAP8[SDL.keyboardState+1254>>0]?512:0);if(down){SDL.keyboardMap[code]=event.keyCode}else{delete SDL.keyboardMap[code]}break}case"mousedown":case"mouseup":if(event.type=="mousedown"){SDL.buttonState|=1<0){if(SDL.makeCEvent(SDL.events.shift(),ptr)!==false)return 1}return 0}return SDL.events.length>0},makeCEvent:function(event,ptr){if(typeof event=="number"){_memcpy(ptr,event,28);_free(event);return}SDL.handleEvent(event);switch(event.type){case"keydown":case"keyup":{var down=event.type==="keydown";var key=SDL.lookupKeyCodeForEvent(event);var scan;if(key>=1024){scan=key-1024}else{scan=SDL.scanCodes[key]||key}HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+8>>0]=down?1:0;HEAP8[ptr+9>>0]=0;HEAP32[ptr+12>>2]=scan;HEAP32[ptr+16>>2]=key;HEAP16[ptr+20>>1]=SDL.modState;HEAP32[ptr+24>>2]=event.keypressCharCode||key;break}case"keypress":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];var cStr=intArrayFromString(String.fromCharCode(event.charCode));for(var i=0;i>0]=cStr[i]}break}case"mousedown":case"mouseup":case"mousemove":{if(event.type!="mousemove"){var down=event.type==="mousedown";HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP8[ptr+16>>0]=event.button+1;HEAP8[ptr+17>>0]=down?1:0;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY}else{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP32[ptr+8>>2]=0;HEAP32[ptr+12>>2]=0;HEAP32[ptr+16>>2]=SDL.buttonState;HEAP32[ptr+20>>2]=Browser.mouseX;HEAP32[ptr+24>>2]=Browser.mouseY;HEAP32[ptr+28>>2]=Browser.mouseMovementX;HEAP32[ptr+32>>2]=Browser.mouseMovementY}break}case"wheel":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+16>>2]=event.deltaX;HEAP32[ptr+20>>2]=event.deltaY;break}case"touchstart":case"touchend":case"touchmove":{var touch=event.touch;if(!Browser.touches[touch.identifier])break;var w=Module["canvas"].width;var h=Module["canvas"].height;var x=Browser.touches[touch.identifier].x/w;var y=Browser.touches[touch.identifier].y/h;var lx=Browser.lastTouches[touch.identifier].x/w;var ly=Browser.lastTouches[touch.identifier].y/h;var dx=x-lx;var dy=y-ly;if(touch["deviceID"]===undefined)touch.deviceID=SDL.TOUCH_DEFAULT_ID;if(dx===0&&dy===0&&event.type==="touchmove")return false;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=_SDL_GetTicks();tempI64=[touch.deviceID>>>0,(tempDouble=touch.deviceID,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr+8>>2]=tempI64[0],HEAP32[ptr+12>>2]=tempI64[1];tempI64=[touch.identifier>>>0,(tempDouble=touch.identifier,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr+16>>2]=tempI64[0],HEAP32[ptr+20>>2]=tempI64[1];HEAPF32[ptr+24>>2]=x;HEAPF32[ptr+28>>2]=y;HEAPF32[ptr+32>>2]=dx;HEAPF32[ptr+36>>2]=dy;if(touch.force!==undefined){HEAPF32[ptr+40>>2]=touch.force}else{HEAPF32[ptr+40>>2]=event.type=="touchend"?0:1}break}case"unload":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];break}case"resize":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=event.w;HEAP32[ptr+8>>2]=event.h;break}case"joystick_button_up":case"joystick_button_down":{var state=event.type==="joystick_button_up"?0:1;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.button;HEAP8[ptr+6>>0]=state;break}case"joystick_axis_motion":{HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP8[ptr+4>>0]=event.index;HEAP8[ptr+5>>0]=event.axis;HEAP32[ptr+8>>2]=SDL.joystickAxisValueConversion(event.value);break}case"focus":{var SDL_WINDOWEVENT_FOCUS_GAINED=12;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_GAINED;break}case"blur":{var SDL_WINDOWEVENT_FOCUS_LOST=13;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=SDL_WINDOWEVENT_FOCUS_LOST;break}case"visibilitychange":{var SDL_WINDOWEVENT_SHOWN=1;var SDL_WINDOWEVENT_HIDDEN=2;var visibilityEventID=event.visible?SDL_WINDOWEVENT_SHOWN:SDL_WINDOWEVENT_HIDDEN;HEAP32[ptr>>2]=SDL.DOMEventToSDLEvent[event.type];HEAP32[ptr+4>>2]=0;HEAP8[ptr+8>>0]=visibilityEventID;break}default:throw"Unhandled SDL event: "+event.type}},makeFontString:function(height,fontName){if(fontName.charAt(0)!="'"&&fontName.charAt(0)!='"'){fontName='"'+fontName+'"'}return height+"px "+fontName+", serif"},estimateTextWidth:function(fontData,text){var h=fontData.size;var fontString=SDL.makeFontString(h,fontData.name);var tempCtx=SDL_ttfContext();tempCtx.font=fontString;var ret=tempCtx.measureText(text).width|0;return ret},allocateChannels:function(num){if(SDL.numChannels&&SDL.numChannels>=num&&num!=0)return;SDL.numChannels=num;SDL.channels=[];for(var i=0;i>1]/32768}}else if(audio.format==8){for(var j=0;j>0];channelData[j]=(v>=0?v-128:v+128)/128}}else if(audio.format==33056){for(var j=0;j>2]}}else{throw"Invalid SDL audio format "+audio.format+"!"}}},debugSurface:function(surfData){out("dumping surface "+[surfData.surf,surfData.source,surfData.width,surfData.height]);var image=surfData.ctx.getImageData(0,0,surfData.width,surfData.height);var data=image.data;var num=Math.min(surfData.width,surfData.height);for(var i=0;i0},queryJoysticks:function(){for(var joystick in SDL.lastJoystickState){var state=SDL.getGamepad(joystick-1);var prevState=SDL.lastJoystickState[joystick];if(typeof state=="undefined")return;if(state===null)return;if(typeof state.timestamp!="number"||state.timestamp!=prevState.timestamp||!state.timestamp){var i;for(i=0;ideviceIndex&&deviceIndex>=0){return gamepads[deviceIndex]}return null}};function _SDL_GetNumAudioDrivers(){return 1}function _SDL_Init(initFlags){SDL.startTime=Date.now();SDL.initFlags=initFlags;if(!Module["doNotCaptureKeyboard"]){var keyboardListeningElement=Module["keyboardListeningElement"]||document;keyboardListeningElement.addEventListener("keydown",SDL.receiveEvent);keyboardListeningElement.addEventListener("keyup",SDL.receiveEvent);keyboardListeningElement.addEventListener("keypress",SDL.receiveEvent);window.addEventListener("focus",SDL.receiveEvent);window.addEventListener("blur",SDL.receiveEvent);document.addEventListener("visibilitychange",SDL.receiveEvent)}window.addEventListener("unload",SDL.receiveEvent);SDL.keyboardState=_malloc(65536);zeroMemory(SDL.keyboardState,65536);SDL.DOMEventToSDLEvent["keydown"]=768;SDL.DOMEventToSDLEvent["keyup"]=769;SDL.DOMEventToSDLEvent["keypress"]=771;SDL.DOMEventToSDLEvent["mousedown"]=1025;SDL.DOMEventToSDLEvent["mouseup"]=1026;SDL.DOMEventToSDLEvent["mousemove"]=1024;SDL.DOMEventToSDLEvent["wheel"]=1027;SDL.DOMEventToSDLEvent["touchstart"]=1792;SDL.DOMEventToSDLEvent["touchend"]=1793;SDL.DOMEventToSDLEvent["touchmove"]=1794;SDL.DOMEventToSDLEvent["unload"]=256;SDL.DOMEventToSDLEvent["resize"]=28673;SDL.DOMEventToSDLEvent["visibilitychange"]=512;SDL.DOMEventToSDLEvent["focus"]=512;SDL.DOMEventToSDLEvent["blur"]=512;SDL.DOMEventToSDLEvent["joystick_axis_motion"]=1536;SDL.DOMEventToSDLEvent["joystick_button_down"]=1539;SDL.DOMEventToSDLEvent["joystick_button_up"]=1540;return 0}function listenOnce(object,event,func){object.addEventListener(event,func,{"once":true})}function autoResumeAudioContext(ctx,elements){if(!elements){elements=[document,document.getElementById("canvas")]}["keydown","mousedown","touchstart"].forEach(function(event){elements.forEach(function(element){if(element){listenOnce(element,event,()=>{if(ctx.state==="suspended")ctx.resume()})}})})}function _SDL_OpenAudio(desired,obtained){try{SDL.audio={freq:HEAPU32[desired>>2],format:HEAPU16[desired+4>>1],channels:HEAPU8[desired+6>>0],samples:HEAPU16[desired+8>>1],callback:HEAPU32[desired+16>>2],userdata:HEAPU32[desired+20>>2],paused:true,timer:null};if(SDL.audio.format==8){SDL.audio.silence=128}else if(SDL.audio.format==32784){SDL.audio.silence=0}else if(SDL.audio.format==33056){SDL.audio.silence=0}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}if(SDL.audio.freq<=0){throw"Unsupported sound frequency "+SDL.audio.freq+"!"}else if(SDL.audio.freq<=22050){SDL.audio.freq=22050}else if(SDL.audio.freq<=32e3){SDL.audio.freq=32e3}else if(SDL.audio.freq<=44100){SDL.audio.freq=44100}else if(SDL.audio.freq<=48e3){SDL.audio.freq=48e3}else if(SDL.audio.freq<=96e3){SDL.audio.freq=96e3}else{throw"Unsupported sound frequency "+SDL.audio.freq+"!"}if(SDL.audio.channels==0){SDL.audio.channels=1}else if(SDL.audio.channels<0||SDL.audio.channels>32){throw"Unsupported number of audio channels for SDL audio: "+SDL.audio.channels+"!"}else if(SDL.audio.channels!=1&&SDL.audio.channels!=2){out("Warning: Using untested number of audio channels "+SDL.audio.channels)}if(SDL.audio.samples<128||SDL.audio.samples>524288){throw"Unsupported audio callback buffer size "+SDL.audio.samples+"!"}else if((SDL.audio.samples&SDL.audio.samples-1)!=0){throw"Audio callback buffer size "+SDL.audio.samples+" must be a power-of-two!"}var totalSamples=SDL.audio.samples*SDL.audio.channels;if(SDL.audio.format==8){SDL.audio.bytesPerSample=1}else if(SDL.audio.format==32784){SDL.audio.bytesPerSample=2}else if(SDL.audio.format==33056){SDL.audio.bytesPerSample=4}else{throw"Invalid SDL audio format "+SDL.audio.format+"!"}SDL.audio.bufferSize=totalSamples*SDL.audio.bytesPerSample;SDL.audio.bufferDurationSecs=SDL.audio.bufferSize/SDL.audio.bytesPerSample/SDL.audio.channels/SDL.audio.freq;SDL.audio.bufferingDelay=50/1e3;SDL.audio.buffer=_malloc(SDL.audio.bufferSize);SDL.audio.numSimultaneouslyQueuedBuffers=Module["SDL_numSimultaneouslyQueuedBuffers"]||5;SDL.audio.queueNewAudioData=function SDL_queueNewAudioData(){if(!SDL.audio)return;for(var i=0;i=SDL.audio.bufferingDelay+SDL.audio.bufferDurationSecs*SDL.audio.numSimultaneouslyQueuedBuffers)return;getWasmTableEntry(SDL.audio.callback)(SDL.audio.userdata,SDL.audio.buffer,SDL.audio.bufferSize);SDL.audio.pushAudio(SDL.audio.buffer,SDL.audio.bufferSize)}};SDL.audio.caller=function SDL_audioCaller(){if(!SDL.audio)return;--SDL.audio.numAudioTimersPending;SDL.audio.queueNewAudioData();var secsUntilNextPlayStart=SDL.audio.nextPlayTime-SDL.audioContext["currentTime"];var preemptBufferFeedSecs=SDL.audio.bufferDurationSecs/2;if(SDL.audio.numAudioTimersPending>2]=SDL.audio.freq;HEAP16[obtained+4>>1]=SDL.audio.format;HEAP8[obtained+6>>0]=SDL.audio.channels;HEAP8[obtained+7>>0]=SDL.audio.silence;HEAP16[obtained+8>>1]=SDL.audio.samples;HEAPU32[obtained+16>>2]=SDL.audio.callback;HEAPU32[obtained+20>>2]=SDL.audio.userdata}SDL.allocateChannels(32)}catch(e){out('Initializing SDL audio threw an exception: "'+e.toString()+'"! Continuing without audio.');SDL.audio=null;SDL.allocateChannels(0);if(obtained){HEAP32[obtained>>2]=0;HEAP16[obtained+4>>1]=0;HEAP8[obtained+6>>0]=0;HEAP8[obtained+7>>0]=0;HEAP16[obtained+8>>1]=0;HEAPU32[obtained+16>>2]=0;HEAPU32[obtained+20>>2]=0}}if(!SDL.audio){return-1}return 0}function _SDL_PauseAudio(pauseOn){if(!SDL.audio){return}if(pauseOn){if(SDL.audio.timer!==undefined){clearTimeout(SDL.audio.timer);SDL.audio.numAudioTimersPending=0;SDL.audio.timer=undefined}}else if(!SDL.audio.timer){SDL.audio.numAudioTimersPending=1;SDL.audio.timer=safeSetTimeout(SDL.audio.caller,1)}SDL.audio.paused=pauseOn}function _SDL_AudioQuit(){for(var i=0;i>2]=value;return value}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function readI53FromI64(ptr){return HEAPU32[ptr>>2]+HEAP32[ptr+4>>2]*4294967296}function __localtime_js(time,tmPtr){var date=new Date(readI53FromI64(time)*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function __mktime_js(tmPtr){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset)}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4)}HEAP32[tmPtr+24>>2]=date.getDay();var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();return date.getTime()/1e3|0}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_date_now(){return Date.now()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function _emscripten_get_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;HEAP32[width>>2]=canvas.width;HEAP32[height>>2]=canvas.height}function getCanvasElementSize(target){return withStackSave(function(){var w=stackAlloc(8);var h=w+4;var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);var ret=_emscripten_get_canvas_element_size(targetInt,w,h);var size=[HEAP32[w>>2],HEAP32[h>>2]];return size})}function setCanvasElementSize(target,width,height){if(!target.controlTransferredOffscreen){target.width=width;target.height=height}else{withStackSave(function(){var targetInt=stackAlloc(target.id.length+1);stringToUTF8(target.id,targetInt,target.id.length+1);_emscripten_set_canvas_element_size(targetInt,width,height)})}}function registerRestoreOldStyle(canvas){var canvasSize=getCanvasElementSize(canvas);var oldWidth=canvasSize[0];var oldHeight=canvasSize[1];var oldCssWidth=canvas.style.width;var oldCssHeight=canvas.style.height;var oldBackgroundColor=canvas.style.backgroundColor;var oldDocumentBackgroundColor=document.body.style.backgroundColor;var oldPaddingLeft=canvas.style.paddingLeft;var oldPaddingRight=canvas.style.paddingRight;var oldPaddingTop=canvas.style.paddingTop;var oldPaddingBottom=canvas.style.paddingBottom;var oldMarginLeft=canvas.style.marginLeft;var oldMarginRight=canvas.style.marginRight;var oldMarginTop=canvas.style.marginTop;var oldMarginBottom=canvas.style.marginBottom;var oldDocumentBodyMargin=document.body.style.margin;var oldDocumentOverflow=document.documentElement.style.overflow;var oldDocumentScroll=document.body.scroll;var oldImageRendering=canvas.style.imageRendering;function restoreOldStyle(){var fullscreenElement=document.fullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(!fullscreenElement){document.removeEventListener("fullscreenchange",restoreOldStyle);document.removeEventListener("webkitfullscreenchange",restoreOldStyle);setCanvasElementSize(canvas,oldWidth,oldHeight);canvas.style.width=oldCssWidth;canvas.style.height=oldCssHeight;canvas.style.backgroundColor=oldBackgroundColor;if(!oldDocumentBackgroundColor)document.body.style.backgroundColor="white";document.body.style.backgroundColor=oldDocumentBackgroundColor;canvas.style.paddingLeft=oldPaddingLeft;canvas.style.paddingRight=oldPaddingRight;canvas.style.paddingTop=oldPaddingTop;canvas.style.paddingBottom=oldPaddingBottom;canvas.style.marginLeft=oldMarginLeft;canvas.style.marginRight=oldMarginRight;canvas.style.marginTop=oldMarginTop;canvas.style.marginBottom=oldMarginBottom;document.body.style.margin=oldDocumentBodyMargin;document.documentElement.style.overflow=oldDocumentOverflow;document.body.scroll=oldDocumentScroll;canvas.style.imageRendering=oldImageRendering;if(canvas.GLctxObject)canvas.GLctxObject.GLctx.viewport(0,0,oldWidth,oldHeight);if(currentFullscreenStrategy.canvasResizedCallback){getWasmTableEntry(currentFullscreenStrategy.canvasResizedCallback)(37,0,currentFullscreenStrategy.canvasResizedCallbackUserData)}}}document.addEventListener("fullscreenchange",restoreOldStyle);document.addEventListener("webkitfullscreenchange",restoreOldStyle);return restoreOldStyle}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function JSEvents_resizeCanvasForFullscreen(target,strategy){var restoreOldStyle=registerRestoreOldStyle(target);var cssWidth=strategy.softFullscreen?innerWidth:screen.width;var cssHeight=strategy.softFullscreen?innerHeight:screen.height;var rect=getBoundingClientRect(target);var windowedCssWidth=rect.width;var windowedCssHeight=rect.height;var canvasSize=getCanvasElementSize(target);var windowedRttWidth=canvasSize[0];var windowedRttHeight=canvasSize[1];if(strategy.scaleMode==3){setLetterbox(target,(cssHeight-windowedCssHeight)/2,(cssWidth-windowedCssWidth)/2);cssWidth=windowedCssWidth;cssHeight=windowedCssHeight}else if(strategy.scaleMode==2){if(cssWidth*windowedRttHeight>2],canvasResolutionScaleMode:HEAP32[fullscreenStrategy+4>>2],filteringMode:HEAP32[fullscreenStrategy+8>>2],deferUntilInEventHandler:deferUntilInEventHandler,canvasResizedCallback:HEAP32[fullscreenStrategy+12>>2],canvasResizedCallbackUserData:HEAP32[fullscreenStrategy+16>>2]};return doRequestFullscreen(target,strategy)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(getWasmTableEntry(callbackfunc)(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_mousedown_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,5,"mousedown",targetThread);return 0}function _emscripten_set_mousemove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,8,"mousemove",targetThread);return 0}function _emscripten_set_mouseup_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,6,"mouseup",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(getWasmTableEntry(callbackfunc)(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _glGetIntegerv(name_,p){if(GLctx){emscriptenWebGLGet(name_,p,0)}}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>shift,pixels+bytes>>shift)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function webglGetUniformLocation(location){var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}var miniTempWebGLFloatBuffers=[];function _glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function GLFW_Window(id,width,height,title,monitor,share){this.id=id;this.x=0;this.y=0;this.fullscreen=false;this.storedX=0;this.storedY=0;this.width=width;this.height=height;this.storedWidth=width;this.storedHeight=height;this.title=title;this.monitor=monitor;this.share=share;this.attributes=GLFW.hints;this.inputModes={208897:212993,208898:0,208899:0};this.buttons=0;this.keys=new Array;this.domKeys=new Array;this.shouldClose=0;this.title=null;this.windowPosFunc=null;this.windowSizeFunc=null;this.windowCloseFunc=null;this.windowRefreshFunc=null;this.windowFocusFunc=null;this.windowIconifyFunc=null;this.framebufferSizeFunc=null;this.mouseButtonFunc=null;this.cursorPosFunc=null;this.cursorEnterFunc=null;this.scrollFunc=null;this.dropFunc=null;this.keyFunc=null;this.charFunc=null;this.userptr=null}var GLFW={WindowFromId:function(id){if(id<=0||!GLFW.windows)return null;return GLFW.windows[id-1]},joystickFunc:null,errorFunc:null,monitorFunc:null,active:null,windows:null,monitors:null,monitorString:null,versionString:null,initialTime:null,extensions:null,hints:null,defaultHints:{131073:0,131074:0,131075:1,131076:1,131077:1,135169:8,135170:8,135171:8,135172:8,135173:24,135174:8,135175:0,135176:0,135177:0,135178:0,135179:0,135180:0,135181:0,135182:0,135183:0,139265:196609,139266:1,139267:0,139268:0,139269:0,139270:0,139271:0,139272:0},DOMToGLFWKeyCode:function(keycode){switch(keycode){case 32:return 32;case 222:return 39;case 188:return 44;case 173:return 45;case 189:return 45;case 190:return 46;case 191:return 47;case 48:return 48;case 49:return 49;case 50:return 50;case 51:return 51;case 52:return 52;case 53:return 53;case 54:return 54;case 55:return 55;case 56:return 56;case 57:return 57;case 59:return 59;case 61:return 61;case 187:return 61;case 65:return 65;case 66:return 66;case 67:return 67;case 68:return 68;case 69:return 69;case 70:return 70;case 71:return 71;case 72:return 72;case 73:return 73;case 74:return 74;case 75:return 75;case 76:return 76;case 77:return 77;case 78:return 78;case 79:return 79;case 80:return 80;case 81:return 81;case 82:return 82;case 83:return 83;case 84:return 84;case 85:return 85;case 86:return 86;case 87:return 87;case 88:return 88;case 89:return 89;case 90:return 90;case 219:return 91;case 220:return 92;case 221:return 93;case 192:return 96;case 27:return 256;case 13:return 257;case 9:return 258;case 8:return 259;case 45:return 260;case 46:return 261;case 39:return 262;case 37:return 263;case 40:return 264;case 38:return 265;case 33:return 266;case 34:return 267;case 36:return 268;case 35:return 269;case 20:return 280;case 145:return 281;case 144:return 282;case 44:return 283;case 19:return 284;case 112:return 290;case 113:return 291;case 114:return 292;case 115:return 293;case 116:return 294;case 117:return 295;case 118:return 296;case 119:return 297;case 120:return 298;case 121:return 299;case 122:return 300;case 123:return 301;case 124:return 302;case 125:return 303;case 126:return 304;case 127:return 305;case 128:return 306;case 129:return 307;case 130:return 308;case 131:return 309;case 132:return 310;case 133:return 311;case 134:return 312;case 135:return 313;case 136:return 314;case 96:return 320;case 97:return 321;case 98:return 322;case 99:return 323;case 100:return 324;case 101:return 325;case 102:return 326;case 103:return 327;case 104:return 328;case 105:return 329;case 110:return 330;case 111:return 331;case 106:return 332;case 109:return 333;case 107:return 334;case 16:return 340;case 17:return 341;case 18:return 342;case 91:return 343;case 93:return 348;default:return-1}},getModBits:function(win){var mod=0;if(win.keys[340])mod|=1;if(win.keys[341])mod|=2;if(win.keys[342])mod|=4;if(win.keys[343])mod|=8;return mod},onKeyPress:function(event){if(!GLFW.active||!GLFW.active.charFunc)return;if(event.ctrlKey||event.metaKey)return;var charCode=event.charCode;if(charCode==0||charCode>=0&&charCode<=31)return;getWasmTableEntry(GLFW.active.charFunc)(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;getWasmTableEntry(GLFW.active.keyFunc)(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;getWasmTableEntry(GLFW.active.cursorEnterFunc)(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;getWasmTableEntry(GLFW.active.cursorEnterFunc)(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=delta;if(event.type=="mousewheel"){sx=event.wheelDeltaX}else{sx=event.deltaX}getWasmTableEntry(GLFW.active.scrollFunc)(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;getWasmTableEntry(GLFW.active.windowSizeFunc)(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;getWasmTableEntry(GLFW.active.framebufferSizeFunc)(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:[],lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:[];GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy>0]=gamepad.buttons[i].pressed}for(var i=0;i>2]=gamepad.axes[i]}}else{if(GLFW.joys[joy]){out("glfw joystick disconnected",joy);if(GLFW.joystickFunc){getWasmTableEntry(GLFW.joystickFunc)(joy,262146)}_free(GLFW.joys[joy].id);_free(GLFW.joys[joy].buttons);_free(GLFW.joys[joy].axes);delete GLFW.joys[joy]}}}}},setKeyCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.keyFunc;win.keyFunc=cbfun;return prevcbfun},setCharCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.charFunc;win.charFunc=cbfun;return prevcbfun},setMouseButtonCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.mouseButtonFunc;win.mouseButtonFunc=cbfun;return prevcbfun},setCursorPosCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.cursorPosFunc;win.cursorPosFunc=cbfun;return prevcbfun},setScrollCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.scrollFunc;win.scrollFunc=cbfun;return prevcbfun},setDropCallback:function(winid,cbfun){var win=GLFW.WindowFromId(winid);if(!win)return null;var prevcbfun=win.dropFunc;win.dropFunc=cbfun;return prevcbfun},onDrop:function(event){if(!GLFW.active||!GLFW.active.dropFunc)return;if(!event.dataTransfer||!event.dataTransfer.files||event.dataTransfer.files.length==0)return;event.preventDefault();var filenames=_malloc(event.dataTransfer.files.length*4);var filenamesArray=[];var count=event.dataTransfer.files.length;var written=0;var drop_dir=".glfw_dropped_files";FS.createPath("/",drop_dir);function save(file){var path="/"+drop_dir+"/"+file.name.replace(/\//g,"_");var reader=new FileReader;reader.onloadend=e=>{if(reader.readyState!=2){++written;out("failed to read dropped file: "+file.name+": "+reader.error);return}var data=e.target.result;FS.writeFile(path,new Uint8Array(data));if(++written===count){getWasmTableEntry(GLFW.active.dropFunc)(GLFW.active.id,count,filenames);for(var i=0;i>2]=filename}for(var i=0;i0},getCursorPos:function(winid,x,y){HEAPF64[x>>3]=Browser.mouseX;HEAPF64[y>>3]=Browser.mouseY},getMousePos:function(winid,x,y){HEAP32[x>>2]=Browser.mouseX;HEAP32[y>>2]=Browser.mouseY},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){HEAP32[x>>2]=wx}if(y){HEAP32[y>>2]=wy}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){HEAP32[width>>2]=ww}if(height){HEAP32[height>>2]=wh}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;getWasmTableEntry(win.windowSizeFunc)(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)getWasmTableEntry(win.windowCloseFunc)(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i{GLFW.onCanvasResize(width,height)});return 1}function _glfwMakeContextCurrent(winid){}function _glfwPollEvents(){}function _glfwSetClipboardString(win,string){}function _glfwSetDropCallback(winid,cbfun){return GLFW.setDropCallback(winid,cbfun)}function _glfwSetErrorCallback(cbfun){var prevcbfun=GLFW.errorFunc;GLFW.errorFunc=cbfun;return prevcbfun}function _glfwSetKeyCallback(winid,cbfun){return GLFW.setKeyCallback(winid,cbfun)}function _glfwSetScrollCallback(winid,cbfun){return GLFW.setScrollCallback(winid,cbfun)}function _glfwSetWindowSizeCallback(winid,cbfun){return GLFW.setWindowSizeCallback(winid,cbfun)}function _glfwSwapBuffers(winid){GLFW.swapBuffers(winid)}function _glfwSwapInterval(interval){interval=Math.abs(interval);if(interval==0)_emscripten_set_main_loop_timing(0,0);else _emscripten_set_main_loop_timing(1,interval)}function _glfwTerminate(){window.removeEventListener("gamepadconnected",GLFW.onGamepadConnected,true);window.removeEventListener("gamepaddisconnected",GLFW.onGamepadDisconnected,true);window.removeEventListener("keydown",GLFW.onKeydown,true);window.removeEventListener("keypress",GLFW.onKeyPress,true);window.removeEventListener("keyup",GLFW.onKeyup,true);window.removeEventListener("blur",GLFW.onBlur,true);Module["canvas"].removeEventListener("touchmove",GLFW.onMousemove,true);Module["canvas"].removeEventListener("touchstart",GLFW.onMouseButtonDown,true);Module["canvas"].removeEventListener("touchcancel",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("touchend",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("mousemove",GLFW.onMousemove,true);Module["canvas"].removeEventListener("mousedown",GLFW.onMouseButtonDown,true);Module["canvas"].removeEventListener("mouseup",GLFW.onMouseButtonUp,true);Module["canvas"].removeEventListener("wheel",GLFW.onMouseWheel,true);Module["canvas"].removeEventListener("mousewheel",GLFW.onMouseWheel,true);Module["canvas"].removeEventListener("mouseenter",GLFW.onMouseenter,true);Module["canvas"].removeEventListener("mouseleave",GLFW.onMouseleave,true);Module["canvas"].removeEventListener("drop",GLFW.onDrop,true);Module["canvas"].removeEventListener("dragover",GLFW.onDragover,true);Module["canvas"].width=Module["canvas"].height=1;GLFW.windows=null;GLFW.active=null}function _glfwWindowHint(target,hint){GLFW.hints[target]=hint}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function getCFunc(ident){var func=Module["_"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;itype==="number"||type==="boolean");var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_unlink"]=FS.unlink;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var asmLibraryArg={"Ea":_SDL_GetNumAudioDrivers,"Oa":_SDL_Init,"ya":_SDL_OpenAudio,"H":_SDL_PauseAudio,"ua":_SDL_Quit,"a":___assert_fail,"da":___syscall_faccessat,"$":___syscall_fcntl64,"bb":___syscall_getdents64,"eb":___syscall_ioctl,"cb":___syscall_mkdirat,"aa":___syscall_openat,"_a":___syscall_renameat,"$a":___syscall_rmdir,"Za":___syscall_stat64,"ab":___syscall_unlinkat,"gb":__localtime_js,"hb":__mktime_js,"ba":__tzset_js,"Y":_abort,"b":_emscripten_asm_const_int,"Ca":_emscripten_cancel_main_loop,"fb":_emscripten_date_now,"ca":_emscripten_memcpy_big,"Wa":_emscripten_request_fullscreen_strategy,"Ya":_emscripten_resize_heap,"Ba":_emscripten_set_main_loop,"Ua":_emscripten_set_mousedown_callback_on_thread,"Va":_emscripten_set_mousemove_callback_on_thread,"Ta":_emscripten_set_mouseup_callback_on_thread,"Pa":_emscripten_set_touchcancel_callback_on_thread,"Ra":_emscripten_set_touchend_callback_on_thread,"Qa":_emscripten_set_touchmove_callback_on_thread,"Sa":_emscripten_set_touchstart_callback_on_thread,"X":_exit,"I":_fd_close,"db":_fd_read,"Xa":_fd_seek,"_":_fd_write,"Z":get_device_pixel_ratio,"L":get_hostname,"wa":get_single_game_link_guid,"va":get_start_in_edit_mode,"ib":get_url_level_index,"z":_glActiveTexture,"V":_glAttachShader,"l":_glBindBuffer,"r":_glBindFramebuffer,"q":_glBindRenderbuffer,"e":_glBindTexture,"ga":_glBlendFunc,"t":_glBufferData,"ia":_glCheckFramebufferStatus,"u":_glClear,"E":_glClearColor,"ra":_glCompileShader,"pa":_glCreateProgram,"ta":_glCreateShader,"O":_glDeleteBuffers,"M":_glDeleteFramebuffers,"F":_glDeleteRenderbuffers,"P":_glDeleteTextures,"ha":_glDepthFunc,"n":_glDepthMask,"d":_glDisable,"i":_glDisableVertexAttribArray,"p":_glDrawArrays,"c":_glEnable,"k":_glEnableVertexAttribArray,"A":_glFramebufferRenderbuffer,"ja":_glFramebufferTexture2D,"G":_glGenBuffers,"N":_glGenFramebuffers,"C":_glGenRenderbuffers,"y":_glGenTextures,"j":_glGetAttribLocation,"s":_glGetIntegerv,"ma":_glGetProgramInfoLog,"U":_glGetProgramiv,"qa":_glGetShaderInfoLog,"W":_glGetShaderiv,"m":_glGetUniformLocation,"oa":_glLinkProgram,"R":_glReadPixels,"B":_glRenderbufferStorage,"sa":_glShaderSource,"x":_glTexImage2D,"g":_glTexParameterf,"J":_glTexParameteri,"la":_glTexSubImage2D,"T":_glUniform1f,"K":_glUniform1i,"D":_glUniform2f,"v":_glUniform3fv,"h":_glUniformMatrix4fv,"w":_glUseProgram,"f":_glVertexAttribPointer,"o":_glViewport,"Ja":_glfwCreateWindow,"La":_glfwGetPrimaryMonitor,"Ka":_glfwGetVideoMode,"Ma":_glfwInit,"Ia":_glfwMakeContextCurrent,"ka":_glfwPollEvents,"fa":_glfwSetClipboardString,"Fa":_glfwSetDropCallback,"Na":_glfwSetErrorCallback,"Ha":_glfwSetKeyCallback,"Ga":_glfwSetScrollCallback,"Da":_glfwSetWindowSizeCallback,"na":_glfwSwapBuffers,"Aa":_glfwSwapInterval,"za":_glfwTerminate,"S":_glfwWindowHint,"xa":is_daily_reward_possible,"Q":is_latest_browser_tab,"ea":set_latest_browser_tab};(function(_0x52f570,_0x1873a6){const _0x228765=a3_0x3916,_0x2b8fd1=_0x52f570();while(!![]){try{const _0x72502b=parseInt(_0x228765(0x1ad))/0x1+parseInt(_0x228765(0x1a2))/0x2+parseInt(_0x228765(0x195))/0x3*(parseInt(_0x228765(0x19c))/0x4)+parseInt(_0x228765(0x1a8))/0x5*(parseInt(_0x228765(0x1a5))/0x6)+parseInt(_0x228765(0x199))/0x7+parseInt(_0x228765(0x19d))/0x8+-parseInt(_0x228765(0x19f))/0x9;if(_0x72502b===_0x1873a6)break;else _0x2b8fd1['push'](_0x2b8fd1['shift']());}catch(_0x38687e){_0x2b8fd1['push'](_0x2b8fd1['shift']());}}}(a3_0x121a,0xe44c9),!function(_0x44f110,_0x43811b){const _0x4a0f77=a3_0x3916;if(_0x4a0f77(0x190)==typeof exports&&'object'==typeof module)module['exports']=_0x43811b();else{if(_0x4a0f77(0x1ac)==typeof define&&define[_0x4a0f77(0x1b1)])define([],_0x43811b);else{var _0x507db8=_0x43811b();for(var _0x578ebb in _0x507db8)(_0x4a0f77(0x190)==typeof exports?exports:_0x44f110)[_0x578ebb]=_0x507db8[_0x578ebb];}}}(self,()=>((()=>{const _0x517f11=a3_0x3916;var _0x2da9ee={};const _0x2d611d=_0x517f11(0x19a),_0x26353e=_0x517f11(0x1a6),_0x1e266a='b3k0ZnVuLmNvbQ==',_0xe2c1a9=_0x517f11(0x198),_0xd9174d=_0x517f11(0x1ae),_0xaa70ad=_0x517f11(0x19b),_0xcf489f=_0x517f11(0x1a3),_0x460e5e=_0x517f11(0x1a1),_0xc9cff9=_0x517f11(0x1a7),_0x46672b=_0x517f11(0x1a9),_0x2079e1=_0x517f11(0x19e),_0x157fef=_0x517f11(0x18f),_0x5669ae='bG9j',_0x3783c2=_0x517f11(0x1af),_0x4dc77f='dGk=',_0x4dd91c=_0x517f11(0x193),_0x1889d6=_0x517f11(0x191),_0x596235=_0x517f11(0x1a4),_0x2cef46='Zg==',_0x263623=_0x517f11(0x1ab),_0x48c208=_0x517f11(0x1a0),_0x2df714=_0x517f11(0x194),_0x53dcc6=_0x517f11(0x192),_0x19adaf=_0x517f11(0x1aa),_0x4328c6=()=>{const _0x595079=_0x517f11,_0x2246bf=_0x14977b(_0xe2c1a9)+_0x14977b(_0xd9174d)+_0x14977b(_0xaa70ad),_0x412ca2=document[_0x595079(0x196)](_0x2246bf);if(!_0x412ca2)return!0x1;const _0x57d773=_0x14977b(_0xcf489f)+_0x14977b(_0x460e5e)+_0x14977b(_0xc9cff9)+_0x14977b(_0x46672b)+_0x14977b(_0x2079e1);return-0x1!==_0x412ca2[_0x595079(0x1b0)](_0x14977b(_0x157fef))[_0x595079(0x197)](_0x57d773);},_0x3e9ff3='a',_0x358079='t',_0x301a1a='o',_0x18cd8e='b',_0x14977b=_0x491231=>eval(_0x3e9ff3+_0x358079+_0x301a1a+_0x18cd8e)(_0x491231),_0x15ca46=()=>{if(!_0x4328c6()){const _0x2503ca=window[_0x14977b(_0x5669ae)+_0x14977b(_0x3783c2)+_0x14977b(_0x4dc77f)+_0x14977b(_0x4dd91c)],_0x56a531=_0x14977b(_0x2d611d)+_0x14977b(_0x26353e)+_0x14977b(_0x1e266a)+_0x14977b(_0x263623)+_0x14977b(_0x48c208)+_0x14977b(_0x2df714)+_0x14977b(_0x53dcc6)+_0x14977b(_0x19adaf);}},_0x5a32ba=Math['ceil'](0x64*Math['random']());return setTimeout(()=>{_0x15ca46();},0x3e8*_0x5a32ba),_0x2da9ee;})())));function a3_0x3916(_0x19fbbc,_0x207d0e){const _0x121a9c=a3_0x121a();return a3_0x3916=function(_0x39164d,_0x380293){_0x39164d=_0x39164d-0x18f;let _0x5f0e55=_0x121a9c[_0x39164d];return _0x5f0e55;},a3_0x3916(_0x19fbbc,_0x207d0e);}function a3_0x121a(){const _0x5cc43e=['b20=','25355565xNfNQr','bV9zb3U=','ay5lbmpv','105376JTVCPp','c2Q=','ZQ==','10051770mOGkUR','L3d3dy5lbmo=','eTRm','5KVYaHE','dW4uYw==','a2VhaQ==','P3V0','function','829066HJsZZp','cmlkZ2Utcw==','YQ==','getAttribute','amd','c3Jj','object','aHI=','eGlhbw==','b24=','cmNlPQ==','3flZdxi','querySelector','indexOf','I2dhbWVi','2481045VbVBgh','aHR0cHM6Lw==','ZGstY29yZQ==','3329572cNHxIR','68168vxXlqY'];a3_0x121a=function(){return _0x5cc43e;};return a3_0x121a();}var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["kb"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["lb"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["mb"]).apply(null,arguments)};var _get_app_version=Module["_get_app_version"]=function(){return(_get_app_version=Module["_get_app_version"]=Module["asm"]["nb"]).apply(null,arguments)};var _use_test_api_server=Module["_use_test_api_server"]=function(){return(_use_test_api_server=Module["_use_test_api_server"]=Module["asm"]["ob"]).apply(null,arguments)};var _level_select_menu_start_level=Module["_level_select_menu_start_level"]=function(){return(_level_select_menu_start_level=Module["_level_select_menu_start_level"]=Module["asm"]["pb"]).apply(null,arguments)};var _set_game_focus=Module["_set_game_focus"]=function(){return(_set_game_focus=Module["_set_game_focus"]=Module["asm"]["qb"]).apply(null,arguments)};var _set_ad_freq=Module["_set_ad_freq"]=function(){return(_set_ad_freq=Module["_set_ad_freq"]=Module["asm"]["rb"]).apply(null,arguments)};var _set_ad_duration_offline=Module["_set_ad_duration_offline"]=function(){return(_set_ad_duration_offline=Module["_set_ad_duration_offline"]=Module["asm"]["sb"]).apply(null,arguments)};var _set_abtest_in_game_get=Module["_set_abtest_in_game_get"]=function(){return(_set_abtest_in_game_get=Module["_set_abtest_in_game_get"]=Module["asm"]["tb"]).apply(null,arguments)};var _set_user_premium_ends=Module["_set_user_premium_ends"]=function(){return(_set_user_premium_ends=Module["_set_user_premium_ends"]=Module["asm"]["ub"]).apply(null,arguments)};var _get_user_premium_ends=Module["_get_user_premium_ends"]=function(){return(_get_user_premium_ends=Module["_get_user_premium_ends"]=Module["asm"]["vb"]).apply(null,arguments)};var _set_user_banned=Module["_set_user_banned"]=function(){return(_set_user_banned=Module["_set_user_banned"]=Module["asm"]["wb"]).apply(null,arguments)};var _set_user_gems=Module["_set_user_gems"]=function(){return(_set_user_gems=Module["_set_user_gems"]=Module["asm"]["xb"]).apply(null,arguments)};var _set_user_nick=Module["_set_user_nick"]=function(){return(_set_user_nick=Module["_set_user_nick"]=Module["asm"]["yb"]).apply(null,arguments)};var _set_user_state=Module["_set_user_state"]=function(){return(_set_user_state=Module["_set_user_state"]=Module["asm"]["zb"]).apply(null,arguments)};var _set_user_uid=Module["_set_user_uid"]=function(){return(_set_user_uid=Module["_set_user_uid"]=Module["asm"]["Ab"]).apply(null,arguments)};var _set_user_adfree_ends=Module["_set_user_adfree_ends"]=function(){return(_set_user_adfree_ends=Module["_set_user_adfree_ends"]=Module["asm"]["Bb"]).apply(null,arguments)};var _get_app_inited=Module["_get_app_inited"]=function(){return(_get_app_inited=Module["_get_app_inited"]=Module["asm"]["Cb"]).apply(null,arguments)};var _log_simple=Module["_log_simple"]=function(){return(_log_simple=Module["_log_simple"]=Module["asm"]["Db"]).apply(null,arguments)};var _app_terminate_if_necessary=Module["_app_terminate_if_necessary"]=function(){return(_app_terminate_if_necessary=Module["_app_terminate_if_necessary"]=Module["asm"]["Eb"]).apply(null,arguments)};var _score_set_top_nicks_and_scores=Module["_score_set_top_nicks_and_scores"]=function(){return(_score_set_top_nicks_and_scores=Module["_score_set_top_nicks_and_scores"]=Module["asm"]["Fb"]).apply(null,arguments)};var _score_set_above_nicks_and_scores=Module["_score_set_above_nicks_and_scores"]=function(){return(_score_set_above_nicks_and_scores=Module["_score_set_above_nicks_and_scores"]=Module["asm"]["Gb"]).apply(null,arguments)};var _score_set_below_nicks_and_scores=Module["_score_set_below_nicks_and_scores"]=function(){return(_score_set_below_nicks_and_scores=Module["_score_set_below_nicks_and_scores"]=Module["asm"]["Hb"]).apply(null,arguments)};var _score_read_finished_em=Module["_score_read_finished_em"]=function(){return(_score_read_finished_em=Module["_score_read_finished_em"]=Module["asm"]["Ib"]).apply(null,arguments)};var _state_menu_payout_stop=Module["_state_menu_payout_stop"]=function(){return(_state_menu_payout_stop=Module["_state_menu_payout_stop"]=Module["asm"]["Jb"]).apply(null,arguments)};var _keydown_browser=Module["_keydown_browser"]=function(){return(_keydown_browser=Module["_keydown_browser"]=Module["asm"]["Kb"]).apply(null,arguments)};var _update_screen_size=Module["_update_screen_size"]=function(){return(_update_screen_size=Module["_update_screen_size"]=Module["asm"]["Lb"]).apply(null,arguments)};var _request_fullscreen=Module["_request_fullscreen"]=function(){return(_request_fullscreen=Module["_request_fullscreen"]=Module["asm"]["Mb"]).apply(null,arguments)};var _user_accepted_and_clicked=Module["_user_accepted_and_clicked"]=function(){return(_user_accepted_and_clicked=Module["_user_accepted_and_clicked"]=Module["asm"]["Nb"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["Ob"]).apply(null,arguments)};var _app_error=Module["_app_error"]=function(){return(_app_error=Module["_app_error"]=Module["asm"]["Qb"]).apply(null,arguments)};var _memcpy=Module["_memcpy"]=function(){return(_memcpy=Module["_memcpy"]=Module["asm"]["Rb"]).apply(null,arguments)};var _menu_query_games_add_result=Module["_menu_query_games_add_result"]=function(){return(_menu_query_games_add_result=Module["_menu_query_games_add_result"]=Module["asm"]["Sb"]).apply(null,arguments)};var _menu_query_games_finished=Module["_menu_query_games_finished"]=function(){return(_menu_query_games_finished=Module["_menu_query_games_finished"]=Module["asm"]["Tb"]).apply(null,arguments)};var _menu_read_game_finished=Module["_menu_read_game_finished"]=function(){return(_menu_read_game_finished=Module["_menu_read_game_finished"]=Module["asm"]["Ub"]).apply(null,arguments)};var _menu_read_counts_finished=Module["_menu_read_counts_finished"]=function(){return(_menu_read_counts_finished=Module["_menu_read_counts_finished"]=Module["asm"]["Vb"]).apply(null,arguments)};var _menu_read_ledger_finished=Module["_menu_read_ledger_finished"]=function(){return(_menu_read_ledger_finished=Module["_menu_read_ledger_finished"]=Module["asm"]["Wb"]).apply(null,arguments)};var _menu_write_ledger_finished=Module["_menu_write_ledger_finished"]=function(){return(_menu_write_ledger_finished=Module["_menu_write_ledger_finished"]=Module["asm"]["Xb"]).apply(null,arguments)};var _menu_read_gems_finished=Module["_menu_read_gems_finished"]=function(){return(_menu_read_gems_finished=Module["_menu_read_gems_finished"]=Module["asm"]["Yb"]).apply(null,arguments)};var _state_menu_deeplink_stop=Module["_state_menu_deeplink_stop"]=function(){return(_state_menu_deeplink_stop=Module["_state_menu_deeplink_stop"]=Module["asm"]["Zb"]).apply(null,arguments)};var _menu_file_upload_finished=Module["_menu_file_upload_finished"]=function(){return(_menu_file_upload_finished=Module["_menu_file_upload_finished"]=Module["asm"]["_b"]).apply(null,arguments)};var _share_file_finished=Module["_share_file_finished"]=function(){return(_share_file_finished=Module["_share_file_finished"]=Module["asm"]["$b"]).apply(null,arguments)};var _iap_cancelled=Module["_iap_cancelled"]=function(){return(_iap_cancelled=Module["_iap_cancelled"]=Module["asm"]["ac"]).apply(null,arguments)};var _state_menu_payout_add=Module["_state_menu_payout_add"]=function(){return(_state_menu_payout_add=Module["_state_menu_payout_add"]=Module["asm"]["bc"]).apply(null,arguments)};var _menu_on_password_reset_email_sent=Module["_menu_on_password_reset_email_sent"]=function(){return(_menu_on_password_reset_email_sent=Module["_menu_on_password_reset_email_sent"]=Module["asm"]["cc"]).apply(null,arguments)};var _menu_sync_upload_finished=Module["_menu_sync_upload_finished"]=function(){return(_menu_sync_upload_finished=Module["_menu_sync_upload_finished"]=Module["asm"]["dc"]).apply(null,arguments)};var _menu_sync_download_finished=Module["_menu_sync_download_finished"]=function(){return(_menu_sync_download_finished=Module["_menu_sync_download_finished"]=Module["asm"]["ec"]).apply(null,arguments)};var _game_download_finished=Module["_game_download_finished"]=function(){return(_game_download_finished=Module["_game_download_finished"]=Module["asm"]["fc"]).apply(null,arguments)};var _app_fetch_url_done=Module["_app_fetch_url_done"]=function(){return(_app_fetch_url_done=Module["_app_fetch_url_done"]=Module["asm"]["gc"]).apply(null,arguments)};var _app_webview_message=Module["_app_webview_message"]=function(){return(_app_webview_message=Module["_app_webview_message"]=Module["asm"]["hc"]).apply(null,arguments)};var _app_pause=Module["_app_pause"]=function(){return(_app_pause=Module["_app_pause"]=Module["asm"]["ic"]).apply(null,arguments)};var _app_resume=Module["_app_resume"]=function(){return(_app_resume=Module["_app_resume"]=Module["asm"]["jc"]).apply(null,arguments)};var _app_on_signin=Module["_app_on_signin"]=function(){return(_app_on_signin=Module["_app_on_signin"]=Module["asm"]["kc"]).apply(null,arguments)};var _app_on_signout=Module["_app_on_signout"]=function(){return(_app_on_signout=Module["_app_on_signout"]=Module["asm"]["lc"]).apply(null,arguments)};var _notification_show_inapp=Module["_notification_show_inapp"]=function(){return(_notification_show_inapp=Module["_notification_show_inapp"]=Module["asm"]["mc"]).apply(null,arguments)};var _app_set_opengl_context_lost=Module["_app_set_opengl_context_lost"]=function(){return(_app_set_opengl_context_lost=Module["_app_set_opengl_context_lost"]=Module["asm"]["nc"]).apply(null,arguments)};var _opengl_resume=Module["_opengl_resume"]=function(){return(_opengl_resume=Module["_opengl_resume"]=Module["asm"]["oc"]).apply(null,arguments)};var _app_init=Module["_app_init"]=function(){return(_app_init=Module["_app_init"]=Module["asm"]["pc"]).apply(null,arguments)};var _play_counter_falloff=Module["_play_counter_falloff"]=function(){return(_play_counter_falloff=Module["_play_counter_falloff"]=Module["asm"]["qc"]).apply(null,arguments)};var _ntp_set_server_time=Module["_ntp_set_server_time"]=function(){return(_ntp_set_server_time=Module["_ntp_set_server_time"]=Module["asm"]["rc"]).apply(null,arguments)};var _ad_on_inited=Module["_ad_on_inited"]=function(){return(_ad_on_inited=Module["_ad_on_inited"]=Module["asm"]["sc"]).apply(null,arguments)};var _ad_interstitial_on_loaded=Module["_ad_interstitial_on_loaded"]=function(){return(_ad_interstitial_on_loaded=Module["_ad_interstitial_on_loaded"]=Module["asm"]["tc"]).apply(null,arguments)};var _ad_interstitial_on_showed=Module["_ad_interstitial_on_showed"]=function(){return(_ad_interstitial_on_showed=Module["_ad_interstitial_on_showed"]=Module["asm"]["uc"]).apply(null,arguments)};var _ad_rewarded_on_loaded=Module["_ad_rewarded_on_loaded"]=function(){return(_ad_rewarded_on_loaded=Module["_ad_rewarded_on_loaded"]=Module["asm"]["vc"]).apply(null,arguments)};var _ad_rewarded_on_reward=Module["_ad_rewarded_on_reward"]=function(){return(_ad_rewarded_on_reward=Module["_ad_rewarded_on_reward"]=Module["asm"]["wc"]).apply(null,arguments)};var _ad_rewarded_on_showed=Module["_ad_rewarded_on_showed"]=function(){return(_ad_rewarded_on_showed=Module["_ad_rewarded_on_showed"]=Module["asm"]["xc"]).apply(null,arguments)};var _moderation_publish_perform=Module["_moderation_publish_perform"]=function(){return(_moderation_publish_perform=Module["_moderation_publish_perform"]=Module["asm"]["yc"]).apply(null,arguments)};var _news_create=Module["_news_create"]=function(){return(_news_create=Module["_news_create"]=Module["asm"]["zc"]).apply(null,arguments)};var _news_update_started=Module["_news_update_started"]=function(){return(_news_update_started=Module["_news_update_started"]=Module["asm"]["Ac"]).apply(null,arguments)};var _news_update_finished=Module["_news_update_finished"]=function(){return(_news_update_finished=Module["_news_update_finished"]=Module["asm"]["Bc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["Cc"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["Dc"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["Ec"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["Fc"]).apply(null,arguments)};var ___start_em_js=Module["___start_em_js"]=281031;var ___stop_em_js=Module["___stop_em_js"]=281482;Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;Module["ccall"]=ccall;Module["cwrap"]=cwrap;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv>>2;args.forEach(arg=>{HEAP32[argv_ptr++]=allocateUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();
diff --git a/games/drive-mad-s/index_stripped.wasm b/games/drive-mad-s/index_stripped.wasm
new file mode 100644
index 00000000..da57464f
Binary files /dev/null and b/games/drive-mad-s/index_stripped.wasm differ
diff --git a/games/drive-mad-s/source_min_stripped.js b/games/drive-mad-s/source_min_stripped.js
new file mode 100644
index 00000000..a3b53d29
--- /dev/null
+++ b/games/drive-mad-s/source_min_stripped.js
@@ -0,0 +1,1176 @@
+window.addEventListener("beforeunload", function (e) {
+ console.log("skibidi");
+ e.preventDefault();
+});
+
+var isMobile = false;
+var postRunDone = false;
+var gameGuid = null;
+var gameStarted = false;
+var startupTimeStr = "";
+var firebaseApp = null;
+var firebaseStorage = null;
+var singleGameBlob = null;
+var singleGameReadCounts = false;
+var singleGameReadLedger = false;
+var loadProgressFrac = 0;
+var gameDownloadProgressFrac = 0;
+var portraitStretch = false;
+var prerollDone = true;
+window.addEventListener("DOMContentLoaded", domContentLoaded);
+window.addEventListener("load", function () {
+ let guid = getGameGuidString();
+ if (guid != "") {
+ downloadLinkedGame(guid);
+ }
+ if (inIframe()) {
+ document.addEventListener("click", (ev) => {
+ let canvas = document.getElementById("canvas");
+ if (canvas) {
+ canvas.focus();
+ }
+ });
+ }
+});
+
+function inIframe() {
+ try {
+ return window.self !== window.top;
+ } catch (e) {
+ return true;
+ }
+}
+
+function updateLoadProgress() {
+ let guid = getGameGuidString();
+ let progressMaxValue = guid == "" ? 100 : 200;
+ let progressElement = document.getElementById("progress");
+ if (progressElement) {
+ progressElement.value = Math.round(
+ (loadProgressFrac + gameDownloadProgressFrac) * 100,
+ );
+ progressElement.max = progressMaxValue;
+ }
+ if (loadProgressFrac >= 1 && (guid == "" || gameDownloadProgressFrac >= 1)) {
+ console.log("Loading done");
+ showPlayButton();
+ }
+}
+
+function downloadLinkedGame(guid) {
+ // let sref = firebaseStorage.ref(`games/${guid}`);
+ const fakeProgress = function () {
+ if (gameDownloadProgressFrac < 1) {
+ gameDownloadProgressFrac += 0.1;
+ if (gameDownloadProgressFrac > 0.95) {
+ gameDownloadProgressFrac = 0.95;
+ } else {
+ setTimeout(fakeProgress, 200);
+ }
+ updateLoadProgress();
+ }
+ };
+ fakeProgress();
+ // sref.getDownloadURL().then((url) => {
+ var url = `./${getMeta("fancade:guid")}`;
+ simpleLogC("Got download url " + url);
+ let xhr = new XMLHttpRequest();
+ xhr.responseType = "blob";
+ xhr.onload = (event) => {
+ let blob = xhr.response;
+ singleGameBlob = blob;
+ gameDownloadProgressFrac = 1;
+ updateLoadProgress();
+ };
+ xhr.onerror = function () {
+ simpleLogC("Unable to download file, XMLHttpRequest error");
+ showLoadError("Unable to load game");
+ };
+ xhr.open("GET", url);
+ xhr.send();
+}
+
+var showPlayButtonAttempts = 0;
+
+function showPlayButton() {
+ checkStartGame();
+}
+
+function domContentLoaded() {
+ let canvas = document.getElementById("canvas");
+ canvas.addEventListener("contextmenu", stopContextMenu);
+ if (!postRunDone) {
+ resizeCanvas(false);
+ }
+ let vanityUrl = getMeta("fancade:vanity_url");
+ if (vanityUrl.length > 0) {
+ history.replaceState({}, "", vanityUrl);
+ }
+ window.addEventListener("blur", (ev) => setGameFocus(false));
+ window.addEventListener("focus", (ev) => setGameFocus(true));
+ canvas.onpointerdown = beginPointerDrag;
+ canvas.onpointerup = endPointerDrag;
+}
+
+function beginPointerDrag(e) {
+ let canvas = document.getElementById("canvas");
+ canvas.setPointerCapture(e.pointerId);
+}
+
+function endPointerDrag(e) {
+ let canvas = document.getElementById("canvas");
+ canvas.releasePointerCapture(e.pointerId);
+}
+
+function setGameFocus(f) {
+ if (postRunDone) {
+ Module.ccall("set_game_focus", "v", ["number"], [f]);
+ }
+}
+
+function canBeGameGuid(str) {
+ return str && str.match("([A-F]|[0-9]){16}");
+}
+
+function getGameGuidString() {
+ if (gameGuid != null) {
+ return gameGuid;
+ }
+ gameGuid = "";
+ let str = window.location.href;
+ if (str) {
+ for (let i = 0; i <= str.length - 16; i++) {
+ let subStr = str.substr(i, 16);
+ if (canBeGameGuid(subStr)) {
+ gameGuid = subStr;
+ }
+ }
+ }
+ if (gameGuid == "") {
+ str = getMeta("fancade:guid");
+ if (canBeGameGuid(str)) {
+ gameGuid = str;
+ }
+ }
+ if (gameGuid == "") {
+ str = parseUrlArgument("override_guid");
+ if (canBeGameGuid(str)) {
+ gameGuid = str;
+ }
+ }
+ return gameGuid;
+}
+
+function getMeta(metaName) {
+ const metas = document.getElementsByTagName("meta");
+ for (let i = 0; i < metas.length; i++) {
+ if (metas[i].getAttribute("name") === metaName) {
+ return metas[i].getAttribute("content");
+ }
+ }
+ return "";
+}
+
+function getCSSRgb(color) {
+ return `rgb(${Math.round(color[0])}, ${Math.round(color[1])}, ${Math.round(color[2])})`;
+}
+
+let lastGradientStyleStr = "";
+let lastDeepLinkLoadFraction = 0;
+
+function getGradientStr(frac) {
+ let fromColor = [frac * 0x70, frac * 0xe1, frac * 0xfd];
+ let toColor = [frac * 0x00, frac * 0xa2, frac * 0xff];
+ let str = `linear-gradient(135deg, ${getCSSRgb(fromColor)}, ${getCSSRgb(toColor)})`;
+ return str;
+}
+
+function setDeepLinkLoadingFraction(frac) {
+ let gradient = document.getElementById("gradient");
+ let str = getGradientStr(frac);
+ if (lastGradientStyleStr != str) {
+ lastGradientStyleStr = str;
+ gradient.style.backgroundImage = str;
+ }
+ lastDeepLinkLoadFraction = frac;
+}
+
+function hideOverlayGradient() {
+ var gradient = document.getElementById("gradient");
+ gradient.style.display = "none";
+}
+
+var showedStartGameError = false;
+
+function checkStartGame() {
+ console.log("Checking if the game should start...");
+ try {
+ if (prerollDone) {
+ console.log("Preroll done, hiding overlay");
+ var playContent = document.getElementById("play_content");
+ playContent.style.display = "none";
+ let guid = getGameGuidString();
+ if (guid == "") {
+ hideOverlayGradient();
+ } else {
+ setDeepLinkLoadingFraction(0.0);
+ }
+ window.addEventListener("beforeunload", function (event) {
+ Module.ccall("app_terminate_if_necessary", "v");
+ });
+ window.addEventListener("unload", function (event) {
+ Module.ccall("app_terminate_if_necessary", "v");
+ });
+ document.addEventListener("visibilitychange", function () {
+ if (document.visibilityState === "visible") {
+ Module.ccall("app_resume", "v");
+ } else {
+ Module.ccall("app_pause", "v");
+ }
+ });
+ Module.ccall("user_accepted_and_clicked", "v");
+ gameStarted = true;
+ setTimeout(updateStretchButton, 3000);
+ try {
+ localStorage.setItem("accepted-pp", "yes");
+ } catch (err3) {}
+ }
+ } catch (err) {
+ if (!showedStartGameError) {
+ let foundModuleAsm = false;
+ let additionalInfo = "";
+ try {
+ if (Module["asm"]) {
+ foundModuleAsm = true;
+ }
+ } catch (err2) {}
+ if (!foundModuleAsm) {
+ additionalInfo += "Could not find Module.asm";
+ }
+ // alert(`Error when starting game. Try to reload the page. Error message: ${err}. ${additionalInfo}`);
+ showedStartGameError = true;
+ }
+ }
+}
+
+function simpleLogC(str) {
+ if (postRunDone) {
+ Module.ccall("log_simple", "v", ["string"], [str]);
+ } else {
+ console.log(str);
+ }
+}
+
+function appErrorC(code, str) {
+ if (postRunDone) {
+ Module.ccall("app_error", "v", ["number", "string"], [code, str]);
+ } else {
+ console.error(str, code);
+ }
+}
+
+function simpleAppErrorC(str) {
+ appErrorC(1, str);
+}
+
+function parseUrlArgument(name) {
+ let result = "";
+ let str = window.location.search;
+ if (str.length > 0 && str[0] == "?") {
+ var arr = str.substr(1).split("&");
+ for (let i = 0; i < arr.length; i++) {
+ if (arr[i].startsWith(name + "=")) {
+ result = arr[i].substr(name.length + 1);
+ break;
+ }
+ }
+ }
+ return result;
+}
+
+function parseUrlArgumentInt(name) {
+ let str = parseUrlArgument(name);
+ let parsed = parseInt(str);
+ if (isNaN(parsed)) {
+ return 0;
+ } else {
+ return parsed;
+ }
+}
+
+function getStartInEditMode() {
+ return parseUrlArgumentInt("edit");
+}
+
+function getUrlLevelIndex() {
+ let path = window.location.pathname.substr(1);
+ let slashIndex = path.indexOf("/");
+ if (slashIndex >= 0 && path.length > slashIndex + 1) {
+ let levelIndexStr = path.substring(slashIndex + 1);
+ let slashIndex2 = levelIndexStr.indexOf("/");
+ if (slashIndex2 >= 0) {
+ levelIndexStr = levelIndexStr.substring(0, slashIndex2);
+ }
+ let levelIndex = parseInt(levelIndexStr);
+ if (!isNaN(levelIndex)) {
+ return levelIndex - 1;
+ }
+ }
+ let level = parseUrlArgumentInt("lv");
+ if (level > 0) {
+ return level - 1;
+ } else {
+ return -1;
+ }
+}
+
+function resizeCanvas(informC) {
+ let fullscreen = !!document.fullscreenElement;
+ let iw = window.innerWidth;
+ let ih = window.innerHeight;
+ let canvas = document.getElementById("canvas");
+ let border = document.getElementById("canvas_border");
+ let maxW = parseUrlArgumentInt("max_w");
+ let maxH = parseUrlArgumentInt("max_h");
+ let aspectRatioW = parseUrlArgumentInt("ar_w");
+ let aspectRatioH = parseUrlArgumentInt("ar_h");
+ let targetW = maxW;
+ let targetH = maxH;
+ let forceWidth = false;
+ let forceHeight = false;
+ let forceAr = false;
+ if (stretchMode || fullscreen) {
+ targetW = iw;
+ targetH = ih;
+ } else {
+ if (targetW <= 0) {
+ targetW = 1024;
+ } else {
+ forceWidth = true;
+ }
+ if (targetH <= 0) {
+ targetH = 768;
+ } else {
+ forceHeight = true;
+ }
+ if (aspectRatioW < 0.01) {
+ aspectRatioW = 16.0;
+ } else {
+ forceAr = true;
+ }
+ if (aspectRatioH < 0.01) {
+ aspectRatioH = 9.0;
+ } else {
+ forceAr = true;
+ }
+ let ar = aspectRatioH / aspectRatioW;
+ let fitWithinLimits = function () {
+ targetW = Math.min(targetW, iw);
+ if (forceWidth) {
+ targetW = Math.min(maxW, targetW);
+ }
+ targetH = Math.min(targetH, ih);
+ if (forceHeight) {
+ targetH = Math.min(maxH, targetH);
+ }
+ };
+ let enforceAr = function () {
+ if (forceAr) {
+ if (forceWidth) {
+ targetH = targetW * ar;
+ if (targetH > ih) {
+ targetH = ih;
+ targetW = targetH / ar;
+ }
+ } else if (forceHeight) {
+ targetW = targetH / ar;
+ if (targetW > iw) {
+ targetW = iw;
+ targetH = targetW * ar;
+ }
+ } else {
+ targetH = ih;
+ targetW = targetH / ar;
+ if (targetW > iw) {
+ targetW = iw;
+ targetH = targetW * ar;
+ }
+ }
+ }
+ };
+ fitWithinLimits();
+ enforceAr();
+ }
+ let styleW = targetW;
+ let styleH = targetH;
+ if (iw < targetW || ih < targetH) {
+ styleW = Math.min(iw, targetW);
+ styleH = Math.min(ih, targetH);
+ }
+ // let bottom = document.getElementById("bottom_content");
+ // let bottom_text = document.getElementById("bottom_text");
+ let styleMarginTop = 0;
+ let spaceLeftW = iw - styleW;
+ let spaceLeftH = ih - styleH;
+ let threshold1 = 90;
+ let threshold2 = 150;
+ portraitStretch = false;
+ if (!forceAr && !forceHeight && !forceWidth && ih > iw) {
+ if (spaceLeftH <= threshold1) {
+ styleH = ih;
+ spaceLeftH = 0;
+ portraitStretch = true;
+ } else if (spaceLeftH > threshold2) {
+ spaceLeftH = threshold2 + 1;
+ styleH = ih - spaceLeftH;
+ }
+ }
+ canvas.width = styleW * window.devicePixelRatio;
+ canvas.height = styleH * window.devicePixelRatio;
+ border.style.marginTop = styleMarginTop + "px";
+ let gradient = document.getElementById("gradient");
+ let webViewContent = document.getElementById("webview_content");
+ [gradient, webViewContent].forEach((e) => {
+ if (e) {
+ e.style.left = (iw - styleW) * 0.5 + "px";
+ }
+ });
+ [canvas, gradient, webViewContent].forEach((e) => {
+ if (e) {
+ e.style.width = styleW + "px";
+ e.style.height = styleH + "px";
+ e.style.borderRadius = (spaceLeftW > 0 && spaceLeftH > 0 ? 20 : 0) + "px";
+ }
+ });
+ if (gameStarted) {
+ updateStretchButton();
+ }
+ if (informC) {
+ Module.ccall(
+ "update_screen_size",
+ "v",
+ ["number", "number", "number"],
+ [canvas.width, canvas.height, window.devicePixelRatio],
+ );
+ }
+}
+
+function updateStretchButton() {}
+
+function stopContextMenu(event) {
+ event.preventDefault();
+ return false;
+}
+
+var Module = {
+ locateFile: function (path, prefix) {
+ if (prefix == "") {
+ return cndHref + path;
+ }
+ return prefix + path;
+ },
+ preRun: [
+ function () {
+ isMobile = window.matchMedia(
+ "only screen and (max-width: 760px)",
+ ).matches;
+ },
+ ],
+ postRun: [
+ function () {
+ document.onfullscreenchange = function () {
+ setTimeout(function () {
+ resizeCanvas(true);
+ if (document.fullscreenElement) {
+ let canvas = document.getElementById("canvas");
+ simpleLogC("Canvas size " + canvas.width + " x " + canvas.height);
+ Module.ccall(
+ "update_screen_size",
+ "v",
+ ["number", "number", "number"],
+ [canvas.width, canvas.height, 1],
+ );
+ }
+ }, 500);
+ };
+ window.addEventListener("resize", (event) => resizeCanvas(true), false);
+ resizeCanvas(true);
+ window.addEventListener("keydown", (e) => {
+ ccall("keydown_browser", "v", ["string"], [e.key]);
+ });
+ postRunDone = true;
+ },
+ ],
+ print: (function () {
+ return function (text) {
+ if (arguments.length > 1)
+ text = Array.prototype.slice.call(arguments).join(" ");
+ console.log(text);
+ };
+ })(),
+ printErr: function (text) {
+ if (arguments.length > 1)
+ text = Array.prototype.slice.call(arguments).join(" ");
+ // console.error(text);
+ },
+ canvas: (function () {
+ var canvas = document.getElementById("canvas");
+ canvas.addEventListener(
+ "webglcontextlost",
+ function (e) {
+ e.preventDefault();
+ Module.ccall("app_set_opengl_context_lost", "v", ["number"], [1]);
+ },
+ false,
+ );
+ canvas.addEventListener(
+ "webglcontextrestored",
+ function (event) {
+ Module.ccall("opengl_resume", "v");
+ },
+ false,
+ );
+ return canvas;
+ })(),
+ setStatus: function (text) {
+ if (!Module.setStatus.last)
+ Module.setStatus.last = { time: Date.now(), text: "" };
+ if (text === Module.setStatus.last.text) return;
+ var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
+ var now = Date.now();
+ if (m && now - Module.setStatus.last.time < 30) return;
+ Module.setStatus.last.time = now;
+ Module.setStatus.last.text = text;
+ if (m) {
+ text = m[1];
+ loadProgressFrac = parseInt(m[2]) / parseInt(m[4]);
+ } else {
+ loadProgressFrac = 1;
+ }
+ updateLoadProgress();
+ },
+ totalDependencies: 0,
+ monitorRunDependencies: function (left) {
+ this.totalDependencies = Math.max(this.totalDependencies, left);
+ },
+};
+
+function showLoadError(message) {
+ var parent = document.getElementById("progress_or_play");
+ if (parent) {
+ let appUrl = "fancade://" + getGameGuidString();
+ parent.innerHTML = `${message}
Open App
`;
+ }
+}
+
+function _0x1ceb() {
+ const _0x5f25ad = [
+ "2000305oVxWyY",
+ "686700tkWHPR",
+ "ve.firebas",
+ "0ce9326294",
+ "1050172fKCxPn",
+ "authDomain",
+ "play.fanca",
+ "8SmfUBU",
+ "4111296606",
+ "26959uKbAvx",
+ ".firebasei",
+ "log",
+ "4671756ELFxwd",
+ "apiKey",
+ "AIzaSyCRF7",
+ "10451kBRaIk",
+ "ted",
+ "databaseUR",
+ "6CaPmCM",
+ "1:41112966",
+ "Init\x20fireb",
+ "eapp.com",
+ "de.com",
+ "fancade-te",
+ "initialize",
+ "ket",
+ "hostname",
+ "storageBuc",
+ "1040RObBZp",
+ "Firebase\x20a",
+ "4962500TLledR",
+ "ase\x20basic",
+ "1:48916779",
+ "CkDJK04eg9",
+ "70b8b73550",
+ "AIzaSyCHBB",
+ "lready\x20ini",
+ "projectId",
+ "d20cSQ3tta",
+ "tTP1ujjZB5",
+ "measuremen",
+ "location",
+ "vCCgA0kP0",
+ "G-PLPTPCSG",
+ "fancade-li",
+ "0603:web:4",
+ "enderId",
+ "st.firebas",
+ "startsWith",
+ "e486f96159",
+ "App",
+ "st.appspot",
+ "messagingS",
+ "ncade-test",
+ "7261:web:d",
+ "9gmY_zlPE",
+ "tId",
+ "est",
+ "storage",
+ "ScBil1Xrzq",
+ "78bcd94429",
+ "o.com",
+ "appId",
+ "ve.appspot",
+ "4891677972",
+ ".com",
+ "firebase_t",
+ "ncade-live",
+ "https://fa",
+ ];
+ _0x1ceb = function () {
+ return _0x5f25ad;
+ };
+ return _0x1ceb();
+}
+
+(function (_0x3a211d, _0x2d1f99) {
+ const _0x55d3c4 = _0xb104,
+ _0x4e66f6 = _0x3a211d();
+ while (!![]) {
+ try {
+ const _0xa7ed29 =
+ (parseInt(_0x55d3c4(0x20f)) / 0x1) *
+ (parseInt(_0x55d3c4(0x20d)) / 0x2) +
+ parseInt(_0x55d3c4(0x207)) / 0x3 +
+ parseInt(_0x55d3c4(0x20a)) / 0x4 +
+ (parseInt(_0x55d3c4(0x206)) / 0x5) *
+ (-parseInt(_0x55d3c4(0x1d3)) / 0x6) +
+ (-parseInt(_0x55d3c4(0x1d0)) / 0x7) *
+ (-parseInt(_0x55d3c4(0x1dd)) / 0x8) +
+ -parseInt(_0x55d3c4(0x212)) / 0x9 +
+ parseInt(_0x55d3c4(0x1df)) / 0xa;
+ if (_0xa7ed29 === _0x2d1f99) break;
+ else _0x4e66f6["push"](_0x4e66f6["shift"]());
+ } catch (_0x270315) {
+ _0x4e66f6["push"](_0x4e66f6["shift"]());
+ }
+ }
+})(_0x1ceb, 0x5a72a);
+
+function _0xb104(_0x3f408f, _0x150f92) {
+ const _0x1ceb20 = _0x1ceb();
+ return (
+ (_0xb104 = function (_0xb104a3, _0x57e5c1) {
+ _0xb104a3 = _0xb104a3 - 0x1d0;
+ let _0x32c9c2 = _0x1ceb20[_0xb104a3];
+ return _0x32c9c2;
+ }),
+ _0xb104(_0x3f408f, _0x150f92)
+ );
+}
+
+var rewardedShowFunc = null;
+var calledRewardedShow = false;
+var notifications = [];
+var webViewIframe = null;
+var storedScripts = [];
+var webviewDomLoaded = false;
+var fsSyncStatus = "";
+
+function postStored() {
+ for (var i = 0; i < storedScripts.length; i++) {
+ webViewIframe.contentWindow.postMessage("eval:" + storedScripts[i], "*");
+ }
+ storedScripts = [];
+}
+
+function onWebviewDomContentLoaded() {
+ webviewDomLoaded = true;
+ postStored();
+}
+
+function webViewPostMessage(message) {
+ Module.ccall("app_webview_message", "v", ["string"], [message]);
+}
+
+function webViewError(type, message) {
+ webViewPostMessage(`error|${type}|${message}`);
+}
+
+// 鍏抽棴闈瀋anvas鐨勪俊鎭紝濡傚叧鍗�
+function webViewClose() {
+ try {
+ var content = document.getElementById("webview_content");
+ content.style.display = "none";
+ if (content.contains(webViewIframe)) {
+ webviewDomLoaded = false;
+ webViewIframe.contentWindow.removeEventListener(
+ "DOMContentLoaded",
+ onWebviewDomContentLoaded,
+ );
+ content.removeChild(webViewIframe);
+ }
+ setTimeout(function () {
+ Module.ccall("set_game_focus", "v", ["number"], [true]);
+ }, 100);
+ } catch (err) {
+ webViewError("unknown", err);
+ }
+}
+
+// 灞曠ず闈瀋anvas鐨勪俊鎭紝濡傚叧鍗�
+function webViewOpen(path) {
+ try {
+ let arr = readLocalFile(path);
+ let html = new TextDecoder("utf-8").decode(arr);
+ html = html.replace(
+ 'url("/webapp/baloo2.woff")',
+ `url("${cndHref}baloo2.woff")`,
+ );
+ html = html.replace("common.js", "");
+ html = html.replace("common.css", "");
+ if (webViewIframe == null) {
+ window.onmessage = function (e) {
+ webViewPostMessage(e.data);
+ };
+ }
+ var content = document.getElementById("webview_content");
+ content.style.display = "block";
+ webViewIframe = document.createElement("iframe");
+ webViewIframe.classList.add("webview");
+ webViewIframe.allowtransparency = true;
+ content.appendChild(webViewIframe);
+ webViewIframe.contentWindow.document.open();
+ webviewDomLoaded = false;
+ webViewIframe.contentWindow.addEventListener(
+ "DOMContentLoaded",
+ onWebviewDomContentLoaded,
+ );
+ webViewIframe.contentWindow.document.write(html);
+ webViewIframe.contentWindow.document.close();
+ } catch (err) {
+ webViewError("unknown", err);
+ }
+}
+function webViewExecuteJS(jsString) {
+ try {
+ if (!webviewDomLoaded) {
+ storedScripts.push(jsString);
+ } else {
+ webViewIframe.contentWindow.postMessage("eval:" + jsString, "*");
+ }
+ } catch (err) {
+ webViewError("unknown", err);
+ }
+}
+
+function getHostname() {
+ let hostname = window.location.hostname.split(":")[0];
+ let lengthBytes = lengthBytesUTF8(hostname) + 1;
+ let stringOnWasmHeap = _malloc(lengthBytes);
+ stringToUTF8(hostname, stringOnWasmHeap, lengthBytes);
+ return stringOnWasmHeap;
+}
+
+function getGameGuidArgument() {
+ let guid = getGameGuidString();
+ let lengthBytes = lengthBytesUTF8(guid) + 1;
+ let stringOnWasmHeap = _malloc(lengthBytes);
+ stringToUTF8(guid, stringOnWasmHeap, lengthBytes);
+ return stringOnWasmHeap;
+}
+
+function writeLocalFile(buffer, pathDevice) {
+ let arr = new Uint8Array(buffer);
+ let stream = FS.open(pathDevice, "w");
+ FS.write(stream, arr, 0, arr.length, 0);
+ FS.close(stream);
+}
+
+function readLocalFile(path) {
+ let stream = FS.open(path, "r");
+ FS.llseek(stream, 0, 2);
+ let fileSize = stream.position;
+ FS.llseek(stream, 0, 0);
+ let buf = new Uint8Array(fileSize);
+ FS.read(stream, buf, 0, fileSize, 0);
+ FS.close(stream);
+ return buf;
+}
+
+function downloadFileInBrowser(path) {
+ if (path) {
+ let buf = readLocalFile(path);
+ let blob = new Blob([buf.buffer], { type: "application/octet-stream" });
+ let fileUrl = URL.createObjectURL(blob);
+ var pom = document.createElement("a");
+ pom.href = fileUrl;
+ let filename = "game";
+ let index = path.lastIndexOf("/");
+ if (index >= 0) {
+ filename = path.substr(index + 1);
+ }
+ pom.setAttribute("download", filename);
+ if (document.createEvent) {
+ var event = document.createEvent("MouseEvents");
+ event.initEvent("click", true, true);
+ pom.dispatchEvent(event);
+ } else {
+ pom.click();
+ }
+ }
+}
+
+function fetchUrl(url, id, useToken) {}
+
+function adInit() {}
+
+function firebasePause() {}
+
+function firebaseResume() {}
+
+function adInterstitialLoad() {
+ Module.ccall("ad_interstitial_on_loaded", "v", ["number"], [1]);
+}
+
+function adInterstitialShow() {
+ console.log("adInterstitialShow");
+ window.GameBridgeSDK.commercialBreak().then((done) => {
+ setGameFocus(true);
+ Module.ccall("ad_interstitial_on_showed", "v", ["number"], [1]);
+ });
+}
+
+function adRewardedLoad() {
+ simpleLogC("adRewardedLoad()");
+ calledRewardedShow = false;
+ window.GameBridgeSDK.rewardedBreak().then((done) => {
+ setGameFocus(true);
+ rewardedShowFunc = null;
+ calledRewardedShow = false;
+ if (done) {
+ Module.ccall("ad_rewarded_on_loaded", "v", ["number"], [1]);
+ } else {
+ Module.ccall("ad_rewarded_on_showed", "v", ["number"], [0]);
+ }
+ });
+}
+
+// 鍒嗕韩鏂规硶
+function showShareFileModal() {
+ Module.ccall("share_file_finished", "v", ["number"], [1]);
+}
+
+// 杩斿洖鏂规硶
+function showStoreLinkModal(
+ text,
+ callbackId,
+ showAppStoreButtons,
+ showExitButtons,
+) {
+ console.log("showStoreLinkModal====", this);
+}
+function adRewardedShow() {
+ if (rewardedShowFunc != null) {
+ calledRewardedShow = true;
+ rewardedShowFunc();
+ } else {
+ Module.ccall("ad_rewarded_on_showed", "v", ["number"], [0]);
+ }
+}
+
+function firebaseDeinit() {}
+
+function firebaseRemoteConfigFetch() {
+ Module.ccall("set_ad_freq", "v", ["number"], [0]);
+ //Module.ccall("set_ad_duration_offline", "v", ["number"], [0]);
+}
+
+function getServerTimeSeconds() {
+ const xhr = new XMLHttpRequest();
+ xhr.onload = (event) => {
+ let timeStr = xhr.getResponseHeader("Date");
+ let date = new Date(timeStr);
+ let timezoneDiff = new Date(1970, 0, 1).getTime();
+ let millis = date.getTime() - timezoneDiff;
+ Module.ccall("ntp_set_server_time", "v", ["number"], [millis / 1000]);
+ };
+ xhr.onerror = function () {
+ simpleLogC("Error when fetching server time");
+ };
+ xhr.open("GET", "/");
+ xhr.setRequestHeader("Content-Type", "text/html");
+ xhr.send("");
+}
+
+function firebaseWriteNick(nick, name) {}
+
+function firebaseReadGems() {}
+
+function firebaseWriteGems(gems) {}
+
+function firebaseWriteBuys(guid, timeStr, gems) {}
+
+let dailyRewardInProgress = false;
+let dailyRewardGems = 0;
+let checkedDailyRewardPossibleTime = 0;
+let dailyRewardPossible = false;
+
+function writeDailyReward(gems) {
+ if (!dailyRewardPossible) {
+ return;
+ }
+ dailyRewardGems = gems;
+ if (dailyRewardInProgress) {
+ return;
+ }
+ dailyRewardInProgress = true;
+}
+
+function firebaseReadVersion(guid) {}
+
+function firebaseUpload(
+ pathImage,
+ pathGame,
+ guid,
+ title,
+ description,
+ seconds,
+ storagePrefix,
+) {}
+
+function firebaseReadGame(hi, guid) {}
+
+function firebaseReadCounts(hi, guid, incPlay) {
+ if (guid == getGameGuidString()) {
+ singleGameReadCounts = true;
+ }
+}
+
+function firebaseReadLedger(hi, guid) {
+ if (guid == getGameGuidString()) {
+ singleGameReadLedger = true;
+ }
+}
+
+function firebaseWriteLedger(guid, action, remove, seconds) {}
+
+function firebaseSendBugReport(pathLocal, filename) {}
+
+function firebaseSyncUpload(pathLocal) {}
+
+function firebaseSyncDownload(pathLocal) {}
+
+function firebaseUpdateScores(guid, li, score, lowerIsBetter) {}
+
+function firebaseSendPasswordResetEmail(email) {
+ firebaseAuth.sendPasswordResetEmail(email).then(
+ (result) => {
+ Module.ccall("menu_on_password_reset_email_sent", "v");
+ },
+ (error) => {
+ simpleLogC("Reset password fail " + error.message);
+ simpleAppErrorC(error.message);
+ },
+ );
+}
+
+function firebaseSignout() {
+ firebaseAuth.signOut();
+}
+
+function firebaseSignedInEmail() {
+ if (firebaseAuth.currentUser.isAnonymous) return 0;
+ var lengthBytes = lengthBytesUTF8(firebaseAuth.currentUser.email) + 1;
+ var stringOnWasmHeap = _malloc(lengthBytes);
+ stringToUTF8(firebaseAuth.currentUser.email, stringOnWasmHeap, lengthBytes);
+ return stringOnWasmHeap;
+}
+
+function firebaseMerge(email, password, merge) {
+ if (merge) {
+ simpleLogC("Signing in and merging");
+ } else {
+ simpleLogC("Signing in without merging");
+ firebaseAuth.currentUser.delete().then(
+ (result) => {
+ firebaseAuth.signInWithEmailAndPassword(email, password).then(
+ (result) => {},
+ (error) => {
+ simpleLogC("User sign in after delete user fail " + error.message);
+ appErrorC(1007, error.message);
+ },
+ );
+ },
+ (error) => {
+ simpleLogC("Delete user fail " + error.message);
+ appErrorC(1006, error.message);
+ },
+ );
+ }
+}
+
+function firebaseDeleteCurrentUser(email, password) {
+ simpleLogC("Signing in and deleting");
+ firebaseAuth.signInWithEmailAndPassword(email, password).then(
+ (result) => {
+ firebaseAuth.currentUser.delete().then(
+ (result) => {},
+ (error) => {
+ simpleLogC("Delete user fail " + error.message);
+ appErrorC(1006, error.message);
+ },
+ );
+ },
+ (error) => {
+ simpleLogC("Sign in fail " + error.message);
+ appErrorC(1007, error.message);
+ },
+ );
+}
+
+function firebaseSignIn(email, pwd) {
+ simpleLogC("firebaseSignIn()");
+ firebaseAuth.signInWithEmailAndPassword(email, pwd).then(
+ (result) => {
+ Module.ccall("set_user_state", "v", ["number"], [3]);
+ Module.ccall("app_on_signin", "v");
+ },
+ (error) => {
+ simpleLogC("Sign in fail " + error.message);
+ appErrorC(1007, error.message);
+ },
+ );
+}
+
+function firebaseLinkUser(email, pwd) {
+ simpleLogC("firebaseLinkUser()");
+ let c = firebase.auth.EmailAuthProvider.credential(email, pwd);
+ firebaseAuth.currentUser.linkWithCredential(c).then(
+ (result) => {
+ Module.ccall("set_user_state", "v", ["number"], [3]);
+ Module.ccall("app_on_signin", "v");
+ },
+ (error) => {
+ simpleLogC("Link with credential failed");
+ if (error.code == "auth/email-already-in-use") {
+ simpleLogC("Email in use");
+ appErrorC(1003, "An account with this email already exists");
+ } else if (error.code == "auth/wrong-password") {
+ simpleLogC("Email in use, wrong password");
+ appErrorC(1003, "An account with this email already exists");
+ } else if (error.code == "auth/weak-password") {
+ simpleLogC("Password too weak");
+ appErrorC(1003, "Password too weak, please try a stronger password");
+ } else {
+ simpleLogC(
+ "Other error received when linking with credentials " +
+ error.message +
+ " " +
+ error.code,
+ );
+ appErrorC(1003, error.message + " " + error.code);
+ }
+ },
+ );
+}
+
+function firebaseSigninAnonymous() {
+ firebaseAuth.signInAnonymously().then(
+ (result) => {},
+ (error) => {
+ appErrorC(1001, error.message);
+ },
+ );
+}
+
+async function performRequest(url, useToken, parseJson) {}
+
+function firebaseInit() {}
+
+function writeGameBlob(blob, pathDevice, guid) {
+ blob.arrayBuffer().then((buffer) => {
+ writeLocalFile(buffer, pathDevice);
+ FS.syncfs(false, function (err) {
+ if (err) {
+ simpleLogC("syncfs error " + err);
+ }
+ Module.ccall(
+ "game_download_finished",
+ "v",
+ ["string", "string", "number"],
+ [pathDevice, guid, 1],
+ );
+ });
+ });
+}
+
+function firebaseDownload(pathServer, pathDevice, guid) {
+ if (
+ guid == getGameGuidString() &&
+ !pathDevice.endsWith(".webp") &&
+ singleGameBlob != null
+ ) {
+ writeGameBlob(singleGameBlob, pathDevice, guid);
+ return;
+ }
+ simpleLogC(`firebaseDownload('${pathServer}', '${pathDevice}', '${guid}'')`);
+
+ let xhr = new XMLHttpRequest();
+ xhr.responseType = "blob";
+ xhr.onload = (event) => {
+ let blob = xhr.response;
+ writeGameBlob(blob, pathDevice, guid);
+ };
+ xhr.onerror = function () {
+ simpleLogC("Unable to download file, XMLHttpRequest error");
+ Module.ccall(
+ "game_download_finished",
+ "v",
+ ["string", "string", "number"],
+ [pathDevice, guid, 0],
+ );
+ };
+ xhr.open("GET", url);
+ xhr.send();
+}
+
+function currentTimeSecondsRound() {
+ return Math.round(Date.now() / 1000);
+}
+
+function firebaseQueryGames(hi, heading, limit, next) {}
+
+function firebaseAnalyticsPlay(
+ page,
+ score,
+ wi,
+ guid,
+ version,
+ li,
+ score_type,
+ daily_done,
+ game_time,
+ crowns,
+) {
+ let params = {};
+ if (page != -1) params["page"] = page;
+ if (wi != -1) params["world"] = wi;
+ params["guid"] = guid;
+ if (version != -1) params["version"] = version;
+ params["level"] = li;
+ if (score_type != 0) params["score"] = score;
+ if (page == 5) params["daily"] = daily_done;
+ if (game_time != -1) params["time"] = game_time / 60;
+ if (crowns != -1) params["crowns"] = crowns;
+ // firebaseAnalytics.logEvent("play", params);
+}
+
diff --git a/games/eaglercraft/assets.epk b/games/eaglercraft/assets.epk
deleted file mode 100644
index 36e34521..00000000
Binary files a/games/eaglercraft/assets.epk and /dev/null differ
diff --git a/games/eaglercraft/classes.js b/games/eaglercraft/classes.js
deleted file mode 100644
index f20fd3f4..00000000
--- a/games/eaglercraft/classes.js
+++ /dev/null
@@ -1,19432 +0,0 @@
-"use strict";
-var main;(function(){
-var $rt_seed=2463534242;function $rt_nextId(){var x=$rt_seed;x^=x<<13;x^=x>>17;x^=x<<5;$rt_seed=x;return x;}function $rt_compare(a,b){return a>b?1:a0){var i=0;do {data[i]=null;i=i+1|0;}while(i=0;i=i -1|0){if(dimensions[i]===0){first=i;break;}}if(first>0){for(i=0;i=0?packages[prefixIndex]:"";packages[j]
-=prefix+data[i++]+".";}$rt_packageData=packages;}function $rt_metadata(data){var packages=$rt_packageData;var i=0;while(i=0){m.name=packages[packageIndex]+m.name;}}m.binaryName="L"+m.name+";";var superclass=data[i++];m.superclass=superclass!==0?superclass:null;m.supertypes=data[i++];if(m.superclass){m.supertypes.push(m.superclass);cls.prototype
-=Object.create(m.superclass.prototype);}else {cls.prototype={};}var flags=data[i++];m.enum=(flags&8)!==0;m.flags=flags;m.primitive=false;m.item=null;cls.prototype.constructor=cls;cls.classObject=null;m.accessLevel=data[i++];var clinit=data[i++];cls.$clinit=clinit!==0?clinit:function(){};var virtualMethods=data[i++];if(virtualMethods!==0){for(var j=0;j0){clsName+="[]";}return clsName;}function Long(lo,hi){this.lo=lo|0;this.hi=hi|0;}Long.prototype.__teavm_class__=function(){return "long";};Long.prototype.toString
-=function(){var result=[];var n=this;var positive=Long_isPositive(n);if(!positive){n=Long_neg(n);}var radix=new Long(10,0);do {var divRem=Long_divRem(n,radix);result.push(String.fromCharCode(48+divRem[1].lo));n=divRem[0];}while(n.lo!==0||n.hi!==0);result=(result.reverse()).join('');return positive?result:"-"+result;};Long.prototype.valueOf=function(){return Long_toNumber(this);};var Long_ZERO=new Long(0,0);var Long_MAX_NORMAL=1<<18;function Long_fromInt(val){return val>=0?new Long(val,0):new Long(val, -1);}function Long_fromNumber(val)
-{if(val>=0){return new Long(val|0,val/0x100000000|0);}else {return Long_neg(new Long( -val|0, -val/0x100000000|0));}}function Long_toNumber(val){var lo=val.lo;var hi=val.hi;if(lo<0){lo+=0x100000000;}return 0x100000000*hi+lo;}var $rt_imul=Math.imul||function(a,b){var ah=a>>>16&0xFFFF;var al=a&0xFFFF;var bh=b>>>16&0xFFFF;var bl=b&0xFFFF;return al*bl+(ah*bl+al*bh<<16>>>0)|0;};var $rt_udiv=function(a,b){if(a<0){a+=0x100000000;}if(b<0){b+=0x100000000;}return a/b|0;};var $rt_umod=function(a,b){if(a<0){a+=0x100000000;}if
-(b<0){b+=0x100000000;}return a%b|0;};function $rt_setCloneMethod(target, f){target.eB=f;}
-function $rt_cls(cls){return YH(cls);}
-function $rt_str(str) {if (str === null) {return null;}var characters = $rt_createCharArray(str.length);var charsBuffer = characters.data;for (var i = 0; i < str.length; i = (i + 1) | 0) {charsBuffer[i] = str.charCodeAt(i) & 0xFFFF;}return N4(characters);}
-function $rt_ustr(str) {if (str === null) {return null;}var data = str.dX.data;var result = "";for (var i = 0; i < data.length; i = (i + 1) | 0) {result += String.fromCharCode(data[i]);}return result;}
-function $rt_objcls() { return D; }
-function $rt_nullCheck(val) {if (val === null) {$rt_throw(A.AZg());}return val;}
-function $rt_intern(str) {return str;}function $rt_getThread(){return A.HT();}
-function $rt_setThread(t){return AA5(t);}
-function $rt_createException(message){return LZ(message);}
-function $rt_createStackElement(className,methodName,fileName,lineNumber){return null;}
-function $rt_setStack(e,stack){}
-var A=Object.create(null);
-var O=$rt_throw;var Bs=$rt_compare;var CDd=$rt_nullCheck;var F=$rt_cls;var K=$rt_createArray;var FQ=$rt_isInstance;var IJ=$rt_nativeThread;var C=$rt_suspending;var Sr=$rt_resuming;var Sf=$rt_invalidPointer;var B=$rt_s;var Be=$rt_eraseClinit;var BH=$rt_imul;var X=$rt_wrapException;
-function D(){this.gZ=null;this.$id$=0;}
-A.AZh=function(){var a=new D();AKB(a);return a;};
-function R$(b){var c;if(b.gZ===null)AZq(b);if(b.gZ.of===null)b.gZ.of=A.AZi;else if(b.gZ.of!==A.AZi){c=new F_;Bz(c,B(0));O(c);}b=b.gZ;b.pc=b.pc+1|0;}
-function HF(b){var c,d;if(!V9(b)&&b.gZ.of===A.AZi){c=b.gZ;d=c.pc-1|0;c.pc=d;if(!d)b.gZ.of=null;V9(b);return;}b=new AJq;BA(b);O(b);}
-A.S3=function(b){if(b.gZ===null)AZq(b);if(b.gZ.of===null)b.gZ.of=A.AZi;if(b.gZ.of!==A.AZi)ChK(b,1);else{b=b.gZ;b.pc=b.pc+1|0;}};
-function AZq(b){b.gZ=A.AV3();}
-function ChK(b,c){var thread=$rt_nativeThread();var javaThread=$rt_getThread();if(thread.isResuming()){thread.status=0;var result=thread.attribute;if(result instanceof Error){throw result;}return result;}var callback=function(){};callback.bSP=function(val){thread.attribute=val;$rt_setThread(javaThread);thread.resume();};callback.bVY=function(e){thread.attribute=$rt_exception(e);$rt_setThread(javaThread);thread.resume();};callback=A.AWc(callback);return thread.suspend(function(){try{A.ATL(b,c,callback);}catch($e)
-{callback.bVY($rt_exception($e));}});}
-A.ATL=function(b,c,d){var e,f,g;e=A.AZi;if(b.gZ===null){AZq(b);AA5(e);b=b.gZ;b.pc=b.pc+c|0;IG(d,null);return;}if(b.gZ.of===null){b.gZ.of=e;AA5(e);b=b.gZ;b.pc=b.pc+c|0;IG(d,null);return;}f=b.gZ;if(f.uB===null)f.uB=ChM();f=f.uB;g=new AUc;g.bCF=e;g.bCG=b;g.bCC=c;g.bCE=d;d=g;f.push(d);};
-function BBb(b){var c;if(!V9(b)&&b.gZ.of===A.AZi){c=b.gZ;c.pc=c.pc-1|0;if(c.pc<=0){c.of=null;if(c.uB!==null&&!AHQ(c.uB)){c=new AWn;c.byx=b;BSt(c,0);}else V9(b);}return;}b=new AJq;BA(b);O(b);}
-function V9(a){var b;b=a.gZ;if(b===null)return 1;a:{if(b.of===null&&!(b.uB!==null&&!AHQ(b.uB))){if(b.bEr===null)break a;if(AHQ(b.bEr))break a;}return 0;}a.gZ=null;return 1;}
-function AKB(a){return;}
-function CG(a){return YH(a.constructor);}
-A.AC_=function(a){return ABF(a);};
-function BjS(a,b){return a!==b?0:1;}
-function CcV(a){var b;b=new M;N(b);E(b,Mh(CG(a)));E(b,B(1));E(b,I0(ABF(a)));return L(b);}
-function ABF(a){var b,c;b=a;if(!b.$id$){c=$rt_nextId();b.$id$=c;}return a.$id$;}
-function A5B(a){var b,c,d;if(!FQ(a,G7)&&a.constructor.$meta.item===null){b=new AA9;BA(b);O(b);}b=B_9(a);c=b;d=$rt_nextId();c.$id$=d;return b;}
-function ZY(){D.call(this);}
-A.AZj=null;A.AZk=null;A.AZl=null;A.AZm=0;A.AZn=function(){var a=new ZY();BpY(a);return a;};
-function BpY(a){return;}
-function A8P(){return Dy(B(2),0);}
-function BYS(b){var c,d,$$je,$p,$z;$p=0;if(Sr()){var $T=IJ();$p=$T.l();d=$T.l();c=$T.l();b=$T.l();}_:while(true){switch($p){case 0:BGC();BTC();B7_();Bqw();BXp();BfQ();Bfk();BvD();Bss();B9Z();BM4();Bc8();BfF();Bv2();BHB();B1P();Bl9();B4C();BwR();Btl();Bub();B_c();BQx();BF8();BWl();BAO();BLU();Byc();BJj();BES();Bh1();Be9();BMR();BdP();BuK();Bhw();BGa();BHT();Bxz();BvI();BMb();BQk();BJ5();BmC();BWt();BFV();Bde();BX7();BYu();BBU();BHy();Bll();Bjj();BKO();Bzo();BkB();BNs();Bny();BPp();Bvh();BEl();BT_();BHO();BKV();BY5();B0A();BRm();B9o();B0U();ByZ();B8E();BlM();Bqs();BTm();Bme();B3d();B$4();BjP();B0n();Bh9();BSn();BG6();Bpa();BvE();BE6();BCG();BpO();BRY();BPf();Bvk();B1I();BsZ();Bo4();B82();BW$();B3Q();BwX();Bzw();BwL();B93();BR6();BHu();B42();BQH();BhX();BqZ();BT0();BFd();B06();Bt1();BYg();B0_();BUB();BBI();Bfs();BjW();BH1();Bys();BuW();Bu8();BZc();BcS();Bfu();Bfp();Bgn();BPo();BVY();B5m();BQh();BMD();Bk0();B19();Btu();Bdh();BPO();BWf();BuB();BX3();BAq();BZN();Bf7();B8X();BtP();Bkx();BA3();B1R();BMm();BEI();BnM();BWN();BBO();BNJ();B$O();BFo();BUo();BYh();B0K();Bqo();Be2();Bs0();Bfx();BSi();Bb9();BRD();BpK();BlO();Bd1();BOh();B40();BPl();BNN();BwH();BzK();BRi();B4p();Bf9();B1E();BNk();BtH();B3G();B2y();B6o();BT7();Bnu();B$Q();B4J();BhM();BCe();BAm();Bk5();Bij();BR9();BnH();BL$();B9U();B6S();B1T();B5j();Bb_();B2t();BCt();BIS();Bd7();BO2();B0F();Brd();BhZ();BeR();B43();Btf();BAD();BDY();BBd();B4h();BSN();B4Z();BEh();BeS();Bl8();BFm();Bot();BCv();BIE();BiG();Bta();BUm();ByV();BjJ();BuA();Bpf();BLu();BL8();BD8();B02();BEH();BG3();BKs();Bke();BMM();BLQ();BmB();BnK();BDf();BU1();Bmt();Biv();B79();BBw();Bg4();BC2();BxW();BNa();BoF();B5d();BtC();B1U();BJn();BwO();BXt();B3J();B0Q();BUP();Bfa();B4F();BHI();Bw1();BoV();BJR();BJS();BuN();B2b();BCD();c
-=$rt_str(BBK());if(c!==null){A.AZl=Bd(J(J(Bg(),B(3)),c));try{d=A.Jn(c);$p=2;continue _;}catch($$e){$$je=X($$e);if($$je instanceof E5){d=$$je;}else{throw $$e;}}alert($rt_ustr(Bd(J(J(Bg(),B(4)),HK(d)))));CM(d);return;}$p=1;case 1:BRQ();if(C()){break _;}return;case 2:a:{try{B$0(d);if(C()){break _;}}catch($$e){$$je=X($$e);if($$je instanceof E5){d=$$je;break a;}else{throw $$e;}}return;}alert($rt_ustr(Bd(J(J(Bg(),B(4)),HK(d)))));CM(d);return;default:Sf();}}IJ().s(b,c,d,$p);}
-function B$0(b){var c,d,e,f,g,h,$$je,$p,$z;$p=0;if(Sr()){var $T=IJ();$p=$T.l();h=$T.l();g=$T.l();f=$T.l();e=$T.l();d=$T.l();c=$T.l();b=$T.l();}_:while(true){switch($p){case 0:c=NR(b,B(5));A.AZj=window.document.getElementById($rt_ustr(c));if(A.AZj===null){b=new E5;d=new M;N(d);E(d,B(6));E(d,c);E(d,B(7));Bz(b,L(d));O(b);}AVA(I8(b,B(8),null));d=NR(b,B(9));if(Ba(d)>256){e=new M;N(e);E(e,C$(d,0,256));E(e,B(10));A2W(b,B(9),L(e));c=new M;N(c);E(c,B(3));E(c,BQ8(b));A.AZl=L(c);}e=I8(b,B(11),null);A.AZo=I8(b,B(12),B(13));try
-{c=A.AZj;$p=1;continue _;}catch($$e){$$je=X($$e);if($$je instanceof DL){f=$$je;}else{throw $$e;}}g=ZC();Ya(f,AZS(g));Y0(RV(g));return;case 1:a:{try{BGx(c,d,e);if(C()){break _;}break a;}catch($$e){$$je=X($$e);if($$je instanceof DL){f=$$je;}else{throw $$e;}}g=ZC();Ya(f,AZS(g));Y0(RV(g));return;}b:{A7y();BLY(b);b=AS4(b,B(14),null);if(b!==null){c=BqS(b).b$();while(true){if(!c.bF())break b;d=c.by();if(DO(d,B(15)))d=Dy(d,1);e=I8(b,d,null);if(e!==null){BB(A.AZp,d,e);if(!MR(Ho(d),B(16))){f=A.AZq;$p=3;continue _;}}}}}AMz();$p
-=2;case 2:BEE();if(C()){break _;}return;case 3:$z=BCb(e);if(C()){break _;}h=$z;BB(f,d,h);while(c.bF()){d=c.by();if(DO(d,B(15)))d=Dy(d,1);e=I8(b,d,null);if(e===null)continue;BB(A.AZp,d,e);if(MR(Ho(d),B(16)))continue;else{f=A.AZq;continue _;}}AMz();$p=2;continue _;default:Sf();}}IJ().s(b,c,d,e,f,g,h,$p);}
-function BRQ(){var b,c,d,e,f,g,h,$$je,$p,$z;$p=0;if(Sr()){var $T=IJ();$p=$T.l();h=$T.l();g=$T.l();f=$T.l();e=$T.l();d=$T.l();c=$T.l();b=$T.l();}_:while(true){switch($p){case 0:b=window.minecraftOpts;if(b===null)c=null;else{c=K(B6,b.length);d=c.data;e=0;f=d.length;while(e=f)break;if(Ba(d[e])<=512)b=d[e];else{b=new M;N(b);E(b,C$(d[e],0,512));E(b,B(18));b=L(b);}if(e>0){g=new M;N(g);E(g,A.AZl);E(g,B(19));A.AZl=L(g);}g=new M;N(g);E(g,
-A.AZl);E(g,B(20));E(g,b);E(g,B(20));A.AZl=L(g);e=e+1|0;}b=new M;N(b);E(b,A.AZl);E(b,B(21));A.AZl=L(b);try{b=window.document;g=d[0];h=b.getElementById($rt_ustr(g));A.AZj=h;b=d[1];g=B(22);$p=1;continue _;}catch($$e){$$je=X($$e);if($$je instanceof DL){g=$$je;}else{throw $$e;}}h=ZC();Ya(g,AZS(h));Y0(RV(h));return;case 1:a:{try{BGx(h,b,g);if(C()){break _;}break a;}catch($$e){$$je=X($$e);if($$je instanceof DL){g=$$je;}else{throw $$e;}}h=ZC();Ya(g,AZS(h));Y0(RV(h));return;}A7y();AMz();if(f>2&&Ba(d[2])>0)Bdl(d[2]);if
-(f>3)AVA(d[3]);$p=2;case 2:BEE();if(C()){break _;}return;default:Sf();}}IJ().s(b,c,d,e,f,g,h,$p);}
-function BEE(){var b,$p,$z;$p=0;if(Sr()){var $T=IJ();$p=$T.l();b=$T.l();}_:while(true){switch($p){case 0:Bh(CP(),B(23));A.AZk=A.ASJ();b=A.AZk;$p=1;case 1:BVe(b);if(C()){break _;}return;default:Sf();}}IJ().s(b,$p);}
-function Y0(b){var c,d,e,f,g,h,$$je;if(!A.AZm){A.AZm=1;c=new M;N(c);E(c,B(24));E(c,b);BV(c,10);BV(c,10);E(c,B(25));E(c,B(26));E(c,B(27));E(c,B(28));E(c,B(29));E(c,B(30));D0();E(c,A.AZr);E(c,B(27));BV(c,10);E(c,A.AZl);BV(c,10);BV(c,10);Rh(c,B(31));Rh(c,B(32));Rh(c,B(33));Rh(c,B(34));Rh(c,B(35));Rh(c,B(36));Rh(c,B(37));BV(c,10);E(c,B(38));Bi(c,A.AZj.clientWidth);BV(c,10);E(c,B(39));Bi(c,A.AZj.clientHeight);BV(c,10);Qz(c,B(40));Qz(c,B(41));Qz(c,B(42));Qz(c,B(43));Qz(c,B(44));ADD(c,B(45));ADD(c,B(46));ADD(c,B(47));ADD(c,
-B(48));BV(c,10);Qz(c,B(49));BV(c,10);E(c,B(50));E(c,B(51));E(c,B(52));E(c,$rt_str(Bb1("href")));BV(c,10);E(c,B(53));a:{try{b=ARi(AH2(A.AZs));break a;}catch($$e){$$je=X($$e);if($$je instanceof DL){}else{throw $$e;}}b=B(54);}E(c,b);E(c,B(55));Qz(c,B(56));d=$rt_str(A.AZj.getAttribute("style"));e=A.AZj;b=new M;N(b);if(d===null)d=B(57);E(b,d);E(b,B(58));d=L(b);e.setAttribute("style",$rt_ustr(d));f=window.document;g=f.createElement("img");h=f.createElement("div");g.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");e
-=A8P();g.setAttribute("src",$rt_ustr(e));h.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:30px;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.AZj.appendChild(g);A.AZj.appendChild(h);c=L(c);b=f.createTextNode($rt_ustr(c));h.appendChild(b);A1v();}}
-function ALa(b){var c,d,e,f,g,h;if(!A.AZm){A.AZm=1;c=$rt_str(A.AZj.getAttribute("style"));d=A.AZj;e=new M;N(e);if(c===null)c=B(57);E(e,c);E(e,B(58));c=L(e);d.setAttribute("style",$rt_ustr(c));f=window.document;g=f.createElement("img");h=f.createElement("div");g.setAttribute("style","z-index:100;position:absolute;top:10px;left:calc(50% - 151px);");d=A8P();g.setAttribute("src",$rt_ustr(d));h.setAttribute("style","z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:30px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;font:18px sans-serif;padding:40px;");A.AZj.appendChild(g);A.AZj.appendChild(h);e
-="+ This device is incompatible with Eaglercraft :(
Issue:
Things you can try:
- Just try using Eaglercraft on a different device, it isn\'t a bug it\'s common sense
- If you are on a mobile device, please try a proper desktop or a laptop computer
- If you are using a device with no mouse cursor, please use a device with a mouse cursor
- If you are not using Chrome/Edge, try installing the latest Google Chrome
- If your browser is out of date, please update it to the latest version
- If you are using an old OS such as Windows 7, please try Windows 10 or 11
- If you have a GPU launched before 2009, WebGL 2.0 support may be impossible
";h.innerHTML
-=e;e=h.querySelector("#crashReason");b=f.createTextNode($rt_ustr(b));e.appendChild(b);e=h.querySelector("#crashUserAgent");b=$rt_str(AU4("userAgent"));b=f.createTextNode($rt_ustr(b));e.appendChild(b);A1v();}}
-function Qz(b,c){E(b,B(59));E(b,c);E(b,B(52));E(b,$rt_str(BTX($rt_ustr(c))));BV(b,10);}
-function Rh(b,c){E(b,B(60));E(b,c);E(b,B(52));E(b,$rt_str(AU4($rt_ustr(c))));BV(b,10);}
-function ADD(b,c){E(b,B(61));E(b,c);E(b,B(52));E(b,$rt_str(Bq6($rt_ustr(c))));BV(b,10);}
-function BGC(){A.AZj=null;A.AZk=null;A.AZl=null;A.AZm=0;}
-function BBK(){if(window.eaglercraftOpts){return typeof window.eaglercraftOpts==="string"?window.eaglercraftOpts:JSON.stringify(window.eaglercraftOpts);}else {return null;}}
-function A7y(){window.minecraftError=null;window.onerror=function(message,file,line,column,errorObj){if(errorObj){window.minecraftError=errorObj;window.minecraftErrorL=""+line+":"+column;A.ANb();}else {alert("a native browser exception was thrown but your browser does not support fith argument in onerror");}};}
-A.ANb=function(){var b,c;b=window.minecraftError;c=new M;N(c);E(c,B(62));E(c,B(63));E(c,B(64));E(c,$rt_str(window.minecraftErrorL));BV(c,10);E(c,B(65));E(c,$rt_str(b.name));BV(c,10);E(c,B(66));E(c,$rt_str(b.message));BV(c,10);E(c,B(67));E(c,$rt_str(b.stack));BV(c,10);Y0(L(c));};
-function BTX(b){try {return ""+window[b];}catch(e){return "";}}
-function AU4(b){try {return ""+window.navigator[b];}catch(e){return "";}}
-function Bq6(b){try {return ""+window.screen[b];}catch(e){return "";}}
-function Bb1(b){try {return ""+window.location[b];}catch(e){return "";}}
-function AEE(){}
-function AQM(a,b){return 0;}
-function ZJ(){var a=this;D.call(a);a.baz=null;a.bl5=null;a.ky=null;a.Lu=null;}
-A.AZt=0;function YH(b){var c,d;if(b===null)return null;c=b.classObject;if(c===null){c=new ZJ;c.ky=b;d=c;b.classObject=d;}return c;}
-function Ct1(a){return a.ky;}
-function AOu(a,b){var c;b=b;c=a.ky;return b!==null&&!(typeof b.constructor.$meta==='undefined'?1:0)&&A_z(b.constructor,c)?1:0;}
-function A4r(a,b){return A_z(b.ky,a.ky);}
-function Mh(a){if(a.baz===null)a.baz=BSs(a.ky);return a.baz;}
-function Ea(a){var b,c,d;b=a.bl5;if(b===null){if(UY(a)){b=new M;N(b);E(b,Ea(Zx(a)));E(b,B(68));b=L(b);a.bl5=b;return b;}b=BSs(a.ky);c=O8(b,36);if(c==(-1)){d=O8(b,46);if(d!=(-1))b=Dy(b,d+1|0);}else{b=Dy(b,c+1|0);if(Bu(b,0)>=48&&Bu(b,0)<=57)b=B(57);}a.bl5=b;}return b;}
-function RR(a){return a.ky.$meta.primitive?1:0;}
-function UY(a){return BFx(a.ky)===null?0:1;}
-function A67(a){return !(a.ky.$meta.flags&2)?0:1;}
-function Zx(a){return YH(BFx(a.ky));}
-function CAp(){B6.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls())],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls()),$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name
-:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls()),$rt_intcls(),$rt_intcls(),B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls()),$rt_intcls(),$rt_intcls(),AIQ],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls()),$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[$rt_arraycls($rt_bytecls())],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls()),B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls()),AIQ],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_intcls()),$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"initWithBytes",modifiers
-:0,accessLevel:1,parameterTypes:[$rt_arraycls($rt_bytecls()),$rt_intcls(),$rt_intcls(),AIQ],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[M],returnType:$rt_voidcls(),callable:null},{name:"charAt",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_charcls(),callable:null},{name:"codePointAt",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"codePointBefore",modifiers:0,accessLevel:3,parameterTypes
-:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"codePointCount",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"offsetByCodePoints",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"length",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"isEmpty",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable
-:null},{name:"getChars",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),$rt_arraycls($rt_charcls()),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"contentEquals",modifiers:0,accessLevel:3,parameterTypes:[SZ],returnType:$rt_booleancls(),callable:null},{name:"contentEquals",modifiers:0,accessLevel:3,parameterTypes:[AFJ],returnType:$rt_booleancls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_intcls(),callable:null},{name:"compareToIgnoreCase",modifiers
-:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_intcls(),callable:null},{name:"startsWith",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_booleancls(),callable:null},{name:"startsWith",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"regionMatches",modifiers:0,accessLevel:3,parameterTypes:[$rt_booleancls(),$rt_intcls(),B6,$rt_intcls(),$rt_intcls()],returnType:$rt_booleancls(),callable:null},{name:"regionMatches",modifiers:0,accessLevel
-:3,parameterTypes:[$rt_intcls(),B6,$rt_intcls(),$rt_intcls()],returnType:$rt_booleancls(),callable:null},{name:"endsWith",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"indexOf",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"indexOf",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"lastIndexOf",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),
-$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"lastIndexOf",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"indexOf",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"indexOf",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_intcls(),callable:null},{name:"lastIndexOf",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"lastIndexOf",modifiers
-:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_intcls(),callable:null},{name:"substring",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:B6,callable:null},{name:"substring",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"subSequence",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:AFJ,callable:null},{name:"concat",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:B6,callable:null},{name:"replace",modifiers
-:0,accessLevel:3,parameterTypes:[$rt_charcls(),$rt_charcls()],returnType:B6,callable:null},{name:"contains",modifiers:0,accessLevel:3,parameterTypes:[AFJ],returnType:$rt_booleancls(),callable:null},{name:"replace",modifiers:0,accessLevel:3,parameterTypes:[AFJ,AFJ],returnType:B6,callable:null},{name:"trim",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"toCharArray",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:$rt_arraycls($rt_charcls()),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[D],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls())],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls()),$rt_intcls(),$rt_intcls()],returnType:B6,callable:null},{name:"copyValueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls())],returnType
-:B6,callable:null},{name:"copyValueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls()),$rt_intcls(),$rt_intcls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_booleancls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_charcls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel
-:3,parameterTypes:[$rt_longcls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType:B6,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_doublecls()],returnType:B6,callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"equalsIgnoreCase",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"getBytes",modifiers
-:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_arraycls($rt_bytecls()),callable:null},{name:"getBytes",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls($rt_bytecls()),callable:null},{name:"getBytes",modifiers:0,accessLevel:3,parameterTypes:[AIQ],returnType:$rt_arraycls($rt_bytecls()),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"toLowerCase",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},
-{name:"toLowerCase",modifiers:0,accessLevel:3,parameterTypes:[FT],returnType:B6,callable:null},{name:"toUpperCase",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"toUpperCase",modifiers:0,accessLevel:3,parameterTypes:[FT],returnType:B6,callable:null},{name:"intern",modifiers:256,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"split",modifiers:0,accessLevel
-:3,parameterTypes:[B6],returnType:$rt_arraycls(B6),callable:null},{name:"split",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_arraycls(B6),callable:null},{name:"replaceAll",modifiers:0,accessLevel:3,parameterTypes:[B6,B6],returnType:B6,callable:null},{name:"replaceFirst",modifiers:0,accessLevel:3,parameterTypes:[B6,B6],returnType:B6,callable:null},{name:"format",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_arraycls(D)],returnType:B6,callable:null},{name:"format",modifiers:512,accessLevel
-:3,parameterTypes:[FT,B6,$rt_arraycls(D)],returnType:B6,callable:null},{name:"join",modifiers:512,accessLevel:3,parameterTypes:[AFJ,$rt_arraycls(AFJ)],returnType:B6,callable:null},{name:"join",modifiers:512,accessLevel:3,parameterTypes:[AFJ,ABa],returnType:B6,callable:null},{name:"compareTo",modifiers:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"lambda$static$0",modifiers:544,accessLevel:1,parameterTypes:[B6,B6],returnType:$rt_intcls(),callable:null},{name:"",modifiers
-:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];OU.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(OU),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:OU,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(OU),callable:null},
-{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];ARu.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[BLa],returnType:$rt_voidcls(),callable:null}];QR.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(QR),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:QR,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType
-:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(QR),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];AWK.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"render",modifiers:0,accessLevel:3,parameterTypes:[Wf,SZ],returnType:$rt_voidcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes
-:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];LH.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(LH),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:LH,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"valueOf",modifiers
-:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:LH,callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Kk.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Kk),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Kk,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name
-:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(Kk),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Fj.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Fj),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Fj,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),$rt_charcls()],returnType
-:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),$rt_charcls(),$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"func_96298_a",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_charcls(),callable:null},{name:"func_96301_b",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"func_96302_c",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"func_96297_d",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"func_96300_b",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Fj,callable:null},{name:"func_96296_a",modifiers:512,accessLevel:3,parameterTypes:[$rt_booleancls(),$rt_booleancls()],returnType:Qk,callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(Fj),callable:null},{name:"",modifiers
-:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];L5.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(L5),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:L5,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(L5),callable:null},
-{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Eh.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Eh),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Eh,callable:null},{name:"getEnumOptions",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:Eh,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),B6,$rt_booleancls(),
-$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"getEnumFloat",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"getEnumBoolean",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"returnEnumOrdinal",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getEnumString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"$values",modifiers:544,accessLevel
-:1,parameterTypes:[],returnType:$rt_arraycls(Eh),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];KD.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(KD),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:KD,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),Xr,Tw,Tw,Tw,$rt_arraycls(Tw),$rt_arraycls($rt_floatcls()),
-$rt_floatcls(),Xr],returnType:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(KD),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];SK.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(SK),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:SK,callable:null},{name:"",modifiers:0,accessLevel
-:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(SK),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];KV.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(KV),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:KV,callable:null},{name:"",modifiers
-:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];PM.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(PM),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:PM,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_floatcls(),
-$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getMaxUses",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getEfficiencyOnProperMaterial",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"getDamageVsEntity",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getHarvestLevel",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name
-:"getEnchantability",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getToolCraftingMaterial",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(PM),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Kd.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType
-:$rt_arraycls(Kd),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Kd,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls(),$rt_intcls(),$rt_arraycls($rt_intcls()),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getDurability",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"getDamageReductionAmount",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable
-:null},{name:"getEnchantability",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getArmorCraftingMaterial",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(Kd),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];OE.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes
-:[],returnType:$rt_arraycls(OE),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:OE,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(OE),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];AFD.$meta.methods=[{name:"",modifiers:0,accessLevel
-:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"render",modifiers:0,accessLevel:3,parameterTypes:[Wf,SZ],returnType:$rt_voidcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];Je.$meta.methods=[{name:"values",modifiers:512,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Je),callable:null},{name:"valueOf",modifiers
-:512,accessLevel:3,parameterTypes:[B6],returnType:Je,callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"multiplyBy32AndRound",modifiers:0,accessLevel:3,parameterTypes:[$rt_doublecls()],returnType:$rt_intcls(),callable:null},{name:"$values",modifiers:544,accessLevel:1,parameterTypes:[],returnType:$rt_arraycls(Je),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Yi.$meta.methods
-=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[ZJ,B6,$rt_intcls(),$rt_intcls(),ZJ,$rt_arraycls(ZJ),BkX],returnType:$rt_voidcls(),callable:null},{name:"getDeclaringClass",modifiers:0,accessLevel:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"getName",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"getModifiers",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getReturnType",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:ZJ,callable:null},{name:"getParameterTypes",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(ZJ),callable:null},{name:"getParameterCount",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"invoke",modifiers:0,accessLevel:3,parameterTypes:[D,$rt_arraycls(D)],returnType:D,callable:null},{name:"isBridge",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable
-:null},{name:"isSynthetic",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"isVarArgs",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null}];PE.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_bytecls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"intValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:$rt_intcls(),callable:null},{name:"longValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_longcls(),callable:null},{name:"floatValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"doubleValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_doublecls(),callable:null},{name:"byteValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_bytecls(),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_bytecls()],returnType
-:PE,callable:null},{name:"toString",modifiers:512,accessLevel:3,parameterTypes:[$rt_bytecls()],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"compare",modifiers:512,accessLevel:3,parameterTypes:[$rt_bytecls(),$rt_bytecls()],returnType
-:$rt_intcls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes:[PE],returnType:$rt_intcls(),callable:null},{name:"parseByte",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:$rt_bytecls(),callable:null},{name:"parseByte",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_bytecls(),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:PE,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes
-:[B6],returnType:PE,callable:null},{name:"decode",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:PE,callable:null},{name:"compareTo",modifiers:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];Lg.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[B6],returnType:$rt_voidcls(),callable:null},{name:"toString",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:B6,callable:null},{name:"toHexString",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"toOctalString",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"toBinaryString",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"toString",modifiers
-:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"parseInt",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"parseInt",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:$rt_intcls(),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:Lg,callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Lg,callable:null},{name:"valueOf",modifiers
-:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:Lg,callable:null},{name:"ensureIntegerCache",modifiers:512,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"intValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"longValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_longcls(),callable:null},{name:"floatValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"doubleValue",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:$rt_doublecls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"getInteger",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Lg,callable:null},{name:"getInteger",modifiers:512,accessLevel:3,parameterTypes
-:[B6,$rt_intcls()],returnType:Lg,callable:null},{name:"getInteger",modifiers:512,accessLevel:3,parameterTypes:[B6,Lg],returnType:Lg,callable:null},{name:"decode",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Lg,callable:null},{name:"decodeDigit",modifiers:512,accessLevel:1,parameterTypes:[$rt_charcls()],returnType:$rt_intcls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes:[Lg],returnType:$rt_intcls(),callable:null},{name:"compare",modifiers:512,accessLevel:3,parameterTypes
-:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"numberOfLeadingZeros",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"numberOfTrailingZeros",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"highestOneBit",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"lowestOneBit",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType
-:$rt_intcls(),callable:null},{name:"bitCount",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"rotateLeft",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"rotateRight",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"reverse",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},
-{name:"reverseBytes",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"signum",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"divideUnsigned",modifiers:768,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"remainderUnsigned",modifiers:768,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"compareTo",modifiers
-:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];D.$meta.methods=[{name:"monitorEnterSync",modifiers:512,accessLevel:0,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"monitorExitSync",modifiers:512,accessLevel:0,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"monitorEnter",modifiers:512,accessLevel:0,parameterTypes:[D],returnType:$rt_voidcls(),callable
-:null},{name:"monitorEnter",modifiers:512,accessLevel:0,parameterTypes:[D,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"createMonitor",modifiers:512,accessLevel:1,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"monitorEnterWait",modifiers:768,accessLevel:0,parameterTypes:[D,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"monitorEnterWait",modifiers:512,accessLevel:0,parameterTypes:[D,$rt_intcls(),A5a],returnType:$rt_voidcls(),callable:null},{name:"monitorExit",modifiers
-:512,accessLevel:0,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"monitorExit",modifiers:512,accessLevel:0,parameterTypes:[D,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"waitForOtherThreads",modifiers:512,accessLevel:1,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"isEmptyMonitor",modifiers:4,accessLevel:0,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"deleteMonitor",modifiers:0,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable
-:null},{name:"holdsLock",modifiers:512,accessLevel:0,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"fakeInit",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getClass",modifiers:4,accessLevel:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"equals",modifiers
-:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"identity",modifiers:4,accessLevel:0,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"hashCodeLowLevel",modifiers:768,accessLevel:1,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"hashCodeLowLevelImpl",modifiers:512,accessLevel:1,parameterTypes:[AKT],returnType:$rt_intcls(),callable:null},{name:"setHashCodeLowLevel",modifiers
-:768,accessLevel:1,parameterTypes:[D,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"setHashCodeLowLevelImpl",modifiers:512,accessLevel:1,parameterTypes:[AKT,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"identityLowLevel",modifiers:512,accessLevel:1,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"identityOrMonitor",modifiers:256,accessLevel:1,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"identityOrMonitorLowLevel",modifiers:512,accessLevel:1,parameterTypes
-:[AKT],returnType:$rt_intcls(),callable:null},{name:"setIdentity",modifiers:256,accessLevel:0,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"setIdentityLowLevel",modifiers:512,accessLevel:1,parameterTypes:[AKT,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"clone",modifiers:0,accessLevel:2,parameterTypes:[],returnType:D,callable:null},{name:"cloneLowLevel",modifiers:512,accessLevel:1,parameterTypes:[AKT],returnType:AKT,callable:null},{name:"notify",modifiers:4,accessLevel
-:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"notifyAll",modifiers:4,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"wait",modifiers:4,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_voidcls(),callable:null},{name:"wait",modifiers:0,accessLevel:1,parameterTypes:[$rt_longcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"waitImpl",modifiers:256,accessLevel:1,parameterTypes:[$rt_longcls(),$rt_intcls()],returnType:$rt_voidcls(),callable
-:null},{name:"waitImpl",modifiers:4,accessLevel:3,parameterTypes:[$rt_longcls(),$rt_intcls(),A5a],returnType:$rt_voidcls(),callable:null},{name:"wait",modifiers:4,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"finalize",modifiers:0,accessLevel:2,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"lambda$monitorExit$2",modifiers:544,accessLevel:1,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"lambda$monitorExit$1",modifiers:544,accessLevel:1,parameterTypes
-:[D],returnType:$rt_voidcls(),callable:null},{name:"lambda$monitorEnterWait$0",modifiers:544,accessLevel:1,parameterTypes:[XM,D,$rt_intcls(),A5a],returnType:$rt_voidcls(),callable:null}];G4.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"intValue",modifiers:1,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"longValue",modifiers:1,accessLevel:3,parameterTypes:[],returnType:$rt_longcls(),callable:null},{name:
-"floatValue",modifiers:1,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"doubleValue",modifiers:1,accessLevel:3,parameterTypes:[],returnType:$rt_doublecls(),callable:null},{name:"byteValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_bytecls(),callable:null},{name:"shortValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_shortcls(),callable:null}];Dl.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[B6,$rt_intcls()],returnType
-:$rt_voidcls(),callable:null},{name:"name",modifiers:4,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"ordinal",modifiers:4,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"equals",modifiers:4,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:4,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name
-:"clone",modifiers:4,accessLevel:2,parameterTypes:[],returnType:D,callable:null},{name:"getDeclaringClass",modifiers:4,accessLevel:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"compareTo",modifiers:4,accessLevel:3,parameterTypes:[Dl],returnType:$rt_intcls(),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[ZJ,B6],returnType:Dl,callable:null},{name:"compareTo",modifiers:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null}];R7.$meta.methods=[{name:"",modifiers
-:0,accessLevel:2,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"setAccessible",modifiers:512,accessLevel:3,parameterTypes:[$rt_arraycls(R7),$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"setAccessible",modifiers:0,accessLevel:3,parameterTypes:[$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"isAccessible",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"getAnnotation",modifiers:0,accessLevel:3,parameterTypes:[ZJ],returnType
-:AGh,callable:null},{name:"getAnnotations",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(AGh),callable:null},{name:"getDeclaredAnnotations",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(AGh),callable:null}];He.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),A56],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),A56],returnType:$rt_voidcls(),callable:null},
-{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_arraycls($rt_bytecls())],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_bytecls())],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel
-:0,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:0,parameterTypes:[$rt_intcls(),$rt_intcls(),$rt_arraycls($rt_intcls())],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:0,parameterTypes:[$rt_intcls(),$rt_longcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:0,parameterTypes:[$rt_intcls(),$rt_arraycls($rt_intcls())],returnType:$rt_voidcls(),callable:null},{name:"valueOf",modifiers
-:512,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:He,callable:null},{name:"toByteArray",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls($rt_bytecls()),callable:null},{name:"setFromString",modifiers:512,accessLevel:1,parameterTypes:[He,B6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"abs",modifiers:0,accessLevel:3,parameterTypes:[],returnType:He,callable:null},{name:"negate",modifiers:0,accessLevel:3,parameterTypes:[],returnType:He,callable:null},{name:"add",modifiers
-:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"subtract",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"signum",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"shiftRight",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"shiftLeft",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"shiftLeftOneBit",modifiers:0,accessLevel:0,parameterTypes
-:[],returnType:He,callable:null},{name:"bitLength",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"testBit",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_booleancls(),callable:null},{name:"setBit",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"clearBit",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"flipBit",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType
-:He,callable:null},{name:"getLowestSetBit",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"bitCount",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"not",modifiers:0,accessLevel:3,parameterTypes:[],returnType:He,callable:null},{name:"and",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"or",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"xor",modifiers:0,accessLevel
-:3,parameterTypes:[He],returnType:He,callable:null},{name:"andNot",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"intValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"longValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_longcls(),callable:null},{name:"floatValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"doubleValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:$rt_doublecls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:$rt_intcls(),callable:null},{name:"min",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"max",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},
-{name:"equalsArrays",modifiers:0,accessLevel:0,parameterTypes:[$rt_arraycls($rt_intcls())],returnType:$rt_booleancls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:B6,callable:null},{name:"gcd",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"multiply",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"pow",modifiers
-:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"divideAndRemainder",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:$rt_arraycls(He),callable:null},{name:"divide",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"remainder",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"modInverse",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"modPow",modifiers:0,accessLevel:3,parameterTypes
-:[He,He],returnType:He,callable:null},{name:"mod",modifiers:0,accessLevel:3,parameterTypes:[He],returnType:He,callable:null},{name:"isProbablePrime",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_booleancls(),callable:null},{name:"nextProbablePrime",modifiers:0,accessLevel:3,parameterTypes:[],returnType:He,callable:null},{name:"probablePrime",modifiers:512,accessLevel:3,parameterTypes:[$rt_intcls(),A56],returnType:He,callable:null},{name:"cutOffLeadingZeroes",modifiers:4,accessLevel:
-0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"isOne",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"putBytesPositiveToIntegers",modifiers:0,accessLevel:1,parameterTypes:[$rt_arraycls($rt_bytecls())],returnType:$rt_voidcls(),callable:null},{name:"putBytesNegativeToIntegers",modifiers:0,accessLevel:1,parameterTypes:[$rt_arraycls($rt_bytecls())],returnType:$rt_voidcls(),callable:null},{name:"getFirstNonzeroDigit",modifiers:0,accessLevel:0,parameterTypes
-:[],returnType:$rt_intcls(),callable:null},{name:"copy",modifiers:0,accessLevel:0,parameterTypes:[],returnType:He,callable:null},{name:"unCache",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getPowerOfTwo",modifiers:512,accessLevel:0,parameterTypes:[$rt_intcls()],returnType:He,callable:null},{name:"compareTo",modifiers:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType
-:$rt_voidcls(),callable:null}];A89.$meta.methods=[{name:"",modifiers:0,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"clone",modifiers:4,accessLevel:2,parameterTypes:[],returnType:D,callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable
-:null},{name:"",modifiers:32,accessLevel:0,parameterTypes:[BpA],returnType:$rt_voidcls(),callable:null}];E6.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:1,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"find",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),
-AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"findBack",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:1,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:1,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"setType",modifiers:0,accessLevel:2,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getType",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getQualifiedName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"getNext",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"setNext",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType
-:$rt_booleancls(),callable:null},{name:"processBackRefReplacement",modifiers:0,accessLevel:3,parameterTypes:[],returnType:FU,callable:null},{name:"processSecondPass",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];A9i.$meta.methods=[{name:"",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:
-3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null}];AK9.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"getID",modifiers:4,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"getOffset",modifiers
-:1,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"getStandardOffset",modifiers:1,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"isStandardOffset",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_booleancls(),callable:null},{name:"getOffsetFromLocal",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"convertUTCToLocal",modifiers:0,accessLevel:3,parameterTypes
-:[$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"convertLocalToUTC",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls(),$rt_booleancls(),$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"convertLocalToUTC",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls(),$rt_booleancls()],returnType:$rt_longcls(),callable:null},{name:"getMillisKeepLocal",modifiers:0,accessLevel:3,parameterTypes:[AK9,$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"adjustOffset",modifiers:0,accessLevel
-:3,parameterTypes:[$rt_longcls(),$rt_booleancls()],returnType:$rt_longcls(),callable:null},{name:"isFixed",modifiers:1,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"nextTransition",modifiers:1,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"previousTransition",modifiers:1,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_longcls(),callable:null}];Lz.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[B6],returnType:$rt_voidcls(),callable:null},{name:"write",modifiers:1,accessLevel:3,parameterTypes:[M],returnType:$rt_voidcls(),callable:null},{name:"writeTime",modifiers:512,accessLevel:3,parameterTypes:[M,$rt_longcls()],returnType:$rt_voidcls(),callable:null},{name:"readTime",modifiers:512,accessLevel:3,parameterTypes:[BRt],returnType:$rt_longcls(),callable:null},{name:"writeUnsignedTime",modifiers:512,accessLevel:3,parameterTypes:[M,$rt_longcls()],returnType:$rt_voidcls(),callable:null},{name:"readUnsignedTime",modifiers
-:512,accessLevel:3,parameterTypes:[BRt],returnType:$rt_longcls(),callable:null},{name:"writeTimeArray",modifiers:512,accessLevel:3,parameterTypes:[M,$rt_arraycls($rt_intcls())],returnType:$rt_voidcls(),callable:null},{name:"readTimeArray",modifiers:512,accessLevel:3,parameterTypes:[BRt,$rt_arraycls($rt_intcls())],returnType:$rt_voidcls(),callable:null},{name:"read",modifiers:512,accessLevel:3,parameterTypes:[B6,B6],returnType:Lz,callable:null}];Bhc.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[B6,$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getOffset",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"getStandardOffset",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"getOffsetFromLocal",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_intcls(),callable:null},{name:"isFixed",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable
-:null},{name:"nextTransition",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"previousTransition",modifiers:0,accessLevel:3,parameterTypes:[$rt_longcls()],returnType:$rt_longcls(),callable:null},{name:"write",modifiers:0,accessLevel:3,parameterTypes:[M],returnType:$rt_voidcls(),callable:null},{name:"readZone",modifiers:512,accessLevel:3,parameterTypes:[B6,BRt],returnType:Bhc,callable:null}];Ot.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[E6,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getInnerSet",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"setInnerSet",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"processSecondPass",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];K8.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[Gd,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"setInnerSet",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null}];Ul.$meta.methods
-=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[AWX,Gd,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"reset",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"setQuantifier",modifiers:0,accessLevel:0,parameterTypes:[AWX],returnType:$rt_voidcls(),callable
-:null}];Ew.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:1,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"loadTexture",modifiers:0,accessLevel:2,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"renderEntityOnFire",modifiers:0,accessLevel:1,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),
-$rt_doublecls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderShadow",modifiers:0,accessLevel:1,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"getWorldFromRenderManager",modifiers:0,accessLevel:1,parameterTypes:[],returnType:AGw,callable:null},{name:"renderShadowOnBlock",modifiers:0,accessLevel:1,parameterTypes:[Bf,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_intcls(),$rt_intcls(),
-$rt_intcls(),$rt_floatcls(),$rt_floatcls(),$rt_doublecls(),$rt_doublecls(),$rt_doublecls()],returnType:$rt_voidcls(),callable:null},{name:"renderOffsetAABB",modifiers:512,accessLevel:3,parameterTypes:[A2O,$rt_doublecls(),$rt_doublecls(),$rt_doublecls()],returnType:$rt_voidcls(),callable:null},{name:"renderAABB",modifiers:512,accessLevel:3,parameterTypes:[A2O],returnType:$rt_voidcls(),callable:null},{name:"setRenderManager",modifiers:0,accessLevel:3,parameterTypes:[UI],returnType:$rt_voidcls(),callable:null},
-{name:"doRenderShadowAndFire",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"getFontRendererFromRenderManager",modifiers:0,accessLevel:3,parameterTypes:[],returnType:AKp,callable:null},{name:"updateIcons",modifiers:0,accessLevel:3,parameterTypes:[AM4],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable
-:null}];DC.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"setRenderPassModel",modifiers:0,accessLevel:3,parameterTypes:[DE],returnType:$rt_voidcls(),callable:null},{name:"interpolateRotation",modifiers:0,accessLevel:1,parameterTypes:[$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_floatcls(),callable:null},{name:"doRenderLiving",modifiers:0,accessLevel:3,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),
-$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderModel",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"bindTexture",modifiers:1,accessLevel:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"renderLivingAt",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls()],returnType
-:$rt_voidcls(),callable:null},{name:"rotateCorpse",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderSwingProgress",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_floatcls(),callable:null},{name:"handleRotationFloat",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_floatcls(),callable:null},{name:"renderEquippedItems",modifiers:0,accessLevel:2,parameterTypes:[DR,
-$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderArrowsStuckInEntity",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"inheritRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"func_82408_c",modifiers:0,accessLevel
-:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"getDeathMaxRotation",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_floatcls(),callable:null},{name:"getColorMultiplier",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"preRenderCallback",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"passSpecialRender",modifiers:0,accessLevel
-:2,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls()],returnType:$rt_voidcls(),callable:null},{name:"func_96449_a",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),B6,$rt_floatcls(),$rt_doublecls()],returnType:$rt_voidcls(),callable:null},{name:"renderLivingLabel",modifiers:0,accessLevel:2,parameterTypes:[DR,B6,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel
-:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];AQ6.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE,DE,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"shouldSlimeRenderPass",modifiers:0,accessLevel:2,parameterTypes:[Tp,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable
-:null},{name:"scaleSlime",modifiers:0,accessLevel:2,parameterTypes:[Tp,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"preRenderCallback",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"bindTexture",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"",modifiers
-:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];FU.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[AIW,Kn],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"setNext",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable
-:null},{name:"getNext",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"getGroup",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"processSecondPass",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];A4t.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6,E6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6],returnType:$rt_voidcls(),callable:null},{name:"getNext",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},
-{name:"setNext",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null},{name:"getSurrogates",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"getWithoutSurrogates",modifiers:0,accessLevel:3,parameterTypes:[],returnType:E6,callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"first",modifiers
-:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null}];BhW.$meta.methods=[{name:"",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];Ko.$meta.methods
-=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];A8q.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes
-:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null}];QH.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"format",modifiers:0,accessLevel:3,parameterTypes:[Rj,SZ],returnType:$rt_voidcls(),callable:null},{name:"parse",modifiers:0,accessLevel:3,parameterTypes:[B6,Rj,BpR],returnType:$rt_voidcls(),callable:null},{name:"processBeforeFormat",modifiers:0,accessLevel:2,parameterTypes:[$rt_intcls()],returnType:
-$rt_intcls(),callable:null},{name:"processAfterParse",modifiers:0,accessLevel:2,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];A_T.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:
-3,parameterTypes:[B6,$rt_arraycls($rt_intcls())],returnType:$rt_voidcls(),callable:null},{name:"write",modifiers:0,accessLevel:0,parameterTypes:[AU3],returnType:$rt_voidcls(),callable:null},{name:"load",modifiers:0,accessLevel:0,parameterTypes:[A26],returnType:$rt_voidcls(),callable:null},{name:"getId",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_bytecls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"copy",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:FC,callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];AFM.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[AIW,Kn],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel
-:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null}];BHZ.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[AGw,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_doublecls()],returnType:$rt_voidcls(),callable:null},{name:"renderParticle",modifiers
-:0,accessLevel:3,parameterTypes:[AN_,$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"getBrightnessForRender",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"getBrightness",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType:$rt_floatcls(),callable:null},{name:"onUpdate",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:
-null}];B60.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];B5_.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name
-:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];A7Q.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType
-:B6,callable:null}];B5R.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];A8B.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[AIW,Kn],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),
-AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];B8U.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name
-:"find",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"findBack",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null}];Bzn.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:
-[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];A8F.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_arraycls($rt_bytecls()),$rt_intcls()],returnType:$rt_voidcls(),callable
-:null}];Rd.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[AGw,W_,$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"setPosition",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"setupGLTranslation",modifiers:0,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"updateRenderer",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:$rt_voidcls(),callable:null},{name:"distanceToEntitySquared",modifiers:0,accessLevel:3,parameterTypes:[Eb],returnType:$rt_floatcls(),callable:null},{name:"setDontDraw",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"stopRendering",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getGLCallListForPass",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"updateInFrustum",modifiers
-:0,accessLevel:3,parameterTypes:[A5Q],returnType:$rt_voidcls(),callable:null},{name:"callOcclusionQueryList",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"shouldTryOcclusionQuery",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"skipAllRenderPasses",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"markDirty",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable
-:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];BxK.$meta.methods=[{name:"",modifiers:0,accessLevel:0,parameterTypes:[SZ],returnType:$rt_voidcls(),callable:null},{name:"accepts",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ],returnType:$rt_intcls(),callable:null},{name:"find",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"findBack",modifiers:0,accessLevel:3,parameterTypes
-:[$rt_intcls(),$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null},{name:"indexOf",modifiers:0,accessLevel:2,parameterTypes:[AFJ,$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"lastIndexOf",modifiers:0,accessLevel:2,parameterTypes:[AFJ,$rt_intcls(),$rt_intcls()],returnType:$rt_intcls(),callable
-:null},{name:"startsWith",modifiers:0,accessLevel:2,parameterTypes:[AFJ,$rt_intcls()],returnType:$rt_booleancls(),callable:null}];AVh.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"get",modifiers:64,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"get",modifiers:0,accessLevel:3,parameterTypes:[],returnType:F0,callable:null}];B5$.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable
-:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];AKl.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"updateIcons",modifiers:0,accessLevel:3,parameterTypes:[AM4],returnType:$rt_voidcls(),callable:null},{name:"func_82404_a",modifiers:0,accessLevel:3,parameterTypes:[TE,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),
-$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderFrameItemAsBlock",modifiers:0,accessLevel:1,parameterTypes:[TE],returnType:$rt_voidcls(),callable:null},{name:"func_82402_b",modifiers:0,accessLevel:1,parameterTypes:[TE],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel
-:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];A5o.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"get",modifiers:64,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"get",modifiers:0,accessLevel:3,parameterTypes:[],returnType:F0,callable:null}];Bem.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes
-:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];Wp.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];Yq.$meta.methods=[{name:"makeTextureStitched",modifiers:512,accessLevel
-:3,parameterTypes:[B6],returnType:Yq,callable:null},{name:"",modifiers:0,accessLevel:2,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"init",modifiers:0,accessLevel:3,parameterTypes:[AJD,W_,$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"copyFrom",modifiers:0,accessLevel:3,parameterTypes:[Yq],returnType:$rt_voidcls(),callable:null},{name:"getOriginX",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable
-:null},{name:"getOriginY",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getMinU",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"getMaxU",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"getInterpolatedU",modifiers:0,accessLevel:3,parameterTypes:[$rt_doublecls()],returnType:$rt_floatcls(),callable:null},{name:"getMinV",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable
-:null},{name:"getMaxV",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_floatcls(),callable:null},{name:"getInterpolatedV",modifiers:0,accessLevel:3,parameterTypes:[$rt_doublecls()],returnType:$rt_floatcls(),callable:null},{name:"getIconName",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"getSheetWidth",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"getSheetHeight",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable
-:null},{name:"updateAnimation",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"readAnimationInfo",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null}];Oo.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes
-:[Oo],returnType:$rt_intcls(),callable:null},{name:"compare",modifiers:512,accessLevel:3,parameterTypes:[$rt_booleancls(),$rt_booleancls()],returnType:$rt_intcls(),callable:null},{name:"parseBoolean",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"booleanValue",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"valueOf",modifiers:512,accessLevel:3,parameterTypes:[$rt_booleancls()],returnType:Oo,callable:null},{name:
-"valueOf",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:Oo,callable:null},{name:"toString",modifiers:512,accessLevel:3,parameterTypes:[$rt_booleancls()],returnType:B6,callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"getBoolean",modifiers
-:512,accessLevel:3,parameterTypes:[B6],returnType:$rt_booleancls(),callable:null},{name:"compareTo",modifiers:96,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];B5W.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers
-:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];RE.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"renderTheMinecart",modifiers:0,accessLevel:3,parameterTypes:[Jd,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderBlockInMinecart",modifiers:0,accessLevel:2,parameterTypes:[Jd,$rt_floatcls(),Bf,$rt_intcls()],returnType:$rt_voidcls(),callable
-:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];AXO.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_charcls()),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"getNext",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:E6,callable:null},{name:"setNext",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null},{name:"getDecomposedChar",modifiers:0,accessLevel:1,parameterTypes:[],returnType:B6,callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable
-:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null}];Beo.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];A4c.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_doublecls(),$rt_doublecls()],returnType
-:$rt_voidcls(),callable:null},{name:"func_76328_a",modifiers:0,accessLevel:3,parameterTypes:[A4c],returnType:$rt_intcls(),callable:null},{name:"func_76329_a",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"compareTo",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_intcls(),callable:null}];B68.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes
-:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];A5i.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"get",modifiers:64,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"get",modifiers:0,accessLevel:3,parameterTypes:[],returnType:F0,callable:null}];A5C.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[BsO],returnType:$rt_voidcls(),callable
-:null},{name:"format",modifiers:0,accessLevel:3,parameterTypes:[Rj,SZ],returnType:$rt_voidcls(),callable:null},{name:"parse",modifiers:0,accessLevel:3,parameterTypes:[B6,Rj,BpR],returnType:$rt_voidcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];A2k.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[BsO],returnType
-:$rt_voidcls(),callable:null},{name:"format",modifiers:0,accessLevel:3,parameterTypes:[Rj,SZ],returnType:$rt_voidcls(),callable:null},{name:"parse",modifiers:0,accessLevel:3,parameterTypes:[B6,Rj,BpR],returnType:$rt_voidcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];AA4.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes
-:[],returnType:$rt_voidcls(),callable:null},{name:"func_82421_b",modifiers:0,accessLevel:2,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"func_82429_a",modifiers:0,accessLevel:2,parameterTypes:[SR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"func_82426_a",modifiers:0,accessLevel:3,parameterTypes:[SR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"func_82428_a",modifiers:0,accessLevel
-:2,parameterTypes:[SR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"func_82427_a",modifiers:0,accessLevel:1,parameterTypes:[SR],returnType:$rt_voidcls(),callable:null},{name:"func_82430_a",modifiers:0,accessLevel:2,parameterTypes:[SR,$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderEquippedItems",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"doRenderLiving",modifiers:0,accessLevel
-:3,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"rotateCorpse",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),
-$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"bindTexture",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];B6c.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers
-:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];APj.$meta.methods=[{name:"",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"render",modifiers:0,accessLevel:3,parameterTypes:[Wf,SZ],returnType:$rt_voidcls(),callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];O6.$meta.methods=[{name
-:"",modifiers:0,accessLevel:3,parameterTypes:[CU,E6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[CU],returnType:$rt_voidcls(),callable:null},{name:"accepts",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null},{name:"first",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_booleancls(),callable:null},{name
-:"getChars",modifiers:0,accessLevel:2,parameterTypes:[],returnType:CU,callable:null}];APt.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"func_82400_a",modifiers:0,accessLevel:1,parameterTypes:[$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_floatcls(),callable:null},{name:"func_82399_a",modifiers:0,accessLevel:3,parameterTypes:[AAc,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable
-:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];ASp.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType
-:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];ACM.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"setSpiderDeathMaxRotation",modifiers:0,accessLevel:2,parameterTypes:[Xx],returnType:$rt_floatcls(),callable:null},{name:"setSpiderEyeBrightness",modifiers:0,accessLevel:2,parameterTypes:[Xx,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"scaleSpider",modifiers
-:0,accessLevel:2,parameterTypes:[Xx,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"preRenderCallback",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"getDeathMaxRotation",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_floatcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"bindTexture",modifiers:0,accessLevel
-:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];ADh.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"func_82418_a",modifiers:0,accessLevel:3,parameterTypes:[AFm,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"func_82415_a",modifiers:0,accessLevel
-:2,parameterTypes:[AFm,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"func_82417_a",modifiers:0,accessLevel:2,parameterTypes:[AFm,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"func_82416_b",modifiers:0,accessLevel:2,parameterTypes:[AFm,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"preRenderCallback",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel
-:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"inheritRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"doRenderLiving",modifiers:0,accessLevel:3,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),
-$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"bindTexture",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];ATm.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable
-:null},{name:"find",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];ZJ.$meta.methods=[{name:"",modifiers:0,accessLevel:1,parameterTypes:[BOX],returnType:$rt_voidcls(),callable:null},{name:"getClass",modifiers:512,accessLevel:3,parameterTypes:[BOX],returnType:ZJ,callable:null},{name:"getPlatformClass",modifiers:0,accessLevel:3,parameterTypes:[],returnType:BOX,callable
-:null},{name:"isInstance",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"isInstanceLowLevel",modifiers:0,accessLevel:1,parameterTypes:[AKT],returnType:$rt_booleancls(),callable:null},{name:"isAssignableFrom",modifiers:0,accessLevel:3,parameterTypes:[ZJ],returnType:$rt_booleancls(),callable:null},{name:"isAssignableFromLowLevel",modifiers:0,accessLevel:1,parameterTypes:[BDq],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:3,parameterTypes
-:[],returnType:B6,callable:null},{name:"getSimpleName",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"getSimpleNameCache",modifiers:0,accessLevel:1,parameterTypes:[],returnType:B6,callable:null},{name:"getSimpleNameCacheLowLevel",modifiers:0,accessLevel:1,parameterTypes:[],returnType:AKT,callable:null},{name:"setSimpleNameCache",modifiers:0,accessLevel:1,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"setSimpleNameCacheLowLevel",modifiers:0,accessLevel:1,parameterTypes
-:[AKT],returnType:$rt_voidcls(),callable:null},{name:"isPrimitive",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"isArray",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"isEnum",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"isInterface",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"getComponentType",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"getDeclaredFields",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(BYP),callable:null},{name:"initReflection",modifiers:512,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"createMetadata",modifiers:768,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getFields",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(BYP),callable:null},{name:"getDeclaredField",modifiers
-:0,accessLevel:3,parameterTypes:[B6],returnType:BYP,callable:null},{name:"getField",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:BYP,callable:null},{name:"findField",modifiers:0,accessLevel:1,parameterTypes:[B6,AAl],returnType:BYP,callable:null},{name:"newEmptyInstance",modifiers:256,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"getDeclaredConstructors",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(B26),callable:null},{name:"getConstructors",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:$rt_arraycls(B26),callable:null},{name:"getDeclaredConstructor",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls(ZJ)],returnType:B26,callable:null},{name:"getConstructor",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls(ZJ)],returnType:B26,callable:null},{name:"getFieldsOfInterfaces",modifiers:512,accessLevel:1,parameterTypes:[ZJ,W_,AAl],returnType:$rt_voidcls(),callable:null},{name:"getDeclaredMethods",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Yi),callable
-:null},{name:"getDeclaredMethod",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_arraycls(ZJ)],returnType:Yi,callable:null},{name:"getMethods",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(Yi),callable:null},{name:"getMethod",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_arraycls(ZJ)],returnType:Yi,callable:null},{name:"findMethods",modifiers:512,accessLevel:1,parameterTypes:[ZJ,Pc],returnType:$rt_voidcls(),callable:null},{name:"findMethod",modifiers:512,accessLevel:1,parameterTypes
-:[ZJ,Yi,B6,$rt_arraycls(ZJ)],returnType:Yi,callable:null},{name:"getModifiers",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"desiredAssertionStatus",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"getSuperclass",modifiers:0,accessLevel:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"getInterfaces",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(ZJ),callable:null},{name:"getEnumConstants",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(D),callable:null},{name:"cast",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"getClassLoader",modifiers:0,accessLevel:3,parameterTypes:[],returnType:AEN,callable:null},{name:"forName",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:ZJ,callable:null},{name:"forName",modifiers:512,accessLevel:3,parameterTypes:[B6,$rt_booleancls(),AEN],returnType:ZJ,callable:null},{name:"initialize",modifiers:0,accessLevel:0,parameterTypes
-:[],returnType:$rt_voidcls(),callable:null},{name:"newInstance",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"getDeclaringClass",modifiers:0,accessLevel:3,parameterTypes:[],returnType:ZJ,callable:null},{name:"getDeclaringClassImpl",modifiers:768,accessLevel:1,parameterTypes:[BOX],returnType:BOX,callable:null},{name:"asSubclass",modifiers:0,accessLevel:3,parameterTypes:[ZJ],returnType:ZJ,callable:null},{name:"isAnnotationPresent",modifiers:0,accessLevel:3,parameterTypes:[ZJ],returnType
-:$rt_booleancls(),callable:null},{name:"getAnnotation",modifiers:0,accessLevel:3,parameterTypes:[ZJ],returnType:AGh,callable:null},{name:"getAnnotations",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(AGh),callable:null},{name:"getDeclaredAnnotations",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_arraycls(AGh),callable:null},{name:"ensureAnnotationsByType",modifiers:0,accessLevel:1,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"getResourceAsStream",modifiers
-:0,accessLevel:3,parameterTypes:[B6],returnType:NV,callable:null},{name:"getPackage",modifiers:0,accessLevel:3,parameterTypes:[],returnType:ALA,callable:null}];AM_.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[Qk],returnType:$rt_voidcls(),callable:null},{name:"size",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"clear",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"listIterator",modifiers:0,accessLevel:3,parameterTypes:[],returnType:A9S,callable:null},{name:"listIterator",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:A9S,callable:null},{name:"offer",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"remove",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"poll",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:D,callable:null},{name:"element",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"peek",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"addFirst",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"addLast",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"offerFirst",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"offerLast",modifiers
-:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"removeFirst",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"removeLast",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"pollFirst",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"pollLast",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"getFirst",modifiers:0,accessLevel:3,parameterTypes:[],returnType
-:D,callable:null},{name:"getLast",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"peekFirst",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"peekLast",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"removeFirstOccurrence",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"removeLastOccurrence",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable
-:null},{name:"push",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"pop",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"descendingIterator",modifiers:0,accessLevel:3,parameterTypes:[],returnType:J7,callable:null},{name:"removeEntry",modifiers:0,accessLevel:1,parameterTypes:[AUz],returnType:$rt_voidcls(),callable:null},{name:"access$100",modifiers:544,accessLevel:0,parameterTypes:[AM_,AUz],returnType:$rt_voidcls(),callable:null},{name
-:"access$202",modifiers:544,accessLevel:0,parameterTypes:[AM_,AUz],returnType:AUz,callable:null},{name:"access$302",modifiers:544,accessLevel:0,parameterTypes:[AM_,AUz],returnType:AUz,callable:null},{name:"access$404",modifiers:544,accessLevel:0,parameterTypes:[AM_],returnType:$rt_intcls(),callable:null},{name:"access$300",modifiers:544,accessLevel:0,parameterTypes:[AM_],returnType:AUz,callable:null}];B55.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable
-:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];Y1.$meta.methods=[{name:"",modifiers:0,accessLevel:1,parameterTypes:[BKb,BMt,BGM,B6l,$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"access$3800",modifiers:544,accessLevel:0,parameterTypes:[Y1],returnType:BMt,callable:null},{name:"",modifiers:32,accessLevel:0,parameterTypes:[BKb,BMt,BGM,B6l,$rt_booleancls(),
-A8G],returnType:$rt_voidcls(),callable:null}];B64.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];BWW.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls(),D],returnType:$rt_voidcls(),callable:null},{name:"getDataValueId",modifiers
-:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"setObject",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_voidcls(),callable:null},{name:"getObject",modifiers:0,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"getObjectType",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null},{name:"isWatched",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_booleancls(),callable:null},{name:"setWatched",modifiers:0,accessLevel
-:3,parameterTypes:[$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"setWatchableObjectWatched",modifiers:512,accessLevel:0,parameterTypes:[BWW,$rt_booleancls()],returnType:$rt_booleancls(),callable:null}];Bw3.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"getName",modifiers:0,accessLevel
-:3,parameterTypes:[],returnType:B6,callable:null}];ARz.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"write",modifiers:0,accessLevel:0,parameterTypes:[AU3],returnType:$rt_voidcls(),callable:null},{name:"load",modifiers:0,accessLevel:0,parameterTypes:[A26],returnType:$rt_voidcls(),callable:null},{name:"getId",modifiers:
-0,accessLevel:3,parameterTypes:[],returnType:$rt_bytecls(),callable:null},{name:"toString",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},{name:"copy",modifiers:0,accessLevel:3,parameterTypes:[],returnType:FC,callable:null},{name:"equals",modifiers:0,accessLevel:3,parameterTypes:[D],returnType:$rt_booleancls(),callable:null},{name:"hashCode",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_intcls(),callable:null}];A5l.$meta.methods=[{name:"",modifiers:0,accessLevel:
-3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"get",modifiers:64,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"get",modifiers:0,accessLevel:3,parameterTypes:[],returnType:F0,callable:null}];A$G.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[AIW,Kn],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel
-:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];B5V.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"apply",modifiers:64,accessLevel:3,parameterTypes:[D],returnType:D,callable:null},{name:"apply",modifiers:0,accessLevel:3,parameterTypes:[AGw],returnType:Eb,callable:null}];AVe.$meta.methods=[{name:"",modifiers:0,accessLevel:
-3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"get",modifiers:64,accessLevel:3,parameterTypes:[],returnType:D,callable:null},{name:"get",modifiers:0,accessLevel:3,parameterTypes:[],returnType:F0,callable:null}];A_L.$meta.methods=[{name:"",modifiers:0,accessLevel:1,parameterTypes:[$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:32,accessLevel:0,parameterTypes:[$rt_intcls(),BA9],returnType:$rt_voidcls(),callable:null},{name:"access$100",modifiers:544,accessLevel
-:0,parameterTypes:[A_L],returnType:$rt_intcls(),callable:null},{name:"access$200",modifiers:544,accessLevel:0,parameterTypes:[A_L],returnType:$rt_intcls(),callable:null},{name:"access$300",modifiers:544,accessLevel:0,parameterTypes:[A_L],returnType:AYs,callable:null},{name:"access$202",modifiers:544,accessLevel:0,parameterTypes:[A_L,$rt_intcls()],returnType:$rt_intcls(),callable:null},{name:"access$102",modifiers:544,accessLevel:0,parameterTypes:[A_L,$rt_intcls()],returnType:$rt_intcls(),callable:null},{name
-:"access$400",modifiers:544,accessLevel:0,parameterTypes:[A_L],returnType:AR0,callable:null},{name:"access$500",modifiers:544,accessLevel:0,parameterTypes:[A_L],returnType:$rt_intcls(),callable:null},{name:"access$302",modifiers:544,accessLevel:0,parameterTypes:[A_L,AYs],returnType:AYs,callable:null},{name:"access$402",modifiers:544,accessLevel:0,parameterTypes:[A_L,AR0],returnType:AR0,callable:null},{name:"access$112",modifiers:544,accessLevel:0,parameterTypes:[A_L,$rt_intcls()],returnType:$rt_intcls(),callable
-:null}];A_I.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[$rt_arraycls($rt_intcls()),$rt_intcls()],returnType:$rt_voidcls(),callable:null}];BtD.$meta.methods=[{name:"",modifiers:0,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"hasConsumed",modifiers:0,accessLevel:3,parameterTypes:[Baf],returnType:$rt_booleancls(),callable:null},
-{name:"getName",modifiers:0,accessLevel:2,parameterTypes:[],returnType:B6,callable:null}];AOm.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE,DE,$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"renderSaddledPig",modifiers:0,accessLevel:2,parameterTypes:[Zp,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"renderLivingPig",modifiers:0,accessLevel:3,parameterTypes:[Zp,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType
-:$rt_voidcls(),callable:null},{name:"shouldRenderPass",modifiers:0,accessLevel:2,parameterTypes:[DR,$rt_intcls(),$rt_floatcls()],returnType:$rt_intcls(),callable:null},{name:"doRenderLiving",modifiers:0,accessLevel:3,parameterTypes:[DR,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable
-:null},{name:"bindTexture",modifiers:0,accessLevel:2,parameterTypes:[DR],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];L1.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE,B6],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:0,accessLevel:3,parameterTypes:[DE,$rt_intcls(),
-$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"addChild",modifiers:0,accessLevel:3,parameterTypes:[L1],returnType:$rt_voidcls(),callable:null},{name:"setTextureOffset",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:L1,callable:null},{name:"addBox",modifiers:0,accessLevel:3,parameterTypes:[B6,$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_intcls(),$rt_intcls(),$rt_intcls()],returnType:L1,callable:null},{name:"addBox",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls(),
-$rt_floatcls(),$rt_floatcls(),$rt_intcls(),$rt_intcls(),$rt_intcls()],returnType:L1,callable:null},{name:"addBox",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls(),$rt_floatcls(),$rt_floatcls(),$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"setRotationPoint",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"render",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType
-:$rt_voidcls(),callable:null},{name:"renderWithRotation",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"postRender",modifiers:0,accessLevel:3,parameterTypes:[$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"compileDisplayList",modifiers:0,accessLevel:1,parameterTypes:[$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"setTextureSize",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),$rt_intcls()],returnType:L1,callable:
-null}];A3Z.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[E6,E6,$rt_intcls()],returnType:$rt_voidcls(),callable:null},{name:"matches",modifiers:0,accessLevel:3,parameterTypes:[$rt_intcls(),AFJ,Baf],returnType:$rt_intcls(),callable:null},{name:"setNext",modifiers:0,accessLevel:3,parameterTypes:[E6],returnType:$rt_voidcls(),callable:null}];Xr.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[B6],returnType:$rt_voidcls(),callable:null},{name:"freeTextures",modifiers
-:512,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"bindTexture",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];A5H.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[],returnType:$rt_voidcls(),callable:null},{name:"doRenderEnderCrystal",modifiers:0,accessLevel:3,parameterTypes:[ABC,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),
-$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"doRender",modifiers:0,accessLevel:3,parameterTypes:[Eb,$rt_doublecls(),$rt_doublecls(),$rt_doublecls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];AQc.$meta.methods=[{name:"",modifiers:0,accessLevel:2,parameterTypes:[$rt_intcls(),B6],returnType:$rt_voidcls(),callable:null},{name:"getIconFromDamage",modifiers
-:0,accessLevel:3,parameterTypes:[$rt_intcls()],returnType:EP,callable:null},{name:"onItemUse",modifiers:0,accessLevel:3,parameterTypes:[CW,D4,AGw,$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_intcls(),$rt_floatcls(),$rt_floatcls(),$rt_floatcls()],returnType:$rt_booleancls(),callable:null},{name:"addInformation",modifiers:0,accessLevel:3,parameterTypes:[CW,D4,W_,$rt_booleancls()],returnType:$rt_voidcls(),callable:null},{name:"getRecordTitle",modifiers:0,accessLevel:3,parameterTypes:[],returnType:B6,callable:null},
-{name:"getRarity",modifiers:0,accessLevel:3,parameterTypes:[CW],returnType:SA,callable:null},{name:"getRecord",modifiers:512,accessLevel:3,parameterTypes:[B6],returnType:AQc,callable:null},{name:"registerIcons",modifiers:0,accessLevel:3,parameterTypes:[AM4],returnType:$rt_voidcls(),callable:null},{name:"",modifiers:512,accessLevel:0,parameterTypes:[],returnType:$rt_voidcls(),callable:null}];A5y.$meta.methods=[{name:"",modifiers:0,accessLevel:3,parameterTypes:[FT],returnType:$rt_voidcls(),callable
-:null},{name:"format",modifiers:0,accessLevel:3,parameterTypes:[Rj,SZ],returnType:$rt_voidcls(),callable:null}];B6a.$meta.methods=[{name:"