diff --git a/asset-manifest.json b/asset-manifest.json index c2a1976..185abe8 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -3,8 +3,8 @@ "static/js/0.54f3d658.chunk.js": "/diabloweb/static/js/0.54f3d658.chunk.js", "static/js/0.54f3d658.chunk.js.map": "/diabloweb/static/js/0.54f3d658.chunk.js.map", "main.css": "/diabloweb/static/css/main.9fcbefb1.chunk.css", - "main.js": "/diabloweb/static/js/main.4907c864.chunk.js", - "main.js.map": "/diabloweb/static/js/main.4907c864.chunk.js.map", + "main.js": "/diabloweb/static/js/main.7c4f3ed3.chunk.js", + "main.js.map": "/diabloweb/static/js/main.7c4f3ed3.chunk.js.map", "runtime~main.js": "/diabloweb/static/js/runtime~main.bf17ce54.js", "runtime~main.js.map": "/diabloweb/static/js/runtime~main.bf17ce54.js.map", "runtime~storage.js": "/diabloweb/static/js/runtime~storage.83a78cef.js", @@ -13,14 +13,14 @@ "storage.js.map": "/diabloweb/static/js/storage.d9050d9b.chunk.js.map", "static/js/5.473ccc28.chunk.js": "/diabloweb/static/js/5.473ccc28.chunk.js", "static/js/5.473ccc28.chunk.js.map": "/diabloweb/static/js/5.473ccc28.chunk.js.map", - "4d7698d06f514af8ffba.worker.js": "/diabloweb/4d7698d06f514af8ffba.worker.js", - "4d7698d06f514af8ffba.worker.js.map": "/diabloweb/4d7698d06f514af8ffba.worker.js.map", + "e7446815748fd1b8359c.worker.js": "/diabloweb/e7446815748fd1b8359c.worker.js", + "e7446815748fd1b8359c.worker.js.map": "/diabloweb/e7446815748fd1b8359c.worker.js.map", "index.html": "/diabloweb/index.html", - "precache-manifest.592629225cceeecd3d3c8b75a8adc293.js": "/diabloweb/precache-manifest.592629225cceeecd3d3c8b75a8adc293.js", + "precache-manifest.496d75599cd3144c0493d8110efe5f05.js": "/diabloweb/precache-manifest.496d75599cd3144c0493d8110efe5f05.js", "service-worker.js": "/diabloweb/service-worker.js", "static/css/main.9fcbefb1.chunk.css.map": "/diabloweb/static/css/main.9fcbefb1.chunk.css.map", - "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.91c5173f.wasm", - "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.cbb9c567.wasm", + "static/media/Diablo.wasm": "/diabloweb/static/media/Diablo.0b19cd22.wasm", + "static/media/DiabloSpawn.wasm": "/diabloweb/static/media/DiabloSpawn.005b9acc.wasm", "static/media/App.scss": "/diabloweb/static/media/shift.b40e4a63.svg", "storage.html": "/diabloweb/storage.html" } diff --git a/4d7698d06f514af8ffba.worker.js b/e7446815748fd1b8359c.worker.js similarity index 99% rename from 4d7698d06f514af8ffba.worker.js rename to e7446815748fd1b8359c.worker.js index 9725d4b..4cd5f68 100644 --- a/4d7698d06f514af8ffba.worker.js +++ b/e7446815748fd1b8359c.worker.js @@ -1,2 +1,2 @@ -!function(e){var n={};function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)t.d(r,i,function(n){return e[n]}.bind(null,i));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/diabloweb/",t(t.s=35)}([function(e,n,t){"use strict";var r=t(5),i=t(20),o=Object.prototype.toString;function a(e){return"[object Array]"===o.call(e)}function u(e){return null!==e&&"object"===typeof e}function s(e){return"[object Function]"===o.call(e)}function c(e,n){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var t=0,r=e.length;t1)for(var t=1;t=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function r(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,n){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?t?"/":".":t&&1===r?"/":e.slice(0,r)},n.basename=function(e,n){var t=function(e){"string"!==typeof e&&(e+="");var n,t=0,r=-1,i=!0;for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!i){t=n+1;break}}else-1===r&&(i=!1,r=n+1);return-1===r?"":e.slice(t,r)}(e);return n&&t.substr(-1*n.length)===n&&(t=t.substr(0,t.length-n.length)),t},n.extname=function(e){"string"!==typeof e&&(e+="");for(var n=-1,t=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&n===r-1&&n===t+1?"":e.slice(n,r)};var i="b"==="ab".substr(-1)?function(e,n,t){return e.substr(n,t)}:function(e,n,t){return n<0&&(n=e.length+n),e.substr(n,t)}}).call(this,t(2))},function(e,n,t){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),r=0;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=t(28),u=t(29),s=t(10);e.exports=function(e){return new Promise(function(n,c){var f=e.data,l=e.headers;r.isFormData(f)&&delete l["Content-Type"];var _=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",d=e.auth.password||"";l.Authorization="Basic "+btoa(p+":"+d)}if(_.open(e.method.toUpperCase(),o(e.url,e.params,e.paramsSerializer),!0),_.timeout=e.timeout,_.onreadystatechange=function(){if(_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in _?a(_.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:t,config:e,request:_};i(n,c,r),_=null}},_.onabort=function(){_&&(c(s("Request aborted",e,"ECONNABORTED",_)),_=null)},_.onerror=function(){c(s("Network Error",e,null,_)),_=null},_.ontimeout=function(){c(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",_)),_=null},r.isStandardBrowserEnv()){var m=t(30),y=(e.withCredentials||u(e.url))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;y&&(l[e.xsrfHeaderName]=y)}if("setRequestHeader"in _&&r.forEach(l,function(e,n){"undefined"===typeof f&&"content-type"===n.toLowerCase()?delete l[n]:_.setRequestHeader(n,e)}),e.withCredentials&&(_.withCredentials=!0),e.responseType)try{_.responseType=e.responseType}catch(h){if("json"!==e.responseType)throw h}"function"===typeof e.onDownloadProgress&&_.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){_&&(_.abort(),c(e),_=null)}),void 0===f&&(f=null),_.send(f)})}},function(e,n,t){"use strict";var r=t(27);e.exports=function(e,n,t,i,o){var a=new Error(e);return r(a,n,t,i,o)}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){n=n||{};var t={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof n[e]&&(t[e]=n[e])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(n[i])?t[i]=r.deepMerge(e[i],n[i]):"undefined"!==typeof n[i]?t[i]=n[i]:r.isObject(e[i])?t[i]=r.deepMerge(e[i]):"undefined"!==typeof e[i]&&(t[i]=e[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof n[r]?t[r]=n[r]:"undefined"!==typeof e[r]&&(t[r]=e[r])}),t}},function(e,n,t){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,n,t){e.exports=t.p+"static/media/Diablo.91c5173f.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function m(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof we))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Te("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Oe){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return he(e)}catch(Oe){}}function ue(){var e=oe.last;if(!e)return 0|(ge(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(ge(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ve(4)),R[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(ge(r[i]),e);return e=R[e>>2],0|(ge(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,R[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new we(e))}(e)}var fe={};var le=1,_e={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=600,a.wasmMaxTableSize=600,a.asmGlobalArg={},a.asmLibraryArg={abort:Te,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Te("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=be();try{return a.dynCall_i(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=be();try{return a.dynCall_ii(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=be();try{return a.dynCall_iii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=be();try{return a.dynCall_iiii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=be();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=be();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=be();try{return a.dynCall_ji(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_v:function(e){var n=be();try{a.dynCall_v(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=be();try{a.dynCall_vi(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=be();try{a.dynCall_vii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=be();try{a.dynCall_viii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=be();try{a.dynCall_viiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=be();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=be();try{a.dynCall_viji(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Te("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ve(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Oe){return"undefined"!==typeof FS&&Oe instanceof FS.ErrnoError||Te(Oe),-Oe.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=le,fe[le]=0,le++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in fe?(fe[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),he=a._free=function(){return a.asm._free.apply(null,arguments)},ve=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ge=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),be=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function we(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ae(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Te(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},we.prototype=new Error,we.prototype.constructor=we,ee=function e(){a.calledRun||Ae(),a.calledRun||(ee=e)},a.run=Ae,a.abort=Te,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Ae(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.cbb9c567.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function m(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof we))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Te("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Oe){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return he(e)}catch(Oe){}}function ue(){var e=oe.last;if(!e)return 0|(ge(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(ge(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ve(4)),R[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(ge(r[i]),e);return e=R[e>>2],0|(ge(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,R[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new we(e))}(e)}var fe={};var le=1,_e={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=588,a.wasmMaxTableSize=588,a.asmGlobalArg={},a.asmLibraryArg={abort:Te,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Te("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=be();try{return a.dynCall_i(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=be();try{return a.dynCall_ii(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=be();try{return a.dynCall_iii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=be();try{return a.dynCall_iiii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=be();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=be();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=be();try{return a.dynCall_ji(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_v:function(e){var n=be();try{a.dynCall_v(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=be();try{a.dynCall_vi(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=be();try{a.dynCall_vii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=be();try{a.dynCall_viii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=be();try{a.dynCall_viiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=be();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=be();try{a.dynCall_viji(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Te("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ve(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Oe){return"undefined"!==typeof FS&&Oe instanceof FS.ErrnoError||Te(Oe),-Oe.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=le,fe[le]=0,le++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in fe?(fe[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),he=a._free=function(){return a.asm._free.apply(null,arguments)},ve=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ge=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),be=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function we(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ae(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Te(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},we.prototype=new Error,we.prototype.constructor=we,ee=function e(){a.calledRun||Ae(),a.calledRun||(ee=e)},a.run=Ae,a.abort=Te,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Ae(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t(19)},function(e,n,t){var r=function(e){"use strict";var n,t=Object.prototype,r=t.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof m?n:m,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=f;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,t);if(u){if(u===d)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(r===f)throw r=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r=_;var s=c(e,n,t);if("normal"===s.type){if(r=t.done?p:l,s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(r=p,t.method="throw",t.arg=s.arg)}}}(e,t,a),o}function c(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(r){return{type:"throw",arg:r}}}e.wrap=s;var f="suspendedStart",l="suspendedYield",_="executing",p="completed",d={};function m(){}function y(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,E=g&&g(g(x([])));E&&E!==t&&r.call(E,o)&&(v=E);var b=h.prototype=m.prototype=Object.create(v);function w(e){["next","throw","return"].forEach(function(n){e[n]=function(e){return this._invoke(n,e)}})}function A(e){var n;this._invoke=function(t,i){function o(){return new Promise(function(n,o){!function n(t,i,o,a){var u=c(e[t],e,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(f).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}function T(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,d;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),C(t),d}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var i=r.arg;C(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),d}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,n,t){"use strict";var r=t(0),i=t(5),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(s.defaults,e))},s.Cancel=t(12),s.CancelToken=t(33),s.isCancel=t(7),s.all=function(e){return Promise.all(e)},s.spread=t(34),e.exports=s,e.exports.default=s},function(e,n){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,n,t){"use strict";var r=t(0),i=t(6),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[a,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},s.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(n,t,i){return this.request(r.merge(i||{},{method:e,url:n,data:t}))}}),e.exports=s},function(e,n,t){"use strict";var r=t(0);function i(){this.handlers=[]}i.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=i},function(e,n,t){"use strict";var r=t(0),i=t(24),o=t(7),a=t(8),u=t(31),s=t(32);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!u(e.url)&&(e.url=s(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]}),(e.adapter||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(n)||(c(e),n&&n.response&&(n.response.data=i(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n,t){return r.forEach(t,function(t){e=t(e,n)}),e}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){r.forEach(e,function(t,r){r!==n&&r.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[r])})}},function(e,n,t){"use strict";var r=t(10);e.exports=function(e,n,t){var i=t.config.validateStatus;!i||i(t.status)?e(t):n(r("Request failed with status code "+t.status,t.config,null,t.request,t))}},function(e,n,t){"use strict";e.exports=function(e,n,t,r,i){return e.config=n,t&&(e.code=t),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,n,t){"use strict";var r=t(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var n,t,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?function(){var e,n=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");function i(e){var r=e;return n&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return e=i(window.location.href),function(n){var t=r.isString(n)?i(n):n;return t.protocol===e.protocol&&t.host===e.host}}():function(){return!0}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,n,t,i,o,a){var u=[];u.push(e+"="+encodeURIComponent(n)),r.isNumber(t)&&u.push("expires="+new Date(t).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,n,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";e.exports=function(e,n){return n?e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):e}},function(e,n,t){"use strict";var r=t(12);function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new r(e),n(t.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(n){e=n}),cancel:e}},e.exports=i},function(e,n,t){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";function r(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n=0?x?"spawn".concat(e,".sv"):"single_".concat(e,".sv"):null})},get_file_size:function(e){var n=O.get(e.toLowerCase());return n?n.byteLength:0},get_file_contents:function(e,n,t){var r=O.get(e.toLowerCase());r&&n.set(r.subarray(t,t+n.length))},put_file_contents:function(e,n){e=e.toLowerCase(),O.set(e,n),b.postMessage({action:"fs",func:"update",params:[e,n]})},remove_file:function(e){e=e.toLowerCase(),O.delete(e),b.postMessage({action:"fs",func:"delete",params:[e]})},set_cursor:function(e,n){b.postMessage({action:"cursor",x:e,y:n})},open_keyboard:function(){b.postMessage({action:"keyboard",open:!0})},close_keyboard:function(){b.postMessage({action:"keyboard",open:!1})}};var j={draw_begin:function(){C={images:[],text:[],clip:null,belt:S},S=null},draw_blit:function(e,n,t,r,i){C.images.push({x:e,y:n,w:t,h:r,data:i.slice()})},draw_clip_text:function(e,n,t,r){C.clip={x0:e,y0:n,x1:t,y1:r}},draw_text:function(e,n,t,r){C.text.push({x:e,y:n,text:t,color:r})},draw_end:function(){var e=C.images.map(function(e){return e.data.buffer});C.belt&&e.push(C.belt.buffer),b.postMessage({action:"render",batch:C},e),C=null},draw_belt:function(e){S=e.slice()}},N={draw_begin:function(){A.save(),A.font="bold 13px Times New Roman"},draw_blit:function(e,n,t,r,i){T.data.set(i),A.putImageData(T,e,n)},draw_clip_text:function(e,n,t,r){A.beginPath(),A.rect(e,n,t-e,r-n),A.clip()},draw_text:function(e,n,t,r){var i=r>>16&255,o=r>>8&255,a=255&r;A.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),A.fillText(t,e,n+22)},draw_end:function(){A.restore();var e=w.transferToImageBitmap(),n=[e];S&&n.push(S.buffer),b.postMessage({action:"render",batch:{bitmap:e,belt:S}},n),S=null},draw_belt:function(e){S=e.slice()}},D=null,L=null,M=0,I=0;["create_sound","duplicate_sound"].forEach(function(e){R[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=M?D.push({func:e,params:t}):b.postMessage({action:"audio",func:e,params:t})}}),b.DApi=R;var P=null;function B(e){try{var n;D=[],L=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i1)for(var t=1;t=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),t++):t&&(e.splice(r,1),t--)}if(n)for(;t--;t)e.unshift("..");return e}function r(e,n){if(e.filter)return e.filter(n);for(var t=[],r=0;r=-1&&!i;o--){var a=o>=0?arguments[o]:e.cwd();if("string"!==typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(n=a+"/"+n,i="/"===a.charAt(0))}return(i?"/":"")+(n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"))||"."},n.normalize=function(e){var o=n.isAbsolute(e),a="/"===i(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!o).join("/"))||o||(e="."),e&&a&&(e+="/"),(o?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,n){if("string"!==typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var n=0;n=0&&""===e[t];t--);return n>t?[]:e.slice(n,t-n+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),o=r(t.split("/")),a=Math.min(i.length,o.length),u=a,s=0;s=1;--o)if(47===(n=e.charCodeAt(o))){if(!i){r=o;break}}else i=!1;return-1===r?t?"/":".":t&&1===r?"/":e.slice(0,r)},n.basename=function(e,n){var t=function(e){"string"!==typeof e&&(e+="");var n,t=0,r=-1,i=!0;for(n=e.length-1;n>=0;--n)if(47===e.charCodeAt(n)){if(!i){t=n+1;break}}else-1===r&&(i=!1,r=n+1);return-1===r?"":e.slice(t,r)}(e);return n&&t.substr(-1*n.length)===n&&(t=t.substr(0,t.length-n.length)),t},n.extname=function(e){"string"!==typeof e&&(e+="");for(var n=-1,t=0,r=-1,i=!0,o=0,a=e.length-1;a>=0;--a){var u=e.charCodeAt(a);if(47!==u)-1===r&&(i=!1,r=a+1),46===u?-1===n?n=a:1!==o&&(o=1):-1!==n&&(o=-1);else if(!i){t=a+1;break}}return-1===n||-1===r||0===o||1===o&&n===r-1&&n===t+1?"":e.slice(n,r)};var i="b"==="ab".substr(-1)?function(e,n,t){return e.substr(n,t)}:function(e,n,t){return n<0&&(n=e.length+n),e.substr(n,t)}}).call(this,t(2))},function(e,n,t){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),r=0;r=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(o)}),e.exports=u}).call(this,t(2))},function(e,n,t){"use strict";var r=t(0),i=t(26),o=t(6),a=t(28),u=t(29),s=t(10);e.exports=function(e){return new Promise(function(n,c){var f=e.data,l=e.headers;r.isFormData(f)&&delete l["Content-Type"];var _=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",d=e.auth.password||"";l.Authorization="Basic "+btoa(p+":"+d)}if(_.open(e.method.toUpperCase(),o(e.url,e.params,e.paramsSerializer),!0),_.timeout=e.timeout,_.onreadystatechange=function(){if(_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in _?a(_.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:t,config:e,request:_};i(n,c,r),_=null}},_.onabort=function(){_&&(c(s("Request aborted",e,"ECONNABORTED",_)),_=null)},_.onerror=function(){c(s("Network Error",e,null,_)),_=null},_.ontimeout=function(){c(s("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",_)),_=null},r.isStandardBrowserEnv()){var m=t(30),y=(e.withCredentials||u(e.url))&&e.xsrfCookieName?m.read(e.xsrfCookieName):void 0;y&&(l[e.xsrfHeaderName]=y)}if("setRequestHeader"in _&&r.forEach(l,function(e,n){"undefined"===typeof f&&"content-type"===n.toLowerCase()?delete l[n]:_.setRequestHeader(n,e)}),e.withCredentials&&(_.withCredentials=!0),e.responseType)try{_.responseType=e.responseType}catch(h){if("json"!==e.responseType)throw h}"function"===typeof e.onDownloadProgress&&_.addEventListener("progress",e.onDownloadProgress),"function"===typeof e.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){_&&(_.abort(),c(e),_=null)}),void 0===f&&(f=null),_.send(f)})}},function(e,n,t){"use strict";var r=t(27);e.exports=function(e,n,t,i,o){var a=new Error(e);return r(a,n,t,i,o)}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){n=n||{};var t={};return r.forEach(["url","method","params","data"],function(e){"undefined"!==typeof n[e]&&(t[e]=n[e])}),r.forEach(["headers","auth","proxy"],function(i){r.isObject(n[i])?t[i]=r.deepMerge(e[i],n[i]):"undefined"!==typeof n[i]?t[i]=n[i]:r.isObject(e[i])?t[i]=r.deepMerge(e[i]):"undefined"!==typeof e[i]&&(t[i]=e[i])}),r.forEach(["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"],function(r){"undefined"!==typeof n[r]?t[r]=n[r]:"undefined"!==typeof e[r]&&(t[r]=e[r])}),t}},function(e,n,t){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,n,t){e.exports=t.p+"static/media/Diablo.0b19cd22.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function m(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof we))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Te("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Oe){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return he(e)}catch(Oe){}}function ue(){var e=oe.last;if(!e)return 0|(ge(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(ge(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ve(4)),R[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(ge(r[i]),e);return e=R[e>>2],0|(ge(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,R[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new we(e))}(e)}var fe={};var le=1,_e={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=600,a.wasmMaxTableSize=600,a.asmGlobalArg={},a.asmLibraryArg={abort:Te,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Te("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=be();try{return a.dynCall_i(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=be();try{return a.dynCall_ii(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=be();try{return a.dynCall_iii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=be();try{return a.dynCall_iiii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=be();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=be();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=be();try{return a.dynCall_ji(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_v:function(e){var n=be();try{a.dynCall_v(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=be();try{a.dynCall_vi(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=be();try{a.dynCall_vii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=be();try{a.dynCall_viii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=be();try{a.dynCall_viiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=be();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=be();try{a.dynCall_viji(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Te("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ve(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Oe){return"undefined"!==typeof FS&&Oe instanceof FS.ErrnoError||Te(Oe),-Oe.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=le,fe[le]=0,le++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in fe?(fe[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),he=a._free=function(){return a.asm._free.apply(null,arguments)},ve=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ge=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),be=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function we(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ae(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Te(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},we.prototype=new Error,we.prototype.constructor=we,ee=function e(){a.calledRun||Ae(),a.calledRun||(ee=e)},a.run=Ae,a.abort=Te,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Ae(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t.p+"static/media/DiabloSpawn.005b9acc.wasm"},function(e,n,t){(function(n,r){var i=function(){var e="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;return function(i){var o,a="undefined"!==typeof(i=i||{})?i:{},u={};for(o in a)a.hasOwnProperty(o)&&(u[o]=a[o]);a.arguments=[],a.thisProgram="./this.program",a.quit=function(e,n){throw n},a.preRun=[],a.postRun=[];var s,c,f=!1,l=!1;f="object"===typeof window,l="function"===typeof importScripts,s="object"===typeof n&&!f&&!l,c=!f&&!s&&!l;var _,p,d="";function m(e){return a.locateFile?a.locateFile(e,d):d+e}s?(d=r+"/",a.read=function(e,n){var r;return _||(_=t(3)),p||(p=t(4)),e=p.normalize(e),r=_.readFileSync(e),n?r:r.toString()},a.readBinary=function(e){var n=a.read(e,!0);return n.buffer||(n=new Uint8Array(n)),w(n.buffer),n},n.argv.length>1&&(a.thisProgram=n.argv[1].replace(/\\/g,"/")),a.arguments=n.argv.slice(2),n.on("uncaughtException",function(e){if(!(e instanceof we))throw e}),n.on("unhandledRejection",function(e,t){n.exit(1)}),a.quit=function(e){n.exit(e)},a.inspect=function(){return"[Emscripten Module object]"}):c?("undefined"!=typeof read&&(a.read=function(e){return read(e)}),a.readBinary=function(e){var n;return"function"===typeof readbuffer?new Uint8Array(readbuffer(e)):(w("object"===typeof(n=read(e,"binary"))),n)},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(e){quit(e)})):(f||l)&&(f?document.currentScript&&(d=document.currentScript.src):d=self.location.href,e&&(d=e),d=0!==d.indexOf("blob:")?d.split("/").slice(0,-1).join("/")+"/":"",a.read=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.send(null),n.responseText},l&&(a.readBinary=function(e){var n=new XMLHttpRequest;return n.open("GET",e,!1),n.responseType="arraybuffer",n.send(null),new Uint8Array(n.response)}),a.readAsync=function(e,n,t){var r=new XMLHttpRequest;r.open("GET",e,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status||0==r.status&&r.response?n(r.response):t()},r.onerror=t,r.send(null)},a.setWindowTitle=function(e){document.title=e});var y=a.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),h=a.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||y);for(o in u)u.hasOwnProperty(o)&&(a[o]=u[o]);u=void 0;var v=16;function g(e,n){return n||(n=v),e=Math.ceil(e/n)*n}var E={"f64-rem":function(e,n){return e%n},debugger:function(){}},b=(new Array(0),0);function w(e,n){e||Te("Assertion failed: "+n)}function A(e,n){if(0===n||!e)return"";for(var t,r=0,i=0;r|=t=x[e+i>>0],(0!=t||n)&&(i++,!n||i!=n););n||(n=i);var o="";if(r<128){for(var a;n>0;)a=String.fromCharCode.apply(String,x.subarray(e,e+Math.min(n,1024))),o=o?o+a:a,e+=1024,n-=1024;return o}return function(e){return O(x,e)}(e)}var T="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;function O(e,n){for(var t=n;e[t];)++t;if(t-n>16&&e.subarray&&T)return T.decode(e.subarray(n,t));for(var r,i,o,a,u,s="";;){if(!(r=e[n++]))return s;if(128&r)if(i=63&e[n++],192!=(224&r))if(o=63&e[n++],224==(240&r)?r=(15&r)<<12|i<<6|o:(a=63&e[n++],240==(248&r)?r=(7&r)<<18|i<<12|o<<6|a:(u=63&e[n++],r=248==(252&r)?(3&r)<<24|i<<18|o<<12|a<<6|u:(1&r)<<30|i<<24|o<<18|a<<12|u<<6|63&e[n++])),r<65536)s+=String.fromCharCode(r);else{var c=r-65536;s+=String.fromCharCode(55296|c>>10,56320|1023&c)}else s+=String.fromCharCode((31&r)<<6|i);else s+=String.fromCharCode(r)}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var C,S,x,R,j,N,D,L,M,I,P=65536,B=16777216,k=16777216;function U(e,n){return e%n>0&&(e+=n-e%n),e}function F(e){a.buffer=C=e}function W(){a.HEAP8=S=new Int8Array(C),a.HEAP16=new Int16Array(C),a.HEAP32=R=new Int32Array(C),a.HEAPU8=x=new Uint8Array(C),a.HEAPU16=new Uint16Array(C),a.HEAPU32=new Uint32Array(C),a.HEAPF32=j=new Float32Array(C),a.HEAPF64=new Float64Array(C)}N=L=I=0,a.reallocBuffer||(a.reallocBuffer=function(e){var n;try{if(ArrayBuffer.transfer)n=ArrayBuffer.transfer(C,e);else{var t=S;n=new ArrayBuffer(e),new Int8Array(n).set(t)}}catch(r){return!1}return!!ye(n)&&n});try{Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get)(new ArrayBuffer(4))}catch(Oe){(function(e){return e.byteLength})}var H=a.TOTAL_STACK||5242880,G=a.TOTAL_MEMORY||134217728;function q(e){for(;e.length>0;){var n=e.shift();if("function"!=typeof n){var t=n.func;"number"===typeof t?void 0===n.arg?a.dynCall_v(t):a.dynCall_vi(t,n.arg):t(void 0===n.arg?null:n.arg)}else n()}}G0),n.refcount--,0!==n.refcount||n.rethrown||(n.destructor&&a.dynCall_vi(n.destructor,e),delete oe.infos[e],ae(e))}},clearRef:function(e){e&&(oe.infos[e].refcount=0)}};function ae(e){try{return he(e)}catch(Oe){}}function ue(){var e=oe.last;if(!e)return 0|(ge(0),0);var n=oe.infos[e],t=n.type;if(!t)return 0|(ge(0),e);var r=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(t);ue.buffer||(ue.buffer=ve(4)),R[ue.buffer>>2]=e,e=ue.buffer;for(var i=0;i>2],n.adjusted=e,0|(ge(r[i]),e);return e=R[e>>2],0|(ge(t),e)}var se={varargs:0,get:function(e){return se.varargs+=4,R[se.varargs-4>>2]},getStr:function(){return A(se.get())},get64:function(){var e=se.get(),n=se.get();return w(e>=0?0===n:-1===n),e},getZero:function(){w(0===se.get())}};function ce(e){!function(e,n){if(n&&a.noExitRuntime&&0===e)return;a.noExitRuntime||(b=!0,e,L=de,q(Y),!0,a.onExit&&a.onExit(e));a.quit(e,new we(e))}(e)}var fe={};var le=1,_e={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};I=function(e){var n=N;return N=N+e+15&-16,n}(4),D=L=g(N),M=g(D+H),R[I>>2]=M,a.wasmTableSize=588,a.wasmMaxTableSize=588,a.asmGlobalArg={},a.asmLibraryArg={abort:Te,enlargeMemory:function(){var e=a.usingWasm?P:B,n=2147483648-e;if(R[I>>2]>n)return!1;var t=G;for(G=Math.max(G,k);G>2];)G=G<=536870912?U(2*G,e):Math.min(U((3*G+2147483648)/4,e),n);var r=a.reallocBuffer(G);return r&&r.byteLength==G?(F(r),W(),!0):(G=t,!1)},getTotalMemory:function(){return G},abortOnCannotGrowMemory:function(){Te("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+G+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_i:function(e){var n=be();try{return a.dynCall_i(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ii:function(e,n){var t=be();try{return a.dynCall_ii(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iii:function(e,n,t){var r=be();try{return a.dynCall_iii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiii:function(e,n,t,r){var i=be();try{return a.dynCall_iiii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiii:function(e,n,t,r,i){var o=be();try{return a.dynCall_iiiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_iiiiii:function(e,n,t,r,i,o){var u=be();try{return a.dynCall_iiiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_ji:function(e,n){var t=be();try{return a.dynCall_ji(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_v:function(e){var n=be();try{a.dynCall_v(e)}catch(Oe){if(Ee(n),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vi:function(e,n){var t=be();try{a.dynCall_vi(e,n)}catch(Oe){if(Ee(t),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_vii:function(e,n,t){var r=be();try{a.dynCall_vii(e,n,t)}catch(Oe){if(Ee(r),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viii:function(e,n,t,r){var i=be();try{a.dynCall_viii(e,n,t,r)}catch(Oe){if(Ee(i),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiii:function(e,n,t,r,i){var o=be();try{a.dynCall_viiii(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viiiii:function(e,n,t,r,i,o){var u=be();try{a.dynCall_viiiii(e,n,t,r,i,o)}catch(Oe){if(Ee(u),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},invoke_viji:function(e,n,t,r,i){var o=be();try{a.dynCall_viji(e,n,t,r,i)}catch(Oe){if(Ee(o),"number"!==typeof Oe&&"longjmp"!==Oe)throw Oe;a.setThrew(1,0)}},___assert_fail:function(e,n,t,r){Te("Assertion failed: "+A(e)+", at: "+[n?A(n):"unknown filename",t,r?A(r):"unknown function"])},___cxa_allocate_exception:function(e){return ve(e)},___cxa_begin_catch:function(e){var n=oe.infos[e];return n&&!n.caught&&(n.caught=!0,ie.uncaught_exception--),n&&(n.rethrown=!1),oe.caught.push(e),oe.addRef(oe.deAdjust(e)),e},___cxa_end_catch:function(){a.setThrew(0);var e=oe.caught.pop();e&&(oe.decRef(oe.deAdjust(e)),oe.last=0)},___cxa_find_matching_catch_2:function(){return ue.apply(null,arguments)},___cxa_find_matching_catch_3:function(){return ue.apply(null,arguments)},___cxa_free_exception:ae,___cxa_throw:function(e,n,t){throw oe.infos[e]={ptr:e,adjusted:e,type:n,destructor:t,refcount:0,caught:!1,rethrown:!1},oe.last=e,"uncaught_exception"in ie?ie.uncaught_exception++:ie.uncaught_exception=1,e},___lock:function(){},___resumeException:function(e){throw oe.last||(oe.last=e),e},___setErrNo:function(e){return a.___errno_location&&(R[a.___errno_location()>>2]=e),e},___syscall140:function(e,n){se.varargs=n;try{var t=se.getStreamFromFD(),r=(se.get(),se.get()),i=se.get(),o=se.get(),a=r;return FS.llseek(t,a,o),R[i>>2]=t.position,t.getdents&&0===a&&0===o&&(t.getdents=null),0}catch(Oe){return"undefined"!==typeof FS&&Oe instanceof FS.ErrnoError||Te(Oe),-Oe.errno}},___syscall146:function e(n,t){se.varargs=t;try{var r=se.get(),i=se.get(),o=se.get(),a=0;e.buffers||(e.buffers=[null,[],[]],e.printChar=function(n,t){var r=e.buffers[n];w(r),0===t||10===t?((1===n?y:h)(O(r,0)),r.length=0):r.push(t)});for(var u=0;u>2],c=R[i+(8*u+4)>>2],f=0;f>2]=le,fe[le]=0,le++,0)},_pthread_once:function e(n,t){e.seen||(e.seen={}),n in e.seen||(a.dynCall_v(t),e.seen[n]=1)},_pthread_setspecific:function(e,n){return e in fe?(fe[e]=n,0):_e.EINVAL},_put_file_contents:function(e,n,t){var r=x.indexOf(0,e),i=String.fromCharCode.apply(null,x.subarray(e,r));self.DApi.put_file_contents(i,x.slice(n,n+t))},_remove_file:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.DApi.remove_file(t)},_show_alert:function(e){var n=x.indexOf(0,e),t=String.fromCharCode.apply(null,x.subarray(e,n));self.alert(t)},_time:function(e){var n=Date.now()/1e3|0;return e&&(R[e>>2]=n),n},DYNAMICTOP_PTR:I,STACKTOP:L};var pe=a.asm(a.asmGlobalArg,a.asmLibraryArg,C);a.asm=pe;a._DApi_Char=function(){return a.asm._DApi_Char.apply(null,arguments)},a._DApi_Init=function(){return a.asm._DApi_Init.apply(null,arguments)},a._DApi_Key=function(){return a.asm._DApi_Key.apply(null,arguments)},a._DApi_Mouse=function(){return a.asm._DApi_Mouse.apply(null,arguments)},a._DApi_Render=function(){return a.asm._DApi_Render.apply(null,arguments)},a._DApi_SyncText=function(){return a.asm._DApi_SyncText.apply(null,arguments)};var de,me=a.__GLOBAL__sub_I_msgcmd_cpp=function(){return a.asm.__GLOBAL__sub_I_msgcmd_cpp.apply(null,arguments)},ye=(a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)},a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)},a.___em_js__api_close_keyboard=function(){return a.asm.___em_js__api_close_keyboard.apply(null,arguments)},a.___em_js__api_create_sound_float=function(){return a.asm.___em_js__api_create_sound_float.apply(null,arguments)},a.___em_js__api_delete_sound=function(){return a.asm.___em_js__api_delete_sound.apply(null,arguments)},a.___em_js__api_draw_begin=function(){return a.asm.___em_js__api_draw_begin.apply(null,arguments)},a.___em_js__api_draw_belt=function(){return a.asm.___em_js__api_draw_belt.apply(null,arguments)},a.___em_js__api_draw_blit=function(){return a.asm.___em_js__api_draw_blit.apply(null,arguments)},a.___em_js__api_draw_clip_text=function(){return a.asm.___em_js__api_draw_clip_text.apply(null,arguments)},a.___em_js__api_draw_end=function(){return a.asm.___em_js__api_draw_end.apply(null,arguments)},a.___em_js__api_draw_text=function(){return a.asm.___em_js__api_draw_text.apply(null,arguments)},a.___em_js__api_duplicate_sound=function(){return a.asm.___em_js__api_duplicate_sound.apply(null,arguments)},a.___em_js__api_exit_game=function(){return a.asm.___em_js__api_exit_game.apply(null,arguments)},a.___em_js__api_open_keyboard=function(){return a.asm.___em_js__api_open_keyboard.apply(null,arguments)},a.___em_js__api_play_sound=function(){return a.asm.___em_js__api_play_sound.apply(null,arguments)},a.___em_js__api_set_cursor=function(){return a.asm.___em_js__api_set_cursor.apply(null,arguments)},a.___em_js__api_set_volume=function(){return a.asm.___em_js__api_set_volume.apply(null,arguments)},a.___em_js__api_stop_sound=function(){return a.asm.___em_js__api_stop_sound.apply(null,arguments)},a.___em_js__exit_error=function(){return a.asm.___em_js__exit_error.apply(null,arguments)},a.___em_js__get_file_contents=function(){return a.asm.___em_js__get_file_contents.apply(null,arguments)},a.___em_js__get_file_size=function(){return a.asm.___em_js__get_file_size.apply(null,arguments)},a.___em_js__put_file_contents=function(){return a.asm.___em_js__put_file_contents.apply(null,arguments)},a.___em_js__remove_file=function(){return a.asm.___em_js__remove_file.apply(null,arguments)},a.___em_js__show_alert=function(){return a.asm.___em_js__show_alert.apply(null,arguments)},a.___em_js__trace_pop=function(){return a.asm.___em_js__trace_pop.apply(null,arguments)},a.___em_js__trace_push=function(){return a.asm.___em_js__trace_push.apply(null,arguments)},a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)}),he=a._free=function(){return a.asm._free.apply(null,arguments)},ve=a._malloc=function(){return a.asm._malloc.apply(null,arguments)},ge=a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)},Ee=(a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)},a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)}),be=a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_i=function(){return a.asm.dynCall_i.apply(null,arguments)},a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)},a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)},a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)},a.dynCall_iiiii=function(){return a.asm.dynCall_iiiii.apply(null,arguments)},a.dynCall_iiiiii=function(){return a.asm.dynCall_iiiiii.apply(null,arguments)},a.dynCall_ji=function(){return a.asm.dynCall_ji.apply(null,arguments)},a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)},a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)},a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)},a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)},a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)},a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null,arguments)},a.dynCall_viji=function(){return a.asm.dynCall_viji.apply(null,arguments)};function we(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function Ae(e){function n(){a.calledRun||(a.calledRun=!0,b||(Q||(Q=!0,q(K)),q(X),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)J(a.postRun.shift());q(V)}()))}e=e||a.arguments,Z>0||(!function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)e=a.preRun.shift(),z.unshift(e);var e;q(z)}(),Z>0||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),n()},1)):n()))}function Te(e){throw a.onAbort&&a.onAbort(e),void 0!==e?(y(e),h(e),e=JSON.stringify(e)):e="",b=!0,1,"abort("+e+"). Build with -s ASSERTIONS=1 for more info."}if(a.asm=pe,a.then=function(e){if(a.calledRun)e(a);else{var n=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){n&&n(),e(a)}}return a},we.prototype=new Error,we.prototype.constructor=we,ee=function e(){a.calledRun||Ae(),a.calledRun||(ee=e)},a.run=Ae,a.abort=Te,a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return a.noExitRuntime=!0,Ae(),a.ready=new Promise(function(e,n){delete a.then,a.onAbort=function(e){n(e)},J(function(){e(a)})}),i}}();e.exports=i}).call(this,t(2),"/")},function(e,n,t){e.exports=t(19)},function(e,n,t){var r=function(e){"use strict";var n,t=Object.prototype,r=t.hasOwnProperty,i="function"===typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function s(e,n,t,r){var i=n&&n.prototype instanceof m?n:m,o=Object.create(i.prototype),a=new S(r||[]);return o._invoke=function(e,n,t){var r=f;return function(i,o){if(r===_)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return R()}for(t.method=i,t.arg=o;;){var a=t.delegate;if(a){var u=T(a,t);if(u){if(u===d)continue;return u}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(r===f)throw r=p,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);r=_;var s=c(e,n,t);if("normal"===s.type){if(r=t.done?p:l,s.arg===d)continue;return{value:s.arg,done:t.done}}"throw"===s.type&&(r=p,t.method="throw",t.arg=s.arg)}}}(e,t,a),o}function c(e,n,t){try{return{type:"normal",arg:e.call(n,t)}}catch(r){return{type:"throw",arg:r}}}e.wrap=s;var f="suspendedStart",l="suspendedYield",_="executing",p="completed",d={};function m(){}function y(){}function h(){}var v={};v[o]=function(){return this};var g=Object.getPrototypeOf,E=g&&g(g(x([])));E&&E!==t&&r.call(E,o)&&(v=E);var b=h.prototype=m.prototype=Object.create(v);function w(e){["next","throw","return"].forEach(function(n){e[n]=function(e){return this._invoke(n,e)}})}function A(e){var n;this._invoke=function(t,i){function o(){return new Promise(function(n,o){!function n(t,i,o,a){var u=c(e[t],e,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&r.call(f,"__await")?Promise.resolve(f.__await).then(function(e){n("next",e,o,a)},function(e){n("throw",e,o,a)}):Promise.resolve(f).then(function(e){s.value=e,o(s)},function(e){return n("throw",e,o,a)})}a(u.arg)}(t,i,n,o)})}return n=n?n.then(o,o):o()}}function T(e,t){var r=e.iterator[t.method];if(r===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,T(e,t),"throw"===t.method))return d;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var i=c(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,d;var o=i.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,d):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,d)}function O(e){var n={tryLoc:e[0]};1 in e&&(n.catchLoc=e[1]),2 in e&&(n.finallyLoc=e[2],n.afterLoc=e[3]),this.tryEntries.push(n)}function C(e){var n=e.completion||{};n.type="normal",delete n.arg,e.completion=n}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function x(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var i=-1,a=function t(){for(;++i=0;--o){var a=this.tryEntries[o],u=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--n){var t=this.tryEntries[n];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),C(t),d}},catch:function(e){for(var n=this.tryEntries.length-1;n>=0;--n){var t=this.tryEntries[n];if(t.tryLoc===e){var r=t.completion;if("throw"===r.type){var i=r.arg;C(t)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:x(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=n),d}},e}(e.exports);try{regeneratorRuntime=r}catch(i){Function("r","regeneratorRuntime = r")(r)}},function(e,n,t){"use strict";var r=t(0),i=t(5),o=t(21),a=t(11);function u(e){var n=new o(e),t=i(o.prototype.request,n);return r.extend(t,o.prototype,n),r.extend(t,n),t}var s=u(t(8));s.Axios=o,s.create=function(e){return u(a(s.defaults,e))},s.Cancel=t(12),s.CancelToken=t(33),s.isCancel=t(7),s.all=function(e){return Promise.all(e)},s.spread=t(34),e.exports=s,e.exports.default=s},function(e,n){e.exports=function(e){return null!=e&&null!=e.constructor&&"function"===typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,n,t){"use strict";var r=t(0),i=t(6),o=t(22),a=t(23),u=t(11);function s(e){this.defaults=e,this.interceptors={request:new o,response:new o}}s.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=u(this.defaults,e)).method=e.method?e.method.toLowerCase():"get";var n=[a,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},s.prototype.getUri=function(e){return e=u(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){s.prototype[e]=function(n,t,i){return this.request(r.merge(i||{},{method:e,url:n,data:t}))}}),e.exports=s},function(e,n,t){"use strict";var r=t(0);function i(){this.handlers=[]}i.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=i},function(e,n,t){"use strict";var r=t(0),i=t(24),o=t(7),a=t(8),u=t(31),s=t(32);function c(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return c(e),e.baseURL&&!u(e.url)&&(e.url=s(e.baseURL,e.url)),e.headers=e.headers||{},e.data=i(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]}),(e.adapter||a.adapter)(e).then(function(n){return c(e),n.data=i(n.data,n.headers,e.transformResponse),n},function(n){return o(n)||(c(e),n&&n.response&&(n.response.data=i(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n,t){return r.forEach(t,function(t){e=t(e,n)}),e}},function(e,n,t){"use strict";var r=t(0);e.exports=function(e,n){r.forEach(e,function(t,r){r!==n&&r.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[r])})}},function(e,n,t){"use strict";var r=t(10);e.exports=function(e,n,t){var i=t.config.validateStatus;!i||i(t.status)?e(t):n(r("Request failed with status code "+t.status,t.config,null,t.request,t))}},function(e,n,t){"use strict";e.exports=function(e,n,t,r,i){return e.config=n,t&&(e.code=t),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,n,t){"use strict";var r=t(0),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var n,t,o,a={};return e?(r.forEach(e.split("\n"),function(e){if(o=e.indexOf(":"),n=r.trim(e.substr(0,o)).toLowerCase(),t=r.trim(e.substr(o+1)),n){if(a[n]&&i.indexOf(n)>=0)return;a[n]="set-cookie"===n?(a[n]?a[n]:[]).concat([t]):a[n]?a[n]+", "+t:t}}),a):a}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?function(){var e,n=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");function i(e){var r=e;return n&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return e=i(window.location.href),function(n){var t=r.isString(n)?i(n):n;return t.protocol===e.protocol&&t.host===e.host}}():function(){return!0}},function(e,n,t){"use strict";var r=t(0);e.exports=r.isStandardBrowserEnv()?{write:function(e,n,t,i,o,a){var u=[];u.push(e+"="+encodeURIComponent(n)),r.isNumber(t)&&u.push("expires="+new Date(t).toGMTString()),r.isString(i)&&u.push("path="+i),r.isString(o)&&u.push("domain="+o),!0===a&&u.push("secure"),document.cookie=u.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,n,t){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";e.exports=function(e,n){return n?e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,""):e}},function(e,n,t){"use strict";var r=t(12);function i(e){if("function"!==typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new r(e),n(t.reason))})}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.source=function(){var e;return{token:new i(function(n){e=n}),cancel:e}},e.exports=i},function(e,n,t){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";function r(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=[],r=!0,i=!1,o=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(t.push(a.value),!n||t.length!==n);r=!0);}catch(s){i=!0,o=s}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return t}(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}t.r(n);var i=t(1),o=t.n(i);function a(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n=0?x?"spawn".concat(e,".sv"):"single_".concat(e,".sv"):null})},get_file_size:function(e){var n=O.get(e.toLowerCase());return n?n.byteLength:0},get_file_contents:function(e,n,t){var r=O.get(e.toLowerCase());r&&n.set(r.subarray(t,t+n.length))},put_file_contents:function(e,n){e=e.toLowerCase(),O.set(e,n),b.postMessage({action:"fs",func:"update",params:[e,n]})},remove_file:function(e){e=e.toLowerCase(),O.delete(e),b.postMessage({action:"fs",func:"delete",params:[e]})},set_cursor:function(e,n){b.postMessage({action:"cursor",x:e,y:n})},open_keyboard:function(){b.postMessage({action:"keyboard",open:!0})},close_keyboard:function(){b.postMessage({action:"keyboard",open:!1})}};var j={draw_begin:function(){C={images:[],text:[],clip:null,belt:S},S=null},draw_blit:function(e,n,t,r,i){C.images.push({x:e,y:n,w:t,h:r,data:i.slice()})},draw_clip_text:function(e,n,t,r){C.clip={x0:e,y0:n,x1:t,y1:r}},draw_text:function(e,n,t,r){C.text.push({x:e,y:n,text:t,color:r})},draw_end:function(){var e=C.images.map(function(e){return e.data.buffer});C.belt&&e.push(C.belt.buffer),b.postMessage({action:"render",batch:C},e),C=null},draw_belt:function(e){S=e.slice()}},N={draw_begin:function(){A.save(),A.font="bold 13px Times New Roman"},draw_blit:function(e,n,t,r,i){T.data.set(i),A.putImageData(T,e,n)},draw_clip_text:function(e,n,t,r){A.beginPath(),A.rect(e,n,t-e,r-n),A.clip()},draw_text:function(e,n,t,r){var i=r>>16&255,o=r>>8&255,a=255&r;A.fillStyle="rgb(".concat(i,", ").concat(o,", ").concat(a,")"),A.fillText(t,e,n+22)},draw_end:function(){A.restore();var e=w.transferToImageBitmap(),n=[e];S&&n.push(S.buffer),b.postMessage({action:"render",batch:{bitmap:e,belt:S}},n),S=null},draw_belt:function(e){S=e.slice()}},D=null,L=null,M=0,I=0;["create_sound","duplicate_sound"].forEach(function(e){R[e]=function(){for(var n=arguments.length,t=new Array(n),r=0;r=M?D.push({func:e,params:t}):b.postMessage({action:"audio",func:e,params:t})}}),b.DApi=R;var P=null;function B(e){try{var n;D=[],L=[];for(var t=arguments.length,r=new Array(t>1?t-1:0),i=1;i undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.91c5173f.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"readBinary\"]=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"readAsync\"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=600;Module[\"wasmMaxTableSize\"]=600;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vii\":invoke_vii,\"invoke_viii\":invoke_viii,\"invoke_viiii\":invoke_viiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_exit_game\":_api_exit_game,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_asm_const_ii\":_emscripten_asm_const_ii,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return Diablo;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.cbb9c567.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"readBinary\"]=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"readAsync\"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=588;Module[\"wasmMaxTableSize\"]=588;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vii\":invoke_vii,\"invoke_viii\":invoke_viii,\"invoke_viiii\":invoke_viiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_exit_game\":_api_exit_game,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_asm_const_ii\":_emscripten_asm_const_ii,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return DiabloSpawn;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1316452;\r\nconst SpawnSize = 1196648;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.length));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: true});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: false});\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func === \"create_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func === \"create_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n audioBatch = null;\r\n audioTransfer = null;\r\n }\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n }\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../webpack/bootstrap","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/process/browser.js","../node_modules/path-browserify/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","api/Diablo.wasm","api/Diablo.jscc","api/DiabloSpawn.wasm","api/DiabloSpawn.jscc","../node_modules/axios/index.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/axios/lib/axios.js","../node_modules/axios/node_modules/is-buffer/index.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","api/game.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isBuffer","toString","isArray","val","isObject","isFunction","forEach","obj","fn","length","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","push","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","normalizeArray","parts","allowAboveRoot","up","last","splice","unshift","filter","xs","f","res","resolve","resolvedPath","resolvedAbsolute","path","TypeError","charAt","split","join","normalize","isAbsolute","trailingSlash","substr","paths","slice","index","relative","from","to","arr","start","end","fromParts","toParts","Math","min","samePartsLength","outputParts","sep","delimiter","dirname","code","charCodeAt","hasRoot","matchedSlash","basename","ext","extname","startDot","startPart","preDotState","utils","encode","encodeURIComponent","url","params","paramsSerializer","serializedParams","v","toISOString","JSON","stringify","hashmarkIndex","indexOf","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","Content-Type","setContentTypeIfUnset","headers","defaults","adapter","XMLHttpRequest","getDefaultAdapter","transformRequest","data","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","Accept","method","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","Promise","reject","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","error","config1","config2","prop","Cancel","Diablo","_scriptDir","currentScript","src","Module","moduleOverrides","toThrow","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","importScripts","nodeFS","nodePath","scriptDirectory","locateFile","__dirname","filename","binary","ret","Uint8Array","assert","ex","ExitStatus","reason","readbuffer","scriptArgs","quit","self","location","href","xhr","onload","out","console","log","print","err","printErr","warn","STACK_ALIGN","alignMemory","size","factor","ceil","asm2wasmImports","f64-rem","x","y","debugger","ABORT","condition","text","Pointer_stringify","ptr","hasUtf","HEAPU8","curr","String","fromCharCode","subarray","UTF8ArrayToString","UTF8ToString","UTF8Decoder","TextDecoder","u8Array","idx","endPtr","decode","u0","u1","u2","u3","u4","ch","HEAP8","HEAP32","HEAPF32","STATICTOP","STACK_BASE","STACKTOP","DYNAMIC_BASE","DYNAMICTOP_PTR","WASM_PAGE_SIZE","ASMJS_PAGE_SIZE","MIN_TOTAL_MEMORY","alignUp","multiple","updateGlobalBuffer","buf","updateGlobalBufferViews","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","transfer","oldHEAP8","set","_emscripten_replace_memory","Function","getOwnPropertyDescriptor","byteLength","TOTAL_STACK","TOTAL_MEMORY","callRuntimeCallbacks","callbacks","callback","shift","func","arg","WebAssembly","Memory","initial","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeInitialized","addOnPostRun","cb","runDependencies","runDependencyWatcher","dependenciesFulfilled","dataURIPrefix","isDataURI","startsWith","wasmTextFile","wasmBinaryFile","asmjsCodeFile","info","global","asm2wasm","parent","getBinary","doNativeWasm","providedBuffer","receiveInstance","instance","memory","newBuffer","oldBuffer","oldView","mergeMemory","id","clearInterval","removeRunDependency","NaN","Infinity","receiveInstantiatedSource","output","instantiateArrayBuffer","receiver","fetch","credentials","catch","instantiate","instantiateStreaming","asmjsReallocBuffer","finalMethod","oldSize","grow","wasmReallocBuffer","TABLE_SIZE","MAX_TABLE_SIZE","Table","maximum","element","integrateWasmJS","ASM_CONSTS","$0","DApi","current_save_id","STATIC_BASE","__GLOBAL__sub_I_msgcmd_cpp","__ZSt18uncaught_exceptionv","uncaught_exception","EXCEPTIONS","caught","infos","deAdjust","adjusted","addRef","refcount","decRef","rethrown","destructor","___cxa_free_exception","clearRef","_free","___cxa_find_matching_catch","thrown","setTempRet0","throwntype","type","typeArray","_malloc","SYSCALLS","varargs","getStr","get64","low","high","getZero","__exit","implicit","initialStackTop","exit","PTHREAD_SPECIFIC","PTHREAD_SPECIFIC_NEXT_KEY","ERRNO_CODES","EPERM","ENOENT","ESRCH","EINTR","EIO","ENXIO","E2BIG","ENOEXEC","EBADF","ECHILD","EAGAIN","EWOULDBLOCK","ENOMEM","EACCES","EFAULT","ENOTBLK","EBUSY","EEXIST","EXDEV","ENODEV","ENOTDIR","EISDIR","EINVAL","ENFILE","EMFILE","ENOTTY","ETXTBSY","EFBIG","ENOSPC","ESPIPE","EROFS","EMLINK","EPIPE","EDOM","ERANGE","ENOMSG","EIDRM","ECHRNG","EL2NSYNC","EL3HLT","EL3RST","ELNRNG","EUNATCH","ENOCSI","EL2HLT","EDEADLK","ENOLCK","EBADE","EBADR","EXFULL","ENOANO","EBADRQC","EBADSLT","EDEADLOCK","EBFONT","ENOSTR","ENODATA","ETIME","ENOSR","ENONET","ENOPKG","EREMOTE","ENOLINK","EADV","ESRMNT","ECOMM","EPROTO","EMULTIHOP","EDOTDOT","EBADMSG","ENOTUNIQ","EBADFD","EREMCHG","ELIBACC","ELIBBAD","ELIBSCN","ELIBMAX","ELIBEXEC","ENOSYS","ENOTEMPTY","ENAMETOOLONG","ELOOP","EOPNOTSUPP","EPFNOSUPPORT","ECONNRESET","ENOBUFS","EAFNOSUPPORT","EPROTOTYPE","ENOTSOCK","ENOPROTOOPT","ESHUTDOWN","ECONNREFUSED","EADDRINUSE","ECONNABORTED","ENETUNREACH","ENETDOWN","ETIMEDOUT","EHOSTDOWN","EHOSTUNREACH","EINPROGRESS","EALREADY","EDESTADDRREQ","EMSGSIZE","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EADDRNOTAVAIL","ENETRESET","EISCONN","ENOTCONN","ETOOMANYREFS","EUSERS","EDQUOT","ESTALE","ENOTSUP","ENOMEDIUM","EILSEQ","EOVERFLOW","ECANCELED","ENOTRECOVERABLE","EOWNERDEAD","ESTRPIPE","staticAlloc","asmGlobalArg","asmLibraryArg","enlargeMemory","PAGE_MULTIPLE","LIMIT","OLD_TOTAL_MEMORY","max","replacement","getTotalMemory","abortOnCannotGrowMemory","invoke_i","sp","stackSave","stackRestore","invoke_ii","a1","invoke_iii","a2","invoke_iiii","a3","invoke_iiiii","a4","invoke_iiiiii","a5","invoke_ji","invoke_v","invoke_vi","invoke_vii","invoke_viii","invoke_viiii","invoke_viiiii","invoke_viji","___assert_fail","line","___cxa_allocate_exception","___cxa_begin_catch","___cxa_end_catch","pop","___cxa_find_matching_catch_2","___cxa_find_matching_catch_3","___cxa_throw","___lock","___resumeException","___setErrNo","___syscall140","which","stream","getStreamFromFD","offset_low","whence","offset","FS","llseek","position","getdents","ErrnoError","errno","___syscall146","iov","iovcnt","buffers","printChar","j","___syscall54","___syscall6","close","___unlock","_abort","_api_close_keyboard","close_keyboard","_api_create_sound_float","samples","channels","rate","create_sound","_api_delete_sound","delete_sound","_api_draw_begin","draw_begin","_api_draw_belt","items","draw_belt","_api_draw_blit","w","h","draw_blit","_api_draw_clip_text","x0","y0","x1","y1","draw_clip_text","_api_draw_end","draw_end","_api_draw_text","color","draw_text","_api_duplicate_sound","srcId","duplicate_sound","_api_exit_game","exit_game","_api_open_keyboard","open_keyboard","_api_play_sound","volume","pan","loop","play_sound","_api_set_cursor","set_cursor","_api_set_volume","set_volume","_api_stop_sound","stop_sound","_emscripten_asm_const_ii","a0","_emscripten_memcpy_big","dest","num","_exit","_exit_error","exit_error","_get_file_contents","get_file_contents","_get_file_size","get_file_size","_pthread_getspecific","_pthread_key_create","_pthread_once","seen","_pthread_setspecific","_put_file_contents","put_file_contents","_remove_file","remove_file","_show_alert","alert","_time","Date","now","asm","doRun","postRun","preRun","what","old","constructor","runCaller","DiabloSpawn","runtime","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","done","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","hasCatch","hasFinally","finallyEntry","complete","finish","delegateYield","regeneratorRuntime","accidentalStrictMode","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","default","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","handlers","use","eject","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","ignoreDuplicateOf","parsed","originURL","msie","test","userAgent","urlParsingNode","createElement","resolveURL","setAttribute","protocol","host","search","hash","hostname","port","pathname","requestURL","write","expires","domain","secure","cookie","toGMTString","match","RegExp","decodeURIComponent","remove","relativeURL","executor","resolvePromise","token","source","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","DiabloSize","SpawnSize","worker","canvas","imageData","files","renderBatch","drawBelt","is_spawn","postMessage","action","delete","DApi_renderLegacy","images","clip","belt","map","_ref","batch","DApi_renderOffscreen","save","font","putImageData","beginPath","rect","g","fillStyle","fillText","restore","bitmap","transferToImageBitmap","audioBatch","audioTransfer","maxSoundId","maxBatchId","_len","_key","_len2","_key2","wasm","call_api","_wasm","_len3","_key3","progress","loaded","total","readFile","file","reader","FileReader","readAsArrayBuffer","initWasm","_callee","spawn","regenerator_default","_context","SpawnBinary","DiabloBinary","SpawnModule","DiabloModule","wasmBinary","ready","_callee2","mpq","offscreen","mpqLoaded","mpqTotal","wasmLoaded","wasmTotal","wasmWeight","updateProgress","loadWasm","loadMpq","_ref3","_ref4","vers","_context2","OffscreenCanvas","getContext","createImageData","assign","_DApi_Init","floor","performance","parseInt","setInterval","_ref2","init_game"],"mappings":"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","file":"e7446815748fd1b8359c.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/diabloweb/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction deepMerge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};","module.exports = require(\"regenerator-runtime\");\n","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter; // Only Node.JS has a process variable that is of [[Class]] process\n\n if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n } else if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n }\n });\n utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) {\n if (utils.isObject(config2[prop])) {\n config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n } else if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (utils.isObject(config1[prop])) {\n config[prop] = utils.deepMerge(config1[prop]);\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n utils.forEach(['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath'], function defaultToConfig2(prop) {\n if (typeof config2[prop] !== 'undefined') {\n config[prop] = config2[prop];\n } else if (typeof config1[prop] !== 'undefined') {\n config[prop] = config1[prop];\n }\n });\n return config;\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","module.exports = __webpack_public_path__ + \"static/media/Diablo.0b19cd22.wasm\";","\r\nvar Diablo = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(Diablo) {\r\n Diablo = Diablo || {};\r\n\r\nvar Module=typeof Diablo!==\"undefined\"?Diablo:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"readBinary\"]=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"readAsync\"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"Diablo.wast\";var wasmBinaryFile=\"Diablo.wasm\";var asmjsCodeFile=\"Diablo.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=600;Module[\"wasmMaxTableSize\"]=600;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vii\":invoke_vii,\"invoke_viii\":invoke_viii,\"invoke_viiii\":invoke_viiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_exit_game\":_api_exit_game,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_asm_const_ii\":_emscripten_asm_const_ii,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return Diablo;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = Diablo;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return Diablo; });\r\n else if (typeof exports === 'object')\r\n exports[\"Diablo\"] = Diablo;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = __webpack_public_path__ + \"static/media/DiabloSpawn.005b9acc.wasm\";","\r\nvar DiabloSpawn = (function() {\r\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\r\n return (\r\nfunction(DiabloSpawn) {\r\n DiabloSpawn = DiabloSpawn || {};\r\n\r\nvar Module=typeof DiabloSpawn!==\"undefined\"?DiabloSpawn:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module[\"arguments\"]=[];Module[\"thisProgram\"]=\"./this.program\";Module[\"quit\"]=(function(status,toThrow){throw toThrow});Module[\"preRun\"]=[];Module[\"postRun\"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof require===\"function\"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}else{return scriptDirectory+path}}if(ENVIRONMENT_IS_NODE){scriptDirectory=__dirname+\"/\";var nodeFS;var nodePath;Module[\"read\"]=function shell_read(filename,binary){var ret;if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);ret=nodeFS[\"readFileSync\"](filename);return binary?ret:ret.toString()};Module[\"readBinary\"]=function readBinary(filename){var ret=Module[\"read\"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){Module[\"thisProgram\"]=process[\"argv\"][1].replace(/\\\\/g,\"/\")}Module[\"arguments\"]=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process[\"on\"](\"unhandledRejection\",(function(reason,p){process[\"exit\"](1)}));Module[\"quit\"]=(function(status){process[\"exit\"](status)});Module[\"inspect\"]=(function(){return\"[Emscripten Module object]\"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){Module[\"read\"]=function shell_read(f){return read(f)}}Module[\"readBinary\"]=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){Module[\"arguments\"]=scriptArgs}else if(typeof arguments!=\"undefined\"){Module[\"arguments\"]=arguments}if(typeof quit===\"function\"){Module[\"quit\"]=(function(status){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WEB){if(document.currentScript){scriptDirectory=document.currentScript.src}}else{scriptDirectory=self.location.href}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.split(\"/\").slice(0,-1).join(\"/\")+\"/\"}else{scriptDirectory=\"\"}Module[\"read\"]=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module[\"readBinary\"]=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}Module[\"readAsync\"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module[\"setWindowTitle\"]=(function(title){document.title=title})}else{}var out=Module[\"print\"]||(typeof console!==\"undefined\"?console.log.bind(console):typeof print!==\"undefined\"?print:null);var err=Module[\"printErr\"]||(typeof printErr!==\"undefined\"?printErr:typeof console!==\"undefined\"&&console.warn.bind(console)||out);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}var asm2wasmImports={\"f64-rem\":(function(x,y){return x%y}),\"debugger\":(function(){debugger})};var functionPointers=new Array(0);var GLOBAL_BASE=1024;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function Pointer_stringify(ptr,length){if(length===0||!ptr)return\"\";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret=\"\";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str=\"\";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}var UTF16Decoder=typeof TextDecoder!==\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module[\"buffer\"]=buffer=buf}function updateGlobalBufferViews(){Module[\"HEAP8\"]=HEAP8=new Int8Array(buffer);Module[\"HEAP16\"]=HEAP16=new Int16Array(buffer);Module[\"HEAP32\"]=HEAP32=new Int32Array(buffer);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buffer);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buffer);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buffer);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buffer);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort(\"Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value \"+TOTAL_MEMORY+\", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 \")}if(!Module[\"reallocBuffer\"])Module[\"reallocBuffer\"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module[\"usingWasm\"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module[\"reallocBuffer\"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,\"byteLength\").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module[\"TOTAL_STACK\"]||5242880;var TOTAL_MEMORY=Module[\"TOTAL_MEMORY\"]||134217728;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback();continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;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 ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}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 addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;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()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}function integrateWasmJS(){var wasmTextFile=\"DiabloSpawn.wast\";var wasmBinaryFile=\"DiabloSpawn.wasm\";var asmjsCodeFile=\"DiabloSpawn.temp.asm.js\";if(!isDataURI(wasmTextFile)){wasmTextFile=locateFile(wasmTextFile)}if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}if(!isDataURI(asmjsCodeFile)){asmjsCodeFile=locateFile(asmjsCodeFile)}var wasmPageSize=64*1024;var info={\"global\":null,\"env\":null,\"asm2wasm\":asm2wasmImports,\"parent\":Module};var exports=null;function mergeMemory(newBuffer){var oldBuffer=Module[\"buffer\"];if(newBuffer.byteLength0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module[\"dynCall_vi\"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___cxa_begin_catch(ptr){var info=EXCEPTIONS.infos[ptr];if(info&&!info.caught){info.caught=true;__ZSt18uncaught_exceptionv.uncaught_exception--}if(info)info.rethrown=false;EXCEPTIONS.caught.push(ptr);EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(ptr));return ptr}function ___cxa_free_exception(ptr){try{return _free(ptr)}catch(e){}}function ___cxa_end_catch(){Module[\"setThrew\"](0);var ptr=EXCEPTIONS.caught.pop();if(ptr){EXCEPTIONS.decRef(EXCEPTIONS.deAdjust(ptr));EXCEPTIONS.last=0}}function ___cxa_find_matching_catch_2(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___cxa_find_matching_catch_3(){return ___cxa_find_matching_catch.apply(null,arguments)}function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module[\"___cxa_is_pointer_type\"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!(\"uncaught_exception\"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr}function ___lock(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS===\"undefined\"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=PTHREAD_SPECIFIC_NEXT_KEY;PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0;PTHREAD_SPECIFIC_NEXT_KEY++;return 0}function _pthread_once(ptr,func){if(!_pthread_once.seen)_pthread_once.seen={};if(ptr in _pthread_once.seen)return;Module[\"dynCall_v\"](func);_pthread_once.seen[ptr]=1}function _pthread_setspecific(key,value){if(!(key in PTHREAD_SPECIFIC)){return ERRNO_CODES.EINVAL}PTHREAD_SPECIFIC[key]=value;return 0}function ___setErrNo(value){if(Module[\"___errno_location\"])HEAP32[Module[\"___errno_location\"]()>>2]=value;return value}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;Module[\"wasmTableSize\"]=588;Module[\"wasmMaxTableSize\"]=588;function invoke_i(index){var sp=stackSave();try{return Module[\"dynCall_i\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return Module[\"dynCall_ii\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return Module[\"dynCall_iii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return Module[\"dynCall_iiii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return Module[\"dynCall_iiiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return Module[\"dynCall_iiiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_ji(index,a1){var sp=stackSave();try{return Module[\"dynCall_ji\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_v(index){var sp=stackSave();try{Module[\"dynCall_v\"](index)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{Module[\"dynCall_vi\"](index,a1)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{Module[\"dynCall_vii\"](index,a1,a2)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{Module[\"dynCall_viii\"](index,a1,a2,a3)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viiii\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{Module[\"dynCall_viiiii\"](index,a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}function invoke_viji(index,a1,a2,a3,a4){var sp=stackSave();try{Module[\"dynCall_viji\"](index,a1,a2,a3,a4)}catch(e){stackRestore(sp);if(typeof e!==\"number\"&&e!==\"longjmp\")throw e;Module[\"setThrew\"](1,0)}}Module.asmGlobalArg={};Module.asmLibraryArg={\"abort\":abort,\"enlargeMemory\":enlargeMemory,\"getTotalMemory\":getTotalMemory,\"abortOnCannotGrowMemory\":abortOnCannotGrowMemory,\"invoke_i\":invoke_i,\"invoke_ii\":invoke_ii,\"invoke_iii\":invoke_iii,\"invoke_iiii\":invoke_iiii,\"invoke_iiiii\":invoke_iiiii,\"invoke_iiiiii\":invoke_iiiiii,\"invoke_ji\":invoke_ji,\"invoke_v\":invoke_v,\"invoke_vi\":invoke_vi,\"invoke_vii\":invoke_vii,\"invoke_viii\":invoke_viii,\"invoke_viiii\":invoke_viiii,\"invoke_viiiii\":invoke_viiiii,\"invoke_viji\":invoke_viji,\"___assert_fail\":___assert_fail,\"___cxa_allocate_exception\":___cxa_allocate_exception,\"___cxa_begin_catch\":___cxa_begin_catch,\"___cxa_end_catch\":___cxa_end_catch,\"___cxa_find_matching_catch_2\":___cxa_find_matching_catch_2,\"___cxa_find_matching_catch_3\":___cxa_find_matching_catch_3,\"___cxa_free_exception\":___cxa_free_exception,\"___cxa_throw\":___cxa_throw,\"___lock\":___lock,\"___resumeException\":___resumeException,\"___setErrNo\":___setErrNo,\"___syscall140\":___syscall140,\"___syscall146\":___syscall146,\"___syscall54\":___syscall54,\"___syscall6\":___syscall6,\"___unlock\":___unlock,\"_abort\":_abort,\"_api_close_keyboard\":_api_close_keyboard,\"_api_create_sound_float\":_api_create_sound_float,\"_api_delete_sound\":_api_delete_sound,\"_api_draw_begin\":_api_draw_begin,\"_api_draw_belt\":_api_draw_belt,\"_api_draw_blit\":_api_draw_blit,\"_api_draw_clip_text\":_api_draw_clip_text,\"_api_draw_end\":_api_draw_end,\"_api_draw_text\":_api_draw_text,\"_api_duplicate_sound\":_api_duplicate_sound,\"_api_exit_game\":_api_exit_game,\"_api_open_keyboard\":_api_open_keyboard,\"_api_play_sound\":_api_play_sound,\"_api_set_cursor\":_api_set_cursor,\"_api_set_volume\":_api_set_volume,\"_api_stop_sound\":_api_stop_sound,\"_emscripten_asm_const_ii\":_emscripten_asm_const_ii,\"_emscripten_memcpy_big\":_emscripten_memcpy_big,\"_exit\":_exit,\"_exit_error\":_exit_error,\"_get_file_contents\":_get_file_contents,\"_get_file_size\":_get_file_size,\"_pthread_getspecific\":_pthread_getspecific,\"_pthread_key_create\":_pthread_key_create,\"_pthread_once\":_pthread_once,\"_pthread_setspecific\":_pthread_setspecific,\"_put_file_contents\":_put_file_contents,\"_remove_file\":_remove_file,\"_show_alert\":_show_alert,\"_time\":_time,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR,\"STACKTOP\":STACKTOP};var asm=Module[\"asm\"](Module.asmGlobalArg,Module.asmLibraryArg,buffer);Module[\"asm\"]=asm;var _DApi_Char=Module[\"_DApi_Char\"]=(function(){return Module[\"asm\"][\"_DApi_Char\"].apply(null,arguments)});var _DApi_Init=Module[\"_DApi_Init\"]=(function(){return Module[\"asm\"][\"_DApi_Init\"].apply(null,arguments)});var _DApi_Key=Module[\"_DApi_Key\"]=(function(){return Module[\"asm\"][\"_DApi_Key\"].apply(null,arguments)});var _DApi_Mouse=Module[\"_DApi_Mouse\"]=(function(){return Module[\"asm\"][\"_DApi_Mouse\"].apply(null,arguments)});var _DApi_Render=Module[\"_DApi_Render\"]=(function(){return Module[\"asm\"][\"_DApi_Render\"].apply(null,arguments)});var _DApi_SyncText=Module[\"_DApi_SyncText\"]=(function(){return Module[\"asm\"][\"_DApi_SyncText\"].apply(null,arguments)});var __GLOBAL__sub_I_msgcmd_cpp=Module[\"__GLOBAL__sub_I_msgcmd_cpp\"]=(function(){return Module[\"asm\"][\"__GLOBAL__sub_I_msgcmd_cpp\"].apply(null,arguments)});var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=(function(){return Module[\"asm\"][\"___cxa_can_catch\"].apply(null,arguments)});var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=(function(){return Module[\"asm\"][\"___cxa_is_pointer_type\"].apply(null,arguments)});var ___em_js__api_close_keyboard=Module[\"___em_js__api_close_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_close_keyboard\"].apply(null,arguments)});var ___em_js__api_create_sound_float=Module[\"___em_js__api_create_sound_float\"]=(function(){return Module[\"asm\"][\"___em_js__api_create_sound_float\"].apply(null,arguments)});var ___em_js__api_delete_sound=Module[\"___em_js__api_delete_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_delete_sound\"].apply(null,arguments)});var ___em_js__api_draw_begin=Module[\"___em_js__api_draw_begin\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_begin\"].apply(null,arguments)});var ___em_js__api_draw_belt=Module[\"___em_js__api_draw_belt\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_belt\"].apply(null,arguments)});var ___em_js__api_draw_blit=Module[\"___em_js__api_draw_blit\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_blit\"].apply(null,arguments)});var ___em_js__api_draw_clip_text=Module[\"___em_js__api_draw_clip_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_clip_text\"].apply(null,arguments)});var ___em_js__api_draw_end=Module[\"___em_js__api_draw_end\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_end\"].apply(null,arguments)});var ___em_js__api_draw_text=Module[\"___em_js__api_draw_text\"]=(function(){return Module[\"asm\"][\"___em_js__api_draw_text\"].apply(null,arguments)});var ___em_js__api_duplicate_sound=Module[\"___em_js__api_duplicate_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_duplicate_sound\"].apply(null,arguments)});var ___em_js__api_exit_game=Module[\"___em_js__api_exit_game\"]=(function(){return Module[\"asm\"][\"___em_js__api_exit_game\"].apply(null,arguments)});var ___em_js__api_open_keyboard=Module[\"___em_js__api_open_keyboard\"]=(function(){return Module[\"asm\"][\"___em_js__api_open_keyboard\"].apply(null,arguments)});var ___em_js__api_play_sound=Module[\"___em_js__api_play_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_play_sound\"].apply(null,arguments)});var ___em_js__api_set_cursor=Module[\"___em_js__api_set_cursor\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_cursor\"].apply(null,arguments)});var ___em_js__api_set_volume=Module[\"___em_js__api_set_volume\"]=(function(){return Module[\"asm\"][\"___em_js__api_set_volume\"].apply(null,arguments)});var ___em_js__api_stop_sound=Module[\"___em_js__api_stop_sound\"]=(function(){return Module[\"asm\"][\"___em_js__api_stop_sound\"].apply(null,arguments)});var ___em_js__exit_error=Module[\"___em_js__exit_error\"]=(function(){return Module[\"asm\"][\"___em_js__exit_error\"].apply(null,arguments)});var ___em_js__get_file_contents=Module[\"___em_js__get_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_contents\"].apply(null,arguments)});var ___em_js__get_file_size=Module[\"___em_js__get_file_size\"]=(function(){return Module[\"asm\"][\"___em_js__get_file_size\"].apply(null,arguments)});var ___em_js__put_file_contents=Module[\"___em_js__put_file_contents\"]=(function(){return Module[\"asm\"][\"___em_js__put_file_contents\"].apply(null,arguments)});var ___em_js__remove_file=Module[\"___em_js__remove_file\"]=(function(){return Module[\"asm\"][\"___em_js__remove_file\"].apply(null,arguments)});var ___em_js__show_alert=Module[\"___em_js__show_alert\"]=(function(){return Module[\"asm\"][\"___em_js__show_alert\"].apply(null,arguments)});var ___em_js__trace_pop=Module[\"___em_js__trace_pop\"]=(function(){return Module[\"asm\"][\"___em_js__trace_pop\"].apply(null,arguments)});var ___em_js__trace_push=Module[\"___em_js__trace_push\"]=(function(){return Module[\"asm\"][\"___em_js__trace_push\"].apply(null,arguments)});var _emscripten_replace_memory=Module[\"_emscripten_replace_memory\"]=(function(){return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null,arguments)});var _free=Module[\"_free\"]=(function(){return Module[\"asm\"][\"_free\"].apply(null,arguments)});var _malloc=Module[\"_malloc\"]=(function(){return Module[\"asm\"][\"_malloc\"].apply(null,arguments)});var setTempRet0=Module[\"setTempRet0\"]=(function(){return Module[\"asm\"][\"setTempRet0\"].apply(null,arguments)});var setThrew=Module[\"setThrew\"]=(function(){return Module[\"asm\"][\"setThrew\"].apply(null,arguments)});var stackRestore=Module[\"stackRestore\"]=(function(){return Module[\"asm\"][\"stackRestore\"].apply(null,arguments)});var stackSave=Module[\"stackSave\"]=(function(){return Module[\"asm\"][\"stackSave\"].apply(null,arguments)});var dynCall_i=Module[\"dynCall_i\"]=(function(){return Module[\"asm\"][\"dynCall_i\"].apply(null,arguments)});var dynCall_ii=Module[\"dynCall_ii\"]=(function(){return Module[\"asm\"][\"dynCall_ii\"].apply(null,arguments)});var dynCall_iii=Module[\"dynCall_iii\"]=(function(){return Module[\"asm\"][\"dynCall_iii\"].apply(null,arguments)});var dynCall_iiii=Module[\"dynCall_iiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiii\"].apply(null,arguments)});var dynCall_iiiii=Module[\"dynCall_iiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiii\"].apply(null,arguments)});var dynCall_iiiiii=Module[\"dynCall_iiiiii\"]=(function(){return Module[\"asm\"][\"dynCall_iiiiii\"].apply(null,arguments)});var dynCall_ji=Module[\"dynCall_ji\"]=(function(){return Module[\"asm\"][\"dynCall_ji\"].apply(null,arguments)});var dynCall_v=Module[\"dynCall_v\"]=(function(){return Module[\"asm\"][\"dynCall_v\"].apply(null,arguments)});var dynCall_vi=Module[\"dynCall_vi\"]=(function(){return Module[\"asm\"][\"dynCall_vi\"].apply(null,arguments)});var dynCall_vii=Module[\"dynCall_vii\"]=(function(){return Module[\"asm\"][\"dynCall_vii\"].apply(null,arguments)});var dynCall_viii=Module[\"dynCall_viii\"]=(function(){return Module[\"asm\"][\"dynCall_viii\"].apply(null,arguments)});var dynCall_viiii=Module[\"dynCall_viiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiii\"].apply(null,arguments)});var dynCall_viiiii=Module[\"dynCall_viiiii\"]=(function(){return Module[\"asm\"][\"dynCall_viiiii\"].apply(null,arguments)});var dynCall_viji=Module[\"dynCall_viji\"]=(function(){return Module[\"asm\"][\"dynCall_viji\"].apply(null,arguments)});Module[\"asm\"]=asm;Module[\"then\"]=(function(func){if(Module[\"calledRun\"]){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module[\"calledRun\"])run();if(!Module[\"calledRun\"])dependenciesFulfilled=runCaller};function run(args){args=args||Module[\"arguments\"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module[\"calledRun\"])return;function doRun(){if(Module[\"calledRun\"])return;Module[\"calledRun\"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout((function(){setTimeout((function(){Module[\"setStatus\"](\"\")}),1);doRun()}),1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&Module[\"noExitRuntime\"]&&status===0){return}if(Module[\"noExitRuntime\"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}Module[\"quit\"](status,new ExitStatus(status))}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(what!==undefined){out(what);err(what);what=JSON.stringify(what)}else{what=\"\"}ABORT=true;EXITSTATUS=1;throw\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\"}Module[\"abort\"]=abort;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}Module[\"noExitRuntime\"]=true;run();Module[\"ready\"]=new Promise((function(resolve,reject){delete Module[\"then\"];Module[\"onAbort\"]=(function(what){reject(what)});addOnPostRun((function(){resolve(Module)}))}))\r\n\r\n\r\n\r\n\r\n\r\n return DiabloSpawn;\r\n}\r\n);\r\n})();\r\nif (typeof exports === 'object' && typeof module === 'object')\r\n module.exports = DiabloSpawn;\r\n else if (typeof define === 'function' && define['amd'])\r\n define([], function() { return DiabloSpawn; });\r\n else if (typeof exports === 'object')\r\n exports[\"DiabloSpawn\"] = DiabloSpawn;\r\n \n\n/*** EXPORTS FROM exports-loader ***/\n","module.exports = require('./lib/axios');","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function () {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import DiabloBinary from './Diablo.wasm';\r\nimport DiabloModule from './Diablo.jscc';\r\nimport SpawnBinary from './DiabloSpawn.wasm';\r\nimport SpawnModule from './DiabloSpawn.jscc';\r\nimport axios from 'axios';\r\n\r\nconst DiabloSize = 1316452;\r\nconst SpawnSize = 1196648;\r\n\r\n/* eslint-disable-next-line no-restricted-globals */\r\nconst worker = self;\r\n\r\nlet canvas = null, context = null;\r\nlet imageData = null;\r\nlet files = null;\r\nlet renderBatch = null;\r\nlet drawBelt = null;\r\nlet is_spawn = false;\r\n\r\nconst DApi = {\r\n exit_error(error) {\r\n worker.postMessage({action: \"error\", error});\r\n },\r\n\r\n exit_game() {\r\n worker.postMessage({action: \"exit\"});\r\n },\r\n current_save_id(id) {\r\n worker.postMessage({action: \"current_save\", name: id >= 0 ? (is_spawn ? `spawn${id}.sv` : `single_${id}.sv`) : null});\r\n },\r\n\r\n get_file_size(path) {\r\n const data = files.get(path.toLowerCase());\r\n return data ? data.byteLength : 0;\r\n },\r\n get_file_contents(path, array, offset) {\r\n const data = files.get(path.toLowerCase());\r\n if (data) {\r\n array.set(data.subarray(offset, offset + array.length));\r\n }\r\n },\r\n put_file_contents(path, array) {\r\n path = path.toLowerCase();\r\n // if (!path.match(/^(spawn\\d+\\.sv|single_\\d+\\.sv|config\\.ini)$/i)) {\r\n // alert(`Bad file name: ${path}`);\r\n // }\r\n files.set(path, array);\r\n worker.postMessage({action: \"fs\", func: \"update\", params: [path, array]});\r\n },\r\n remove_file(path) {\r\n path = path.toLowerCase();\r\n files.delete(path);\r\n worker.postMessage({action: \"fs\", func: \"delete\", params: [path]});\r\n },\r\n\r\n set_cursor(x, y) {\r\n worker.postMessage({action: \"cursor\", x, y});\r\n },\r\n open_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: true});\r\n },\r\n close_keyboard() {\r\n worker.postMessage({action: \"keyboard\", open: false});\r\n },\r\n};\r\n\r\nlet frameTime = 0, lastTime = 0;\r\nfunction getFPS() {\r\n const time = performance.now();\r\n if (!lastTime) {\r\n lastTime = time;\r\n }\r\n frameTime = 0.9 * frameTime + 0.1 * (time - lastTime);\r\n lastTime = time;\r\n return frameTime ? 1000.0 / frameTime : 0.0;\r\n}\r\n\r\nconst DApi_renderLegacy = {\r\n draw_begin() {\r\n renderBatch = {\r\n images: [],\r\n text: [],\r\n clip: null,\r\n belt: drawBelt,\r\n };\r\n drawBelt = null;\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n renderBatch.images.push({x, y, w, h, data: data.slice()});\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n renderBatch.clip = {x0, y0, x1, y1};\r\n },\r\n draw_text(x, y, text, color) {\r\n renderBatch.text.push({x, y, text, color});\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Transfer)`, 0xFFCC00);\r\n const transfer = renderBatch.images.map(({data}) => data.buffer);\r\n if (renderBatch.belt) {\r\n transfer.push(renderBatch.belt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: renderBatch}, transfer);\r\n renderBatch = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nconst DApi_renderOffscreen = {\r\n draw_begin() {\r\n context.save();\r\n context.font = 'bold 13px Times New Roman';\r\n },\r\n draw_blit(x, y, w, h, data) {\r\n imageData.data.set(data);\r\n context.putImageData(imageData, x, y);\r\n },\r\n draw_clip_text(x0, y0, x1, y1) {\r\n context.beginPath();\r\n context.rect(x0, y0, x1 - x0, y1 - y0);\r\n context.clip();\r\n },\r\n draw_text(x, y, text, color) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n context.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n context.fillText(text, x, y + 22);\r\n },\r\n draw_end() {\r\n //DApi.draw_text(10, 10, `FPS: ${getFPS().toFixed(1)} (Offscreen)`, 0xFFCC00);\r\n context.restore();\r\n const bitmap = canvas.transferToImageBitmap();\r\n const transfer = [bitmap];\r\n if (drawBelt) {\r\n transfer.push(drawBelt.buffer);\r\n }\r\n worker.postMessage({action: \"render\", batch: {bitmap, belt: drawBelt}}, transfer);\r\n drawBelt = null;\r\n },\r\n draw_belt(items) {\r\n drawBelt = items.slice();\r\n },\r\n};\r\n\r\nlet audioBatch = null, audioTransfer = null;\r\nlet maxSoundId = 0, maxBatchId = 0;\r\n[\"create_sound\", \"duplicate_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch) {\r\n maxBatchId = params[0] + 1;\r\n audioBatch.push({func, params});\r\n if (func === \"create_sound\") {\r\n audioTransfer.push(params[1].buffer);\r\n }\r\n } else {\r\n maxSoundId = params[0] + 1;\r\n const transfer = [];\r\n if (func === \"create_sound\") {\r\n transfer.push(params[1].buffer);\r\n }\r\n worker.postMessage({action: \"audio\", func, params}, transfer);\r\n }\r\n };\r\n});\r\n[\"play_sound\", \"set_volume\", \"stop_sound\", \"delete_sound\"].forEach(func => {\r\n DApi[func] = function(...params) {\r\n if (audioBatch && params[0] >= maxSoundId) {\r\n audioBatch.push({func, params});\r\n } else {\r\n worker.postMessage({action: \"audio\", func, params});\r\n }\r\n }\r\n});\r\n\r\nworker.DApi = DApi;\r\n\r\nlet wasm = null;\r\n\r\nfunction call_api(func, ...params) {\r\n try {\r\n audioBatch = [];\r\n audioTransfer = [];\r\n wasm[\"_\" + func](...params);\r\n if (audioBatch.length) {\r\n maxSoundId = maxBatchId;\r\n worker.postMessage({action: \"audioBatch\", batch: audioBatch}, audioTransfer);\r\n audioBatch = null;\r\n audioTransfer = null;\r\n }\r\n } catch (e) {\r\n if (typeof e === \"string\") {\r\n worker.postMessage({action: \"\"})\r\n }\r\n worker.postMessage({action: \"error\", error: e.toString(), stack: e.stack});\r\n }\r\n}\r\n\r\nfunction progress(text, loaded, total) {\r\n worker.postMessage({action: \"progress\", text, loaded, total});\r\n}\r\n\r\nconst readFile = (file, progress) => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n if (progress) {\r\n progress({loaded: file.size});\r\n }\r\n resolve(reader.result);\r\n };\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n if (progress) {\r\n reader.addEventListener(\"progress\", progress);\r\n }\r\n reader.readAsArrayBuffer(file);\r\n});\r\n\r\nasync function initWasm(spawn, progress) {\r\n const binary = await axios.request({\r\n url: spawn ? SpawnBinary : DiabloBinary,\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: progress,\r\n });\r\n const result = await (spawn ? SpawnModule : DiabloModule)({wasmBinary: binary.data}).ready;\r\n progress({loaded: 2000000});\r\n return result;\r\n}\r\n\r\nasync function init_game(mpq, spawn, offscreen) {\r\n is_spawn = spawn;\r\n if (offscreen) {\r\n canvas = new OffscreenCanvas(640, 480);\r\n context = canvas.getContext(\"2d\");\r\n imageData = context.createImageData(640, 480);\r\n Object.assign(DApi, DApi_renderOffscreen);\r\n } else {\r\n Object.assign(DApi, DApi_renderLegacy);\r\n }\r\n\r\n progress(\"Loading...\");\r\n let mpqLoaded = 0, mpqTotal = (mpq ? mpq.size : 0), wasmLoaded = 0, wasmTotal = (spawn ? SpawnSize : DiabloSize);\r\n const wasmWeight = 5;\r\n function updateProgress() {\r\n progress(\"Loading...\", mpqLoaded + wasmLoaded * wasmWeight, mpqTotal + wasmTotal * wasmWeight);\r\n }\r\n const loadWasm = initWasm(spawn, e => {\r\n wasmLoaded = Math.min(e.loaded, wasmTotal);\r\n updateProgress();\r\n });\r\n let loadMpq = mpq ? readFile(mpq, e => {\r\n mpqLoaded = e.loaded;\r\n updateProgress();\r\n }) : Promise.resolve(null);\r\n [wasm, mpq] = await Promise.all([loadWasm, loadMpq]);\r\n\r\n if (mpq) {\r\n files.set(spawn ? 'spawn.mpq' : 'diabdat.mpq', new Uint8Array(mpq));\r\n }\r\n\r\n progress(\"Initializing...\");\r\n\r\n const vers = process.env.VERSION.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n wasm._DApi_Init(Math.floor(performance.now()), offscreen ? 1 : 0, parseInt(vers[1]), parseInt(vers[2]), parseInt(vers[3]));\r\n\r\n setInterval(() => {\r\n call_api(\"DApi_Render\", Math.floor(performance.now())); \r\n }, 50);\r\n}\r\n\r\nworker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"init\":\r\n files = data.files;\r\n init_game(data.mpq, data.spawn, data.offscreen).then(\r\n () => worker.postMessage({action: \"loaded\"}),\r\n e => worker.postMessage({action: \"failed\", error: e.toString(), stack: e.stack}));\r\n break;\r\n case \"event\":\r\n call_api(data.func, ...data.params);\r\n break;\r\n }\r\n});\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index 8fb3dc9..071ecf0 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -DIABLO
\ No newline at end of file +DIABLO
\ No newline at end of file diff --git a/precache-manifest.592629225cceeecd3d3c8b75a8adc293.js b/precache-manifest.496d75599cd3144c0493d8110efe5f05.js similarity index 69% rename from precache-manifest.592629225cceeecd3d3c8b75a8adc293.js rename to precache-manifest.496d75599cd3144c0493d8110efe5f05.js index e0b7328..44dc30c 100644 --- a/precache-manifest.592629225cceeecd3d3c8b75a8adc293.js +++ b/precache-manifest.496d75599cd3144c0493d8110efe5f05.js @@ -1,14 +1,14 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "81113745d26eef073cb8d90d0bffa94f", - "url": "/diabloweb/4d7698d06f514af8ffba.worker.js" + "revision": "5811c29053dce3d0b3dc97201e47434c", + "url": "/diabloweb/e7446815748fd1b8359c.worker.js" }, { - "revision": "2e801db830a25a7a6e7507e5002cb8c7", + "revision": "6cd8ce607a21df39da69748371f59e4d", "url": "/diabloweb/index.html" }, { - "revision": "cb9e305b0005bc68687d", + "revision": "042fec45643dda8b4945", "url": "/diabloweb/static/css/main.9fcbefb1.chunk.css" }, { @@ -20,8 +20,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/5.473ccc28.chunk.js" }, { - "revision": "cb9e305b0005bc68687d", - "url": "/diabloweb/static/js/main.4907c864.chunk.js" + "revision": "042fec45643dda8b4945", + "url": "/diabloweb/static/js/main.7c4f3ed3.chunk.js" }, { "revision": "077fe45e700d7971de0b", @@ -36,12 +36,12 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "/diabloweb/static/js/storage.d9050d9b.chunk.js" }, { - "revision": "91c5173f41bc142f2ccd4e565a324509", - "url": "/diabloweb/static/media/Diablo.91c5173f.wasm" + "revision": "0b19cd22c9321a8ac17268e7fbe46ca4", + "url": "/diabloweb/static/media/Diablo.0b19cd22.wasm" }, { - "revision": "cbb9c56700b6c485a434f7da774e096a", - "url": "/diabloweb/static/media/DiabloSpawn.cbb9c567.wasm" + "revision": "005b9acc0cf67237903727658caecc9a", + "url": "/diabloweb/static/media/DiabloSpawn.005b9acc.wasm" }, { "revision": "ddc5d817712fdde5a23034ba0b719c78", diff --git a/service-worker.js b/service-worker.js index 56899a5..af2b98c 100644 --- a/service-worker.js +++ b/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/diabloweb/precache-manifest.592629225cceeecd3d3c8b75a8adc293.js" + "/diabloweb/precache-manifest.496d75599cd3144c0493d8110efe5f05.js" ); self.addEventListener('message', (event) => { diff --git a/static/js/main.4907c864.chunk.js b/static/js/main.7c4f3ed3.chunk.js similarity index 99% rename from static/js/main.4907c864.chunk.js rename to static/js/main.7c4f3ed3.chunk.js index 87ad3ae..bd8e82b 100644 --- a/static/js/main.4907c864.chunk.js +++ b/static/js/main.7c4f3ed3.chunk.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{25:function(e,t,n){e.exports=function(){return new Worker(n.p+"4d7698d06f514af8ffba.worker.js")}},30:function(e,t,n){e.exports=n(62)},36:function(e,t,n){},37:function(e,t,n){},62:function(e,t,n){"use strict";n.r(t);var a=n(0),o=n.n(a),r=n(21),s=n.n(r),i=(n(36),Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)));function c(e,t){navigator.serviceWorker.register(e).then(function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://bit.ly/CRA-PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}}).catch(function(e){console.error("Error during service worker registration:",e)})}var u=n(6),l=n(22),d=n(23),h=n(27),f=n(24),v=n(5),p=n(28),m=n(29),g=(n(37),n(7)),b=n.n(g),y=n(11),w=n(9),k=n(1),x=n.n(k),E=n(4),M=n(2),C=n(25),D=n.n(C);var T=n(26),B=n.n(T),P=50274091;function L(e,t){return S.apply(this,arguments)}function S(){return(S=Object(M.a)(x.a.mark(function e(t,n){var a,o,r;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(a=n.files.get("spawn.mpq"))||a.byteLength===P){e.next=6;break}return n.files.delete("spawn.mpq"),e.next=5,n.delete("spawn.mpq");case 5:a=null;case 6:if(a){e.next=15;break}return e.next=9,B.a.request({url:"/diabloweb/spawn.mpq",responseType:"arraybuffer",onDownloadProgress:function(e){t.onProgress&&t.onProgress({text:"Downloading...",loaded:e.loaded,total:e.total||P})},headers:{"Cache-Control":"max-age=31536000"}});case 9:if((o=e.sent).data.byteLength===P){e.next=12;break}throw Error("Invalid spawn.mpq size. Try clearing cache and refreshing the page.");case 12:r=new Uint8Array(o.data),n.files.set("spawn.mpq",r),n.update("spawn.mpq",r.slice());case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}},e)}))).apply(this,arguments)}function _(e,t,n){var a=n.bitmap,o=n.images,r=n.text,s=n.clip,i=n.belt;if(a)t.transferFromImageBitmap(a);else{var c=!0,u=!1,l=void 0;try{for(var d,h=o[Symbol.iterator]();!(c=(d=h.next()).done);c=!0){var f=d.value,v=f.x,p=f.y,m=f.w,g=f.h,b=f.data,y=t.createImageData(m,g);y.data.set(b),t.putImageData(y,v,p)}}catch(K){u=!0,l=K}finally{try{c||null==h.return||h.return()}finally{if(u)throw l}}if(r.length){if(t.save(),t.font="bold 13px Times New Roman",s){var w=s.x0,k=s.y0,x=s.x1,E=s.y1;t.beginPath(),t.rect(w,k,x-w,E-k),t.clip()}var M=!0,C=!1,D=void 0;try{for(var T,B=r[Symbol.iterator]();!(M=(T=B.next()).done);M=!0){var P=T.value,L=P.x,S=P.y,_=P.text,A=P.color,j=A>>16&255,O=A>>8&255,N=255&A;t.fillStyle="rgb(".concat(j,", ").concat(O,", ").concat(N,")"),t.fillText(_,L,S+22)}}catch(K){C=!0,D=K}finally{try{M||null==B.return||B.return()}finally{if(C)throw D}}t.restore()}}e.updateBelt(i)}function A(){return(A=Object(M.a)(x.a.mark(function e(t,n,a){var o,r,s,i;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,r=!0,!a){e.next=8;break}a.name.match(/^spawn\.mpq$/i)||(r=!1,o.files.delete("spawn.mpq")),e.next=10;break;case 8:return e.next=10,L(t,o);case 10:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=14,new Promise(function(e,c){try{var l=new D.a;l.addEventListener("message",function(a){var r=a.data;switch(r.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onFullscreenChange=function(){n.setState({touch:document.fullscreenElement===n.element})},n.onTouchStart=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[N]||n.game("DApi_Mouse",1,n.touchMods[K]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[K]||n.touchButton&&n.touchButton.index===K||n.setTouchButton(K,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(v.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(v.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(v.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(v.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(v.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(v.a)(n),5),n}return Object(p.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&n.byteLength===P&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard=!0,this.element.classList.add("keyboard"),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur())}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));y.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),j(this,e).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),document.addEventListener("fullscreenchange",t.onFullscreenChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null,o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),v=o.clientX,p=o.clientY;v>=f.left&&v=f.top&&pk)b=Math.abs(y)>Math.abs(w)?y>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,b),this.panPos={x:m,y:g}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:g};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.touch,u=t.has_spawn;return o.a.createElement("div",{className:b()("App",{touch:c,started:n,dropping:i,keyboard:this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:b()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:b()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:b()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:b()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:b()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:b()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1})),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(R,{className:"error",href:O(r,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team: ",o.a.createElement(R,{href:"https://github.com/diasurgical/devilution"},"https://github.com/diasurgical/devilution")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(R,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!u&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(U,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},9:function(e,t,n){"use strict";n.d(t,"a",function(){return g});var a=n(4),o=n(1),r=n.n(o),s=n(2),i=n(10),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var v=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function p(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,v(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function g(e){return b.apply(this,arguments)}function b(){return(b=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,v,m,g,b,y,w,k,x,E,M,C,D;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s>16&255,O=A>>8&255,N=255&A;t.fillStyle="rgb(".concat(j,", ").concat(O,", ").concat(N,")"),t.fillText(_,L,S+22)}}catch(K){C=!0,D=K}finally{try{M||null==B.return||B.return()}finally{if(C)throw D}}t.restore()}}e.updateBelt(i)}function A(){return(A=Object(M.a)(x.a.mark(function e(t,n,a){var o,r,s,i;return x.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,r=!0,!a){e.next=8;break}a.name.match(/^spawn\.mpq$/i)||(r=!1,o.files.delete("spawn.mpq")),e.next=10;break;case 8:return e.next=10,L(t,o);case 10:return s=null,i=!1,s=t.canvas.getContext("2d",{alpha:!1}),e.next=14,new Promise(function(e,c){try{var l=new D.a;l.addEventListener("message",function(a){var r=a.data;switch(r.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=32&&1===e.key.length&&!n.showKeyboard&&n.game("DApi_Char",e.key.charCodeAt(0)),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||e.keyCode>=112&&e.keyCode<=119)&&e.preventDefault())},n.onMenu=function(e){e.preventDefault()},n.onKeyUp=function(e){n.canvas&&(n.game("DApi_Key",1,n.eventMods(e),e.keyCode),n.clearKeySel())},n.onKeyboard=function(){if(n.showKeyboard){var e,t=n.keyboard.value,a=(t.match(/[\x20-\x7E]/g)||[]).join("").substring(0,15);t!==a&&(n.keyboard.value=a),n.clearKeySel();var o=Object(u.a)(Array(15)).map(function(e,t){return t0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onFullscreenChange=function(){n.setState({touch:document.fullscreenElement===n.element})},n.onTouchStart=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o),n.touchMods[N]||n.game("DApi_Mouse",1,n.touchMods[K]?2:1,n.eventMods(e),a,o)}},n.onTouchMove=function(e){if(n.canvas&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),a=t.x,o=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),a,o)}},n.onTouchEnd=function(e){if(n.canvas){e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var a=n.mousePos(t),o=a.x,r=a.y;n.game("DApi_Mouse",2,1,n.eventMods(e),o,r),n.game("DApi_Mouse",2,2,n.eventMods(e),o,r),!n.touchMods[K]||n.touchButton&&n.touchButton.index===K||n.setTouchButton(K,!1)}document.fullscreenElement||n.element.requestFullscreen()}},n.setCanvas=function(e){return n.canvas=e},n.setElement=function(e){return n.element=e},n.setKeyboard=function(e){return n.keyboard=e},n.setTouch0=n.setTouch_.bind(Object(v.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(v.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(v.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(v.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(v.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(v.a)(n),5),n}return Object(p.a)(t,e),Object(d.a)(t,[{key:"componentDidMount",value:function(){var e=this;document.addEventListener("drop",this.onDrop,!0),document.addEventListener("dragover",this.onDragOver,!0),document.addEventListener("dragenter",this.onDragEnter,!0),document.addEventListener("dragleave",this.onDragLeave,!0),this.fs.then(function(t){var n=t.files.get("spawn.mpq");n&&n.byteLength===P&&e.setState({has_spawn:!0})})}},{key:"setDropping",value:function(e){this.setState(function(t){var n=t.dropping;return{dropping:Math.max(n+e,0)}})}},{key:"onError",value:function(e,t){this.setState(function(n){return!n.error&&{error:{message:e,stack:t}}})}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard=!0,this.element.classList.add("keyboard"),this.keyboard.focus()):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur())}},{key:"setCursorPos",value:function(e,t){var n=this,a=this.canvas.getBoundingClientRect();this.cursorPos={x:a.left+(a.right-a.left)*e/640,y:a.top+(a.bottom-a.top)*t/480},setTimeout(function(){n.game("DApi_Mouse",0,0,0,e,t)})}},{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onExit",value:function(){this.state.error||window.location.reload()}},{key:"setCurrentSave",value:function(e){this.saveName=e}},{key:"drawBelt",value:function(e,t){this.canvas&&this.touchButtons[e]&&(this.touchBelt[e]=t,t>=0?(this.touchButtons[e].style.display="block",this.touchCtx[e].drawImage(this.canvas,205+29*t,357,28,28,0,0,28,28)):this.touchButtons[e].style.display="none")}},{key:"updateBelt",value:function(e){if(e){for(var t=new Set,n=3,a=0;a=0&&!t.has(e[a])&&(this.drawBelt(n++,a),t.add(e[a]));for(;n<6;++n)this.drawBelt(n,-1)}else this.drawBelt(3,-1),this.drawBelt(4,-1),this.drawBelt(5,-1)}},{key:"start",value:function(e){var t=this;if(e&&e.name.match(/\.sv$/i))this.fs.then(function(t){return t.upload(e)}).then(console.log("Updated ".concat(e.name)));else{document.removeEventListener("drop",this.onDrop,!0),document.removeEventListener("dragover",this.onDragOver,!0),document.removeEventListener("dragenter",this.onDragEnter,!0),document.removeEventListener("dragleave",this.onDragLeave,!0),this.setState({dropping:0});var n=!(!e||!e.name.match(/^diabdat\.mpq$/i));y.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),j(this,e).then(function(e){t.game=e,document.addEventListener("mousemove",t.onMouseMove,!0),document.addEventListener("mousedown",t.onMouseDown,!0),document.addEventListener("mouseup",t.onMouseUp,!0),document.addEventListener("keydown",t.onKeyDown,!0),document.addEventListener("keyup",t.onKeyUp,!0),document.addEventListener("contextmenu",t.onMenu,!0),document.addEventListener("touchstart",t.onTouchStart,{passive:!1,capture:!0}),document.addEventListener("touchmove",t.onTouchMove,{passive:!1,capture:!0}),document.addEventListener("touchend",t.onTouchEnd,{passive:!1,capture:!0}),document.addEventListener("pointerlockchange",t.onPointerLockChange),document.addEventListener("fullscreenchange",t.onFullscreenChange),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}}},{key:"pointerLocked",value:function(){return document.pointerLockElement===this.canvas||document.mozPointerLockElement===this.canvas}},{key:"mousePos",value:function(e){var t=this.canvas.getBoundingClientRect();return this.pointerLocked()?(this.cursorPos.x=Math.max(t.left,Math.min(t.right,this.cursorPos.x+e.movementX)),this.cursorPos.y=Math.max(t.top,Math.min(t.bottom,this.cursorPos.y+e.movementY))):this.cursorPos={x:e.clientX,y:e.clientY},{x:Math.max(0,Math.min(Math.round((this.cursorPos.x-t.left)/(t.right-t.left)*640),639)),y:Math.max(0,Math.min(Math.round((this.cursorPos.y-t.top)/(t.bottom-t.top)*480),479))}}},{key:"mouseButton",value:function(e){switch(e.button){case 0:return 1;case 1:return 4;case 2:return 2;case 3:return 5;case 4:return 6;default:return 1}}},{key:"eventMods",value:function(e){return(e.shiftKey||this.touchMods[2]?1:0)+(e.ctrlKey?2:0)+(e.altKey?4:0)+(e.touches?8:0)}},{key:"clearKeySel",value:function(){if(this.showKeyboard){var e=this.keyboard.value.length;this.keyboard.setSelectionRange(e,e)}}},{key:"setTouchMod",value:function(e,t,n){if(e<3)this.touchMods[e]=t,this.touchButtons[e]&&this.touchButtons[e].classList.toggle("active",t);else if(n&&this.touchBelt[e]>=0){var a=performance.now();(!this.beltTime||a-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=a)}}},{key:"updateTouchButton",value:function(e,t){var n=this,a=null,o=this.touchButton,r=!0,s=!1,i=void 0;try{for(var c,l=function(){var t=c.value,r=t.target,s=t.identifier,i=t.clientX,l=t.clientY;if(o&&o.id===s&&n.touchButtons[o.index]===r)return e.length>1&&(o.stick=!1),o.clientX=i,o.clientY=l,n.touchCanvas=Object(u.a)(e).find(function(e){return e.identifier!==s}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var d=n.touchButtons.indexOf(r);d>=0&&!a&&(a={id:s,index:d,stick:!0,original:n.touchMods[d],clientX:i,clientY:l})},d=e[Symbol.iterator]();!(r=(c=d.next()).done);r=!0){var h=l();if("object"===typeof h)return h.v}}catch(x){s=!0,i=x}finally{try{r||null==d.return||d.return()}finally{if(s)throw i}}if(o&&!a&&t&&o.stick){var f=this.touchButtons[o.index].getBoundingClientRect(),v=o.clientX,p=o.clientY;v>=f.left&&v=f.top&&pk)b=Math.abs(y)>Math.abs(w)?y>0?37:39:w>0?38:40,this.game("DApi_Key",0,0,b),this.panPos={x:m,y:g}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:m,y:g};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(u.a)(e).find(function(e){return!a||e.identifier!==a.id}),this.touchCanvas&&(this.touchCanvas={clientX:this.touchCanvas.clientX,clientY:this.touchCanvas.clientY}),null!=this.touchCanvas}},{key:"setTouch_",value:function(e,t){this.touchButtons[e]=t}},{key:"setTouchBelt_",value:function(e,t){if(this.touchButtons[e]=t,t){var n=document.createElement("canvas");n.width=28,n.height=28,t.appendChild(n),this.touchCtx[e]=n.getContext("2d")}else this.touchCtx[e]=null}},{key:"render",value:function(){var e=this,t=this.state,n=t.started,a=t.loading,r=t.error,s=t.progress,i=t.dropping,c=t.touch,u=t.has_spawn;return o.a.createElement("div",{className:b()("App",{touch:c,started:n,dropping:i,keyboard:this.showKeyboard}),ref:this.setElement},o.a.createElement("div",{className:"touch-ui touch-mods"},o.a.createElement("div",{className:b()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),o.a.createElement("div",{className:b()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),o.a.createElement("div",{className:b()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),o.a.createElement("div",{className:"touch-ui touch-belt"},o.a.createElement("div",{className:b()("touch-button","touch-button-0"),ref:this.setTouch3}),o.a.createElement("div",{className:b()("touch-button","touch-button-1"),ref:this.setTouch4}),o.a.createElement("div",{className:b()("touch-button","touch-button-2"),ref:this.setTouch5})),o.a.createElement("div",{className:"Body"},!r&&o.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),o.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,ref:this.setKeyboard,spellCheck:!1})),o.a.createElement("div",{className:"BodyV"},!!r&&o.a.createElement(R,{className:"error",href:O(r,this.state.retail)},o.a.createElement("p",{className:"header"},"The following error has occurred:"),o.a.createElement("p",{className:"body"},r.message),o.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=this.saveName&&o.a.createElement("p",{className:"link",onClick:this.downloadSave},"Download save file")),!!a&&!n&&!r&&o.a.createElement("div",{className:"loading"},s&&s.text||"Loading...",null!=s&&!!s.total&&o.a.createElement("span",{className:"progressBar"},o.a.createElement("span",null,o.a.createElement("span",{style:{width:"".concat(Math.round(100*s.loaded/s.total),"%")}})))),!n&&!a&&!r&&o.a.createElement("div",{className:"start"},o.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team: ",o.a.createElement(R,{href:"https://github.com/diasurgical/devilution"},"https://github.com/diasurgical/devilution")),o.a.createElement("p",null,"If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing. The game can be purchased from ",o.a.createElement(R,{href:"https://www.gog.com/game/diablo"},"GoG"),"."),!u&&o.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),o.a.createElement("form",null,o.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),o.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),o.a.createElement("span",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"))))}}]),t}(o.a.Component);s.a.render(o.a.createElement(U,null),document.getElementById("root")),function(e){if("serviceWorker"in navigator){if(new URL("/diabloweb",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",function(){var t="".concat("/diabloweb","/service-worker.js");i?(function(e,t){fetch(e).then(function(n){var a=n.headers.get("content-type");404===n.status||null!=a&&-1===a.indexOf("javascript")?navigator.serviceWorker.ready.then(function(e){e.unregister().then(function(){window.location.reload()})}):c(e,t)}).catch(function(){console.log("No internet connection found. App is running in offline mode.")})}(t,e),navigator.serviceWorker.ready.then(function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://bit.ly/CRA-PWA")})):c(t,e)})}}()},9:function(e,t,n){"use strict";n.d(t,"a",function(){return g});var a=n(4),o=n(1),r=n.n(o),s=n(2),i=n(10),c=n.n(i),u=function(){return new Promise(function(e,t){var n=!1,a=document.createElement("iframe");window.addEventListener("message",function(t){var o=t.data;"storage"!==o.method||n||(n=!0,e(o.files),a.contentWindow.postMessage({method:"clear"},"*"))}),a.addEventListener("load",function(){a.contentWindow.postMessage({method:"transfer"},"*")}),a.addEventListener("error",function(){n||(n=!0,e(null))}),a.src="https://diablo.rivsoft.net/storage.html",a.style.display="none",document.body.appendChild(a),setTimeout(function(){n||(n=!0,e(null))},1e4)})};function l(e,t){return d.apply(this,arguments)}function d(){return(d=Object(s.a)(r.a.mark(function e(t,n){var a,o,s,i;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(a=e.sent)?(o=new Blob([a],{type:"binary/octet-stream"}),s=URL.createObjectURL(o),(i=document.createElement("a")).setAttribute("href",s),i.setAttribute("download",n),document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(s)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function h(e){return f.apply(this,arguments)}function f(){return(f=Object(s.a)(r.a.mark(function e(t){var n,a,o,s,i,c;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,a=!1,o=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,s=e.sent[e.t0]();case 8:if(n=(i=s.next()).done){e.next=14;break}(c=i.value).match(/\.sv$/i)&&l(t,c);case 11:n=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(3),a=!0,o=e.t1;case 20:e.prev=20,e.prev=21,n||null==s.return||s.return();case 23:if(e.prev=23,!a){e.next=26;break}throw o;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[3,16,20,28],[21,,23,27]])}))).apply(this,arguments)}var v=function(e){return new Promise(function(t,n){var a=new FileReader;a.onload=function(){return t(a.result)},a.onerror=function(){return n(a.error)},a.onabort=function(){return n()},a.readAsArrayBuffer(e)})};function p(e,t,n){return m.apply(this,arguments)}function m(){return(m=Object(s.a)(r.a.mark(function e(t,n,a){var o;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,v(a);case 3:return e.t1=e.sent,o=new e.t0(e.t1),n.set(a.name.toLowerCase(),o),e.abrupt("return",t.set(a.name.toLowerCase(),o));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function g(e){return b.apply(this,arguments)}function b(){return(b=Object(s.a)(r.a.mark(function e(t){var n,o,s,i,d,f,v,m,g,b,y,w,k,x,E,M,C,D;return r.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),o=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,i=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSize = 50274091;\r\n\r\nexport { SpawnSize };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && file.byteLength !== SpawnSize) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSize});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (spawn.data.byteLength !== SpawnSize) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq) {\r\n const fs = await api.fs;\r\n let spawn = true;\r\n if (mpq) {\r\n if (!mpq.name.match(/^spawn\\.mpq$/i)) {\r\n spawn = false;\r\n fs.files.delete('spawn.mpq');\r\n }\r\n } else {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.open);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq);\r\n}\r\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.copyToChannel(data.subarray(i * length, i * length + length), i);\r\n }\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.stop();\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n src.source = context.createBufferSource();\r\n src.source.buffer = src.buffer;\r\n src.source.loop = !!loop;\r\n src.source.connect(src.gain).connect(src.panner).connect(context.destination);\r\n src.source.start();\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.stop();\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSize } from './api/load_spawn';\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, touch: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && spawn.byteLength === SpawnSize) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(open) {\r\n if (open) {\r\n this.showKeyboard = true;\r\n this.element.classList.add(\"keyboard\");\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n document.addEventListener('fullscreenchange', this.onFullscreenChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n onFullscreenChange = () => {\r\n this.setState({touch: (document.fullscreenElement === this.element)});\r\n }\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, touch, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team: https://github.com/diasurgical/devilution\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["api/game.worker.js","serviceWorker.js","api/load_spawn.js","api/loader.js","api/sound.js","App.js","index.js","fs.js"],"names":["module","exports","Worker","__webpack_require__","p","isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","onUpdate","onSuccess","catch","error","SpawnSize","load_spawn","_x","_x2","_load_spawn","apply","this","arguments","_callee","api","fs","file","spawn","data","regenerator_default","a","wrap","_context","prev","next","files","get","byteLength","delete","axios","request","url","process","responseType","onDownloadProgress","e","onProgress","text","loaded","total","headers","Cache-Control","sent","Error","Uint8Array","set","update","slice","abrupt","stop","onRender","ctx","_ref","bitmap","images","clip","belt","transferFromImageBitmap","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","Symbol","iterator","done","_ref5","value","x","y","w","h","image","createImageData","putImageData","err","return","length","save","font","x0","y0","x1","y1","beginPath","rect","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_ref4","str","color","r","g","b","fillStyle","concat","fillText","restore","updateBelt","audio","mpq","context","offscreen","name","canvas","getContext","alpha","Promise","resolve","reject","worker","addEventListener","_ref6","action","func","_len","params","Array","_key","postMessage","batch","Object","toConsumableArray","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_ref8","setCursorPos","openKeyboard","open","stop_all","onError","stack","onExit","setCurrentSave","transfer","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","_ref11","slicedToArray","push","buffer","load_game","do_load_game","AudioContext","webkitAudioContext","create_sound","duplicate_sound","play_sound","set_volume","stop_sound","delete_sound","sounds","Map","id","channels","rate","createBuffer","i","copyToChannel","subarray","gain","createGain","panner","StereoPannerNode","pan","srcId","src","volume","loop","source","Math","pow","relVolume","createBufferSource","connect","destination","start","_ref3","sound","clear","init_sound","reportLink","retail","message","URL","searchParams","split","map","line","join","userAgent","toString","ReactGA","initialize","pageview","TOUCH_MOVE","TOUCH_RMB","Link","children","props","objectWithoutProperties","react_default","createElement","assign","target","rel","App","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","started","loading","touch","dropping","has_spawn","cursorPos","touchButtons","touchCtx","touchMods","touchBelt","create_fs","onDrop","dataTransfer","items","kind","getAsFile","getDropFile","preventDefault","setState","onDragEnter","setDropping","onDragOver","isDropFile","onDragLeave","downloadSave","saveName","download","stopPropagation","onResize","document","exitPointerLock","onPointerLockChange","screen","innerHeight","height","pointerLocked","game","onMouseMove","_this$mousePos","mousePos","eventMods","onMouseDown","_this$mousePos2","requestPointerLock","mouseButton","onMouseUp","_this$mousePos3","onKeyDown","keyCode","key","showKeyboard","charCodeAt","clearKeySel","onMenu","onKeyUp","onKeyboard","_this2","keyboard","valid","substring","values","_","parseFile","touchButton","touchCanvas","onFullscreenChange","fullscreenElement","element","onTouchStart","updateTouchButton","touches","_this$mousePos4","onTouchMove","_this$mousePos5","onTouchEnd","prevTc","_this$mousePos6","index","setTouchButton","requestFullscreen","setCanvas","setElement","setKeyboard","setTouch0","setTouch_","bind","assertThisInitialized","setTouch1","setTouch2","setTouch3","setTouchBelt_","setTouch4","setTouch5","_this3","inc","_ref2","max","classList","add","focus","remove","blur","_this4","getBoundingClientRect","left","right","top","bottom","setTimeout","progress","reload","idx","slot","style","display","drawImage","used","Set","pos","has","drawBelt","_this5","upload","removeEventListener","event","category","passive","capture","pointerLockElement","mozPointerLockElement","min","movementX","movementY","clientX","clientY","round","button","shiftKey","ctrlKey","altKey","len","setSelectionRange","use","toggle","now","performance","beltTime","release","_this6","touchOther","btn","_loop","identifier","stick","find","t","panPos","v","indexOf","original","_ret","setTouchMod","dx","dy","step","offsetHeight","abs","width","appendChild","_this7","_this$state","className","classNames","ref","active","type","onChange","spellCheck","App_Link","href","onClick","htmlFor","accept","React","Component","ReactDOM","render","src_App_0","getElementById","origin","fetch","response","contentType","status","ready","unregister","checkValidServiceWorker","importStorage","frame","method","contentWindow","body","downloadFile","store","blob","lnk","C_Projects_diabloweb_diabloweb_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_1___default","toLowerCase","Blob","createObjectURL","setAttribute","click","removeChild","revokeObjectURL","downloadSaves","_callee2","_context2","keys","t0","t1","finish","readFile","reader","FileReader","onload","result","onerror","onabort","readAsArrayBuffer","uploadFile","_callee3","_context3","_x7","_create_fs","_callee4","load","_i","_Object$entries","_ref7","_name","_data","_files","_context4","IdbKvStore","json","entries","C_Projects_diabloweb_diabloweb_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","t2","DownloadFile","DownloadSaves","t3"],"mappings":"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","file":"static/js/main.7c4f3ed3.chunk.js","sourcesContent":["module.exports = function() {\n return new Worker(__webpack_public_path__ + \"e7446815748fd1b8359c.worker.js\");\n};","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import axios from 'axios';\r\n\r\nconst SpawnSize = 50274091;\r\n\r\nexport { SpawnSize };\r\n\r\nexport default async function load_spawn(api, fs) {\r\n let file = fs.files.get('spawn.mpq');\r\n if (file && file.byteLength !== SpawnSize) {\r\n fs.files.delete('spawn.mpq');\r\n await fs.delete('spawn.mpq');\r\n file = null;\r\n }\r\n if (!file) {\r\n const spawn = await axios.request({\r\n url: process.env.PUBLIC_URL + '/spawn.mpq',\r\n responseType: 'arraybuffer',\r\n onDownloadProgress: e => {\r\n if (api.onProgress) {\r\n api.onProgress({text: 'Downloading...', loaded: e.loaded, total: e.total || SpawnSize});\r\n }\r\n },\r\n headers: {\r\n 'Cache-Control': 'max-age=31536000'\r\n }\r\n });\r\n if (spawn.data.byteLength !== SpawnSize) {\r\n throw Error(\"Invalid spawn.mpq size. Try clearing cache and refreshing the page.\");\r\n }\r\n const data = new Uint8Array(spawn.data);\r\n fs.files.set('spawn.mpq', data);\r\n fs.update('spawn.mpq', data.slice());\r\n }\r\n return fs;\r\n}\r\n","import Worker from './game.worker.js';\r\nimport init_sound from './sound';\r\nimport load_spawn from './load_spawn';\r\n\r\nfunction onRender(api, ctx, {bitmap, images, text, clip, belt}) {\r\n if (bitmap) {\r\n ctx.transferFromImageBitmap(bitmap);\r\n } else {\r\n for (let {x, y, w, h, data} of images) {\r\n const image = ctx.createImageData(w, h);\r\n image.data.set(data);\r\n ctx.putImageData(image, x, y);\r\n }\r\n if (text.length) {\r\n ctx.save();\r\n ctx.font = 'bold 13px Times New Roman';\r\n if (clip) {\r\n const {x0, y0, x1, y1} = clip;\r\n ctx.beginPath();\r\n ctx.rect(x0, y0, x1 - x0, y1 - y0);\r\n ctx.clip();\r\n }\r\n for (let {x, y, text: str, color} of text) {\r\n const r = ((color >> 16) & 0xFF);\r\n const g = ((color >> 8) & 0xFF);\r\n const b = (color & 0xFF);\r\n ctx.fillStyle = `rgb(${r}, ${g}, ${b})`;\r\n ctx.fillText(str, x, y + 22);\r\n }\r\n ctx.restore();\r\n }\r\n }\r\n\r\n api.updateBelt(belt);\r\n}\r\n\r\nfunction testOffscreen() {\r\n return false;\r\n /*try {\r\n const canvas = document.createElement(\"canvas\");\r\n const offscreen = canvas.transferControlToOffscreen();\r\n const context = offscreen.getContext(\"2d\");\r\n return context != null;\r\n } catch (e) {\r\n return false;\r\n }*/\r\n}\r\n\r\nasync function do_load_game(api, audio, mpq) {\r\n const fs = await api.fs;\r\n let spawn = true;\r\n if (mpq) {\r\n if (!mpq.name.match(/^spawn\\.mpq$/i)) {\r\n spawn = false;\r\n fs.files.delete('spawn.mpq');\r\n }\r\n } else {\r\n await load_spawn(api, fs);\r\n }\r\n\r\n let context = null, offscreen = false;\r\n if (testOffscreen()) {\r\n context = api.canvas.getContext(\"bitmaprenderer\");\r\n offscreen = true;\r\n } else {\r\n context = api.canvas.getContext(\"2d\", {alpha: false});\r\n }\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n const worker = new Worker();\r\n worker.addEventListener(\"message\", ({data}) => {\r\n switch (data.action) {\r\n case \"loaded\":\r\n resolve((func, ...params) => worker.postMessage({action: \"event\", func, params}));\r\n break;\r\n case \"render\":\r\n onRender(api, context, data.batch);\r\n break;\r\n case \"audio\":\r\n audio[data.func](...data.params);\r\n break;\r\n case \"audioBatch\":\r\n for (let {func, params} of data.batch) {\r\n audio[func](...params);\r\n }\r\n break;\r\n case \"fs\":\r\n fs[data.func](...data.params);\r\n break;\r\n case \"cursor\":\r\n api.setCursorPos(data.x, data.y);\r\n break;\r\n case \"keyboard\":\r\n api.openKeyboard(data.open);\r\n break;\r\n case \"error\":\r\n audio.stop_all();\r\n api.onError(data.error, data.stack);\r\n break;\r\n case \"failed\":\r\n reject(Error(data.stack || data.error));\r\n break;\r\n case \"progress\":\r\n api.onProgress({text: data.text, loaded: data.loaded, total: data.total});\r\n break;\r\n case \"exit\":\r\n api.onExit();\r\n break;\r\n case \"current_save\":\r\n api.setCurrentSave(data.name);\r\n break;\r\n default:\r\n }\r\n });\r\n const transfer= [];\r\n for (let [, file] of fs.files) {\r\n transfer.push(file.buffer);\r\n }\r\n worker.postMessage({action: \"init\", files: fs.files, mpq, spawn, offscreen}, transfer);\r\n delete fs.files;\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n}\r\n\r\nexport default function load_game(api, mpq) {\r\n const audio = init_sound();\r\n return do_load_game(api, audio, mpq);\r\n}\r\n","function no_sound() {\r\n return {\r\n create_sound: () => 0,\r\n duplicate_sound: () => 0,\r\n play_sound: () => undefined,\r\n set_volume: () => undefined,\r\n stop_sound: () => undefined,\r\n delete_sound: () => undefined,\r\n };\r\n}\r\n\r\nexport default function init_sound() {\r\n const AudioContext = window.AudioContext || window.webkitAudioContext;\r\n if (!AudioContext) {\r\n return no_sound();\r\n }\r\n\r\n let context = null;\r\n try {\r\n context = new AudioContext();\r\n } catch (e) {\r\n }\r\n const sounds = new Map();\r\n\r\n return {\r\n create_sound(id, data, length, channels, rate) {\r\n if (!context) {\r\n return;\r\n }\r\n const buffer = context.createBuffer(channels, length, rate);\r\n for (let i = 0; i < channels; ++i) {\r\n buffer.copyToChannel(data.subarray(i * length, i * length + length), i);\r\n }\r\n sounds.set(id, {\r\n buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n duplicate_sound(id, srcId) {\r\n if (!context) {\r\n return;\r\n }\r\n const src = sounds.get(srcId);\r\n if (!src) {\r\n return;\r\n }\r\n sounds.set(id, {\r\n buffer: src.buffer,\r\n gain: context.createGain(),\r\n panner: new StereoPannerNode(context, {pan: 0}),\r\n });\r\n },\r\n play_sound(id, volume, pan, loop) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n if (src.source) {\r\n src.source.stop();\r\n }\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n const relVolume = Math.pow(2.0, pan / 1000.0);\r\n src.panner.pan.value = 1.0 - 2.0 / (1.0 + relVolume);\r\n src.source = context.createBufferSource();\r\n src.source.buffer = src.buffer;\r\n src.source.loop = !!loop;\r\n src.source.connect(src.gain).connect(src.panner).connect(context.destination);\r\n src.source.start();\r\n }\r\n },\r\n set_volume(id, volume) {\r\n const src = sounds.get(id);\r\n if (src) {\r\n src.gain.gain.value = Math.pow(2.0, volume / 1000.0);\r\n }\r\n },\r\n stop_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n delete src.source;\r\n }\r\n },\r\n delete_sound(id) {\r\n const src = sounds.get(id);\r\n if (src && src.source) {\r\n src.source.stop();\r\n }\r\n sounds.delete(id);\r\n },\r\n\r\n stop_all() {\r\n for (let [, sound] of sounds) {\r\n if (sound.source) {\r\n sound.source.stop();\r\n }\r\n }\r\n sounds.clear();\r\n context = null;\r\n }\r\n };\r\n}\r\n","import React from 'react';\r\nimport './App.scss';\r\nimport classNames from 'classnames';\r\nimport ReactGA from 'react-ga';\r\n\r\nimport create_fs from './fs';\r\nimport load_game from './api/loader';\r\nimport { SpawnSize } from './api/load_spawn';\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n ReactGA.initialize('UA-43123589-6');\r\n ReactGA.pageview('/');\r\n}\r\n\r\nfunction reportLink(e, retail) {\r\n const message = e.stack || e.message || \"Unknown error\";\r\n const url = new URL(\"https://github.com/d07RiV/diabloweb/issues/new\");\r\n url.searchParams.set(\"body\",\r\n`**Description:**\r\n[Please describe what you were doing before the error occurred]\r\n\r\n**App version:**\r\nDiabloWeb ${process.env.VERSION} (${retail ? 'Retail' : 'Shareware'})\r\n\r\n**Error message:**\r\n \r\n${message.split(\"\\n\").map(line => \" \" + line).join(\"\\n\")}\r\n\r\n**User agent:**\r\n\r\n ${navigator.userAgent}\r\n\r\n**Save file:**\r\n[Please attach the save file, if applicable. The error box should have a link to download the current save you were playing; alternatively, you can open dev console on the game page (F12) and type in ${\"`DownloadSaves()`\"}]\r\n`);\r\n return url.toString();\r\n}\r\n\r\nfunction isDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return true;\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDropFile(e) {\r\n if (e.dataTransfer.items) {\r\n for (let i = 0; i < e.dataTransfer.items.length; ++i) {\r\n if (e.dataTransfer.items[i].kind === \"file\") {\r\n return e.dataTransfer.items[i].getAsFile();\r\n }\r\n }\r\n } if (e.dataTransfer.files.length) {\r\n return e.dataTransfer.files[0];\r\n }\r\n}\r\n\r\nconst TOUCH_MOVE = 0;\r\nconst TOUCH_RMB = 1;\r\nconst TOUCH_SHIFT = 2;\r\n\r\nconst Link = ({children, ...props}) => {children};\r\n\r\nclass App extends React.Component {\r\n files = new Map();\r\n state = {started: false, loading: false, touch: false, dropping: 0, has_spawn: false};\r\n cursorPos = {x: 0, y: 0};\r\n\r\n touchButtons = [null, null, null, null, null, null];\r\n touchCtx = [null, null, null, null, null, null];\r\n touchMods = [false, false, false, false, false, false];\r\n touchBelt = [-1, -1, -1, -1, -1, -1];\r\n\r\n fs = create_fs(true);\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setTouch0 = this.setTouch_.bind(this, 0);\r\n this.setTouch1 = this.setTouch_.bind(this, 1);\r\n this.setTouch2 = this.setTouch_.bind(this, 2);\r\n this.setTouch3 = this.setTouchBelt_.bind(this, 3);\r\n this.setTouch4 = this.setTouchBelt_.bind(this, 4);\r\n this.setTouch5 = this.setTouchBelt_.bind(this, 5);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"drop\", this.onDrop, true);\r\n document.addEventListener(\"dragover\", this.onDragOver, true);\r\n document.addEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.addEventListener(\"dragleave\", this.onDragLeave, true);\r\n\r\n this.fs.then(fs => {\r\n const spawn = fs.files.get('spawn.mpq');\r\n if (spawn && spawn.byteLength === SpawnSize) {\r\n this.setState({has_spawn: true});\r\n }\r\n });\r\n }\r\n\r\n onDrop = e => {\r\n const file = getDropFile(e);\r\n if (file) {\r\n e.preventDefault();\r\n this.start(file);\r\n }\r\n this.setState({dropping: 0});\r\n }\r\n onDragEnter = e => {\r\n e.preventDefault();\r\n this.setDropping(1);\r\n }\r\n onDragOver = e => {\r\n if (isDropFile(e)) {\r\n e.preventDefault();\r\n }\r\n }\r\n onDragLeave = e => {\r\n this.setDropping(-1);\r\n }\r\n setDropping(inc) {\r\n this.setState(({dropping}) => ({dropping: Math.max(dropping + inc, 0)}));\r\n }\r\n\r\n onError(message, stack) {\r\n this.setState(({error}) => !error && {error: {message, stack}});\r\n }\r\n\r\n openKeyboard(open) {\r\n if (open) {\r\n this.showKeyboard = true;\r\n this.element.classList.add(\"keyboard\");\r\n this.keyboard.focus();\r\n } else {\r\n this.showKeyboard = false;\r\n this.element.classList.remove(\"keyboard\");\r\n this.keyboard.blur();\r\n }\r\n }\r\n\r\n setCursorPos(x, y) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n this.cursorPos = {\r\n x: rect.left + (rect.right - rect.left) * x / 640,\r\n y: rect.top + (rect.bottom - rect.top) * y / 480,\r\n };\r\n setTimeout(() => {\r\n this.game(\"DApi_Mouse\", 0, 0, 0, x, y);\r\n });\r\n }\r\n\r\n onProgress(progress) {\r\n this.setState({progress});\r\n }\r\n\r\n onExit() {\r\n if (!this.state.error) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n setCurrentSave(name) {\r\n this.saveName = name;\r\n }\r\n downloadSave = e => {\r\n this.fs.then(fs => this.saveName && fs.download(this.saveName));\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n drawBelt(idx, slot) {\r\n if (!this.canvas) return;\r\n if (!this.touchButtons[idx]) {\r\n return;\r\n }\r\n this.touchBelt[idx] = slot;\r\n if (slot >= 0) {\r\n this.touchButtons[idx].style.display = \"block\";\r\n this.touchCtx[idx].drawImage(this.canvas, 205 + 29 * slot, 357, 28, 28, 0, 0, 28, 28);\r\n } else {\r\n this.touchButtons[idx].style.display = \"none\";\r\n }\r\n }\r\n\r\n updateBelt(belt) {\r\n if (belt) {\r\n const used = new Set();\r\n let pos = 3;\r\n for (let i = 0; i < belt.length && pos < 6; ++i) {\r\n if (belt[i] >= 0 && !used.has(belt[i])) {\r\n this.drawBelt(pos++, i);\r\n used.add(belt[i]);\r\n }\r\n }\r\n for (; pos < 6; ++pos) {\r\n this.drawBelt(pos, -1);\r\n }\r\n } else {\r\n this.drawBelt(3, -1);\r\n this.drawBelt(4, -1);\r\n this.drawBelt(5, -1);\r\n }\r\n }\r\n\r\n start(file) {\r\n if (file && file.name.match(/\\.sv$/i)) {\r\n this.fs.then(fs => fs.upload(file)).then(console.log(`Updated ${file.name}`));\r\n return;\r\n }\r\n\r\n document.removeEventListener(\"drop\", this.onDrop, true);\r\n document.removeEventListener(\"dragover\", this.onDragOver, true);\r\n document.removeEventListener(\"dragenter\", this.onDragEnter, true);\r\n document.removeEventListener(\"dragleave\", this.onDragLeave, true);\r\n this.setState({dropping: 0});\r\n\r\n const retail = !!(file && file.name.match(/^diabdat\\.mpq$/i));\r\n if (process.env.NODE_ENV === 'production') {\r\n ReactGA.event({\r\n category: 'Game',\r\n action: retail ? 'Start Retail' : 'Start Shareware',\r\n });\r\n }\r\n\r\n this.setState({loading: true, retail});\r\n\r\n load_game(this, file).then(game => {\r\n this.game = game;\r\n\r\n document.addEventListener('mousemove', this.onMouseMove, true);\r\n document.addEventListener('mousedown', this.onMouseDown, true);\r\n document.addEventListener('mouseup', this.onMouseUp, true);\r\n document.addEventListener('keydown', this.onKeyDown, true);\r\n document.addEventListener('keyup', this.onKeyUp, true);\r\n document.addEventListener('contextmenu', this.onMenu, true);\r\n\r\n document.addEventListener('touchstart', this.onTouchStart, {passive: false, capture: true});\r\n document.addEventListener('touchmove', this.onTouchMove, {passive: false, capture: true});\r\n document.addEventListener('touchend', this.onTouchEnd, {passive: false, capture: true});\r\n\r\n document.addEventListener('pointerlockchange', this.onPointerLockChange);\r\n document.addEventListener('fullscreenchange', this.onFullscreenChange);\r\n window.addEventListener('resize', this.onResize);\r\n\r\n this.setState({started: true});\r\n }, e => this.onError(e.message, e.stack));\r\n }\r\n\r\n pointerLocked() {\r\n return document.pointerLockElement === this.canvas || document.mozPointerLockElement === this.canvas;\r\n }\r\n\r\n mousePos(e) {\r\n const rect = this.canvas.getBoundingClientRect();\r\n if (this.pointerLocked()) {\r\n this.cursorPos.x = Math.max(rect.left, Math.min(rect.right, this.cursorPos.x + e.movementX));\r\n this.cursorPos.y = Math.max(rect.top, Math.min(rect.bottom, this.cursorPos.y + e.movementY));\r\n } else {\r\n this.cursorPos = {x: e.clientX, y: e.clientY};\r\n }\r\n return {\r\n x: Math.max(0, Math.min(Math.round((this.cursorPos.x - rect.left) / (rect.right - rect.left) * 640), 639)),\r\n y: Math.max(0, Math.min(Math.round((this.cursorPos.y - rect.top) / (rect.bottom - rect.top) * 480), 479)),\r\n };\r\n }\r\n\r\n mouseButton(e) {\r\n switch (e.button) {\r\n case 0: return 1;\r\n case 1: return 4;\r\n case 2: return 2;\r\n case 3: return 5;\r\n case 4: return 6;\r\n default: return 1;\r\n }\r\n }\r\n eventMods(e) {\r\n return ((e.shiftKey || this.touchMods[TOUCH_SHIFT]) ? 1 : 0) + (e.ctrlKey ? 2 : 0) + (e.altKey ? 4 : 0) + (e.touches ? 8 : 0);\r\n }\r\n\r\n onResize = () => {\r\n document.exitPointerLock();\r\n }\r\n\r\n onPointerLockChange = () => {\r\n if (window.screen && window.innerHeight === window.screen.height && !this.pointerLocked()) {\r\n // assume that the user pressed escape\r\n this.game(\"DApi_Key\", 0, 0, 27);\r\n this.game(\"DApi_Key\", 1, 0, 27);\r\n }\r\n }\r\n\r\n onMouseMove = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseDown = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n if (window.screen && window.innerHeight === window.screen.height) {\r\n // we're in fullscreen, let's get pointer lock!\r\n if (!this.pointerLocked()) {\r\n this.canvas.requestPointerLock();\r\n }\r\n }\r\n this.game(\"DApi_Mouse\", 1, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onMouseUp = e => {\r\n if (!this.canvas) return;\r\n const {x, y} = this.mousePos(e);\r\n this.game(\"DApi_Mouse\", 2, this.mouseButton(e), this.eventMods(e), x, y);\r\n e.preventDefault();\r\n }\r\n\r\n onKeyDown = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 0, this.eventMods(e), e.keyCode);\r\n if (e.keyCode >= 32 && e.key.length === 1 && !this.showKeyboard) {\r\n this.game(\"DApi_Char\", e.key.charCodeAt(0));\r\n }\r\n this.clearKeySel();\r\n if (!this.showKeyboard) {\r\n if (e.keyCode === 8 || (e.keyCode >= 112 && e.keyCode <= 119)) {\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n\r\n onMenu = e => {\r\n e.preventDefault();\r\n }\r\n\r\n onKeyUp = e => {\r\n if (!this.canvas) return;\r\n this.game(\"DApi_Key\", 1, this.eventMods(e), e.keyCode);\r\n this.clearKeySel();\r\n }\r\n\r\n clearKeySel() {\r\n if (this.showKeyboard) {\r\n const len = this.keyboard.value.length;\r\n this.keyboard.setSelectionRange(len, len);\r\n }\r\n }\r\n\r\n onKeyboard = () => {\r\n if (this.showKeyboard) {\r\n const text = this.keyboard.value;\r\n const valid = (text.match(/[\\x20-\\x7E]/g) || []).join(\"\").substring(0, 15);\r\n if (text !== valid) {\r\n this.keyboard.value = valid;\r\n }\r\n this.clearKeySel();\r\n const values = [...Array(15)].map((_, i) => i < valid.length ? valid.charCodeAt(i) : 0);\r\n this.game(\"DApi_SyncText\", ...values);\r\n }\r\n }\r\n\r\n parseFile = e => {\r\n const files = e.target.files;\r\n if (files.length > 0) {\r\n this.start(files[0]);\r\n }\r\n }\r\n\r\n touchButton = null;\r\n touchCanvas = null;\r\n\r\n onFullscreenChange = () => {\r\n this.setState({touch: (document.fullscreenElement === this.element)});\r\n }\r\n\r\n setTouchMod(index, value, use) {\r\n if (index < 3) {\r\n this.touchMods[index] = value;\r\n if (this.touchButtons[index]) {\r\n this.touchButtons[index].classList.toggle(\"active\", value);\r\n }\r\n } else if (use && this.touchBelt[index] >= 0) {\r\n const now = performance.now();\r\n if (!this.beltTime || now - this.beltTime > 750) {\r\n this.game(\"DApi_Char\", 49 + this.touchBelt[index]);\r\n this.beltTime = now;\r\n }\r\n }\r\n }\r\n\r\n updateTouchButton(touches, release) {\r\n let touchOther = null;\r\n const btn = this.touchButton;\r\n for (let {target, identifier, clientX, clientY} of touches) {\r\n if (btn && btn.id === identifier && this.touchButtons[btn.index] === target) {\r\n if (touches.length > 1) {\r\n btn.stick = false;\r\n }\r\n btn.clientX = clientX;\r\n btn.clientY = clientY;\r\n this.touchCanvas = [...touches].find(t => t.identifier !== identifier);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n delete this.panPos;\r\n return this.touchCanvas != null;\r\n }\r\n const idx = this.touchButtons.indexOf(target);\r\n if (idx >= 0 && !touchOther) {\r\n touchOther = {id: identifier, index: idx, stick: true, original: this.touchMods[idx], clientX, clientY};\r\n }\r\n }\r\n if (btn && !touchOther && release && btn.stick) {\r\n const rect = this.touchButtons[btn.index].getBoundingClientRect();\r\n const {clientX, clientY} = btn;\r\n if (clientX >= rect.left && clientX < rect.right && clientY >= rect.top && clientY < rect.bottom) {\r\n this.setTouchMod(btn.index, !btn.original, true);\r\n } else {\r\n this.setTouchMod(btn.index, btn.original);\r\n }\r\n } else if (btn) {\r\n this.setTouchMod(btn.index, false);\r\n }\r\n this.touchButton = touchOther;\r\n if (touchOther) {\r\n this.setTouchMod(touchOther.index, true);\r\n if (touchOther.index === TOUCH_MOVE) {\r\n this.setTouchMod(TOUCH_RMB, false);\r\n } else if (touchOther.index === TOUCH_RMB) {\r\n this.setTouchMod(TOUCH_MOVE, false);\r\n }\r\n delete this.panPos;\r\n } else if (touches.length === 2) {\r\n const x = (touches[1].clientX + touches[0].clientX) / 2, y = (touches[1].clientY + touches[0].clientY) / 2;\r\n if (this.panPos) {\r\n const dx = x - this.panPos.x, dy = y - this.panPos.y;\r\n const step = this.canvas.offsetHeight / 12;\r\n if (Math.max(Math.abs(dx), Math.abs(dy)) > step) {\r\n let key;\r\n if (Math.abs(dx) > Math.abs(dy)) {\r\n key = (dx > 0 ? 0x25 : 0x27);\r\n } else {\r\n key = (dy > 0 ? 0x26 : 0x28);\r\n }\r\n this.game(\"DApi_Key\", 0, 0, key);\r\n // key up is ignored anyway\r\n this.panPos = {x, y};\r\n }\r\n } else {\r\n this.game(\"DApi_Mouse\", 0, 0, 24, 320, 180);\r\n this.game(\"DApi_Mouse\", 2, 1, 24, 320, 180);\r\n this.panPos = {x, y};\r\n }\r\n this.touchCanvas = null;\r\n return false;\r\n } else {\r\n delete this.panPos;\r\n }\r\n this.touchCanvas = [...touches].find(t => !touchOther || t.identifier !== touchOther.id);\r\n if (this.touchCanvas) {\r\n this.touchCanvas = {clientX: this.touchCanvas.clientX, clientY: this.touchCanvas.clientY};\r\n }\r\n return this.touchCanvas != null;\r\n }\r\n\r\n onTouchStart = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n if (!this.touchMods[TOUCH_MOVE]) {\r\n this.game(\"DApi_Mouse\", 1, this.touchMods[TOUCH_RMB] ? 2 : 1, this.eventMods(e), x, y);\r\n }\r\n }\r\n }\r\n onTouchMove = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n if (this.updateTouchButton(e.touches, false)) {\r\n const {x, y} = this.mousePos(this.touchCanvas);\r\n this.game(\"DApi_Mouse\", 0, 0, this.eventMods(e), x, y);\r\n }\r\n }\r\n onTouchEnd = e => {\r\n if (!this.canvas) return;\r\n e.preventDefault();\r\n const prevTc = this.touchCanvas;\r\n this.updateTouchButton(e.touches, true);\r\n if (prevTc && !this.touchCanvas) {\r\n const {x, y} = this.mousePos(prevTc);\r\n this.game(\"DApi_Mouse\", 2, 1, this.eventMods(e), x, y);\r\n this.game(\"DApi_Mouse\", 2, 2, this.eventMods(e), x, y);\r\n\r\n if (this.touchMods[TOUCH_RMB] && (!this.touchButton || this.touchButton.index !== TOUCH_RMB)) {\r\n this.setTouchButton(TOUCH_RMB, false);\r\n }\r\n }\r\n if (!document.fullscreenElement) {\r\n this.element.requestFullscreen();\r\n }\r\n }\r\n\r\n setCanvas = e => this.canvas = e;\r\n setElement = e => this.element = e;\r\n setKeyboard = e => this.keyboard = e;\r\n setTouch_(i, e) {\r\n this.touchButtons[i] = e;\r\n }\r\n setTouchBelt_(i, e) {\r\n this.touchButtons[i] = e;\r\n if (e) {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = 28;\r\n canvas.height = 28;\r\n e.appendChild(canvas);\r\n this.touchCtx[i] = canvas.getContext(\"2d\");\r\n } else {\r\n this.touchCtx[i] = null;\r\n }\r\n }\r\n\r\n render() {\r\n const {started, loading, error, progress, dropping, touch, has_spawn} = this.state;\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!error && }\r\n \r\n
\r\n
\r\n {!!error && (\r\n \r\n

The following error has occurred:

\r\n

{error.message}

\r\n

Click to create an issue on GitHub

\r\n {this.saveName != null &&

Download save file

}\r\n \r\n )}\r\n {!!loading && !started && !error && (\r\n
\r\n {(progress && progress.text) || 'Loading...'}\r\n {progress != null && !!progress.total && (\r\n \r\n )}\r\n
\r\n )}\r\n {!started && !loading && !error && (\r\n
\r\n

\r\n This is a web port of the original Diablo game, based on source code reconstructed by\r\n GalaXyHaXz and devilution team: https://github.com/diasurgical/devilution\r\n

\r\n

\r\n If you own the original game, you can drop the original DIABDAT.MPQ onto this page or click the button below to start playing.\r\n The game can be purchased from GoG.\r\n

\r\n {!has_spawn && (\r\n

\r\n Or you can play the shareware version for free (50MB download).\r\n

\r\n )}\r\n
\r\n \r\n \r\n
\r\n this.start()}>Play Shareware\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './reset.css';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nimport App from './App';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.register();\r\n","import IdbKvStore from 'idb-kv-store';\r\n\r\nconst importStorage = () => new Promise((resolve, reject) => {\r\n let done = false;\r\n const frame = document.createElement('iframe');\r\n window.addEventListener('message', ({data}) => {\r\n if (data.method === 'storage' && !done) {\r\n done = true;\r\n resolve(data.files);\r\n frame.contentWindow.postMessage({method: 'clear'}, '*');\r\n }\r\n });\r\n frame.addEventListener('load', () => {\r\n frame.contentWindow.postMessage({method: 'transfer'}, '*');\r\n });\r\n frame.addEventListener('error', () => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n });\r\n frame.src = \"https://diablo.rivsoft.net/storage.html\";\r\n frame.style.display = \"none\";\r\n document.body.appendChild(frame);\r\n setTimeout(() => {\r\n if (!done) {\r\n done = true;\r\n resolve(null);\r\n }\r\n }, 10000);\r\n});\r\n\r\nasync function downloadFile(store, name) {\r\n const file = await store.get(name.toLowerCase());\r\n if (file) {\r\n const blob = new Blob([file], {type: 'binary/octet-stream'});\r\n const url = URL.createObjectURL(blob);\r\n const lnk = document.createElement('a');\r\n lnk.setAttribute('href', url);\r\n lnk.setAttribute('download', name);\r\n document.body.appendChild(lnk);\r\n lnk.click();\r\n document.body.removeChild(lnk);\r\n URL.revokeObjectURL(url);\r\n } else {\r\n console.error(`File ${name} does not exist`);\r\n }\r\n}\r\n\r\nasync function downloadSaves(store) {\r\n for (let name of await store.keys()) {\r\n if (name.match(/\\.sv$/i)) {\r\n downloadFile(store, name);\r\n }\r\n }\r\n}\r\n\r\nconst readFile = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = () => reject(reader.error);\r\n reader.onabort = () => reject();\r\n reader.readAsArrayBuffer(file);\r\n});\r\nasync function uploadFile(store, files, file) {\r\n const data = new Uint8Array(await readFile(file));\r\n files.set(file.name.toLowerCase(), data);\r\n return store.set(file.name.toLowerCase(), data);\r\n}\r\n\r\nexport default async function create_fs(load) {\r\n try {\r\n const store = new IdbKvStore('diablo_fs');\r\n const files = new Map();\r\n for (let [name, data] of Object.entries(await store.json())) {\r\n files.set(name, data);\r\n }\r\n if (load) {\r\n const files = await importStorage();\r\n if (files) {\r\n for (let [name, data] of files) {\r\n files.set(name, data);\r\n store.set(name, data);\r\n }\r\n }\r\n }\r\n window.DownloadFile = name => downloadFile(store, name);\r\n window.DownloadSaves = () => downloadSaves(store);\r\n return {\r\n files,\r\n update: (name, data) => store.set(name, data),\r\n delete: name => store.remove(name),\r\n clear: () => store.clear(),\r\n download: name => downloadFile(store, name),\r\n upload: file => uploadFile(store, files, file),\r\n };\r\n } catch (e) {\r\n window.DownloadFile = () => console.error('IndexedDB is not supported');\r\n window.DownloadSaves = () => console.error('IndexedDB is not supported');\r\n return {\r\n files: new Map(),\r\n update: () => Promise.resolve(),\r\n delete: () => Promise.resolve(),\r\n clear: () => Promise.resolve(),\r\n download: () => Promise.resolve(),\r\n upload: () => Promise.resolve(),\r\n };\r\n } \r\n}\r\n"],"sourceRoot":""} \ No newline at end of file diff --git a/static/media/Diablo.0b19cd22.wasm b/static/media/Diablo.0b19cd22.wasm new file mode 100644 index 0000000..13179b1 Binary files /dev/null and b/static/media/Diablo.0b19cd22.wasm differ diff --git a/static/media/Diablo.91c5173f.wasm b/static/media/Diablo.91c5173f.wasm deleted file mode 100644 index ecfd8ef..0000000 Binary files a/static/media/Diablo.91c5173f.wasm and /dev/null differ diff --git a/static/media/DiabloSpawn.005b9acc.wasm b/static/media/DiabloSpawn.005b9acc.wasm new file mode 100644 index 0000000..1986944 Binary files /dev/null and b/static/media/DiabloSpawn.005b9acc.wasm differ diff --git a/static/media/DiabloSpawn.cbb9c567.wasm b/static/media/DiabloSpawn.cbb9c567.wasm deleted file mode 100644 index 33431d2..0000000 Binary files a/static/media/DiabloSpawn.cbb9c567.wasm and /dev/null differ