Files
diabloweb/static/js/main.0a18bc0c.chunk.js
2021-03-29 00:38:28 +03:00

2 lines
60 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{12:function(e,t,n){"use strict";n.d(t,"a",function(){return b});var r=n(8),a=n(1),o=n.n(a),i=n(3),s=n(15),c=n.n(s);function u(e,t){return l.apply(this,arguments)}function l(){return(l=Object(i.a)(o.a.mark(function e(t,n){var r,a,i,s;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.get(n.toLowerCase());case 2:(r=e.sent)?(a=new Blob([r],{type:"binary/octet-stream"}),i=URL.createObjectURL(a),(s=document.createElement("a")).setAttribute("href",i),s.setAttribute("download",n),document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(i)):console.error("File ".concat(n," does not exist"));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function f(e){return d.apply(this,arguments)}function d(){return(d=Object(i.a)(o.a.mark(function e(t){var n,r,a,i,s,c;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=!0,r=!1,a=void 0,e.prev=3,e.next=6,t.keys();case 6:e.t0=Symbol.iterator,i=e.sent[e.t0]();case 8:if(n=(s=i.next()).done){e.next=14;break}(c=s.value).match(/\.sv$/i)&&u(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),r=!0,a=e.t1;case 20:e.prev=20,e.prev=21,n||null==i.return||i.return();case 23:if(e.prev=23,!r){e.next=26;break}throw a;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 h=function(e){return new Promise(function(t,n){var r=new FileReader;r.onload=function(){return t(r.result)},r.onerror=function(){return n(r.error)},r.onabort=function(){return n()},r.readAsArrayBuffer(e)})};function v(e,t,n){return p.apply(this,arguments)}function p(){return(p=Object(i.a)(o.a.mark(function e(t,n,r){var a;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,h(r);case 3:return e.t1=e.sent,a=new e.t0(e.t1),n.set(r.name.toLowerCase(),a),e.abrupt("return",t.set(r.name.toLowerCase(),a));case 7:case"end":return e.stop()}},e)}))).apply(this,arguments)}function b(e){return y.apply(this,arguments)}function y(){return(y=Object(i.a)(o.a.mark(function e(t){var n,a,s,l,d,h,p,b;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=new c.a("diablo_fs"),a=new Map,s=0,e.t0=Object,e.next=7,n.json();case 7:e.t1=e.sent,l=e.t0.entries.call(e.t0,e.t1);case 9:if(!(s<l.length)){e.next=18;break}d=l[s],h=Object(r.a)(d,2),p=h[0],b=h[1],a.set(p,b);case 15:s++,e.next=9;break;case 18:return window.DownloadFile=function(e){return u(n,e)},window.DownloadSaves=function(){return f(n)},e.abrupt("return",{files:a,update:function(e,t){return n.set(e,t)},delete:function(e){return n.remove(e)},clear:function(){return n.clear()},download:function(e){return u(n,e)},upload:function(e){return v(n,a,e)},fileUrl:function(){var e=Object(i.a)(o.a.mark(function e(t){var r,a;return o.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,n.get(t.toLowerCase());case 2:if(!(r=e.sent)){e.next=6;break}return a=new Blob([r],{type:"binary/octet-stream"}),e.abrupt("return",URL.createObjectURL(a));case 6:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}()});case 23:return e.prev=23,e.t2=e.catch(0),window.DownloadFile=function(){return console.error("IndexedDB is not supported")},window.DownloadSaves=function(){return console.error("IndexedDB is not supported")},e.abrupt("return",{files:new Map,update:function(){return Promise.resolve()},delete:function(){return Promise.resolve()},clear:function(){return Promise.resolve()},download:function(){return Promise.resolve()},upload:function(){return Promise.resolve()},fileUrl:function(){return Promise.resolve()}});case 28:case"end":return e.stop()}},e,null,[[0,23]])}))).apply(this,arguments)}},36:function(e,t,n){e.exports=function(){return new Worker(n.p+"d2271be9a67638d3642f.worker.js")}},37:function(e,t,n){e.exports=function(){return new Worker(n.p+"8acc76fdb6ee253c485e.worker.js")}},38:function(e,t,n){e.exports=n.p+"static/media/MpqCmp.8aa3c6dc.wasm"},39:function(e,t,n){e.exports=n.p+"static/media/ListFile.b370797d.txt"},41:function(e,t,n){e.exports=n(74)},46:function(e,t,n){},48:function(e,t,n){},72:function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=72},74:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(34),i=n.n(o),s=(n(46),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(8),l=n(1),f=n.n(l),d=n(17),h=n(3),v=n(7),p=n(4),b=n(5),y=n(18),m=n(14),w=n(9),g=n(19),k=n(40),_=(n(48),n(10)),x=n.n(_),E=n(20),C=n(21),A=n(23),M=0,S=1,B=0,j=1,O=2,L=3,D=4,T=0,P=1,U=new Uint8Array([2,4,4,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]),N=new Uint8Array([3,13,5,25,9,17,1,62,30,46,14,54,22,38,6,58,26,42,10,50,18,34,66,2,124,60,92,28,108,44,76,12,116,52,84,20,100,36,68,4,120,56,88,24,104,40,72,8,240,112,176,48,208,80,144,16,224,96,160,32,192,64,128,0]),z=new Uint8Array([0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8]),R=new Uint16Array([0,1,2,3,4,5,6,7,8,10,14,22,38,70,134,262]),I=new Uint8Array([3,2,3,3,4,4,4,5,5,5,5,6,6,6,7,7]),K=new Uint8Array([5,3,1,6,10,2,12,20,4,24,8,48,16,32,64,0]),F=new Uint8Array([11,12,12,12,12,12,12,12,12,8,7,12,12,7,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,4,10,8,12,10,12,10,8,7,7,8,9,7,6,7,8,7,6,7,7,7,7,8,7,7,8,8,12,11,7,9,11,12,6,7,6,6,5,7,8,8,6,11,9,6,7,6,6,7,11,6,6,6,7,9,8,9,9,11,8,11,9,12,8,12,5,6,6,6,5,6,6,6,5,11,7,5,6,5,5,6,10,5,5,5,5,8,7,8,8,10,11,11,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,13,12,13,13,13,12,13,13,13,13,12,13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13,13]),q=new Uint16Array([1168,4064,2016,3040,992,3552,1504,2528,480,184,98,3808,1760,34,2784,736,3296,1248,2272,224,3936,1888,2912,864,3424,1376,4672,2400,352,3680,1632,2656,15,592,56,608,80,3168,912,216,66,2,88,432,124,41,60,152,92,9,28,108,44,76,24,12,116,232,104,1120,144,52,176,1808,2144,49,84,17,33,23,20,168,40,1,784,304,62,100,30,46,36,1296,14,54,22,68,48,200,464,208,272,72,1552,336,96,136,4e3,7,38,6,58,27,26,42,10,11,528,4,19,50,3,29,18,400,13,21,5,25,8,120,240,112,656,1040,16,1952,2976,928,576,7232,3136,5184,1088,6208,2112,4160,64,8064,3968,6016,1920,7040,2944,4992,896,7552,3456,5504,1408,6528,2432,4480,384,7808,3712,5760,1664,6784,2688,4736,640,7296,3200,5248,1152,6272,2176,4224,128,7936,3840,5888,1792,6912,2816,4864,3488,1440,2464,416,3744,1696,2720,672,3232,1184,2208,160,3872,1824,2848,800,3360,1312,2336,288,3616,1568,2592,544,3104,1056,2080,32,4032,1984,3008,960,3520,1472,2496,448,3776,1728,2752,704,3264,1216,2240,192,3904,1856,2880,832,768,3392,7424,3328,5376,1344,1280,6400,2304,2368,4352,256,7680,3584,320,5632,1536,6656,3648,1600,2624,2560,4608,512,7168,3072,5120,1024,6144,2048,4096,0]);function G(e,t,n,r){for(var a=0;a<r;a++)for(var o=1<<n[a],i=t[a];i<256;i+=o)e[i]=a}function J(e,t){if(t<=e.extra_bits)return e.extra_bits-=t,e.bit_buff>>>=t,T;if(e.bit_buff>>=e.extra_bits,e.in_pos===e.in_bytes){if(0===(e.in_bytes=e.read_buf(e.in_buff)))return P;e.in_pos=0}return e.bit_buff|=e.in_buff[e.in_pos++]<<8,e.bit_buff>>>=t-e.extra_bits,e.extra_bits=e.extra_bits-t+8,T}function X(e){if(1&e.bit_buff){if(J(e,1))return 774;var t=e.LengthCodes[255&e.bit_buff];if(J(e,e.LenBits[t]))return 774;var n=e.ExLenBits[t];if(0!==n){var r=e.bit_buff&(1<<n)-1;if(J(e,n)&&t+r!=270)return 774;t=e.LenBase[t]+r}return t+256}if(J(e,1))return 774;if(e.ctype===M){var a=255&e.bit_buff;return J(e,8)?774:a}var o;if(255&e.bit_buff){if(255==(o=e.offs2C34[255&e.bit_buff]))if(63&e.bit_buff){if(J(e,4))return 774;o=e.offs2D34[255&e.bit_buff]}else{if(J(e,6))return 774;o=e.offs2E34[127&e.bit_buff]}}else{if(J(e,8))return 774;o=e.offs2EB4[255&e.bit_buff]}return J(e,e.ChBitsAsc[o])?774:o}function Y(e,t){var n,r=e.DistPosCodes[255&e.bit_buff];if(J(e,e.DistBits[r]))return 0;if(2===t){if(n=r<<2|3&e.bit_buff,J(e,2))return 0}else if(n=r<<e.dsize_bits|e.bit_buff&e.dsize_mask,J(e,e.dsize_bits))return 0;return n+1}function Q(e,t){var n=new ArrayBuffer(12548),r={read_buf:e,write_buf:t,in_pos:3,extra_bits:0,in_buff:new Uint8Array(n,0,2048),DistPosCodes:new Uint8Array(n,2048,256),LengthCodes:new Uint8Array(n,2304,256),offs2C34:new Uint8Array(n,2560,256),offs2D34:new Uint8Array(n,2816,256),offs2E34:new Uint8Array(n,3072,128),offs2EB4:new Uint8Array(n,3200,256),ChBitsAsc:new Uint8Array(n,3456,256),DistBits:new Uint8Array(n,3712,64),LenBits:new Uint8Array(n,3776,16),ExLenBits:new Uint8Array(n,3792,16),LenBase:new Uint16Array(n,3808,16),out_buff:new Uint8Array(n,3840,8708)};if(r.in_bytes=e(r.in_buff),r.in_bytes<=4)return L;if(r.ctype=r.in_buff[0],r.dsize_bits=r.in_buff[1],r.bit_buff=r.in_buff[2],4>r.dsize_bits||r.dsize_bits>6)return j;if(r.dsize_mask=65535>>16-r.dsize_bits,r.ctype!=M){if(r.ctype!=S)return O;r.ChBitsAsc.set(F),function(e){for(var t=255,n=255;t>=0;t--,n--){var r=e.ChBitsAsc[n],a=void 0;if(r<=8){var o=1<<r;a=q[t];do{e.offs2C34[a]=n,a+=o}while(a<256)}else if(0!==(a=255&q[t]))if(e.offs2C34[a]=255,63&q[t]){r-=4,e.ChBitsAsc[n]=r;var i=1<<r;a=q[t]>>4;do{e.offs2D34[a]=n,a+=i}while(a<256)}else{r-=6,e.ChBitsAsc[n]=r;var s=1<<r;a=q[t]>>6;do{e.offs2E34[a]=n,a+=s}while(a<128)}else{r-=8,e.ChBitsAsc[n]=r;var c=1<<r;a=q[t]>>8;do{e.offs2EB4[a]=n,a+=c}while(a<256)}}}(r)}return r.LenBits.set(I),G(r.LengthCodes,K,r.LenBits,r.LenBits.length),r.ExLenBits.set(z),r.LenBase.set(R),r.DistBits.set(U),G(r.DistPosCodes,N,r.DistBits,r.DistBits.length),774!==function(e){for(var t,n,r=4096;(t=n=X(e))<773;){if(n>=256){var a=n-254,o=Y(e,a);if(0===o){t=774;break}var i=r,s=i-o;r+=a;for(var c=e.out_buff;a-- >0;)c[i++]=c[s++]}else e.out_buff[r++]=n;r>=8192&&(e.write_buf(e.out_buff.subarray(4096,8192)),e.out_buff.copyWithin(0,4096,r),r-=4096)}return e.write_buf(e.out_buff.subarray(4096,r)),t}(r)?B:D}var W=new Uint32Array(80),H=function(e,t){return t<<e|t>>32-e},$=function(){function e(){Object(p.a)(this,e),this.digest=new Uint32Array(5),this.count=0,this.digest[0]=1732584193,this.digest[1]=4023233417,this.digest[2]=2562383102,this.digest[3]=271733878,this.digest[4]=3285377520,this.digest8=new Uint8Array(this.digest.buffer)}return Object(b.a)(e,[{key:"input8",value:function(e){var t=new Uint32Array(e.buffer,e.byteOffset,16);this.input(t)}},{key:"input",value:function(e){this.count+=32*e.length;for(var t=0;t<16;++t)W[t]=e[t];for(var n=16;n<80;++n)W[n]=W[n-16]^W[n-14]^W[n-8]^W[n-3];for(var r=this.digest[0],a=this.digest[1],o=this.digest[2],i=this.digest[3],s=this.digest[4],c=0;c<20;c++){var u=H(5,r)+(a&o|~a&i)+s+W[c]+1518500249;s=i,i=o,o=H(30,a),a=r,r=0|u}for(var l=20;l<40;l++){var f=H(5,r)+(a^o^i)+s+W[l]+1859775393;s=i,i=o,o=H(30,a),a=r,r=0|f}for(var d=40;d<60;d++){var h=H(5,r)+(a&o|a&i|o&i)+s+W[d]+2400959708;s=i,i=o,o=H(30,a),a=r,r=0|h}for(var v=60;v<80;v++){var p=H(5,r)+(a^o^i)+s+W[v]+3395469782;s=i,i=o,o=H(30,a),a=r,r=0|p}this.digest[0]+=r,this.digest[1]+=a,this.digest[2]+=o,this.digest[3]+=i,this.digest[4]+=s}}]),e}(),V=function(){function e(t){Object(p.a)(this,e),this.seed=t}return Object(b.a)(e,[{key:"next",value:function(){return this.seed=(3*this.seed<<16)+(67*this.seed<<8)+253*this.seed+2531011|0,this.seed>>16&32767}}]),e}();function Z(e,t){if(!(e.length<=8)){var n=e.length-8;if(!(n%64)&&!e[n+4]){for(var r=e[n+5],a=new Uint8Array(n+r-64),o=function(e){for(var t=new V(28760),n=new Uint8Array(136),r=new Uint32Array(n.buffer),a=0;a<136;++a)n[a]=t.next();for(var o=new Uint8Array(64),i=0;i<64;++i)o[i]=e.charCodeAt(i%e.length);var s=new $;s.input8(o);for(var c=0;c<34;++c)r[c]^=s.digest[c%s.digest.length];return(s=new $).input(r.subarray(18)),s}(t),i=n>>2,s=new Uint32Array(e.buffer,e.byteOffset,i+1),c=new Uint32Array(16),u=new Uint8Array(c.buffer),l=0;l<i;l+=16){for(var f=0;f<16;++f)c[f]=s[l+f]^o.digest[f%o.digest.length];o.input(c),a.set(l===i-16?u.subarray(0,r):u,4*l)}if(s[i]===o.digest[0])return a}}}function ee(e,t){if(e.length===t)return e;var n=new Uint8Array(t),r=0,a=0;return Q(function(t){var n=Math.min(e.length-r,t.length);return t.set(e.subarray(r,n)),r+=n,n},function(e){if(a+e.length>t)throw Error("decompress buffer overflow");n.set(e,a),a+=e.length})||a!==t?null:n}var te=function(){for(var e=new Uint32Array(1280),t=1048577,n=0;n<256;n++)for(var r=n;r<1280;r+=256){var a=(65535&(t=(125*t+3)%2796203))<<16,o=65535&(t=(125*t+3)%2796203);e[r]=a|o}return e}();function ne(e,t){for(var n=4008636142,r=0;r<e.length;++r)n+=te[1024+(255&t)],e[r]^=n+t,n=e[r]+33*n+3|0,t=286331153+(~t<<21)|t>>>11}function re(e,t){ne(new Uint32Array(e.buffer,e.byteOffset,e.length>>2),t)}function ae(e,t){for(var n=4008636142,r=0;r<e.length;++r){n+=te[1024+(255&t)];var a=e[r];e[r]^=n+t,n=a+33*n+3|0,t=286331153+(~t<<21)|t>>>11}}function oe(e,t){for(var n=2146271213,r=4008636142,a=0;a<e.length;++a){var o=e.charCodeAt(a);o>=97&&o<=122&&(o-=32),47===o&&(o=92),r=o+(n=te[256*t+o]^n+r)+33*r+3|0}return n>>>0}function ie(e){var t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return e.substring(t+1)}var se=256,ce=512,ue=65280,le=65536,fe=131072,de=1048576,he=16777216,ve=function(){function e(t){Object(p.a)(this,e),this.buffer=t,this.u8=new Uint8Array(t),this.u32=new Uint32Array(t,0,t.byteLength>>2),this.readHeader()}return Object(b.a)(e,[{key:"readHeader",value:function(){var e=this.u8,t=this.u32;if(441536589!==t[0])throw Error("invalid MPQ header");var n=e[14]+(e[15]<<8),r=t[4],a=t[5],o=t[6],i=t[7];this.hashTable=this.readTable(r,o,"(hash table)"),this.blockTable=this.readTable(a,i,"(block table)"),this.blockSize=1<<9+n}},{key:"readTable",value:function(e,t,n){var r=new Uint32Array(this.buffer.slice(e,e+16*t));return ne(r,oe(n,3)),r}},{key:"fileIndex",value:function(e){for(var t=this.hashTable,n=t.length>>2,r=oe(e,0)%n,a=oe(e,1),o=oe(e,2),i=r,s=0;4294967295!==t[4*i+3]&&s<n;i=(i+1)%n,++s)if(t[4*i]===a&&t[4*i+1]===o&&4294967294!==t[4*i+3])return i}},{key:"readRaw",value:function(e){var t=this.fileIndex(e);if(null!=t){var n=this.hashTable[4*t+3],r={filePos:this.blockTable[4*n],cmpSize:this.blockTable[4*n+1],fileSize:this.blockTable[4*n+2],flags:this.blockTable[4*n+3],key:oe(ie(e),3)};if(!(r.flags&de||r.filePos+r.cmpSize>this.buffer.byteLength))return r.flags&ue||(r.cmpSize=r.fileSize),r.flags&fe&&(r.key=r.key+r.filePos^r.fileSize),{info:r,data:new Uint8Array(this.buffer,r.filePos,r.cmpSize)}}}},{key:"read",value:function(e){var t=this.readRaw(e);if(t){var n=t.info,r=t.data;if(r=r.slice(),n.flags&he){if(n.flags&le&&re(r,n.key),n.flags&ce)return;return n.flags&se?ee(r,n.fileSize):r}if(n.flags&ue){var a=Math.floor((n.fileSize+this.blockSize-1)/this.blockSize),o=a+1;if(r.length<4*o)return;var i=new Uint32Array(r.buffer,0,o);n.flags&le&&ne(i,n.key-1);for(var s=new Uint8Array(n.fileSize),c=0;c<a;++c){var u=c*this.blockSize,l=Math.min(this.blockSize,n.fileSize-u);if(i[c+1]>r.length)return;var f=r.subarray(i[c],i[c+1]);if(n.flags&le&&re(f,n.key+c),n.flags&ce)return;if(n.flags&se&&(f=ee(f,l)),!f||f.length!==l)return;s.set(f,u)}return s}if(n.flags&le)for(var d=0;d<n.fileSize;d+=this.blockSize)re(r.subarray(d,Math.min(n.fileSize,d+this.blockSize)),n.key+d/this.blockSize);return r}}}]),e}();var pe=n(35),be=n(12),ye=n(36),me=n.n(ye);function we(){var e=window.AudioContext||window.webkitAudioContext,t=window.StereoPannerNode;if(!e)return{create_sound:function(){return 0},duplicate_sound:function(){return 0},play_sound:function(){},set_volume:function(){},stop_sound:function(){},delete_sound:function(){}};var n=null;try{n=new e}catch(a){}var r=new Map;return{create_sound_raw:function(e,a,o,i,s){if(n){for(var c=n.createBuffer(i,o,s),u=0;u<i;++u)c.getChannelData(u).set(a.subarray(u*o,u*o+o));r.set(e,{buffer:Promise.resolve(c),gain:n.createGain(),panner:t&&new t(n,{pan:0})})}},create_sound:function(e,a){if(n){var o=function(e,t){return new Promise(function(n,r){e.decodeAudioData(t,n,r)})}(n,a.buffer);r.set(e,{buffer:o,gain:n.createGain(),panner:t&&new t(n,{pan:0})})}},duplicate_sound:function(e,a){if(n){var o=r.get(a);o&&r.set(e,{buffer:o.buffer,gain:n.createGain(),panner:t&&new t(n,{pan:0})})}},play_sound:function(e,t,a,o){var i=r.get(e);if(i){i.source&&i.source.then(function(e){return e.stop()}),i.gain.gain.value=Math.pow(2,t/1e3);var s=Math.pow(2,a/1e3);i.panner&&(i.panner.pan.value=1-2/(1+s)),i.source=i.buffer.then(function(e){var t=n.createBufferSource();t.buffer=e,t.loop=!!o;var r=t.connect(i.gain);return i.panner&&(r=r.connect(i.panner)),r.connect(n.destination),t.start(),t})}},set_volume:function(e,t){var n=r.get(e);n&&(n.gain.gain.value=Math.pow(2,t/1e3))},stop_sound:function(e){var t=r.get(e);t&&t.source&&(t.source.then(function(e){return e.stop()}),delete t.source)},delete_sound:function(e){var t=r.get(e);t&&t.source&&t.source.then(function(e){return e.stop()}),r.delete(e)},stop_all:function(){var e=!0,t=!1,a=void 0;try{for(var o,i=r[Symbol.iterator]();!(e=(o=i.next()).done);e=!0){var s=o.value,c=Object(u.a)(s,2)[1];c.source&&c.source.then(function(e){return e.stop()})}}catch(l){t=!0,a=l}finally{try{e||null==i.return||i.return()}finally{if(t)throw a}}r.clear(),n=null}}}var ge=n(16),ke=n.n(ge),_e=[50274091,25830791];function xe(e,t){return Ee.apply(this,arguments)}function Ee(){return(Ee=Object(h.a)(f.a.mark(function e(t,n){var r,a,o;return f.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=n.files.get("spawn.mpq"))||_e.includes(r.byteLength)){e.next=6;break}return n.files.delete("spawn.mpq"),e.next=5,n.delete("spawn.mpq");case 5:r=null;case 6:if(r){e.next=15;break}return e.next=9,ke.a.request({url:"/diabloweb/spawn.mpq",responseType:"arraybuffer",onDownloadProgress:function(e){t.onProgress&&t.onProgress({text:"Downloading...",loaded:e.loaded,total:e.total||_e[1]})},headers:{"Cache-Control":"max-age=31536000"}});case 9:if(a=e.sent,_e.includes(a.data.byteLength)){e.next=12;break}throw Error("Invalid spawn.mpq size. Try clearing cache and refreshing the page.");case 12:o=new Uint8Array(a.data),n.files.set("spawn.mpq",o),n.update("spawn.mpq",o.slice());case 15:return e.abrupt("return",n);case 16:case"end":return e.stop()}},e)}))).apply(this,arguments)}var Ce=n(13),Ae=n.n(Ce),Me=function(){function e(t){Object(p.a)(this,e),this.buffer=t instanceof Uint8Array?t:new Uint8Array(t),this.pos=0}return Object(b.a)(e,[{key:"done",value:function(){return this.pos===this.buffer.byteLength}},{key:"read8",value:function(){if(this.pos>=this.buffer.byteLength)throw Error("packet too small");return this.buffer[this.pos++]}},{key:"read16",value:function(){var e=this.pos,t=this.buffer;if(e+2>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8;return this.pos+=2,n}},{key:"read32",value:function(){var e=this.pos,t=this.buffer;if(e+4>t.byteLength)throw Error("packet too small");var n=t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24;return this.pos+=4,n}},{key:"read_str",value:function(){var e=this.read8(),t=this.pos,n=this.buffer;if(t+e>n.byteLength)throw Error("packet too small");var r=String.fromCharCode.apply(String,Object(v.a)(n.subarray(t,t+e)));return this.pos+=e,r}},{key:"read_buf",value:function(){var e=this.read32(),t=this.buffer.subarray(this.pos,this.pos+e);return this.pos+=e,t}}]),e}(),Se=function(){function e(t){Object(p.a)(this,e),this.buffer=new Uint8Array(t),this.pos=0}return Object(b.a)(e,[{key:"write8",value:function(e){return this.buffer[this.pos++]=e,this}},{key:"write16",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,this.pos+=2,this}},{key:"write32",value:function(e){var t=this.pos,n=this.buffer;return n[t]=e,n[t+1]=e>>8,n[t+2]=e>>16,n[t+3]=e>>24,this.pos+=4,this}},{key:"write_str",value:function(e){var t=e.length;this.write8(t);for(var n=this.pos,r=this.buffer,a=0;a<t;++a)r[n+a]=e.charCodeAt(a);return this.pos+=t,this}},{key:"rest",value:function(e){return this.buffer.set(e,this.pos),this.pos+=e.byteLength,this}},{key:"write_buf",value:function(e){return this.write32(e.byteLength),this.rest(e),this}},{key:"result",get:function(){return this.buffer.buffer}}]),e}(),Be={JOIN_SUCCESS:0,JOIN_ALREADY_IN_GAME:1,JOIN_GAME_NOT_FOUND:2,JOIN_INCORRECT_PASSWORD:3,JOIN_VERSION_MISMATCH:4,JOIN_GAME_FULL:5,CREATE_GAME_EXISTS:6};function je(e,t){var n=e.read8(),r=Object.values(t).find(function(e){return e.code===n});if(!r)throw Error("invalid packet code");return{type:r,packet:r.read(e)}}function Oe(e,t){return("function"===typeof e.size?e.size(t):e.size)+1}function Le(e,t){var n=Oe(e,t);return e.write(new Se(n).write8(e.code),t).result}function De(e){return{code:0,read:function(t){for(var n=t.read16(),r=[],a=0;a<n;++a)r.push(je(t,e()));return r},size:function(e){return e.reduce(function(e,t){return e+Oe(t.type,t.packet)},2)},write:function(e,t){e.write16(t.length);var n=!0,r=!1,a=void 0;try{for(var o,i=t[Symbol.iterator]();!(n=(o=i.next()).done);n=!0){var s=o.value,c=s.type,u=s.packet;c.write(e.write8(c.code),u)}}catch(l){r=!0,a=l}finally{try{n||null==i.return||i.return()}finally{if(r)throw a}}return e}}}var Te={info:{code:50,read:function(e){return{version:e.read32()}},size:4,write:function(e,t){var n=t.version;return e.write32(n)}},game_list:{code:33,read:function(e){for(var t=e.read16(),n=[],r=0;r<t;++r)n.push({type:e.read32(),name:e.read_str()});return{games:n}},size:function(e){return e.games.reduce(function(e,t){return e+5+t.name.length},2)},write:function(e,t){var n=t.games;e.write16(n.length);var r=!0,a=!1,o=void 0;try{for(var i,s=n[Symbol.iterator]();!(r=(i=s.next()).done);r=!0){var c=i.value,u=c.type,l=c.name;e.write32(u),e.write_str(l)}}catch(f){a=!0,o=f}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return e}},join_accept:{code:18,read:function(e){return{cookie:e.read32(),index:e.read8(),seed:e.read32(),difficulty:e.read32()}},size:13,write:function(e,t){var n=t.cookie,r=t.index,a=t.seed,o=t.difficulty;return e.write32(n).write8(r).write32(a).write32(o)}},join_reject:{code:21,read:function(e){return{cookie:e.read32(),reason:e.read8()}},size:5,write:function(e,t){var n=t.cookie,r=t.reason;return e.write32(n).write8(r)}},connect:{code:19,read:function(e){return{id:e.read8()}},size:1,write:function(e,t){var n=t.id;return e.write8(n)}},disconnect:{code:20,read:function(e){return{id:e.read8(),reason:e.read32()}},size:5,write:function(e,t){var n=t.id,r=t.reason;return e.write8(n).write32(r)}},message:{code:1,read:function(e){return{id:e.read8(),payload:e.read_buf()}},size:function(e){return 5+e.payload.byteLength},write:function(e,t){var n=t.id,r=t.payload;return e.write8(n).write_buf(r)}},turn:{code:2,read:function(e){return{id:e.read8(),turn:e.read32()}},size:5,write:function(e,t){var n=t.id,r=t.turn;return e.write8(n).write32(r)}},batch:De(function(){return Te})},Pe={info:{code:49,read:function(e){return{version:e.read32()}},size:4,write:function(e,t){var n=t.version;return e.write32(n)}},game_list:{code:33,read:function(){return{}},size:0,write:function(e){return e}},create_game:{code:34,read:function(e){return{cookie:e.read32(),name:e.read_str(),password:e.read_str(),difficulty:e.read32()}},size:function(e){var t=e.name,n=e.password;return 10+t.length+n.length},write:function(e,t){var n=t.cookie,r=t.name,a=t.password,o=t.difficulty;return e.write32(n).write_str(r).write_str(a).write32(o)}},join_game:{code:35,read:function(e){return{cookie:e.read32(),name:e.read_str(),password:e.read_str()}},size:function(e){var t=e.name,n=e.password;return 6+t.length+n.length},write:function(e,t){var n=t.cookie,r=t.name,a=t.password;return e.write32(n).write_str(r).write_str(a)}},leave_game:{code:36,read:function(){return{}},size:0,write:function(e){return e}},drop_player:{code:3,read:function(e){return{id:e.read8(),reason:e.read32()}},size:5,write:function(e,t){var n=t.id,r=t.reason;return e.write8(n).write32(r)}},message:{code:1,read:function(e){return{id:e.read8(),payload:e.read_buf()}},size:function(e){return 5+e.payload.byteLength},write:function(e,t){var n=t.id,r=t.payload;return e.write8(n).write_buf(r)}},turn:{code:2,read:function(e){return{turn:e.read32()}},size:4,write:function(e,t){var n=t.turn;return e.write32(n)}},batch:De(function(){return Te})},Ue=function(e){return"diabloweb_dDv62yHQrZJP28tBEHL_".concat(e)},Ne={port:443,secure:!0},ze=function(){function e(t,n,r,a){var o=this,i=n.cookie,s=n.name,c=n.password,u=n.difficulty;Object(p.a)(this,e),this.version=t,this.name=s,this.password=c,this.difficulty=u,this.onMessage=r,this.onClose=a,this.peer=new Ae.a(Ue(s),Ne),this.peer.on("connection",function(e){return o.onConnect(e)}),this.players=[],this.myplr=0,this.seed=Math.floor(Math.random()*Math.pow(2,32));var l=function e(){r(Le(Te.join_reject,{cookie:i,reason:Be.CREATE_GAME_EXISTS})),a(),o.peer.off("error",e),o.peer.off("open",f)},f=function e(){setTimeout(function(){r(Le(Te.join_accept,{cookie:i,index:0,seed:o.seed,difficulty:u})),r(Le(Te.connect,{id:0}))},0),o.peer.off("error",l),o.peer.off("open",e)};this.peer.on("error",l),this.peer.on("open",f)}return Object(b.a)(e,[{key:"onConnect",value:function(e){var t=this,n={conn:e};e.on("data",function(r){var a=new Me(r),o=je(a,Pe),i=o.type,s=o.packet;switch(i.code){case Pe.info.code:n.version=s.version;break;case Pe.join_game.code:if(n.version!==t.version)e.send(Le(Te.join_reject,{cookie:s.cookie,reason:Be.JOIN_VERSION_MISMATCH}));else if(s.name!==t.name)e.send(Le(Te.join_reject,{cookie:s.cookie,reason:Be.JOIN_GAME_NOT_FOUND}));else if(s.password!==t.password)e.send(Le(Te.join_reject,{cookie:s.cookie,reason:Be.JOIN_INCORRECT_PASSWORD}));else{for(var c=1;c<4&&t.players[c];)++c;c>=4?e.send(Le(Te.join_reject,{cookie:s.cookie,reason:Be.JOIN_GAME_FULL})):(t.players[c]=n,n.id=c,e.send(Le(Te.join_accept,{cookie:s.cookie,index:c,seed:t.seed,difficulty:t.difficulty})),t.send(255,Le(Te.connect,{id:c})))}break;default:if(null==n.id)return;t.handle(n.id,i.code,s)}if(!a.done())throw Error("packet too large")}),e.on("close",function(){null!=n.id&&t.drop(n.id,1073741830)})}},{key:"send",value:function(e,t){for(var n=1;n<4;++n)e&1<<n&&this.players[n]&&this.players[n].conn&&this.players[n].conn.send(t);1&e&&this.onMessage(t)}},{key:"drop",value:function(e,t){if(0===e){for(var n=1;n<4;++n)this.drop(n,1073741830);this.onMessage(Le(Te.disconnect,{id:e,reason:t})),this.peer.destroy(),this.onClose()}else this.players[e]&&(this.send(255,Le(Te.disconnect,{id:e,reason:t})),this.players[e].id=null,this.players[e].conn&&this.players[e].conn.close(),this.players[e]=null)}},{key:"handle",value:function(e,t,n){switch(t){case Pe.leave_game.code:this.drop(e,3);break;case Pe.drop_player.code:this.drop(n.id,n.reason);break;case Pe.message.code:this.send(255===n.id?~(1<<e):1<<n.id,Le(Te.message,{id:e,payload:n.payload}));break;case Pe.turn.code:this.send(~(1<<e),Le(Te.turn,{id:e,turn:n.turn}));break;default:throw Error("invalid packet ".concat(t))}}}]),e}(),Re=function(){function e(t,n,r,a){var o=this,i=n.cookie,s=n.name,c=n.password;Object(p.a)(this,e),this.pending=[],this.peer=new Ae.a(Ne),this.conn=this.peer.connect(Ue(s));var u=!0,l=function(){u&&(u=!1,o.peer.off("error",f),o.conn.off("error",f),o.conn.off("open",d),clearTimeout(h))},f=function(){r(Le(Te.join_reject,{cookie:i,reason:Be.JOIN_GAME_NOT_FOUND})),a(),l()},d=function e(){o.conn.send(Le(Pe.info,{version:t})),o.conn.send(Le(Pe.join_game,{cookie:i,name:s,password:c}));var n=!0,r=!1,a=void 0;try{for(var u,l=o.pending[Symbol.iterator]();!(n=(u=l.next()).done);n=!0){var f=u.value;o.conn.send(f)}}catch(d){r=!0,a=d}finally{try{n||null==l.return||l.return()}finally{if(r)throw a}}o.pending=null,o.conn.off("open",e)},h=setTimeout(f,1e4);this.peer.on("error",f),this.conn.on("error",f),this.conn.on("open",d),this.conn.on("data",function(e){l();var t=je(new Me(e),Te),n=t.type,i=t.packet;switch(n.code){case Te.join_accept.code:o.myplr=i.index;break;case Te.join_reject.code:a();break;case Te.disconnect.code:"myplr"===i.id&&a()}r(e)}),this.conn.on("close",function(e){a()})}return Object(b.a)(e,[{key:"send",value:function(e){this.pending?this.pending.push(e):this.conn.send(e)}}]),e}();function Ie(e){var t=null,n=null,r=0;return{send:function(a){var o=new Me(a),i=je(o,Pe),s=i.type,c=i.packet;switch(s.code){case Pe.info.code:r=c.version;break;case Pe.create_game.code:t||n?e(Le(Te.join_reject,{cookie:c.cookie,reason:Be.JOIN_ALREADY_IN_GAME})):t=new ze(r,c,e,function(){return t=null});break;case Pe.join_game.code:t||n?e(Le(Te.join_reject,{cookie:c.cookie,reason:Be.JOIN_ALREADY_IN_GAME})):n=new Re(r,c,e,function(){return n=null});break;default:if(t)t.handle(0,s.code,c),s.code===Pe.leave_game.code&&(t=null);else{if(n)return n.send(a),void(s.code===Pe.leave_game.code&&(n=null));if(s.code!==Pe.leave_game.code)throw Error("invalid packet ".concat(s.code))}}if(!o.done())throw Error("packet too large")}}}function Ke(e,t,n){var r=n.bitmap,a=n.images,o=n.text,i=n.clip,s=n.belt;if(r)t.transferFromImageBitmap(r);else{var c=!0,u=!1,l=void 0;try{for(var f,d=a[Symbol.iterator]();!(c=(f=d.next()).done);c=!0){var h=f.value,v=h.x,p=h.y,b=h.w,y=h.h,m=h.data,w=t.createImageData(b,y);w.data.set(m),t.putImageData(w,v,p)}}catch(N){u=!0,l=N}finally{try{c||null==d.return||d.return()}finally{if(u)throw l}}if(o.length){if(t.save(),t.font="bold 13px Times New Roman",i){var g=i.x0,k=i.y0,_=i.x1,x=i.y1;t.beginPath(),t.rect(g,k,_-g,x-k),t.clip()}var E=!0,C=!1,A=void 0;try{for(var M,S=o[Symbol.iterator]();!(E=(M=S.next()).done);E=!0){var B=M.value,j=B.x,O=B.y,L=B.text,D=B.color,T=D>>16&255,P=D>>8&255,U=255&D;t.fillStyle="rgb(".concat(T,", ").concat(P,", ").concat(U,")"),t.fillText(L,j,O+22)}}catch(N){C=!0,A=N}finally{try{E||null==S.return||S.return()}finally{if(C)throw A}}t.restore()}}e.updateBelt(s)}function Fe(){return(Fe=Object(h.a)(f.a.mark(function e(t,n,r,a){var o,i,s;return f.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.fs;case 2:if(o=e.sent,!a||r){e.next=6;break}return e.next=6,xe(t,o);case 6:return i=null,s=!1,i=t.canvas.getContext("2d",{alpha:!1}),e.next=10,new Promise(function(e,c){try{var l=new me.a,f=[],d=Ie(function(e){f.push(e)});l.addEventListener("message",function(r){var a=r.data;switch(a.action){case"loaded":e(function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return l.postMessage({action:"event",func:e,params:n})});break;case"render":Ke(t,i,a.batch);break;case"audio":n[a.func].apply(n,Object(v.a)(a.params));break;case"audioBatch":var s=!0,u=!1,f=void 0;try{for(var h,p=a.batch[Symbol.iterator]();!(s=(h=p.next()).done);s=!0){var b=h.value,y=b.func,m=b.params;n[y].apply(n,Object(v.a)(m))}}catch(C){u=!0,f=C}finally{try{s||null==p.return||p.return()}finally{if(u)throw f}}break;case"fs":o[a.func].apply(o,Object(v.a)(a.params));break;case"cursor":t.setCursorPos(a.x,a.y);break;case"keyboard":t.openKeyboard(a.rect);break;case"error":n.stop_all(),t.onError(a.error,a.stack);break;case"failed":c({message:a.error,stack:a.stack});break;case"progress":t.onProgress({text:a.text,loaded:a.loaded,total:a.total});break;case"exit":t.onExit();break;case"current_save":t.setCurrentSave(a.name);break;case"packet":d.send(a.buffer);break;case"packetBatch":var w=!0,g=!1,k=void 0;try{for(var _,x=a.batch[Symbol.iterator]();!(w=(_=x.next()).done);w=!0){var E=_.value;d.send(E)}}catch(C){g=!0,k=C}finally{try{w||null==x.return||x.return()}finally{if(g)throw k}}}});var h=[],p=!0,b=!1,y=void 0;try{for(var m,w=o.files[Symbol.iterator]();!(p=(m=w.next()).done);p=!0){var g=m.value,k=Object(u.a)(g,2)[1];h.push(k.buffer)}}catch(_){b=!0,y=_}finally{try{p||null==w.return||w.return()}finally{if(b)throw y}}l.postMessage({action:"init",files:o.files,mpq:r,spawn:a,offscreen:s},h),setInterval(function(){f.length&&(l.postMessage({action:"packetBatch",batch:f},f),f.length=0)},20),delete o.files}catch(x){c(x)}});case 10:return e.abrupt("return",e.sent);case 11:case"end":return e.stop()}},e)}))).apply(this,arguments)}function qe(e,t,n){return function(e,t,n,r){return Fe.apply(this,arguments)}(e,we(),t,n)}var Ge=n(37),Je=n.n(Ge),Xe=n(38),Ye=n.n(Xe),Qe=n(39),We=n.n(Qe),He=156977,$e=75542,Ve=function(e,t){return new Promise(function(n,r){var a=new FileReader;a.onload=function(){t&&t({loaded:e.size}),n(a.result)},a.onerror=function(){return r(a.error)},a.onabort=function(){return r()},t&&a.addEventListener("progress",t),a.readAsArrayBuffer(e)})};function Ze(e,t){return et.apply(this,arguments)}function et(){return(et=Object(h.a)(f.a.mark(function e(t,n){var r,a,o=arguments;return f.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=o.length>2&&void 0!==o[2]?o[2]:"arraybuffer",e.next=3,ke.a.request({url:t,responseType:r,onDownloadProgress:n});case 3:return a=e.sent,e.abrupt("return",a.data);case 5:case"end":return e.stop()}},e)}))).apply(this,arguments)}function tt(e,t,n){return new Promise(function(r,a){try{var o=new Je.a;o.addEventListener("message",function(e){var t=e.data;switch(t.action){case"result":r({buffer:t.buffer,blocks:t.blocks});break;case"error":a({message:t.error,stack:t.stack});break;case"progress":n(t.value)}}),o.postMessage(Object(d.a)({action:"run"},e),t)}catch(i){a(i)}})}function nt(){return(nt=Object(h.a)(f.a.mark(function e(t,n){var r,a,o,i,s,c,u,l,d,h,v,p,b,y,m,w,g,k,_,x,E,C,A,M,S,B,j,O,L,D,T,P,U,N,z,R,I,K,F,q,G,J,X,Y,Q,W,H,$,V,Z,ee,te,re,se,ce;return f.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return a=function(){n("Loading...",r.reduce(function(e,t){return e+t.loaded*t.weight},0),r.reduce(function(e,t){return e+t.total*t.weight},0))},n("Loading..."),r=[],o=function(e){return function(t){e.loaded=t.loaded,a()}},i=t.size,(s={loaded:0,weight:1,total:i}).ready=Ve(t.slice(0,32),o(s)),r.push(s),(c={loaded:0,weight:5,total:He}).ready=Ze(Ye.a,o(c)),r.push(c),(u={loaded:0,weight:5,total:$e}).ready=Ze(We.a,o(u),"text"),r.push(u),e.t0=Uint32Array,e.next=17,s.ready;case 17:if(e.t1=e.sent,l=new e.t0(e.t1),d=new Uint16Array(l.buffer),441536589===l[0]){e.next=22;break}throw Error("invalid MPQ file");case 22:if(h=1<<9+d[7],v=l[4],p=l[5],b=l[6],y=l[7],!(v+16*b>i||p+16*y>i)){e.next=29;break}throw Error("invalid MPQ file");case 29:return m={loaded:0,weight:1,total:16*b},w={loaded:0,weight:1,total:16*y},s.total-=m.total+w.total,m.ready=Ve(t.slice(v,v+m.total),o(m)),w.ready=Ve(t.slice(p,p+w.total),o(w)),r.push(m,w),e.t2=Uint32Array,e.next=38,m.ready;case 38:return e.t3=e.sent,g=new e.t2(e.t3),e.t4=Uint32Array,e.next=43,w.ready;case 43:return e.t5=e.sent,k=new e.t4(e.t5),ne(g,oe("(hash table)",3)),ne(k,oe("(block table)",3)),e.next=49,u.ready;case 49:for(e.t6=function(e){return e.trim()},e.t7=function(e){return e.length},_=e.sent.split("\n").map(e.t6).filter(e.t7),x={},E=function(e,t){return e.toString(16).padStart(8,"0")+t.toString(16).padStart(8,"0")},C=!0,A=!1,M=void 0,e.prev=57,S=_[Symbol.iterator]();!(C=(B=S.next()).done);C=!0)j=B.value,x[E(oe(j,1),oe(j,2))]=j;e.next=65;break;case 61:e.prev=61,e.t8=e.catch(57),A=!0,M=e.t8;case 65:e.prev=65,e.prev=66,C||null==S.return||S.return();case 68:if(e.prev=68,!A){e.next=71;break}throw M;case 71:return e.finish(68);case 72:return e.finish(65);case 73:for(O=4,L=[],D=0;D<O;++D)L.push({entries:[],min:i,max:0,progress:0});T=0;case 77:if(!(T<g.length/4)){e.next=94;break}if(4294967295!==(P=g[4*T+3])&&4294967294!==P){e.next=81;break}return e.abrupt("continue",91);case 81:if(x[E(g[4*T],g[4*T+1])]){e.next=85;break}return g[4*T+3]=4294967294,e.abrupt("continue",91);case 85:U=k[4*P],N=k[4*P+1],(z=L[Math.floor(U*O/i)]).entries.push(T),z.min=Math.min(z.min,U),z.max=Math.max(z.max,U+N);case 91:++T,e.next=77;break;case 94:for(R=L.reduce(function(e,t){return e+t.entries.length},0),s.total=32,I=function(){var e=F[K];if(e.min<e.max){var n={loaded:0,weight:1,total:e.max-e.min};e.ready=Ve(t.slice(e.min,e.max),o(n)).then(function(t){return e.data=t}),r.push(n)}},K=0,F=L;K<F.length;K++)I();return e.next=100,Promise.all(L.map(function(e){return e.ready}).filter(Boolean));case 100:return e.next=102,c.ready;case 102:for(q=e.sent,n("Processing..."),G=function(){var e=X[J];if(e.data){var t=new Uint32Array(6*e.entries.length);e.entries.forEach(function(e,n){var r=g[4*e+3],a=x[E(g[4*e],g[4*e+1])];t[6*n]=k[4*r],t[6*n+1]=k[4*r+1],t[6*n+2]=k[4*r+2],t[6*n+3]=k[4*r+3],t[6*n+4]=oe(ie(a),3),t[6*n+5]=a.match(/\.wav$/i)?1:0}),e.run=tt({binary:q,mpq:e.data,input:t,offset:e.min,blockSize:h},[e.data,t.buffer],function(t){e.progress=t;var r=L.reduce(function(e,t){return e+t.progress},0);n("Processing...",r,R)}).then(function(t){return e.result=t})}},J=0,X=L;J<X.length;J++)G();return e.next=108,Promise.all(L.map(function(e){return e.run}).filter(Boolean));case 108:for(Y=32+m.total+w.total,Q=L.reduce(function(e,t){var n=t.result;return e+(n?n.buffer.byteLength:0)},Y),W=[l.buffer,g.buffer,k.buffer],k.fill(0),H=0,$=0,V=L;$<V.length;$++)if((Z=V[$]).result){for(ee=Z.result,te=ee.buffer,re=ee.blocks,se=0;se<Z.entries.length;++se)ce=Z.entries[se],g[4*ce+3]=H+se,re[4*se]+=Y;k.set(re,4*H),H+=Z.entries.length,W.push(te),Y+=te.byteLength}return l[1]=32,l[2]=Q,d[6]=1,d[7]=7,l[4]=32,l[5]=32+4*g.length,l[6]=g.length/4,l[7]=k.length/4,ae(g,oe("(hash table)",3)),ae(k,oe("(block table)",3)),e.abrupt("return",new Blob(W,{type:"binary/octet-stream"}));case 125:case"end":return e.stop()}},e,null,[[57,61,65,73],[66,,68,72]])}))).apply(this,arguments)}var rt=function(e){function t(){var e,n;Object(p.a)(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return(n=Object(y.a)(this,(e=Object(m.a)(t)).call.apply(e,[this].concat(a)))).state={},n.parseFile=function(e){var t=e.target.files;t.length>0&&n.start(t[0])},n.onDone=function(e){var t=URL.createObjectURL(e);n.setState({url:t});var r=document.createElement("a");r.setAttribute("href",t),r.setAttribute("download","DIABDAT.MPQ"),document.body.appendChild(r),r.click(),document.body.removeChild(r)},n.onClose=function(){n.state.url&&URL.revokeObjectURL(n.state.url),n.props.api.setState({compress:!1})},n}return Object(g.a)(t,e),Object(b.a)(t,[{key:"onProgress",value:function(e){this.setState({progress:e})}},{key:"onError",value:function(e,t){var n=this.props.api;n.setState({compress:!1}),n.onError(e,t)}},{key:"start",value:function(e){var t=this;this.setState({started:!0}),function(e,t){return nt.apply(this,arguments)}(e,function(e,n,r){return t.onProgress({text:e,loaded:n,total:r})}).then(this.onDone,function(e){return t.onError(e.message,e.stack)})}},{key:"render",value:function(){var e=this.state,t=e.url,n=e.started,r=e.progress;return t?a.a.createElement("div",{className:"start"},a.a.createElement("p",null,a.a.createElement("a",{href:t,download:"DIABDAT.MPQ"},"Click here if download doesn't start.")),a.a.createElement("div",{className:"startButton",onClick:this.onClose},"Back")):n?a.a.createElement("div",{className:"loading"},r&&r.text||"Processing...",null!=r&&!!r.total&&a.a.createElement("span",{className:"progressBar"},a.a.createElement("span",null,a.a.createElement("span",{style:{width:"".concat(Math.round(100*r.loaded/r.total),"%")}})))):a.a.createElement("div",{className:"start"},a.a.createElement("p",null,"You can use this tool to reduce the original MPQ to about half its size. It encodes sounds in MP3 format and uses better compression for regular files. To begin, click the button below or drop the MPQ onto the page."),a.a.createElement("form",null,a.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),a.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),a.a.createElement("div",{className:"startButton",onClick:this.onClose},"Back"))}}]),t}(a.a.Component);function at(e,t){var n=(e.message||"Unknown error")+(e.stack?"\n"+e.stack:""),r=new URL("https://github.com/d07RiV/diabloweb/issues/new");return r.searchParams.set("body","**Description:**\n[Please describe what you were doing before the error occurred]\n\n**App version:**\nDiabloWeb ".concat("1.0.39"," (").concat(t?"Retail":"Shareware",")\n\n**Error message:**\n \n").concat(n.split("\n").map(function(e){return" "+e}).join("\n"),"\n\n**User agent:**\n\n ").concat(navigator.userAgent,"\n\n**Save file:**\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()`","]\n")),r.toString()}window.Peer=Ae.a,E.a.initialize("UA-43123589-6"),E.a.pageview("/");var ot=0,it=1;var st=null;try{st=function(){var e=!0,t=!1,n=void 0;try{for(var r,a=document.styleSheets[Symbol.iterator]();!(e=(r=a.next()).done);e=!0){var o=r.value,i=!0,s=!1,c=void 0;try{for(var u,l=o.cssRules[Symbol.iterator]();!(i=(u=l.next()).done);i=!0){var f=u.value;if(f.type===CSSRule.MEDIA_RULE&&"(min-aspect-ratio: 3/1)"===f.conditionText){var d=!0,h=!1,v=void 0;try{for(var p,b=f.cssRules[Symbol.iterator]();!(d=(p=b.next()).done);d=!0){var y=p.value;if(".App.keyboard .Body .inner"===y.selectorText)return y}}catch(m){h=!0,v=m}finally{try{d||null==b.return||b.return()}finally{if(h)throw v}}}}}catch(m){s=!0,c=m}finally{try{i||null==l.return||l.return()}finally{if(s)throw c}}}}catch(m){t=!0,n=m}finally{try{e||null==a.return||a.return()}finally{if(t)throw n}}}()}catch(lt){}var ct=function(e){var t=e.children,n=Object(k.a)(e,["children"]);return a.a.createElement("a",Object.assign({target:"_blank",rel:"noopener noreferrer"},n),t)},ut=function(e){function t(e){var n;return Object(p.a)(this,t),(n=Object(y.a)(this,Object(m.a)(t).call(this,e))).files=new Map,n.state={started:!1,loading:!1,dropping:0,has_spawn:!1},n.cursorPos={x:0,y:0},n.touchControls=!1,n.touchButtons=[null,null,null,null,null,null],n.touchCtx=[null,null,null,null,null,null],n.touchMods=[!1,!1,!1,!1,!1,!1],n.touchBelt=[-1,-1,-1,-1,-1,-1],n.maxKeyboard=0,n.fs=Object(be.a)(!0),n.onDrop=function(e){var t=function(e){if(e.dataTransfer.items)for(var t=0;t<e.dataTransfer.items.length;++t)if("file"===e.dataTransfer.items[t].kind)return e.dataTransfer.items[t].getAsFile();if(e.dataTransfer.files.length)return e.dataTransfer.files[0]}(e);t&&(e.preventDefault(),n.compressMpq?n.compressMpq.start(t):n.start(t)),n.setState({dropping:0})},n.onDragEnter=function(e){e.preventDefault(),n.setDropping(1)},n.onDragOver=function(e){(function(e){if(e.dataTransfer.items)for(var t=0;t<e.dataTransfer.items.length;++t)if("file"===e.dataTransfer.items[t].kind)return!0;return!!e.dataTransfer.files.length})(e)&&e.preventDefault()},n.onDragLeave=function(e){n.setDropping(-1)},n.showSaves=function(){!0===n.state.save_names?n.updateSaves().then(function(){return n.setState({show_saves:!n.state.show_saves})}):n.setState({show_saves:!n.state.show_saves})},n.onResize=function(){document.exitPointerLock()},n.onPointerLockChange=function(){window.screen&&window.innerHeight===window.screen.height&&!n.pointerLocked()&&(n.game("DApi_Key",0,0,27),n.game("DApi_Key",1,0,27))},n.onMouseMove=function(e){if(n.canvas){var t=n.mousePos(e),r=t.x,a=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,a),e.preventDefault()}},n.onMouseDown=function(e){if(n.canvas&&e.target!==n.keyboard){n.touchControls&&(n.touchControls=!1,n.element.classList.remove("touch"));var t=n.mousePos(e),r=t.x,a=t.y;window.screen&&window.innerHeight===window.screen.height&&(n.pointerLocked()||n.canvas.requestPointerLock()),n.game("DApi_Mouse",1,n.mouseButton(e),n.eventMods(e),r,a),e.preventDefault()}},n.onMouseUp=function(e){if(n.canvas){e.target,n.keyboard;var t=n.mousePos(e),r=t.x,a=t.y;n.game("DApi_Mouse",2,n.mouseButton(e),n.eventMods(e),r,a),e.target!==n.keyboard&&e.preventDefault()}},n.onKeyDown=function(e){n.canvas&&(n.game("DApi_Key",0,n.eventMods(e),e.keyCode),!n.showKeyboard&&e.keyCode>=32&&1===e.key.length?n.game("DApi_Char",e.key.charCodeAt(0)):8!==e.keyCode&&13!==e.keyCode||n.game("DApi_Char",e.keyCode),n.clearKeySel(),n.showKeyboard||(8===e.keyCode||9===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(){n.onKeyboardInner(0)},n.onKeyboardBlur=function(){n.onKeyboardInner(1)},n.parseFile=function(e){var t=e.target.files;t.length>0&&n.start(t[0])},n.parseSave=function(e){var t=e.target.files;t.length>0&&n.start(t[0])},n.touchButton=null,n.touchCanvas=null,n.onTouchStart=function(e){if(n.canvas&&e.target!==n.keyboard&&(n.keyboard.blur(),e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,a=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,a),n.touchMods[ot]||n.game("DApi_Mouse",1,n.touchMods[it]?2:1,n.eventMods(e),r,a)}},n.onTouchMove=function(e){if(n.canvas&&e.target!==n.keyboard&&(e.preventDefault(),n.updateTouchButton(e.touches,!1))){var t=n.mousePos(n.touchCanvas),r=t.x,a=t.y;n.game("DApi_Mouse",0,0,n.eventMods(e),r,a)}},n.onTouchEnd=function(e){if(n.canvas){e.target===n.keyboard||e.preventDefault();var t=n.touchCanvas;if(n.updateTouchButton(e.touches,!0),t&&!n.touchCanvas){var r=n.mousePos(t),a=r.x,o=r.y;n.game("DApi_Mouse",2,1,n.eventMods(e),a,o),n.game("DApi_Mouse",2,2,n.eventMods(e),a,o),!n.touchMods[it]||n.touchButton&&n.touchButton.index===it||n.setTouchMod(it,!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(w.a)(n),0),n.setTouch1=n.setTouch_.bind(Object(w.a)(n),1),n.setTouch2=n.setTouch_.bind(Object(w.a)(n),2),n.setTouch3=n.setTouchBelt_.bind(Object(w.a)(n),3),n.setTouch4=n.setTouchBelt_.bind(Object(w.a)(n),4),n.setTouch5=n.setTouchBelt_.bind(Object(w.a)(n),5),n}return Object(g.a)(t,e),Object(b.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&&_e.includes(n.byteLength)&&e.setState({has_spawn:!0}),Object(v.a)(t.files.keys()).filter(function(e){return e.match(/\.sv$/i)}).length&&e.setState({save_names:!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){var n=this;Object(h.a)(f.a.mark(function r(){var a;return f.a.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(a={message:e},!n.saveName){r.next=8;break}return r.next=4,n.fs;case 4:return r.t0=n.saveName,r.next=7,r.sent.fileUrl(r.t0);case 7:a.save=r.sent;case 8:t?Object(pe.mapStackTrace)(t,function(e){n.setState(function(t){return!t.error&&{error:Object(d.a)({},a,{stack:e.join("\n")})}})}):n.setState(function(e){return!e.error&&{error:a}});case 9:case"end":return r.stop()}},r)}))()}},{key:"openKeyboard",value:function(e){e?(this.showKeyboard={left:"".concat((100*(e[0]-10)/640).toFixed(2),"%"),top:"".concat((100*(e[1]-10)/480).toFixed(2),"%"),width:"".concat((100*(e[2]-e[0]+20)/640).toFixed(2),"%"),height:"".concat((100*(e[3]-e[1]+20)/640).toFixed(2),"%")},this.maxKeyboard=e[4],this.element.classList.add("keyboard"),Object.assign(this.keyboard.style,this.showKeyboard),this.keyboard.focus(),st&&(st.style.transform="translate(-50%, ".concat((56.25*-(e[1]+e[3])/960).toFixed(2),"vw)"))):(this.showKeyboard=!1,this.element.classList.remove("keyboard"),this.keyboard.blur(),this.keyboard.value="",this.keyboardNum=0)}},{key:"setCursorPos",value:function(e,t){var n=this,r=this.canvas.getBoundingClientRect();this.cursorPos={x:r.left+(r.right-r.left)*e/640,y:r.top+(r.bottom-r.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:"updateSaves",value:function(){var e=this;return this.fs.then(function(t){var n={};Object(v.a)(t.files.keys()).filter(function(e){return e.match(/\.sv$/i)}).forEach(function(e){n[e]=function(e,t){try{var n=Z(new ve(e).read("hero"),function(e){return e.match(/spawn\d+\.sv/i)?"lshbkfg1":e.match(/share_\d+\.sv/i)?"lshbkfg1":e.match(/multi_\d+\.sv/i)?"szqnlsk1":"xrgyrkj1"}(t)),r=n.indexOf(0,16),a={};return a.name=String.fromCharCode.apply(String,Object(v.a)(n.subarray(16,r))),a.cls=n[48],a.level=n[53],a}catch(lt){return null}}(t.files.get(e).buffer,e)}),e.setState({save_names:n})})}},{key:"removeSave",value:function(e){var t=this;window.confirm("Are you sure you want to delete ".concat(e,"?"))&&Object(h.a)(f.a.mark(function n(){var r;return f.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,t.fs;case 2:return r=n.sent,n.next=5,r.delete(e.toLowerCase());case 5:r.files.delete(e.toLowerCase()),t.updateSaves();case 7:case"end":return n.stop()}},n)}))()}},{key:"downloadSave",value:function(e){this.fs.then(function(t){return t.download(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,r=0;r<e.length&&n<6;++r)e[r]>=0&&!t.has(e[r])&&(this.drawBelt(n++,r),t.add(e[r]));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(function(){t.updateSaves()});else if(!this.state.show_saves)if(!e||e.name.match(/\.mpq$/i)){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(/^spawn\.mpq$/i));E.a.event({category:"Game",action:n?"Start Retail":"Start Shareware"}),this.setState({loading:!0,retail:n}),qe(this,e,!n).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),window.addEventListener("resize",t.onResize),t.setState({started:!0})},function(e){return t.onError(e.message,e.stack)})}else window.alert("Please select an MPQ file. If you downloaded the installer from GoG, you will need to install it on PC and use the MPQ file from the installation folder.")}},{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:"onKeyboardInner",value:function(e){if(this.showKeyboard){var t,n=this.keyboard.value;if(this.maxKeyboard>0)t=(n.match(/[\x20-\x7E]/g)||[]).join("").substring(0,this.maxKeyboard);else{var r=-this.maxKeyboard;n.match(/^\d*$/)&&(this.keyboardNum=Math.min(n.length?parseInt(n):0,r)),t=this.keyboardNum?this.keyboardNum.toString():""}n!==t&&(this.keyboard.value=t),this.clearKeySel(),this.game("text",t,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 r=performance.now();(!this.beltTime||r-this.beltTime>750)&&(this.game("DApi_Char",49+this.touchBelt[e]),this.beltTime=r)}}},{key:"updateTouchButton",value:function(e,t){var n=this,r=null;this.touchControls||(this.touchControls=!0,this.element.classList.add("touch"));var a=this.touchButton,o=!0,i=!1,s=void 0;try{for(var c,u=function(){var t=c.value,o=t.target,i=t.identifier,s=t.clientX,u=t.clientY;if(a&&a.id===i&&n.touchButtons[a.index]===o)return e.length>1&&(a.stick=!1),a.clientX=s,a.clientY=u,n.touchCanvas=Object(v.a)(e).find(function(e){return e.identifier!==i}),n.touchCanvas&&(n.touchCanvas={clientX:n.touchCanvas.clientX,clientY:n.touchCanvas.clientY}),delete n.panPos,{v:null!=n.touchCanvas};var l=n.touchButtons.indexOf(o);l>=0&&!r&&(r={id:i,index:l,stick:!0,original:n.touchMods[l],clientX:s,clientY:u})},l=e[Symbol.iterator]();!(o=(c=l.next()).done);o=!0){var f=u();if("object"===typeof f)return f.v}}catch(_){i=!0,s=_}finally{try{o||null==l.return||l.return()}finally{if(i)throw s}}if(a&&!r&&t&&a.stick){var d=this.touchButtons[a.index].getBoundingClientRect(),h=a.clientX,p=a.clientY;h>=d.left&&h<d.right&&p>=d.top&&p<d.bottom?this.setTouchMod(a.index,!a.original,!0):this.setTouchMod(a.index,a.original)}else a&&this.setTouchMod(a.index,!1);if(this.touchButton=r,r)this.setTouchMod(r.index,!0),r.index===ot?this.setTouchMod(it,!1):r.index===it&&this.setTouchMod(ot,!1),delete this.panPos;else{if(2===e.length){var b=(e[1].clientX+e[0].clientX)/2,y=(e[1].clientY+e[0].clientY)/2;if(this.panPos){var m,w=b-this.panPos.x,g=y-this.panPos.y,k=this.canvas.offsetHeight/12;if(Math.max(Math.abs(w),Math.abs(g))>k)m=Math.abs(w)>Math.abs(g)?w>0?37:39:g>0?38:40,this.game("DApi_Key",0,0,m),this.panPos={x:b,y:y}}else this.game("DApi_Mouse",0,0,24,320,180),this.game("DApi_Mouse",2,1,24,320,180),this.panPos={x:b,y:y};return this.touchCanvas=null,!1}delete this.panPos}return this.touchCanvas=Object(v.a)(e).find(function(e){return!r||e.identifier!==r.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:"renderUi",value:function(){var e=this,t=this.state,n=t.started,r=t.loading,o=t.error,i=t.progress,s=t.has_spawn,c=t.save_names,l=t.show_saves,f=t.compress;if(l&&"object"===typeof c){var d=["Warrior","Rogue","Sorcerer"];return a.a.createElement("div",{className:"start"},a.a.createElement("ul",{className:"saveList"},Object.entries(c).map(function(t){var n=Object(u.a)(t,2),r=n[0],o=n[1];return a.a.createElement("li",{key:r},r,o?a.a.createElement("span",{className:"info"},o.name," (lv. ",o.level," ",d[o.cls],")"):"",a.a.createElement(C.a,{className:"btnDownload",icon:A.a,onClick:function(){return e.downloadSave(r)}}),a.a.createElement(C.a,{className:"btnRemove",icon:A.b,onClick:function(){return e.removeSave(r)}}))})),a.a.createElement("form",null,a.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Upload Save"),a.a.createElement("input",{accept:".sv",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseSave})),a.a.createElement("div",{className:"startButton",onClick:function(){return e.setState({show_saves:!1})}},"Back"))}return f?a.a.createElement(rt,{api:this,ref:function(t){return e.compressMpq=t}}):o?a.a.createElement(ct,{className:"error",href:at(o,this.state.retail)},a.a.createElement("p",{className:"header"},"The following error has occurred:"),a.a.createElement("p",{className:"body"},o.message),a.a.createElement("p",{className:"footer"},"Click to create an issue on GitHub"),null!=o.save&&a.a.createElement("a",{href:o.save,download:this.saveName},"Download save file")):r&&!n?a.a.createElement("div",{className:"loading"},i&&i.text||"Loading...",null!=i&&!!i.total&&a.a.createElement("span",{className:"progressBar"},a.a.createElement("span",null,a.a.createElement("span",{style:{width:"".concat(Math.round(100*i.loaded/i.total),"%")}})))):n?void 0:a.a.createElement("div",{className:"start"},a.a.createElement("p",null,"This is a web port of the original Diablo game, based on source code reconstructed by GalaXyHaXz and devilution team. The project page with information and links can be found over here ",a.a.createElement(ct,{href:"https://github.com/d07RiV/diabloweb"},"https://github.com/d07RiV/diabloweb")),a.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 ",a.a.createElement(ct,{href:"https://www.gog.com/game/diablo"},"GoG"),"."," ",a.a.createElement("span",{className:"link",onClick:function(){return e.setState({compress:!0})}},"Click here to compress the MPQ, greatly reducing its size.")),!s&&a.a.createElement("p",null,"Or you can play the shareware version for free (50MB download)."),a.a.createElement("form",null,a.a.createElement("label",{htmlFor:"loadFile",className:"startButton"},"Select MPQ"),a.a.createElement("input",{accept:".mpq",type:"file",id:"loadFile",style:{display:"none"},onChange:this.parseFile})),a.a.createElement("div",{className:"startButton",onClick:function(){return e.start()}},"Play Shareware"),!!c&&a.a.createElement("div",{className:"startButton",onClick:this.showSaves},"Manage Saves"))}},{key:"render",value:function(){var e=this.state,t=e.started,n=e.error,r=e.dropping;return a.a.createElement("div",{className:x()("App",{touch:this.touchControls,started:t,dropping:r,keyboard:!!this.showKeyboard}),ref:this.setElement},a.a.createElement("div",{className:"touch-ui touch-mods"},a.a.createElement("div",{className:x()("touch-button","touch-button-0",{active:this.touchMods[0]}),ref:this.setTouch0}),a.a.createElement("div",{className:x()("touch-button","touch-button-1",{active:this.touchMods[1]}),ref:this.setTouch1}),a.a.createElement("div",{className:x()("touch-button","touch-button-2",{active:this.touchMods[2]}),ref:this.setTouch2})),a.a.createElement("div",{className:"touch-ui touch-belt"},a.a.createElement("div",{className:x()("touch-button","touch-button-0"),ref:this.setTouch3}),a.a.createElement("div",{className:x()("touch-button","touch-button-1"),ref:this.setTouch4}),a.a.createElement("div",{className:x()("touch-button","touch-button-2"),ref:this.setTouch5})),a.a.createElement("div",{className:"Body"},a.a.createElement("div",{className:"inner"},!n&&a.a.createElement("canvas",{ref:this.setCanvas,width:640,height:480}),a.a.createElement("input",{type:"text",className:"keyboard",onChange:this.onKeyboard,onBlur:this.onKeyboardBlur,ref:this.setKeyboard,spellCheck:!1,style:this.showKeyboard||{}}))),a.a.createElement("div",{className:"BodyV"},this.renderUi()))}}]),t}(a.a.Component);i.a.render(a.a.createElement(ut,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");s?(function(e,t){fetch(e).then(function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.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)})}}({onUpdate:function(){}})}},[[41,2,0,5]]]);
//# sourceMappingURL=main.0a18bc0c.chunk.js.map