quake2ts 0.0.435 → 0.0.437
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +16 -16
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +13 -1
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +13 -1
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +1 -1
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +11 -0
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +11 -0
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/demo/playback.d.ts +6 -0
- package/packages/engine/dist/types/demo/playback.d.ts.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -478,7 +478,7 @@ void main() {
|
|
|
478
478
|
float dist = distance(v_uv, vec2(0.5));
|
|
479
479
|
float alpha = v_color.a * (1.0 - smoothstep(0.35, 0.5, dist));
|
|
480
480
|
o_color = vec4(v_color.rgb, alpha);
|
|
481
|
-
}`,Oo=class{constructor(t,r){this.vertexCapacity=0;this.indexCapacity=0;this.gl=t,this.system=r,this.program=Le.create(t,{vertex:Al,fragment:Ml}),this.vertexBuffer=new Ee(t,t.DYNAMIC_DRAW),this.indexBuffer=new xe(t,t.DYNAMIC_DRAW),this.vertexArray=new Fe(t),this.vertexArray.configureAttributes([{index:0,size:3,type:t.FLOAT,stride:36,offset:0},{index:1,size:2,type:t.FLOAT,stride:36,offset:12},{index:2,size:4,type:t.FLOAT,stride:36,offset:20}],this.vertexBuffer)}render(t){let r=this.system.buildMesh(t.viewRight,t.viewUp);if(r.indices.length===0)return;let n=r.vertices;r.vertices.byteLength>this.vertexCapacity?(this.vertexCapacity=r.vertices.byteLength,this.vertexBuffer.upload(n,this.gl.DYNAMIC_DRAW)):this.vertexBuffer.update(n);let i=r.indices;r.indices.byteLength>this.indexCapacity?(this.indexCapacity=r.indices.byteLength,this.indexBuffer.upload(i,this.gl.DYNAMIC_DRAW)):this.indexBuffer.update(i),this.gl.depthMask(!1),this.program.use();let s=this.program.getUniformLocation("u_viewProjection");this.gl.uniformMatrix4fv(s,!1,t.viewProjection),this.vertexArray.bind();for(let o of r.batches)o.blendMode==="additive"?this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE):this.gl.blendFuncSeparate(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA,this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.drawElements(this.gl.TRIANGLES,o.count,this.gl.UNSIGNED_SHORT,o.start*2);this.gl.depthMask(!0)}dispose(){this.program.dispose(),this.vertexBuffer.dispose(),this.indexBuffer.dispose(),this.vertexArray.dispose()}};function Cu(e){let{system:t,origin:r,normal:n={x:0,y:0,z:1}}=e;for(let i=0;i<12;i+=1){let s=200+t.rng.frandom()*180,o=t.rng.frandom()*.35;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*80,y:n.y*s+(t.rng.frandom()-.5)*80,z:Math.max(n.z*s,120)+o*80},color:[1,.8,.4,1],size:2.5,lifetime:.45+t.rng.frandom()*.1,gravity:600,damping:2,bounce:.45,blendMode:"additive",fade:!0})}for(let i=0;i<8;i+=1)t.spawn({position:r,velocity:{x:(t.rng.frandom()-.5)*40,y:(t.rng.frandom()-.5)*40,z:80+t.rng.frandom()*40},color:[.45,.45,.45,.75],size:6,lifetime:.6,gravity:200,damping:4,bounce:.15,blendMode:"alpha",fade:!0})}function Ru(e){let{system:t,origin:r}=e;for(let n=0;n<40;n+=1){let i=t.rng.frandom()*Math.PI*2,s=Math.acos(2*t.rng.frandom()-1),o=220+t.rng.frandom()*260,a={x:Math.sin(s)*Math.cos(i),y:Math.sin(s)*Math.sin(i),z:Math.cos(s)};t.spawn({position:r,velocity:{x:a.x*o,y:a.y*o,z:a.z*o},color:[1,.6,.2,1],size:5,lifetime:.9,gravity:700,damping:1,bounce:.35,blendMode:"additive",fade:!0})}for(let n=0;n<16;n+=1)t.spawn({position:r,velocity:{x:(t.rng.frandom()-.5)*30,y:(t.rng.frandom()-.5)*30,z:120+t.rng.frandom()*120},color:[.25,.25,.25,.9],size:12,lifetime:1.2,gravity:300,damping:3,blendMode:"alpha",fade:!0})}function Fu(e){let{system:t,origin:r,direction:n={x:0,y:0,z:1}}=e;for(let i=0;i<24;i+=1){let s=120+t.rng.frandom()*180;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*70,y:n.y*s+(t.rng.frandom()-.5)*70,z:n.z*s+t.rng.frandom()*80},color:[.6,0,0,.95],size:3,lifetime:.8,gravity:900,damping:1,bounce:.2,blendMode:"alpha",fade:!0})}}function zu(e){let{system:t,origin:r}=e;for(let n=0;n<30;n+=1){let i=t.rng.frandom()*Math.PI*2,s=8+t.rng.frandom()*8;t.spawn({position:r,velocity:{x:Math.cos(i)*s,y:Math.sin(i)*s,z:100+t.rng.frandom()*80},color:[.4,.6,1,.9],size:4,lifetime:.5,gravity:300,damping:2,blendMode:"additive",fade:!0})}}function ku(e){let{system:t,origin:r,direction:n={x:1,y:0,z:0}}=e;for(let i=0;i<10;i+=1){let s=350+t.rng.frandom()*100;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*30,y:n.y*s+(t.rng.frandom()-.5)*30,z:n.z*s+(t.rng.frandom()-.5)*30},color:[1,.8,.3,1],size:3,lifetime:.25,gravity:200,damping:1,blendMode:"additive",fade:!0})}}function Pu(e){let{system:t,origin:r,direction:n={x:0,y:0,z:0}}=e;for(let i=0;i<6;i+=1)t.spawn({position:{x:r.x+n.x*i*2,y:r.y+n.y*i*2,z:r.z+n.z*i*2},velocity:{x:(t.rng.frandom()-.5)*15,y:(t.rng.frandom()-.5)*15,z:20+t.rng.frandom()*15},color:[.6,.6,.6,.8],size:2.2,lifetime:.6,gravity:200,damping:1.5,blendMode:"alpha",fade:!0})}var Ct=class{constructor(t){this.messageOffsets=[];this.buffer=t,this.view=new DataView(t),this.offset=0,this.scan()}scan(){let t=0;for(this.messageOffsets=[];t+4<=this.buffer.byteLength;){let r=this.view.getInt32(t,!0);if(r<0||r>2097152){console.warn(`DemoReader: Invalid block length ${r} at offset ${t} during scan`);break}if(t+4+r>this.buffer.byteLength){console.warn(`DemoReader: Incomplete block at offset ${t} during scan`);break}this.messageOffsets.push(t),t+=4+r}}hasMore(){return this.offset<this.buffer.byteLength}readNextBlock(){if(this.offset+4>this.buffer.byteLength)return null;let t=this.view.getInt32(this.offset,!0);if(t<0||this.offset+4+t>this.buffer.byteLength)return null;this.offset+=4;let r=this.buffer.slice(this.offset,this.offset+t);return this.offset+=t,{length:t,data:new On(r)}}reset(){this.offset=0}seekToMessage(t){return t<0||t>=this.messageOffsets.length?!1:(this.offset=this.messageOffsets[t],!0)}getMessageCount(){return this.messageOffsets.length}getOffset(){return this.offset}getProgress(){let t=this.offset,r=this.buffer.byteLength;return{current:t,total:r,percent:r>0?t/r*100:0}}};function Tn(e){let t=e.length;for(;--t>=0;)e[t]=0}var C1=0,_0=1,R1=2,F1=3,z1=258,Yl=29,as=256,Ji=as+1+Yl,Mn=30,ql=19,v0=2*Ji+1,Ir=15,Ll=16,k1=7,jl=256,S0=16,w0=17,A0=18,Ul=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Wo=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),M0=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),D1=512,Ft=new Array((Ji+2)*2);Tn(Ft);var qi=new Array(Mn*2);Tn(qi);var es=new Array(D1);Tn(es);var ts=new Array(z1-F1+1);Tn(ts);var Ql=new Array(Yl);Tn(Ql);var Xo=new Array(Mn);Tn(Xo);function El(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var L0,E0,T0;function Tl(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var I0=e=>e<256?es[e]:es[256+(e>>>7)],rs=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},ze=(e,t,r)=>{e.bi_valid>Ll-r?(e.bi_buf|=t<<e.bi_valid&65535,rs(e,e.bi_buf),e.bi_buf=t>>Ll-e.bi_valid,e.bi_valid+=r-Ll):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)},mt=(e,t,r)=>{ze(e,r[t*2],r[t*2+1])},C0=(e,t)=>{let r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1},B1=e=>{e.bi_valid===16?(rs(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},O1=(e,t)=>{let r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,d=t.stat_desc.max_length,l,c,h,u,f,m,g=0;for(u=0;u<=Ir;u++)e.bl_count[u]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<v0;l++)c=e.heap[l],u=r[r[c*2+1]*2+1]+1,u>d&&(u=d,g++),r[c*2+1]=u,!(c>n)&&(e.bl_count[u]++,f=0,c>=a&&(f=o[c-a]),m=r[c*2],e.opt_len+=m*(u+f),s&&(e.static_len+=m*(i[c*2+1]+f)));if(g!==0){do{for(u=d-1;e.bl_count[u]===0;)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[d]--,g-=2}while(g>0);for(u=d;u!==0;u--)for(c=e.bl_count[u];c!==0;)h=e.heap[--l],!(h>n)&&(r[h*2+1]!==u&&(e.opt_len+=(u-r[h*2+1])*r[h*2],r[h*2+1]=u),c--)}},R0=(e,t,r)=>{let n=new Array(Ir+1),i=0,s,o;for(s=1;s<=Ir;s++)i=i+r[s-1]<<1,n[s]=i;for(o=0;o<=t;o++){let a=e[o*2+1];a!==0&&(e[o*2]=C0(n[a]++,a))}},N1=()=>{let e,t,r,n,i,s=new Array(Ir+1);for(r=0,n=0;n<Yl-1;n++)for(Ql[n]=r,e=0;e<1<<Ul[n];e++)ts[r++]=n;for(ts[r-1]=n,i=0,n=0;n<16;n++)for(Xo[n]=i,e=0;e<1<<Wo[n];e++)es[i++]=n;for(i>>=7;n<Mn;n++)for(Xo[n]=i<<7,e=0;e<1<<Wo[n]-7;e++)es[256+i++]=n;for(t=0;t<=Ir;t++)s[t]=0;for(e=0;e<=143;)Ft[e*2+1]=8,e++,s[8]++;for(;e<=255;)Ft[e*2+1]=9,e++,s[9]++;for(;e<=279;)Ft[e*2+1]=7,e++,s[7]++;for(;e<=287;)Ft[e*2+1]=8,e++,s[8]++;for(R0(Ft,Ji+1,s),e=0;e<Mn;e++)qi[e*2+1]=5,qi[e*2]=C0(e,5);L0=new El(Ft,Ul,as+1,Ji,Ir),E0=new El(qi,Wo,0,Mn,Ir),T0=new El(new Array(0),P1,0,ql,k1)},F0=e=>{let t;for(t=0;t<Ji;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Mn;t++)e.dyn_dtree[t*2]=0;for(t=0;t<ql;t++)e.bl_tree[t*2]=0;e.dyn_ltree[jl*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},z0=e=>{e.bi_valid>8?rs(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Du=(e,t,r,n)=>{let i=t*2,s=r*2;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]},Il=(e,t,r)=>{let n=e.heap[r],i=r<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Du(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Du(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n},Bu=(e,t,r)=>{let n,i,s=0,o,a;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+s++]&255,n+=(e.pending_buf[e.sym_buf+s++]&255)<<8,i=e.pending_buf[e.sym_buf+s++],n===0?mt(e,i,t):(o=ts[i],mt(e,o+as+1,t),a=Ul[o],a!==0&&(i-=Ql[o],ze(e,i,a)),n--,o=I0(n),mt(e,o,r),a=Wo[o],a!==0&&(n-=Xo[o],ze(e,n,a)));while(s<e.sym_next);mt(e,jl,t)},Hl=(e,t)=>{let r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems,o,a,d=-1,l;for(e.heap_len=0,e.heap_max=v0,o=0;o<s;o++)r[o*2]!==0?(e.heap[++e.heap_len]=d=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=d<2?++d:0,r[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=n[l*2+1]);for(t.max_code=d,o=e.heap_len>>1;o>=1;o--)Il(e,r,o);l=s;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Il(e,r,1),a=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=a,r[l*2]=r[o*2]+r[a*2],e.depth[l]=(e.depth[o]>=e.depth[a]?e.depth[o]:e.depth[a])+1,r[o*2+1]=r[a*2+1]=l,e.heap[1]=l++,Il(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],O1(e,t),R0(r,d,e.bl_count)},Ou=(e,t,r)=>{let n,i=-1,s,o=t[1],a=0,d=7,l=4;for(o===0&&(d=138,l=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)s=o,o=t[(n+1)*2+1],!(++a<d&&s===o)&&(a<l?e.bl_tree[s*2]+=a:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[S0*2]++):a<=10?e.bl_tree[w0*2]++:e.bl_tree[A0*2]++,a=0,i=s,o===0?(d=138,l=3):s===o?(d=6,l=3):(d=7,l=4))},Nu=(e,t,r)=>{let n,i=-1,s,o=t[1],a=0,d=7,l=4;for(o===0&&(d=138,l=3),n=0;n<=r;n++)if(s=o,o=t[(n+1)*2+1],!(++a<d&&s===o)){if(a<l)do mt(e,s,e.bl_tree);while(--a!==0);else s!==0?(s!==i&&(mt(e,s,e.bl_tree),a--),mt(e,S0,e.bl_tree),ze(e,a-3,2)):a<=10?(mt(e,w0,e.bl_tree),ze(e,a-3,3)):(mt(e,A0,e.bl_tree),ze(e,a-11,7));a=0,i=s,o===0?(d=138,l=3):s===o?(d=6,l=3):(d=7,l=4)}},U1=e=>{let t;for(Ou(e,e.dyn_ltree,e.l_desc.max_code),Ou(e,e.dyn_dtree,e.d_desc.max_code),Hl(e,e.bl_desc),t=ql-1;t>=3&&e.bl_tree[M0[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},H1=(e,t,r,n)=>{let i;for(ze(e,t-257,5),ze(e,r-1,5),ze(e,n-4,4),i=0;i<n;i++)ze(e,e.bl_tree[M0[i]*2+1],3);Nu(e,e.dyn_ltree,t-1),Nu(e,e.dyn_dtree,r-1)},V1=e=>{let t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(r=32;r<as;r++)if(e.dyn_ltree[r*2]!==0)return 1;return 0},Uu=!1,G1=e=>{Uu||(N1(),Uu=!0),e.l_desc=new Tl(e.dyn_ltree,L0),e.d_desc=new Tl(e.dyn_dtree,E0),e.bl_desc=new Tl(e.bl_tree,T0),e.bi_buf=0,e.bi_valid=0,F0(e)},k0=(e,t,r,n)=>{ze(e,(C1<<1)+(n?1:0),3),z0(e),rs(e,r),rs(e,~r),r&&e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r},W1=e=>{ze(e,_0<<1,3),mt(e,jl,Ft),B1(e)},X1=(e,t,r,n)=>{let i,s,o=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=V1(e)),Hl(e,e.l_desc),Hl(e,e.d_desc),o=U1(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=r+5,r+4<=i&&t!==-1?k0(e,t,r,n):e.strategy===4||s===i?(ze(e,(_0<<1)+(n?1:0),3),Bu(e,Ft,qi)):(ze(e,(R1<<1)+(n?1:0),3),H1(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Bu(e,e.dyn_ltree,e.dyn_dtree)),F0(e),n&&z0(e)},$1=(e,t,r)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=r,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(ts[r]+as+1)*2]++,e.dyn_dtree[I0(t)*2]++),e.sym_next===e.sym_end),K1=G1,Z1=k0,Y1=X1,q1=$1,j1=W1,Q1={_tr_init:K1,_tr_stored_block:Z1,_tr_flush_block:Y1,_tr_tally:q1,_tr_align:j1},J1=(e,t,r,n)=>{let i=e&65535|0,s=e>>>16&65535|0,o=0;for(;r!==0;){o=r>2e3?2e3:r,r-=o;do i=i+t[n++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0},ns=J1,eg=()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t},tg=new Uint32Array(eg()),rg=(e,t,r,n)=>{let i=tg,s=n+r;e^=-1;for(let o=n;o<s;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},fe=rg,Fr={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Pr={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:ng,_tr_stored_block:Vl,_tr_flush_block:ig,_tr_tally:ar,_tr_align:sg}=Q1,{Z_NO_FLUSH:lr,Z_PARTIAL_FLUSH:og,Z_FULL_FLUSH:ag,Z_FINISH:je,Z_BLOCK:Hu,Z_OK:he,Z_STREAM_END:Vu,Z_STREAM_ERROR:pt,Z_DATA_ERROR:lg,Z_BUF_ERROR:Cl,Z_DEFAULT_COMPRESSION:cg,Z_FILTERED:dg,Z_HUFFMAN_ONLY:No,Z_RLE:ug,Z_FIXED:fg,Z_DEFAULT_STRATEGY:hg,Z_UNKNOWN:mg,Z_DEFLATED:Zo}=Pr,pg=9,gg=15,yg=8,xg=29,bg=256,Gl=bg+1+xg,_g=30,vg=19,Sg=2*Gl+1,wg=15,G=3,or=258,gt=or+G+1,Ag=32,Ln=42,Jl=57,Wl=69,Xl=73,$l=91,Kl=103,Cr=113,Zi=666,Te=1,In=2,zr=3,Cn=4,Mg=3,Rr=(e,t)=>(e.msg=Fr[t],t),Gu=e=>e*2-(e>4?9:0),sr=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Lg=e=>{let t,r,n,i=e.w_size;t=e.hash_size,n=t;do r=e.head[--n],e.head[n]=r>=i?r-i:0;while(--t);t=i,n=t;do r=e.prev[--n],e.prev[n]=r>=i?r-i:0;while(--t)},Eg=(e,t,r)=>(t<<e.hash_shift^r)&e.hash_mask,cr=Eg,Ne=e=>{let t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))},Ue=(e,t)=>{ig(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ne(e.strm)},$=(e,t)=>{e.pending_buf[e.pending++]=t},Ki=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Zl=(e,t,r,n)=>{let i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),r),e.state.wrap===1?e.adler=ns(e.adler,t,i,r):e.state.wrap===2&&(e.adler=fe(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},P0=(e,t)=>{let r=e.max_chain_length,n=e.strstart,i,s,o=e.prev_length,a=e.nice_match,d=e.strstart>e.w_size-gt?e.strstart-(e.w_size-gt):0,l=e.window,c=e.w_mask,h=e.prev,u=e.strstart+or,f=l[n+o-1],m=l[n+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+o]!==m||l[i+o-1]!==f||l[i]!==l[n]||l[++i]!==l[n+1])){n+=2,i++;do;while(l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&n<u);if(s=or-(u-n),n=u-or,s>o){if(e.match_start=t,o=s,s>=a)break;f=l[n+o-1],m=l[n+o]}}while((t=h[t&c])>d&&--r!==0);return o<=e.lookahead?o:e.lookahead},En=e=>{let t=e.w_size,r,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-gt)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Lg(e),n+=t),e.strm.avail_in===0)break;if(r=Zl(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=r,e.lookahead+e.insert>=G)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=cr(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=cr(e,e.ins_h,e.window[i+G-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<G)););}while(e.lookahead<gt&&e.strm.avail_in!==0)},D0=(e,t)=>{let r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,i,s,o=0,a=e.strm.avail_in;do{if(n=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,i=e.strstart-e.block_start,n>i+e.strm.avail_in&&(n=i+e.strm.avail_in),n>s&&(n=s),n<r&&(n===0&&t!==je||t===lr||n!==i+e.strm.avail_in)))break;o=t===je&&n===i+e.strm.avail_in?1:0,Vl(e,0,0,o),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Ne(e.strm),i&&(i>n&&(i=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,n-=i),n&&(Zl(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(o===0);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?Cn:t!==lr&&t!==je&&e.strm.avail_in===0&&e.strstart===e.block_start?In:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(Zl(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,r=s>e.w_size?e.w_size:s,i=e.strstart-e.block_start,(i>=r||(i||t===je)&&t!==lr&&e.strm.avail_in===0&&i<=s)&&(n=i>s?s:i,o=t===je&&e.strm.avail_in===0&&n===i?1:0,Vl(e,e.block_start,n,o),e.block_start+=n,Ne(e.strm)),o?zr:Te)},Rl=(e,t)=>{let r,n;for(;;){if(e.lookahead<gt){if(En(e),e.lookahead<gt&&t===lr)return Te;if(e.lookahead===0)break}if(r=0,e.lookahead>=G&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-gt&&(e.match_length=P0(e,r)),e.match_length>=G)if(n=ar(e,e.strstart-e.match_start,e.match_length-G),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=G){e.match_length--;do e.strstart++,e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=cr(e,e.ins_h,e.window[e.strstart+1]);else n=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=e.strstart<G-1?e.strstart:G-1,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},wn=(e,t)=>{let r,n,i;for(;;){if(e.lookahead<gt){if(En(e),e.lookahead<gt&&t===lr)return Te;if(e.lookahead===0)break}if(r=0,e.lookahead>=G&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=G-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-gt&&(e.match_length=P0(e,r),e.match_length<=5&&(e.strategy===dg||e.match_length===G&&e.strstart-e.match_start>4096)&&(e.match_length=G-1)),e.prev_length>=G&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-G,n=ar(e,e.strstart-1-e.prev_match,e.prev_length-G),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=G-1,e.strstart++,n&&(Ue(e,!1),e.strm.avail_out===0))return Te}else if(e.match_available){if(n=ar(e,0,e.window[e.strstart-1]),n&&Ue(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Te}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=ar(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<G-1?e.strstart:G-1,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},Tg=(e,t)=>{let r,n,i,s,o=e.window;for(;;){if(e.lookahead<=or){if(En(e),e.lookahead<=or&&t===lr)return Te;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=G&&e.strstart>0&&(i=e.strstart-1,n=o[i],n===o[++i]&&n===o[++i]&&n===o[++i])){s=e.strstart+or;do;while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<s);e.match_length=or-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=G?(r=ar(e,1,e.match_length-G),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=0,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},Ig=(e,t)=>{let r;for(;;){if(e.lookahead===0&&(En(e),e.lookahead===0)){if(t===lr)return Te;break}if(e.match_length=0,r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=0,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In};function ht(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var Yi=[new ht(0,0,0,0,D0),new ht(4,4,8,4,Rl),new ht(4,5,16,8,Rl),new ht(4,6,32,32,Rl),new ht(4,4,16,16,wn),new ht(8,16,32,32,wn),new ht(8,16,128,128,wn),new ht(8,32,128,256,wn),new ht(32,128,258,1024,wn),new ht(32,258,258,4096,wn)],Cg=e=>{e.window_size=2*e.w_size,sr(e.head),e.max_lazy_match=Yi[e.level].max_lazy,e.good_match=Yi[e.level].good_length,e.nice_match=Yi[e.level].nice_length,e.max_chain_length=Yi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=G-1,e.match_available=0,e.ins_h=0};function Rg(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Zo,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Sg*2),this.dyn_dtree=new Uint16Array((2*_g+1)*2),this.bl_tree=new Uint16Array((2*vg+1)*2),sr(this.dyn_ltree),sr(this.dyn_dtree),sr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(wg+1),this.heap=new Uint16Array(2*Gl+1),sr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Gl+1),sr(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var ls=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Ln&&t.status!==Jl&&t.status!==Wl&&t.status!==Xl&&t.status!==$l&&t.status!==Kl&&t.status!==Cr&&t.status!==Zi?1:0},B0=e=>{if(ls(e))return Rr(e,pt);e.total_in=e.total_out=0,e.data_type=mg;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Jl:t.wrap?Ln:Cr,e.adler=t.wrap===2?0:1,t.last_flush=-2,ng(t),he},O0=e=>{let t=B0(e);return t===he&&Cg(e.state),t},Fg=(e,t)=>ls(e)||e.state.wrap!==2?pt:(e.state.gzhead=t,he),N0=(e,t,r,n,i,s)=>{if(!e)return pt;let o=1;if(t===cg&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>pg||r!==Zo||n<8||n>15||t<0||t>9||s<0||s>fg||n===8&&o!==1)return Rr(e,pt);n===8&&(n=9);let a=new Rg;return e.state=a,a.strm=e,a.status=Ln,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+G-1)/G),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=s,a.method=r,O0(e)},zg=(e,t)=>N0(e,t,Zo,gg,yg,hg),kg=(e,t)=>{if(ls(e)||t>Hu||t<0)return e?Rr(e,pt):pt;let r=e.state;if(!e.output||e.avail_in!==0&&!e.input||r.status===Zi&&t!==je)return Rr(e,e.avail_out===0?Cl:pt);let n=r.last_flush;if(r.last_flush=t,r.pending!==0){if(Ne(e),e.avail_out===0)return r.last_flush=-1,he}else if(e.avail_in===0&&Gu(t)<=Gu(n)&&t!==je)return Rr(e,Cl);if(r.status===Zi&&e.avail_in!==0)return Rr(e,Cl);if(r.status===Ln&&r.wrap===0&&(r.status=Cr),r.status===Ln){let i=Zo+(r.w_bits-8<<4)<<8,s=-1;if(r.strategy>=No||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,i|=s<<6,r.strstart!==0&&(i|=Ag),i+=31-i%31,Ki(r,i),r.strstart!==0&&(Ki(r,e.adler>>>16),Ki(r,e.adler&65535)),e.adler=1,r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(r.status===Jl){if(e.adler=0,$(r,31),$(r,139),$(r,8),r.gzhead)$(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),$(r,r.gzhead.time&255),$(r,r.gzhead.time>>8&255),$(r,r.gzhead.time>>16&255),$(r,r.gzhead.time>>24&255),$(r,r.level===9?2:r.strategy>=No||r.level<2?4:0),$(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&($(r,r.gzhead.extra.length&255),$(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=fe(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Wl;else if($(r,0),$(r,0),$(r,0),$(r,0),$(r,0),$(r,r.level===9?2:r.strategy>=No||r.level<2?4:0),$(r,Mg),r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(r.status===Wl){if(r.gzhead.extra){let i=r.pending,s=(r.gzhead.extra.length&65535)-r.gzindex;for(;r.pending+s>r.pending_buf_size;){let a=r.pending_buf_size-r.pending;if(r.pending_buf.set(r.gzhead.extra.subarray(r.gzindex,r.gzindex+a),r.pending),r.pending=r.pending_buf_size,r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex+=a,Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0,s-=a}let o=new Uint8Array(r.gzhead.extra);r.pending_buf.set(o.subarray(r.gzindex,r.gzindex+s),r.pending),r.pending+=s,r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex=0}r.status=Xl}if(r.status===Xl){if(r.gzhead.name){let i=r.pending,s;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0}r.gzindex<r.gzhead.name.length?s=r.gzhead.name.charCodeAt(r.gzindex++)&255:s=0,$(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex=0}r.status=$l}if(r.status===$l){if(r.gzhead.comment){let i=r.pending,s;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0}r.gzindex<r.gzhead.comment.length?s=r.gzhead.comment.charCodeAt(r.gzindex++)&255:s=0,$(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i))}r.status=Kl}if(r.status===Kl){if(r.gzhead.hcrc){if(r.pending+2>r.pending_buf_size&&(Ne(e),r.pending!==0))return r.last_flush=-1,he;$(r,e.adler&255),$(r,e.adler>>8&255),e.adler=0}if(r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(e.avail_in!==0||r.lookahead!==0||t!==lr&&r.status!==Zi){let i=r.level===0?D0(r,t):r.strategy===No?Ig(r,t):r.strategy===ug?Tg(r,t):Yi[r.level].func(r,t);if((i===zr||i===Cn)&&(r.status=Zi),i===Te||i===zr)return e.avail_out===0&&(r.last_flush=-1),he;if(i===In&&(t===og?sg(r):t!==Hu&&(Vl(r,0,0,!1),t===ag&&(sr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Ne(e),e.avail_out===0))return r.last_flush=-1,he}return t!==je?he:r.wrap<=0?Vu:(r.wrap===2?($(r,e.adler&255),$(r,e.adler>>8&255),$(r,e.adler>>16&255),$(r,e.adler>>24&255),$(r,e.total_in&255),$(r,e.total_in>>8&255),$(r,e.total_in>>16&255),$(r,e.total_in>>24&255)):(Ki(r,e.adler>>>16),Ki(r,e.adler&65535)),Ne(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?he:Vu)},Pg=e=>{if(ls(e))return pt;let t=e.state.status;return e.state=null,t===Cr?Rr(e,lg):he},Dg=(e,t)=>{let r=t.length;if(ls(e))return pt;let n=e.state,i=n.wrap;if(i===2||i===1&&n.status!==Ln||n.lookahead)return pt;if(i===1&&(e.adler=ns(e.adler,t,r,0)),n.wrap=0,r>=n.w_size){i===0&&(sr(n.head),n.strstart=0,n.block_start=0,n.insert=0);let d=new Uint8Array(n.w_size);d.set(t.subarray(r-n.w_size,r),0),t=d,r=n.w_size}let s=e.avail_in,o=e.next_in,a=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,En(n);n.lookahead>=G;){let d=n.strstart,l=n.lookahead-(G-1);do n.ins_h=cr(n,n.ins_h,n.window[d+G-1]),n.prev[d&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=d,d++;while(--l);n.strstart=d,n.lookahead=G-1,En(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=G-1,n.match_available=0,e.next_in=o,e.input=a,e.avail_in=s,n.wrap=i,he},Bg=zg,Og=N0,Ng=O0,Ug=B0,Hg=Fg,Vg=kg,Gg=Pg,Wg=Dg,Xg="pako deflate (from Nodeca project)",ji={deflateInit:Bg,deflateInit2:Og,deflateReset:Ng,deflateResetKeep:Ug,deflateSetHeader:Hg,deflate:Vg,deflateEnd:Gg,deflateSetDictionary:Wg,deflateInfo:Xg},$g=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Kg=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(let n in r)$g(r,n)&&(e[n]=r[n])}}return e},Zg=e=>{let t=0;for(let n=0,i=e.length;n<i;n++)t+=e[n].length;let r=new Uint8Array(t);for(let n=0,i=0,s=e.length;n<s;n++){let o=e[n];r.set(o,i),i+=o.length}return r},Yo={assign:Kg,flattenChunks:Zg},U0=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{U0=!1}var is=new Uint8Array(256);for(let e=0;e<256;e++)is[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;is[254]=is[254]=1;var Yg=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,r,n,i,s,o=e.length,a=0;for(i=0;i<o;i++)r=e.charCodeAt(i),(r&64512)===55296&&i+1<o&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(r=65536+(r-55296<<10)+(n-56320),i++)),a+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(a),s=0,i=0;s<a;i++)r=e.charCodeAt(i),(r&64512)===55296&&i+1<o&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(r=65536+(r-55296<<10)+(n-56320),i++)),r<128?t[s++]=r:r<2048?(t[s++]=192|r>>>6,t[s++]=128|r&63):r<65536?(t[s++]=224|r>>>12,t[s++]=128|r>>>6&63,t[s++]=128|r&63):(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63,t[s++]=128|r>>>6&63,t[s++]=128|r&63);return t},qg=(e,t)=>{if(t<65534&&e.subarray&&U0)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r},jg=(e,t)=>{let r=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let n,i,s=new Array(r*2);for(i=0,n=0;n<r;){let o=e[n++];if(o<128){s[i++]=o;continue}let a=is[o];if(a>4){s[i++]=65533,n+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&n<r;)o=o<<6|e[n++]&63,a--;if(a>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return qg(s,i)},Qg=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let r=t-1;for(;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+is[e[r]]>t?r:t},ss={string2buf:Yg,buf2string:jg,utf8border:Qg};function Jg(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var H0=Jg,V0=Object.prototype.toString,{Z_NO_FLUSH:ey,Z_SYNC_FLUSH:ty,Z_FULL_FLUSH:ry,Z_FINISH:ny,Z_OK:$o,Z_STREAM_END:iy,Z_DEFAULT_COMPRESSION:sy,Z_DEFAULT_STRATEGY:oy,Z_DEFLATED:ay}=Pr;function cs(e){this.options=Yo.assign({level:sy,method:ay,chunkSize:16384,windowBits:15,memLevel:8,strategy:oy},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new H0,this.strm.avail_out=0;let r=ji.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==$o)throw new Error(Fr[r]);if(t.header&&ji.deflateSetHeader(this.strm,t.header),t.dictionary){let n;if(typeof t.dictionary=="string"?n=ss.string2buf(t.dictionary):V0.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,r=ji.deflateSetDictionary(this.strm,n),r!==$o)throw new Error(Fr[r]);this._dict_set=!0}}cs.prototype.push=function(e,t){let r=this.strm,n=this.options.chunkSize,i,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?ny:ey,typeof e=="string"?r.input=ss.string2buf(e):V0.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){if(r.avail_out===0&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),(s===ty||s===ry)&&r.avail_out<=6){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(i=ji.deflate(r,s),i===iy)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=ji.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===$o;if(r.avail_out===0){this.onData(r.output);continue}if(s>0&&r.next_out>0){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(r.avail_in===0)break}return!0};cs.prototype.onData=function(e){this.chunks.push(e)};cs.prototype.onEnd=function(e){e===$o&&(this.result=Yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function ec(e,t){let r=new cs(t);if(r.push(e,!0),r.err)throw r.msg||Fr[r.err];return r.result}function ly(e,t){return t=t||{},t.raw=!0,ec(e,t)}function cy(e,t){return t=t||{},t.gzip=!0,ec(e,t)}var dy=cs,uy=ec,fy=ly,hy=cy,my=Pr,py={Deflate:dy,deflate:uy,deflateRaw:fy,gzip:hy,constants:my},Uo=16209,gy=16191,yy=function(t,r){let n,i,s,o,a,d,l,c,h,u,f,m,g,p,y,_,b,x,v,A,S,M,E,w,T=t.state;n=t.next_in,E=t.input,i=n+(t.avail_in-5),s=t.next_out,w=t.output,o=s-(r-t.avail_out),a=s+(t.avail_out-257),d=T.dmax,l=T.wsize,c=T.whave,h=T.wnext,u=T.window,f=T.hold,m=T.bits,g=T.lencode,p=T.distcode,y=(1<<T.lenbits)-1,_=(1<<T.distbits)-1;e:do{m<15&&(f+=E[n++]<<m,m+=8,f+=E[n++]<<m,m+=8),b=g[f&y];t:for(;;){if(x=b>>>24,f>>>=x,m-=x,x=b>>>16&255,x===0)w[s++]=b&65535;else if(x&16){v=b&65535,x&=15,x&&(m<x&&(f+=E[n++]<<m,m+=8),v+=f&(1<<x)-1,f>>>=x,m-=x),m<15&&(f+=E[n++]<<m,m+=8,f+=E[n++]<<m,m+=8),b=p[f&_];r:for(;;){if(x=b>>>24,f>>>=x,m-=x,x=b>>>16&255,x&16){if(A=b&65535,x&=15,m<x&&(f+=E[n++]<<m,m+=8,m<x&&(f+=E[n++]<<m,m+=8)),A+=f&(1<<x)-1,A>d){t.msg="invalid distance too far back",T.mode=Uo;break e}if(f>>>=x,m-=x,x=s-o,A>x){if(x=A-x,x>c&&T.sane){t.msg="invalid distance too far back",T.mode=Uo;break e}if(S=0,M=u,h===0){if(S+=l-x,x<v){v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}}else if(h<x){if(S+=l+h-x,x-=h,x<v){v-=x;do w[s++]=u[S++];while(--x);if(S=0,h<v){x=h,v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}}}else if(S+=h-x,x<v){v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}for(;v>2;)w[s++]=M[S++],w[s++]=M[S++],w[s++]=M[S++],v-=3;v&&(w[s++]=M[S++],v>1&&(w[s++]=M[S++]))}else{S=s-A;do w[s++]=w[S++],w[s++]=w[S++],w[s++]=w[S++],v-=3;while(v>2);v&&(w[s++]=w[S++],v>1&&(w[s++]=w[S++]))}}else if((x&64)===0){b=p[(b&65535)+(f&(1<<x)-1)];continue r}else{t.msg="invalid distance code",T.mode=Uo;break e}break}}else if((x&64)===0){b=g[(b&65535)+(f&(1<<x)-1)];continue t}else if(x&32){T.mode=gy;break e}else{t.msg="invalid literal/length code",T.mode=Uo;break e}break}}while(n<i&&s<a);v=m>>3,n-=v,m-=v<<3,f&=(1<<m)-1,t.next_in=n,t.next_out=s,t.avail_in=n<i?5+(i-n):5-(n-i),t.avail_out=s<a?257+(a-s):257-(s-a),T.hold=f,T.bits=m},An=15,Wu=852,Xu=592,$u=0,Fl=1,Ku=2,xy=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),by=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),_y=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),vy=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Sy=(e,t,r,n,i,s,o,a)=>{let d=a.bits,l=0,c=0,h=0,u=0,f=0,m=0,g=0,p=0,y=0,_=0,b,x,v,A,S,M=null,E,w=new Uint16Array(An+1),T=new Uint16Array(An+1),F=null,U,C,Z;for(l=0;l<=An;l++)w[l]=0;for(c=0;c<n;c++)w[t[r+c]]++;for(f=d,u=An;u>=1&&w[u]===0;u--);if(f>u&&(f=u),u===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h<u&&w[h]===0;h++);for(f<h&&(f=h),p=1,l=1;l<=An;l++)if(p<<=1,p-=w[l],p<0)return-1;if(p>0&&(e===$u||u!==1))return-1;for(T[1]=0,l=1;l<An;l++)T[l+1]=T[l]+w[l];for(c=0;c<n;c++)t[r+c]!==0&&(o[T[t[r+c]]++]=c);if(e===$u?(M=F=o,E=20):e===Fl?(M=xy,F=by,E=257):(M=_y,F=vy,E=0),_=0,c=0,l=h,S=s,m=f,g=0,v=-1,y=1<<f,A=y-1,e===Fl&&y>Wu||e===Ku&&y>Xu)return 1;for(;;){U=l-g,o[c]+1<E?(C=0,Z=o[c]):o[c]>=E?(C=F[o[c]-E],Z=M[o[c]-E]):(C=96,Z=0),b=1<<l-g,x=1<<m,h=x;do x-=b,i[S+(_>>g)+x]=U<<24|C<<16|Z|0;while(x!==0);for(b=1<<l-1;_&b;)b>>=1;if(b!==0?(_&=b-1,_+=b):_=0,c++,--w[l]===0){if(l===u)break;l=t[r+o[c]]}if(l>f&&(_&A)!==v){for(g===0&&(g=f),S+=h,m=l-g,p=1<<m;m+g<u&&(p-=w[m+g],!(p<=0));)m++,p<<=1;if(y+=1<<m,e===Fl&&y>Wu||e===Ku&&y>Xu)return 1;v=_&A,i[v]=f<<24|m<<16|S-s|0}}return _!==0&&(i[S+_]=l-g<<24|64<<16|0),a.bits=f,0},Qi=Sy,wy=0,G0=1,W0=2,{Z_FINISH:Zu,Z_BLOCK:Ay,Z_TREES:Ho,Z_OK:kr,Z_STREAM_END:My,Z_NEED_DICT:Ly,Z_STREAM_ERROR:Qe,Z_DATA_ERROR:X0,Z_MEM_ERROR:$0,Z_BUF_ERROR:Ey,Z_DEFLATED:Yu}=Pr,qo=16180,qu=16181,ju=16182,Qu=16183,Ju=16184,e0=16185,t0=16186,r0=16187,n0=16188,i0=16189,Ko=16190,Rt=16191,zl=16192,s0=16193,kl=16194,o0=16195,a0=16196,l0=16197,c0=16198,Vo=16199,Go=16200,d0=16201,u0=16202,f0=16203,h0=16204,m0=16205,Pl=16206,p0=16207,g0=16208,ie=16209,K0=16210,Z0=16211,Ty=852,Iy=592,Cy=15,Ry=Cy,y0=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function Fy(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Dr=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<qo||t.mode>Z0?1:0},Y0=e=>{if(Dr(e))return Qe;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=qo,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Ty),t.distcode=t.distdyn=new Int32Array(Iy),t.sane=1,t.back=-1,kr},q0=e=>{if(Dr(e))return Qe;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Y0(e)},j0=(e,t)=>{let r;if(Dr(e))return Qe;let n=e.state;return t<0?(r=0,t=-t):(r=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Qe:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,q0(e))},Q0=(e,t)=>{if(!e)return Qe;let r=new Fy;e.state=r,r.strm=e,r.window=null,r.mode=qo;let n=j0(e,t);return n!==kr&&(e.state=null),n},zy=e=>Q0(e,Ry),x0=!0,Dl,Bl,ky=e=>{if(x0){Dl=new Int32Array(512),Bl=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Qi(G0,e.lens,0,288,Dl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Qi(W0,e.lens,0,32,Bl,0,e.work,{bits:5}),x0=!1}e.lencode=Dl,e.lenbits=9,e.distcode=Bl,e.distbits=5},J0=(e,t,r,n)=>{let i,s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),n>=s.wsize?(s.window.set(t.subarray(r-s.wsize,r),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>n&&(i=n),s.window.set(t.subarray(r-n,r-n+i),s.wnext),n-=i,n?(s.window.set(t.subarray(r-n,r),0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},Py=(e,t)=>{let r,n,i,s,o,a,d,l,c,h,u,f,m,g,p=0,y,_,b,x,v,A,S,M,E=new Uint8Array(4),w,T,F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Dr(e)||!e.output||!e.input&&e.avail_in!==0)return Qe;r=e.state,r.mode===Rt&&(r.mode=zl),o=e.next_out,i=e.output,d=e.avail_out,s=e.next_in,n=e.input,a=e.avail_in,l=r.hold,c=r.bits,h=a,u=d,M=kr;e:for(;;)switch(r.mode){case qo:if(r.wrap===0){r.mode=zl;break}for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&2&&l===35615){r.wbits===0&&(r.wbits=15),r.check=0,E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0),l=0,c=0,r.mode=qu;break}if(r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=ie;break}if((l&15)!==Yu){e.msg="unknown compression method",r.mode=ie;break}if(l>>>=4,c-=4,S=(l&15)+8,r.wbits===0&&(r.wbits=S),S>15||S>r.wbits){e.msg="invalid window size",r.mode=ie;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=l&512?i0:Rt,l=0,c=0;break;case qu:for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.flags=l,(r.flags&255)!==Yu){e.msg="unknown compression method",r.mode=ie;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=ie;break}r.head&&(r.head.text=l>>8&1),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0,r.mode=ju;case ju:for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.head&&(r.head.time=l),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=fe(r.check,E,4,0)),l=0,c=0,r.mode=Qu;case Qu:for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.head&&(r.head.xflags=l&255,r.head.os=l>>8),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0,r.mode=Ju;case Ju:if(r.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.length=l,r.head&&(r.head.extra_len=l),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0}else r.head&&(r.head.extra=null);r.mode=e0;case e0:if(r.flags&1024&&(f=r.length,f>a&&(f=a),f&&(r.head&&(S=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(n.subarray(s,s+f),S)),r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,r.length-=f),r.length))break e;r.length=0,r.mode=t0;case t0:if(r.flags&2048){if(a===0)break e;f=0;do S=n[s+f++],r.head&&S&&r.length<65536&&(r.head.name+=String.fromCharCode(S));while(S&&f<a);if(r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,S)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=r0;case r0:if(r.flags&4096){if(a===0)break e;f=0;do S=n[s+f++],r.head&&S&&r.length<65536&&(r.head.comment+=String.fromCharCode(S));while(S&&f<a);if(r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,S)break e}else r.head&&(r.head.comment=null);r.mode=n0;case n0:if(r.flags&512){for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&4&&l!==(r.check&65535)){e.msg="header crc mismatch",r.mode=ie;break}l=0,c=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Rt;break;case i0:for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}e.adler=r.check=y0(l),l=0,c=0,r.mode=Ko;case Ko:if(r.havedict===0)return e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,Ly;e.adler=r.check=1,r.mode=Rt;case Rt:if(t===Ay||t===Ho)break e;case zl:if(r.last){l>>>=c&7,c-=c&7,r.mode=Pl;break}for(;c<3;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}switch(r.last=l&1,l>>>=1,c-=1,l&3){case 0:r.mode=s0;break;case 1:if(ky(r),r.mode=Vo,t===Ho){l>>>=2,c-=2;break e}break;case 2:r.mode=a0;break;case 3:e.msg="invalid block type",r.mode=ie}l>>>=2,c-=2;break;case s0:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",r.mode=ie;break}if(r.length=l&65535,l=0,c=0,r.mode=kl,t===Ho)break e;case kl:r.mode=o0;case o0:if(f=r.length,f){if(f>a&&(f=a),f>d&&(f=d),f===0)break e;i.set(n.subarray(s,s+f),o),a-=f,s+=f,d-=f,o+=f,r.length-=f;break}r.mode=Rt;break;case a0:for(;c<14;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.nlen=(l&31)+257,l>>>=5,c-=5,r.ndist=(l&31)+1,l>>>=5,c-=5,r.ncode=(l&15)+4,l>>>=4,c-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=ie;break}r.have=0,r.mode=l0;case l0:for(;r.have<r.ncode;){for(;c<3;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.lens[F[r.have++]]=l&7,l>>>=3,c-=3}for(;r.have<19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,w={bits:r.lenbits},M=Qi(wy,r.lens,0,19,r.lencode,0,r.work,w),r.lenbits=w.bits,M){e.msg="invalid code lengths set",r.mode=ie;break}r.have=0,r.mode=c0;case c0:for(;r.have<r.nlen+r.ndist;){for(;p=r.lencode[l&(1<<r.lenbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(b<16)l>>>=y,c-=y,r.lens[r.have++]=b;else{if(b===16){for(T=y+2;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(l>>>=y,c-=y,r.have===0){e.msg="invalid bit length repeat",r.mode=ie;break}S=r.lens[r.have-1],f=3+(l&3),l>>>=2,c-=2}else if(b===17){for(T=y+3;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=y,c-=y,S=0,f=3+(l&7),l>>>=3,c-=3}else{for(T=y+7;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=y,c-=y,S=0,f=11+(l&127),l>>>=7,c-=7}if(r.have+f>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=ie;break}for(;f--;)r.lens[r.have++]=S}}if(r.mode===ie)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=ie;break}if(r.lenbits=9,w={bits:r.lenbits},M=Qi(G0,r.lens,0,r.nlen,r.lencode,0,r.work,w),r.lenbits=w.bits,M){e.msg="invalid literal/lengths set",r.mode=ie;break}if(r.distbits=6,r.distcode=r.distdyn,w={bits:r.distbits},M=Qi(W0,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,w),r.distbits=w.bits,M){e.msg="invalid distances set",r.mode=ie;break}if(r.mode=Vo,t===Ho)break e;case Vo:r.mode=Go;case Go:if(a>=6&&d>=258){e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,yy(e,u),o=e.next_out,i=e.output,d=e.avail_out,s=e.next_in,n=e.input,a=e.avail_in,l=r.hold,c=r.bits,r.mode===Rt&&(r.back=-1);break}for(r.back=0;p=r.lencode[l&(1<<r.lenbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(_&&(_&240)===0){for(x=y,v=_,A=b;p=r.lencode[A+((l&(1<<x+v)-1)>>x)],y=p>>>24,_=p>>>16&255,b=p&65535,!(x+y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=x,c-=x,r.back+=x}if(l>>>=y,c-=y,r.back+=y,r.length=b,_===0){r.mode=m0;break}if(_&32){r.back=-1,r.mode=Rt;break}if(_&64){e.msg="invalid literal/length code",r.mode=ie;break}r.extra=_&15,r.mode=d0;case d0:if(r.extra){for(T=r.extra;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.length+=l&(1<<r.extra)-1,l>>>=r.extra,c-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=u0;case u0:for(;p=r.distcode[l&(1<<r.distbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if((_&240)===0){for(x=y,v=_,A=b;p=r.distcode[A+((l&(1<<x+v)-1)>>x)],y=p>>>24,_=p>>>16&255,b=p&65535,!(x+y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=x,c-=x,r.back+=x}if(l>>>=y,c-=y,r.back+=y,_&64){e.msg="invalid distance code",r.mode=ie;break}r.offset=b,r.extra=_&15,r.mode=f0;case f0:if(r.extra){for(T=r.extra;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.offset+=l&(1<<r.extra)-1,l>>>=r.extra,c-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=ie;break}r.mode=h0;case h0:if(d===0)break e;if(f=u-d,r.offset>f){if(f=r.offset-f,f>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=ie;break}f>r.wnext?(f-=r.wnext,m=r.wsize-f):m=r.wnext-f,f>r.length&&(f=r.length),g=r.window}else g=i,m=o-r.offset,f=r.length;f>d&&(f=d),d-=f,r.length-=f;do i[o++]=g[m++];while(--f);r.length===0&&(r.mode=Go);break;case m0:if(d===0)break e;i[o++]=r.length,d--,r.mode=Go;break;case Pl:if(r.wrap){for(;c<32;){if(a===0)break e;a--,l|=n[s++]<<c,c+=8}if(u-=d,e.total_out+=u,r.total+=u,r.wrap&4&&u&&(e.adler=r.check=r.flags?fe(r.check,i,u,o-u):ns(r.check,i,u,o-u)),u=d,r.wrap&4&&(r.flags?l:y0(l))!==r.check){e.msg="incorrect data check",r.mode=ie;break}l=0,c=0}r.mode=p0;case p0:if(r.wrap&&r.flags){for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&4&&l!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=ie;break}l=0,c=0}r.mode=g0;case g0:M=My;break e;case ie:M=X0;break e;case K0:return $0;case Z0:default:return Qe}return e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,(r.wsize||u!==e.avail_out&&r.mode<ie&&(r.mode<Pl||t!==Zu))&&J0(e,e.output,e.next_out,u-e.avail_out),h-=e.avail_in,u-=e.avail_out,e.total_in+=h,e.total_out+=u,r.total+=u,r.wrap&4&&u&&(e.adler=r.check=r.flags?fe(r.check,i,u,e.next_out-u):ns(r.check,i,u,e.next_out-u)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Rt?128:0)+(r.mode===Vo||r.mode===kl?256:0),(h===0&&u===0||t===Zu)&&M===kr&&(M=Ey),M},Dy=e=>{if(Dr(e))return Qe;let t=e.state;return t.window&&(t.window=null),e.state=null,kr},By=(e,t)=>{if(Dr(e))return Qe;let r=e.state;return(r.wrap&2)===0?Qe:(r.head=t,t.done=!1,kr)},Oy=(e,t)=>{let r=t.length,n,i,s;return Dr(e)||(n=e.state,n.wrap!==0&&n.mode!==Ko)?Qe:n.mode===Ko&&(i=1,i=ns(i,t,r,0),i!==n.check)?X0:(s=J0(e,t,r,r),s?(n.mode=K0,$0):(n.havedict=1,kr))},Ny=q0,Uy=j0,Hy=Y0,Vy=zy,Gy=Q0,Wy=Py,Xy=Dy,$y=By,Ky=Oy,Zy="pako inflate (from Nodeca project)",zt={inflateReset:Ny,inflateReset2:Uy,inflateResetKeep:Hy,inflateInit:Vy,inflateInit2:Gy,inflate:Wy,inflateEnd:Xy,inflateGetHeader:$y,inflateSetDictionary:Ky,inflateInfo:Zy};function Yy(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var qy=Yy,ef=Object.prototype.toString,{Z_NO_FLUSH:jy,Z_FINISH:Qy,Z_OK:os,Z_STREAM_END:Ol,Z_NEED_DICT:Nl,Z_STREAM_ERROR:Jy,Z_DATA_ERROR:b0,Z_MEM_ERROR:ex}=Pr;function ds(e){this.options=Yo.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new H0,this.strm.avail_out=0;let r=zt.inflateInit2(this.strm,t.windowBits);if(r!==os)throw new Error(Fr[r]);if(this.header=new qy,zt.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ss.string2buf(t.dictionary):ef.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=zt.inflateSetDictionary(this.strm,t.dictionary),r!==os)))throw new Error(Fr[r])}ds.prototype.push=function(e,t){let r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,s,o,a;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?Qy:jy,ef.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(r.avail_out===0&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),s=zt.inflate(r,o),s===Nl&&i&&(s=zt.inflateSetDictionary(r,i),s===os?s=zt.inflate(r,o):s===b0&&(s=Nl));r.avail_in>0&&s===Ol&&r.state.wrap>0&&e[r.next_in]!==0;)zt.inflateReset(r),s=zt.inflate(r,o);switch(s){case Jy:case b0:case Nl:case ex:return this.onEnd(s),this.ended=!0,!1}if(a=r.avail_out,r.next_out&&(r.avail_out===0||s===Ol))if(this.options.to==="string"){let d=ss.utf8border(r.output,r.next_out),l=r.next_out-d,c=ss.buf2string(r.output,d);r.next_out=l,r.avail_out=n-l,l&&r.output.set(r.output.subarray(d,d+l),0),this.onData(c)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(!(s===os&&a===0)){if(s===Ol)return s=zt.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(r.avail_in===0)break}}return!0};ds.prototype.onData=function(e){this.chunks.push(e)};ds.prototype.onEnd=function(e){e===os&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function tc(e,t){let r=new ds(t);if(r.push(e),r.err)throw r.msg||Fr[r.err];return r.result}function tx(e,t){return t=t||{},t.raw=!0,tc(e,t)}var rx=ds,nx=tc,ix=tx,sx=tc,ox=Pr,ax={Inflate:rx,inflate:nx,inflateRaw:ix,ungzip:sx,constants:ox},{Deflate:lx,deflate:cx,deflateRaw:dx,gzip:ux}=py,{Inflate:fx,inflate:hx,inflateRaw:mx,ungzip:px}=ax,gx=lx,yx=cx,xx=dx,bx=ux,_x=fx,vx=hx,Sx=mx,wx=px,Ax=Pr,rc={Deflate:gx,deflate:yx,deflateRaw:xx,gzip:bx,Inflate:_x,inflate:vx,inflateRaw:Sx,ungzip:wx,constants:Ax};var Rn=2023,nc=1,ic=2,sc=4,oc=8,ac=16,lc=32,cc=64,tf=128,Mx=256,dc=512,uc=1024,fc=2048,jo=4096,hc=8192,Qo=16384,Lx=32768,Jo=65536,mc=1<<17,ea=1<<18,ta=1<<19,pc=1<<20,gc=1<<21,yc=1<<22,Ex=1<<23,xc=1<<24,ra=1<<25,bc=1<<26,_c=1<<27,vc=1<<28,Sc=1<<29,wc=1<<30,Tx=-2147483648,Ac=1,Mc=2,Lc=4;var Ix=1,Cx=2,Rx=128,Br=()=>({number:0,modelindex:0,modelindex2:0,modelindex3:0,modelindex4:0,frame:0,skinnum:0,effects:0,renderfx:0,origin:{x:0,y:0,z:0},old_origin:{x:0,y:0,z:0},angles:{x:0,y:0,z:0},sound:0,event:0,solid:0,bits:0,bitsHigh:0,alpha:0,scale:0,instanceBits:0,loopVolume:0,loopAttenuation:0,owner:0,oldFrame:0}),us=()=>({pm_type:0,origin:{x:0,y:0,z:0},velocity:{x:0,y:0,z:0},pm_time:0,pm_flags:0,gravity:0,delta_angles:{x:0,y:0,z:0},viewoffset:{x:0,y:0,z:0},viewangles:{x:0,y:0,z:0},kick_angles:{x:0,y:0,z:0},gun_index:0,gun_frame:0,gun_offset:{x:0,y:0,z:0},gun_angles:{x:0,y:0,z:0},blend:[0,0,0,0],fov:0,rdflags:0,stats:new Array(32).fill(0),gunskin:0,gunrate:0,damage_blend:[0,0,0,0],team_id:0}),kt=class e{constructor(t,r,n=!1){this.protocolVersion=0;this.isDemo=Ix;this.strictMode=!1;this.errorCount=0;this.stream=t,this.handler=r,this.strictMode=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}getErrorCount(){return this.errorCount}translateCommand(t){if(this.protocolVersion===0){if(t===7)return z.serverdata;if(t===12)return z.serverdata}return this.protocolVersion===Rn?t:this.protocolVersion===34||this.protocolVersion===25?t<=z.frame?t:t===22?z.playerinfo:t===23?z.packetentities:z.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=-1;try{t=this.stream.readByte()}catch{break}if(t===-1)break;let r=t;t=this.translateCommand(t);try{switch(t){case z.bad:this.strictMode;return;case z.nop:break;case z.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case z.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case z.print:this.parsePrint();break;case z.serverdata:this.parseServerData();break;case z.configstring:this.parseConfigString();break;case z.spawnbaseline:this.parseSpawnBaseline();break;case z.centerprint:this.parseCenterPrint();break;case z.download:this.parseDownload();break;case z.frame:this.parseFrame();break;case z.packetentities:this.parsePacketEntities(!1);break;case z.deltapacketentities:this.parsePacketEntities(!0);break;case z.playerinfo:this.parsePlayerState();break;case z.stufftext:this.parseStuffText();break;case z.layout:this.parseLayout();break;case z.inventory:this.parseInventory();break;case z.sound:this.parseSound();break;case z.muzzleflash:this.parseMuzzleFlash();break;case z.muzzleflash2:this.parseMuzzleFlash2();break;case z.temp_entity:this.parseTempEntity();break;case z.splitclient:this.parseSplitClient();break;case z.configblast:this.parseConfigBlast();break;case z.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case z.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case z.damage:this.parseDamage();break;case z.locprint:this.parseLocPrint();break;case z.fog:this.parseFog();break;case z.waitingforplayers:this.parseWaitingForPlayers();break;case z.bot_chat:this.parseBotChat();break;case z.poi:this.parsePoi();break;case z.help_path:this.parseHelpPath();break;case z.muzzleflash3:this.parseMuzzleFlash3();break;case z.achievement:this.parseAchievement();break;default:let n=`Unknown server command: ${r} (translated: ${t}) at offset ${this.stream.getPosition()-1}`;if(this.strictMode)throw new Error(n);console.warn(n),this.errorCount++;return}}catch(n){let i=`offset ${this.stream.getPosition()}, cmd ${t}, protocol ${this.protocolVersion}`;if(console.warn(`Error parsing command ${t} (${i}): ${n.message}`),this.errorCount++,this.strictMode)throw n;return}}}parsePrint(){let t=this.stream.readByte(),r=this.stream.readString();this.handler&&this.handler.onPrint(t,r)}parseStuffText(){let t=this.stream.readString();this.handler&&this.handler.onStuffText(t)}parseLayout(){let t=this.stream.readString();this.handler&&this.handler.onLayout(t)}parseCenterPrint(){let t=this.stream.readString();this.handler&&this.handler.onCenterPrint(t)}parseServerData(){if(this.protocolVersion=this.stream.readLong(),this.protocolVersion===Rn){let t=this.stream.readLong(),r=this.stream.readByte();this.isDemo=r;let n=this.stream.readByte(),i=this.stream.readString(),s=this.stream.readShort();if(s===-2){let a=this.stream.readShort();for(let d=0;d<a;d++)this.stream.readShort();s=0}else s===-1&&(s=-1);let o=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,0,i,s,o,n,r):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${o}, Tick ${n}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let r=0,n=this.stream.readString(),i=this.stream.readShort(),s=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,r,n,i,s):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${s}, GameDir ${n}`)}}parseConfigString(){let t=this.stream.readShort(),r=this.stream.readString();this.handler&&this.handler.onConfigString(t,r)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),r=this.stream.readShort(),n=this.stream.readData(t);try{let i=rc.inflate(n);i.byteLength!==r&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${r}, got ${i.byteLength}`);let s=new On(i.buffer);for(;s.hasMore();){let o=s.readUShort(),a=s.readString();this.handler&&this.handler.onConfigString(o,a)}}catch(i){console.error("svc_configblast: Failed to decompress data",i)}}parseSpawnBaselineBlast(){let t=this.stream.readShort(),r=this.stream.readShort(),n=this.stream.readData(t);try{let i=rc.inflate(n);i.byteLength!==r&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${r}, got ${i.byteLength}`);let s=new On(i.buffer),o=new e(s,this.handler);for(;s.hasMore();)o.parseSpawnBaseline()}catch(i){console.error("svc_spawnbaselineblast: Failed to decompress data",i)}}parseLocPrint(){let t=this.stream.readByte(),r=this.stream.readString(),n=this.stream.readByte(),i=[];for(let s=0;s<n;s++)i.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,r,i)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),r=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(n)}parsePoi(){let t=this.stream.readUShort(),r=this.stream.readUShort(),n={x:0,y:0,z:0};this.stream.readPos(n);let i=this.stream.readUShort(),s=this.stream.readByte(),o=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(o,n)}parseHelpPath(){let t=this.stream.readByte(),r={x:0,y:0,z:0};this.stream.readPos(r);let n={x:0,y:0,z:0};this.stream.readDir(n),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(r)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),r=this.stream.readByte(),n;t>0&&(n=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,r,n)}parseInventory(){let r=new Array(256);for(let n=0;n<256;n++)r[n]=this.stream.readShort();this.handler&&this.handler.onInventory(r)}parseSound(){let t=this.stream.readByte(),r=this.stream.readByte(),n,i,s,o,a;if(t&1&&(n=this.stream.readByte()),t&2&&(i=this.stream.readByte()),t&16&&(s=this.stream.readByte()),t&8&&(o=this.stream.readShort()),t&4){let d={x:0,y:0,z:0};this.stream.readPos(d),a=d}this.handler&&this.handler.onSound(t,r,n,i,s,o,a)}parseMuzzleFlash(){let t=this.stream.readShort(),r=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,r)}parseMuzzleFlash2(){let t=this.stream.readShort(),r=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,r)}parseMuzzleFlash3(){let t=this.stream.readShort(),r=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,r)}parseFog(){let t=this.stream.readByte();if(t&128){let n=this.stream.readByte();t|=n<<8}let r={};t&1&&(r.density=this.stream.readFloat(),r.skyfactor=this.stream.readByte()),t&2&&(r.red=this.stream.readByte()),t&4&&(r.green=this.stream.readByte()),t&8&&(r.blue=this.stream.readByte()),t&16&&(r.time=this.stream.readShort()),t&32&&(r.hf_falloff=this.stream.readFloat()),t&64&&(r.hf_density=this.stream.readFloat()),t&256&&(r.hf_start_r=this.stream.readByte()),t&512&&(r.hf_start_g=this.stream.readByte()),t&1024&&(r.hf_start_b=this.stream.readByte()),t&2048&&(r.hf_start_dist=this.stream.readLong()),t&4096&&(r.hf_end_r=this.stream.readByte()),t&8192&&(r.hf_end_g=this.stream.readByte()),t&16384&&(r.hf_end_b=this.stream.readByte()),t&32768&&(r.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(r)}parseDamage(){let t=this.stream.readByte(),r=[];for(let n=0;n<t;n++){let i=this.stream.readByte(),s={x:0,y:0,z:0};this.stream.readDir(s);let o=i&31,a=(i&32)!==0,d=(i&64)!==0,l=(i&128)!==0;r.push({damage:o,health:a,armor:d,power:l,dir:s})}this.handler&&this.handler.onDamage&&this.handler.onDamage(r)}parseTempEntity(){let t=this.stream.readByte(),r={x:0,y:0,z:0},n={x:0,y:0,z:0},i={x:0,y:0,z:0},s,o,a,d,l;switch(t){case I.EXPLOSION1:case I.EXPLOSION2:case I.ROCKET_EXPLOSION:case I.GRENADE_EXPLOSION:case I.ROCKET_EXPLOSION_WATER:case I.GRENADE_EXPLOSION_WATER:case I.BFG_EXPLOSION:case I.BFG_BIGEXPLOSION:case I.BOSSTPORT:case I.PLASMA_EXPLOSION:case I.PLAIN_EXPLOSION:case I.CHAINFIST_SMOKE:case I.TRACKER_EXPLOSION:case I.TELEPORT_EFFECT:case I.DBALL_GOAL:case I.NUKEBLAST:case I.WIDOWSPLASH:case I.EXPLOSION1_BIG:case I.EXPLOSION1_NP:this.stream.readPos(r);break;case I.GUNSHOT:case I.BLOOD:case I.BLASTER:case I.SHOTGUN:case I.SPARKS:case I.BULLET_SPARKS:case I.SCREEN_SPARKS:case I.SHIELD_SPARKS:case I.BLASTER2:case I.FLECHETTE:case I.MOREBLOOD:case I.ELECTRIC_SPARKS:case I.HEATBEAM_SPARKS:case I.HEATBEAM_STEAM:this.stream.readPos(r),this.stream.readDir(i);break;case I.SPLASH:case I.LASER_SPARKS:case I.WELDING_SPARKS:case I.TUNNEL_SPARKS:s=this.stream.readByte(),this.stream.readPos(r),this.stream.readDir(i),o=this.stream.readByte();break;case I.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(r),this.stream.readPos(n)):(this.stream.readPos(r),this.stream.readDir(i));break;case I.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(r),this.stream.readDir(i)):(this.stream.readPos(r),this.stream.readPos(n));break;case I.RAILTRAIL:case I.BUBBLETRAIL:case I.BFG_LASER:case I.DEBUGTRAIL:case I.BUBBLETRAIL2:this.stream.readPos(r),this.stream.readPos(n);break;case I.PARASITE_ATTACK:case I.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n);break;case I.GRAPPLE_CABLE:a=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n),this.stream.readPos(i);break;case I.LIGHTNING:d=this.stream.readShort(),l=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n);break;case I.FLASHLIGHT:this.stream.readPos(r),a=this.stream.readShort();break;case I.FORCEWALL:this.stream.readPos(r),this.stream.readPos(n),o=this.stream.readByte();break;case I.STEAM:let c=this.stream.readShort();s=this.stream.readByte(),this.stream.readPos(r),this.stream.readDir(i),o=this.stream.readByte(),this.stream.readShort(),c!==-1&&this.stream.readLong();break;case I.WIDOWBEAMOUT:this.stream.readShort();case I.HEATBEAM:case I.MONSTER_HEATBEAM:a=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n),this.stream.readPos(i);break;default:break}this.handler&&this.handler.onTempEntity(t,r,n,i,s,o,a,d,l)}parseSpawnBaseline(){let t=this.parseEntityBits(),r=Br();this.parseDelta(Br(),r,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(r)}parseFrame(){let t=this.stream.readLong(),r=this.stream.readLong(),n=0;this.protocolVersion!==26&&(n=this.stream.readByte());let i=this.stream.readByte(),s=this.stream.readData(i),o=this.stream.readByte();if(o=this.translateCommand(o),o!==z.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${o} (translated)`);let a=this.parsePlayerState(),d=this.stream.readByte();if(d=this.translateCommand(d),d!==z.packetentities)throw new Error(`Expected svc_packetentities after svc_playerinfo, got ${d} (translated)`);let l=this.collectPacketEntities();if(this.isDemo===Rx){let c=this.stream.readByte();for(let h=0;h<c;h++)this.stream.readByte()}this.isDemo===Cx&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:r,surpressCount:n,areaBytes:i,areaBits:s,playerState:a,packetEntities:{delta:!0,entities:l}})}parsePlayerState(){let t=us(),r=this.stream.readShort();r&1&&(t.pm_type=this.stream.readByte()),r&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),r&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),r&8&&(t.pm_time=this.stream.readByte()),r&16&&(t.pm_flags=this.stream.readByte()),r&32&&(t.gravity=this.stream.readShort()),r&64&&(t.delta_angles.x=this.stream.readShort()*(180/32768),t.delta_angles.y=this.stream.readShort()*(180/32768),t.delta_angles.z=this.stream.readShort()*(180/32768)),r&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),r&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),r&512&&(t.kick_angles.x=this.stream.readChar()*.25,t.kick_angles.y=this.stream.readChar()*.25,t.kick_angles.z=this.stream.readChar()*.25),r&4096&&(t.gun_index=this.stream.readByte()),r&8192&&(t.gun_frame=this.stream.readByte(),t.gun_offset.x=this.stream.readChar()*.25,t.gun_offset.y=this.stream.readChar()*.25,t.gun_offset.z=this.stream.readChar()*.25,t.gun_angles.x=this.stream.readChar()*.25,t.gun_angles.y=this.stream.readChar()*.25,t.gun_angles.z=this.stream.readChar()*.25),r&1024&&(t.blend[0]=this.stream.readByte(),t.blend[1]=this.stream.readByte(),t.blend[2]=this.stream.readByte(),t.blend[3]=this.stream.readByte()),r&2048&&(t.fov=this.stream.readByte()),r&16384&&(t.rdflags=this.stream.readByte());let n=this.stream.readLong();for(let i=0;i<32;i++)n&1<<i&&(t.stats[i]=this.stream.readShort());return t}parsePacketEntities(t){let r=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:us(),packetEntities:{delta:t,entities:r}})}collectPacketEntities(){let t=[];for(;;){let r=this.parseEntityBits();if(r.bits&cc){if(r.number===0)break;continue}let n=Br(),i=r.number===0&&!(r.bits&tf);if((r.number!==0||i)&&this.parseDelta(Br(),n,r.number,r.bits,r.bitsHigh),r.number===0)break;t.push(n)}return t}parseEntityBits(){let t=this.stream.readByte();t&tf&&(t|=this.stream.readByte()<<8),t&Lx&&(t|=this.stream.readByte()<<16),t&Ex&&(t|=this.stream.readByte()<<24);let r=0;this.protocolVersion===Rn&&t&Tx&&(r=this.stream.readByte());let n;return t&Mx?n=this.stream.readShort():n=this.stream.readByte(),{number:n,bits:t,bitsHigh:r}}parseDelta(t,r,n,i,s=0){r.number=t.number,r.modelindex=t.modelindex,r.modelindex2=t.modelindex2,r.modelindex3=t.modelindex3,r.modelindex4=t.modelindex4,r.frame=t.frame,r.skinnum=t.skinnum,r.effects=t.effects,r.renderfx=t.renderfx,r.origin.x=t.origin.x,r.origin.y=t.origin.y,r.origin.z=t.origin.z,r.old_origin.x=t.origin.x,r.old_origin.y=t.origin.y,r.old_origin.z=t.origin.z,r.angles.x=t.angles.x,r.angles.y=t.angles.y,r.angles.z=t.angles.z,r.sound=t.sound,r.event=t.event,r.solid=t.solid,r.alpha=t.alpha,r.scale=t.scale,r.instanceBits=t.instanceBits,r.loopVolume=t.loopVolume,r.loopAttenuation=t.loopAttenuation,r.owner=t.owner,r.oldFrame=t.oldFrame,r.number=n,r.bits=i,r.bitsHigh=s,i&fc&&(r.modelindex=this.stream.readByte()),i&pc&&(r.modelindex2=this.stream.readByte()),i&gc&&(r.modelindex3=this.stream.readByte()),i&yc&&(r.modelindex4=this.stream.readByte()),i&ac&&(r.frame=this.stream.readByte()),i&mc&&(r.frame=this.stream.readShort()),i&Jo&&i&ra?r.skinnum=this.stream.readLong():i&Jo?r.skinnum=this.stream.readByte():i&ra&&(r.skinnum=this.stream.readShort()),i&Qo&&i&ta?r.effects=this.stream.readLong():i&Qo?r.effects=this.stream.readByte():i&ta&&(r.effects=this.stream.readShort()),i&jo&&i&ea?r.renderfx=this.stream.readLong():i&jo?r.renderfx=this.stream.readByte():i&ea&&(r.renderfx=this.stream.readShort()),i&nc&&(r.origin.x=this.stream.readCoord()),i&ic&&(r.origin.y=this.stream.readCoord()),i&dc&&(r.origin.z=this.stream.readCoord()),i&uc&&(r.angles.x=this.stream.readAngle()),i&sc&&(r.angles.y=this.stream.readAngle()),i&oc&&(r.angles.z=this.stream.readAngle()),i&xc&&this.stream.readPos(r.old_origin),i&bc&&(r.sound=this.stream.readByte()),i&lc?r.event=this.stream.readByte():r.event=0,i&_c&&(r.solid=this.stream.readShort()),this.protocolVersion===Rn&&(i&hc&&(r.alpha=this.stream.readByte()/255),i&vc&&(r.scale=this.stream.readFloat()),i&Sc&&(r.instanceBits=this.stream.readLong()),i&wc&&(r.loopVolume=this.stream.readByte()/255),s&Ac&&(r.loopAttenuation=this.stream.readByte()/255),s&Mc&&(r.owner=this.stream.readShort()),s&Lc&&(r.oldFrame=this.stream.readShort()))}};var Ec=(a=>(a[a.WeaponFire=0]="WeaponFire",a[a.DamageDealt=1]="DamageDealt",a[a.DamageReceived=2]="DamageReceived",a[a.Pickup=3]="Pickup",a[a.Death=4]="Death",a[a.Spawn=5]="Spawn",a[a.PlayerInfo=6]="PlayerInfo",a))(Ec||{});var Fn=class{constructor(t){this.events=[];this.summary={totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map};this.header=null;this.configStrings=new Map;this.serverInfo={};this.statistics=null;this.playerStats=new Map;this.weaponStats=new Map;this.activeEntities=new Set;this.buffer=t}analyze(){let t=new Ct(this.buffer),r=-1,n=0,i=.1,s=0,o={onServerData:(a,d,l,c,h,u,f,m)=>{s=a,this.header={protocolVersion:a,gameDir:c,levelName:u,playerNum:h,serverCount:d,spawnCount:d,tickRate:f,demoType:m},f&&f>0&&(i=1/f)},onConfigString:(a,d)=>{this.configStrings.set(a,d),a===0&&this.parseServerInfo(d)},onSpawnBaseline:a=>{},onFrame:a=>{let d=new Set;if(a.packetEntities&&a.packetEntities.entities)for(let l of a.packetEntities.entities)d.add(l.number),this.activeEntities.has(l.number)||this.recordEvent({type:5,frame:r,time:n,entityId:l.number,position:{x:l.origin.x,y:l.origin.y,z:l.origin.z},description:`Entity ${l.number} spawned`});this.activeEntities=d,a.playerState&&this.header},onPrint:(a,d)=>{(d.includes("died")||d.includes("killed")||d.includes("suicide"))&&(this.summary.totalDeaths++,this.recordEvent({type:4,frame:r,time:n,description:d.trim()})),d.startsWith("You got the ")&&this.recordEvent({type:3,frame:r,time:n,description:d.trim()})},onCenterPrint:()=>{},onStuffText:()=>{},onSound:()=>{},onTempEntity:()=>{},onLayout:()=>{},onInventory:()=>{},onMuzzleFlash:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onMuzzleFlash2:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onMuzzleFlash3:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onDisconnect:()=>{},onReconnect:()=>{},onDownload:()=>{},onDamage:a=>{for(let d of a)if(this.recordEvent({type:2,frame:r,time:n,value:d.damage,position:d.dir,description:`Took ${d.damage} damage`}),this.summary.damageReceived+=d.damage,this.header){let l=this.getOrCreatePlayerStats(this.header.playerNum);l.damageReceived+=d.damage}}};for(;t.hasMore();){let a=t.readNextBlock();if(!a)break;r++,n=r*i;let d=new kt(a.data,o);d.setProtocolVersion(s),d.parseMessage(),s=d.getProtocolVersion()}return this.statistics={duration:n,frameCount:r+1,averageFps:(r+1)/(n||1),mapName:this.header?.levelName||"unknown",playerCount:1},{events:this.events,summary:this.summary,header:this.header,configStrings:this.configStrings,serverInfo:this.serverInfo,statistics:this.statistics,playerStats:this.playerStats,weaponStats:this.weaponStats}}handleWeaponFire(t,r,n,i){this.recordEvent({type:0,frame:n,time:i,entityId:t,value:r,description:`Weapon ${r} fired by ${t}`});let s=this.summary.weaponUsage.get(r)||0;this.summary.weaponUsage.set(r,s+1);let o=this.getOrCreateWeaponStat(t,r);o.shotsFired++}recordEvent(t){this.events.push(t)}parseServerInfo(t){let r=t.split("\\");for(let n=1;n<r.length;n+=2)n+1<r.length&&(this.serverInfo[r[n]]=r[n+1])}getOrCreatePlayerStats(t){let r=this.playerStats.get(t);return r||(r={kills:0,deaths:0,damageDealt:0,damageReceived:0,suicides:0},this.playerStats.set(t,r)),r}getOrCreateWeaponStat(t,r){let n=this.weaponStats.get(t);n||(n=[],this.weaponStats.set(t,n));let i=n.find(s=>s.weaponId===r);return i||(i={weaponId:r,shotsFired:0,hits:0,kills:0},n.push(i)),i}};var Tc=(i=>(i[i.FirstPerson=0]="FirstPerson",i[i.ThirdPerson=1]="ThirdPerson",i[i.Free=2]="Free",i[i.Follow=3]="Follow",i))(Tc||{});var na=(i=>(i[i.Stopped=0]="Stopped",i[i.Playing=1]="Playing",i[i.Paused=2]="Paused",i[i.Finished=3]="Finished",i))(na||{}),fs=class{constructor(){this.reader=null;this.buffer=null;this.state=0;this.playbackSpeed=1;this.currentProtocolVersion=0;this.currentFrameIndex=-1;this.lastFrameData=null;this.accumulatedTime=0;this.frameDuration=100;this.snapshotInterval=100;this.snapshots=new Map;this.cachedEvents=null;this.cachedSummary=null;this.cachedHeader=null;this.cachedConfigStrings=null;this.cachedServerInfo=null;this.cachedStatistics=null;this.cachedPlayerStats=null;this.cachedWeaponStats=null;this.cameraMode=0;this.thirdPersonDistance=80;this.thirdPersonOffset={x:0,y:0,z:0}}setHandler(t){this.handler=t}setCallbacks(t){this.callbacks=t}loadDemo(t){this.buffer=t,this.reader=new Ct(t),this.transitionState(0),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.snapshots.clear(),this.lastFrameData=null,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null}play(){this.reader&&this.state!==1&&this.transitionState(1)}pause(){this.state===1&&this.transitionState(2)}stop(){this.transitionState(0),this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null}transitionState(t){this.state!==t&&(this.state=t,this.callbacks?.onPlaybackStateChange&&this.callbacks.onPlaybackStateChange(t))}setFrameDuration(t){this.frameDuration=t}setSpeed(t){this.playbackSpeed=Math.max(.1,Math.min(t,16))}getSpeed(){return this.playbackSpeed}update(t){if(!(this.state!==1||!this.reader))for(this.accumulatedTime+=t*1e3*this.playbackSpeed;this.accumulatedTime>=this.frameDuration;){if(!this.processNextFrame())return;this.accumulatedTime-=this.frameDuration,this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}}stepForward(){this.reader&&(this.processNextFrame(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime()))}stepBackward(){this.reader&&this.currentFrameIndex>0&&this.seek(this.currentFrameIndex-1)}seekToTime(t){let r=Math.floor(t*1e3/this.frameDuration);this.seek(r)}seekToFrame(t){this.seek(t)}seek(t){if(!this.reader)return;let r=this.getTotalFrames();if(t<0&&(t=0),t>=r&&(t=r-1),t===this.currentFrameIndex+1){this.processNextFrame(),this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete();return}let n=-1,i=null;if(t>this.currentFrameIndex&&this.currentFrameIndex!==-1&&(n=this.currentFrameIndex),this.callbacks?.onRestoreSnapshot)for(let[s,o]of this.snapshots)s<=t&&s>n&&(n=s,i=o);for(n===-1&&this.currentFrameIndex>t?(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0):n===-1&&(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0),i&&this.callbacks?.onRestoreSnapshot&&(this.callbacks.onRestoreSnapshot(i),this.reader.seekToMessage(n+1)?this.currentFrameIndex=n:(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0));this.currentFrameIndex<t&&(this.callbacks?.onCaptureSnapshot&&(this.currentFrameIndex+1)%this.snapshotInterval,!!this.processNextFrame()););this.accumulatedTime=0,this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}processNextFrame(){if(!this.reader||!this.reader.hasMore())return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;let t=this.reader.readNextBlock();if(!t)return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;this.currentFrameIndex++;try{let r={...this.handler,onFrame:i=>{this.lastFrameData=i,this.handler?.onFrame&&this.handler.onFrame(i),this.callbacks?.onFrameUpdate&&this.callbacks.onFrameUpdate(i)}},n=new kt(t.data,this.handler?r:void 0);if(n.setProtocolVersion(this.currentProtocolVersion),n.parseMessage(),this.currentProtocolVersion=n.getProtocolVersion(),this.callbacks?.onCaptureSnapshot&&this.currentFrameIndex%this.snapshotInterval===0&&this.currentFrameIndex>0){let i=this.callbacks.onCaptureSnapshot(this.currentFrameIndex);i&&this.snapshots.set(this.currentFrameIndex,i)}}catch(r){return console.error("Error processing demo frame",r),this.callbacks?.onPlaybackError&&this.callbacks.onPlaybackError(r instanceof Error?r:new Error(String(r))),!1}return!0}getState(){return this.state}getCurrentTime(){return this.currentFrameIndex<0?this.accumulatedTime:this.currentFrameIndex*this.frameDuration+this.accumulatedTime}getFrameCount(){return this.reader?this.reader.getMessageCount():0}getTotalFrames(){return this.getFrameCount()}getCurrentFrame(){return this.currentFrameIndex<0?0:this.currentFrameIndex}getDuration(){return this.getFrameCount()*this.frameDuration/1e3}getTotalBytes(){return this.reader?this.reader.getProgress().total:0}getProcessedBytes(){return this.reader?this.reader.getOffset():0}getFrameData(t){if(t===this.currentFrameIndex&&this.lastFrameData)return this.lastFrameData;let r=this.state;return this.pause(),this.seek(t),r===1&&this.play(),this.lastFrameData}getFramePlayerState(t){if(t===this.currentFrameIndex&&this.handler?.getPlayerState){let n=this.handler.getPlayerState();if(n)return n}let r=this.getFrameData(t);return r?r.playerState:null}getFrameEntities(t){if(t===this.currentFrameIndex&&this.handler?.getEntities){let r=this.handler.getEntities();if(r)return Array.from(r.values())}if(this.seek(t),this.handler?.getEntities){let r=this.handler.getEntities();return r?Array.from(r.values()):[]}return[]}compareFrames(t,r){let n=this.getFramePlayerState(t),i=this.getFrameEntities(t),s=new Map;i.forEach(c=>s.set(c.number,c));let o=this.getFramePlayerState(r),a=this.getFrameEntities(r),d=new Map;a.forEach(c=>d.set(c.number,c));let l={frameA:t,frameB:r,playerStateDiff:{origin:null,viewangles:null,health:null,ammo:null},entityDiffs:{added:[],removed:[],moved:[]}};n&&o&&((n.origin.x!==o.origin.x||n.origin.y!==o.origin.y||n.origin.z!==o.origin.z)&&(l.playerStateDiff.origin={x:o.origin.x-n.origin.x,y:o.origin.y-n.origin.y,z:o.origin.z-n.origin.z}),n.stats[1]!==o.stats[1]&&(l.playerStateDiff.health=o.stats[1]-n.stats[1]),n.stats[2]!==o.stats[2]&&(l.playerStateDiff.ammo=o.stats[2]-n.stats[2]));for(let[c,h]of d){let u=s.get(c);u?(u.origin.x!==h.origin.x||u.origin.y!==h.origin.y||u.origin.z!==h.origin.z)&&l.entityDiffs.moved.push({id:c,delta:{x:h.origin.x-u.origin.x,y:h.origin.y-u.origin.y,z:h.origin.z-u.origin.z}}):l.entityDiffs.added.push(c)}for(let[c,h]of s)d.has(c)||l.entityDiffs.removed.push(c);return l}getEntityTrajectory(t,r,n){let i=[],s=this.getCurrentFrame();for(this.seek(r);this.getCurrentFrame()<=n&&this.state!==3;){let o=null;if(t===-1){let a=this.getFramePlayerState(this.getCurrentFrame());a&&(o={...a.origin})}else if(this.handler?.getEntities){let a=this.handler.getEntities().get(t);a&&(o={...a.origin})}if(o&&i.push(o),this.getCurrentFrame()===n)break;this.stepForward()}return this.seek(s),i}getDemoEvents(){return this.ensureAnalysis(),this.cachedEvents||[]}filterEvents(t,r){return this.getDemoEvents().filter(i=>!(i.type!==t||r!==void 0&&i.entityId!==r))}getEventSummary(){return this.ensureAnalysis(),this.cachedSummary||{totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map}}getDemoHeader(){return this.ensureAnalysis(),this.cachedHeader}getDemoConfigStrings(){return this.ensureAnalysis(),this.cachedConfigStrings||new Map}getDemoServerInfo(){return this.ensureAnalysis(),this.cachedServerInfo||{}}getDemoStatistics(){return this.ensureAnalysis(),this.cachedStatistics}getPlayerStatistics(t){return this.ensureAnalysis(),this.cachedPlayerStats?.get(t)||null}getWeaponStatistics(t){return this.ensureAnalysis(),this.cachedWeaponStats?.get(t)||null}ensureAnalysis(){if(!this.cachedEvents&&this.buffer){let r=new Fn(this.buffer).analyze();this.cachedEvents=r.events,this.cachedSummary=r.summary,this.cachedHeader=r.header,this.cachedConfigStrings=r.configStrings,this.cachedServerInfo=r.serverInfo,this.cachedStatistics=r.statistics,this.cachedPlayerStats=r.playerStats,this.cachedWeaponStats=r.weaponStats}}setCameraMode(t){this.cameraMode=t}getCameraMode(){return this.cameraMode}setThirdPersonDistance(t){this.thirdPersonDistance=t}setThirdPersonOffset(t){this.thirdPersonOffset=t}};var hs=class{constructor(){this.isRecording=!1;this.startTime=0;this.frameCount=0;this.filename=null;this.lastMessageSize=-1;this.messageBuffer=new va(1024*1024)}startRecording(t,r=0){this.isRecording||(this.isRecording=!0,this.filename=t,this.startTime=r,this.frameCount=0,this.messageBuffer.reset(),console.log(`DemoRecorder: Started recording to ${t}`))}recordMessage(t){if(this.isRecording){this.messageBuffer.writeLong(t.byteLength);for(let r=0;r<t.length;r++)this.messageBuffer.writeByte(t[r]);this.frameCount++}}stopRecording(){return this.isRecording?(this.isRecording=!1,this.messageBuffer.writeLong(-1),console.log(`DemoRecorder: Stopped recording. Frames: ${this.frameCount}, Size: ${this.messageBuffer.getOffset()} bytes`),this.messageBuffer.getData()):null}getIsRecording(){return this.isRecording}};var ia=class{static validate(t,r){if(r&&!r.toLowerCase().endsWith(".dm2"))return{valid:!1,error:"Invalid file extension (expected .dm2)"};if(t.byteLength<5)return{valid:!1,error:"File too small to be a valid demo"};let n=new DataView(t),i=n.getInt32(0,!0);if(i<=0||i>t.byteLength-4)return{valid:!1,error:`Invalid first block length: ${i}`};let s=n.getUint8(4);if(s!==z.serverdata)return{valid:!1,error:`First command is not svc_serverdata (expected ${z.serverdata}, got ${s})`};let o=-1;return i>=5&&(o=n.getInt32(5,!0)),{valid:!0,version:o}}};var Ic=(u=>(u.Unknown="unknown",u.BSP="bsp",u.MD2="md2",u.MD3="md3",u.WAL="wal",u.PCX="pcx",u.TGA="tga",u.WAV="wav",u.OGG="ogg",u.TXT="txt",u.CFG="cfg",u.DEM="dem",u))(Ic||{}),rf={".bsp":"bsp",".md2":"md2",".md3":"md3",".wal":"wal",".pcx":"pcx",".tga":"tga",".wav":"wav",".ogg":"ogg",".txt":"txt",".cfg":"cfg",".dm2":"dem"};function ms(e,t){if(e.length<t.length)return!1;for(let r=0;r<t.length;r++)if(e[r]!==t[r])return!1;return!0}var Fx=[73,66,83,80],zx=[73,68,80,50],kx=[73,68,80,51];var Px=[82,73,70,70];var Dx=[79,103,103,83];function Cc(e,t){let r=e.slice(e.lastIndexOf(".")).toLowerCase();if(t){if(ms(t,Fx))return"bsp";if(ms(t,zx))return"md2";if(ms(t,kx))return"md3";if(ms(t,Dx))return"ogg";if(t.length>128&&t[0]===10&&t[1]<6)return"pcx";if(ms(t,Px)&&t.length>=12&&t[8]===87&&t[9]===65&&t[10]===86&&t[11]===69)return"wav"}return rf[r]?rf[r]:"unknown"}function Rc(e){let t=Cc(e);return t==="txt"||t==="cfg"}function nf(e){return!Rc(e)}function Bx(e,t,r,n,i){let s=new Uint8ClampedArray(n*i*4),o=t/n,a=r/i;for(let d=0;d<i;d++)for(let l=0;l<n;l++){let c=l*o,h=d*a,u=Math.floor(c),f=Math.floor(h),m=c-u,g=h-f,p=Math.min(u+1,t-1),y=Math.min(f+1,r-1),_=(f*t+u)*4,b=(f*t+p)*4,x=(y*t+u)*4,v=(y*t+p)*4,A=(d*n+l)*4;for(let S=0;S<4;S++){let M=e[_+S],E=e[b+S],w=e[x+S],T=e[v+S],F=M*(1-m)+E*m,U=w*(1-m)+T*m,C=F*(1-g)+U*g;s[A+S]=C}}return s}function Ox(e,t,r,n,i,s,o,a,d,l,c){n=Math.floor(n),i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);let h=Math.abs(s-n),u=Math.abs(o-i),f=n<s?1:-1,m=i<o?1:-1,g=h-u;for(;;){if(n>=0&&n<t&&i>=0&&i<r){let y=(i*t+n)*4,_=1-c/255;e[y]=a*(c/255)+e[y]*_,e[y+1]=d*(c/255)+e[y+1]*_,e[y+2]=l*(c/255)+e[y+2]*_,e[y+3]=255}if(n===s&&i===o)break;let p=2*g;p>-u&&(g-=u,n+=f),p<h&&(g+=h,i+=m)}}function sf(e,t,r,n,i){let a=(e.x-n.x)*.707-(e.y-n.y)*.707,d=(e.x-n.x)*.707+(e.y-n.y)*.707,l=e.z-n.z,c=.866,h=.5,u=d*c-l*h,f=d*h+l*c,m=t/2+a*i,g=r/2-f*i;return{x:m,y:g}}var sa=class{constructor(t){this.assetManager=t}async generateTextureThumbnail(t,r){try{let n=await this.assetManager.loadTexture(t);if(!n||n.levels.length===0)return null;let i=n.levels[0],s=i.width/i.height,o=r,a=r;s>1?a=Math.floor(r/s):o=Math.floor(r*s),o=Math.max(1,o),a=Math.max(1,a);let d=Bx(i.rgba,i.width,i.height,o,a);return new ImageData(d,o,a)}catch(n){return console.error(`Failed to generate thumbnail for ${t}`,n),null}}async generateModelThumbnail(t,r){try{let n=[],i=[],s=t.split(".").pop()?.toLowerCase();if(s==="md2"){let p=await this.assetManager.loadMd2Model(t);if(!p||p.frames.length===0)return null;n=p.frames[0].vertices.map(_=>_.position);for(let _ of p.triangles)i.push(_.vertexIndices[0],_.vertexIndices[1]),i.push(_.vertexIndices[1],_.vertexIndices[2]),i.push(_.vertexIndices[2],_.vertexIndices[0])}else if(s==="md3"){let p=await this.assetManager.loadMd3Model(t);if(!p||p.surfaces.length===0)return null;let y=0;for(let _ of p.surfaces){if(_.vertices.length===0)continue;let b=_.vertices[0];n.push(...b.map(x=>({x:x.position.x,y:x.position.y,z:x.position.z})));for(let x of _.triangles)i.push(y+x.indices[0],y+x.indices[1]),i.push(y+x.indices[1],y+x.indices[2]),i.push(y+x.indices[2],y+x.indices[0]);y+=b.length}}else return null;if(n.length===0)return null;let o={x:1/0,y:1/0,z:1/0},a={x:-1/0,y:-1/0,z:-1/0};for(let p of n)o.x=Math.min(o.x,p.x),o.y=Math.min(o.y,p.y),o.z=Math.min(o.z,p.z),a.x=Math.max(a.x,p.x),a.y=Math.max(a.y,p.y),a.z=Math.max(a.z,p.z);let d={x:(o.x+a.x)/2,y:(o.y+a.y)/2,z:(o.z+a.z)/2},l=a.x-o.x,c=a.y-o.y,h=a.z-o.z,u=Math.max(l,c,h),f=Math.max(u,.001),m=r*.8/f,g=new Uint8ClampedArray(r*r*4);for(let p=0;p<i.length;p+=2){let y=i[p],_=i[p+1],b=n[y],x=n[_],v=sf(b,r,r,d,m),A=sf(x,r,r,d,m);Ox(g,r,r,v.x,v.y,A.x,A.y,0,255,0,255)}return new ImageData(g,r,r)}catch(n){return console.error(`Failed to generate model thumbnail for ${t}`,n),null}}async getMapBounds(t,r){try{let n=Wn(r);if(n.models.length>0){let i=n.models[0];return{mins:{x:i.mins[0],y:i.mins[1],z:i.mins[2]},maxs:{x:i.maxs[0],y:i.maxs[1],z:i.maxs[2]}}}return null}catch(n){return console.error("Failed to get map bounds",n),null}}async extractMapScreenshot(t){return null}};var oa=class{constructor(t){this.loader=t}async getMapStatistics(t){let r=await this.loader.load(t),n=r.faces.filter(o=>o.lightOffset!==-1).length,i=r.models[0],s=i?{mins:i.mins,maxs:i.maxs}:{mins:[0,0,0],maxs:[0,0,0]};return{entityCount:r.entities.entities.length,surfaceCount:r.faces.length,lightmapCount:n,vertexCount:r.vertices.length,bounds:s}}async getUsedTextures(t){let r=await this.loader.load(t),n=new Set;for(let i of r.texInfo)i.texture&&n.add(i.texture);return Array.from(n).sort()}async getUsedModels(t){let r=await this.loader.load(t),n=new Set;for(let i of r.entities.entities)i.properties.model&&!i.properties.model.startsWith("*")&&n.add(i.properties.model);return Array.from(n).sort()}async getUsedSounds(t){let r=await this.loader.load(t),n=new Set;for(let i of r.entities.entities){i.properties.noise&&n.add(i.properties.noise);for(let[s,o]of Object.entries(i.properties))(s==="noise"||s.endsWith("_sound")||s==="sound")&&typeof o=="string"&&n.add(o)}return Array.from(n).sort()}};function Nx(e){return{init(){e.trace({x:0,y:0,z:0},{x:0,y:0,z:0})},shutdown(){},createMainLoop(t,r){return new ur(t,r)}}}return pf(Ux);})();
|
|
481
|
+
}`,Oo=class{constructor(t,r){this.vertexCapacity=0;this.indexCapacity=0;this.gl=t,this.system=r,this.program=Le.create(t,{vertex:Al,fragment:Ml}),this.vertexBuffer=new Ee(t,t.DYNAMIC_DRAW),this.indexBuffer=new xe(t,t.DYNAMIC_DRAW),this.vertexArray=new Fe(t),this.vertexArray.configureAttributes([{index:0,size:3,type:t.FLOAT,stride:36,offset:0},{index:1,size:2,type:t.FLOAT,stride:36,offset:12},{index:2,size:4,type:t.FLOAT,stride:36,offset:20}],this.vertexBuffer)}render(t){let r=this.system.buildMesh(t.viewRight,t.viewUp);if(r.indices.length===0)return;let n=r.vertices;r.vertices.byteLength>this.vertexCapacity?(this.vertexCapacity=r.vertices.byteLength,this.vertexBuffer.upload(n,this.gl.DYNAMIC_DRAW)):this.vertexBuffer.update(n);let i=r.indices;r.indices.byteLength>this.indexCapacity?(this.indexCapacity=r.indices.byteLength,this.indexBuffer.upload(i,this.gl.DYNAMIC_DRAW)):this.indexBuffer.update(i),this.gl.depthMask(!1),this.program.use();let s=this.program.getUniformLocation("u_viewProjection");this.gl.uniformMatrix4fv(s,!1,t.viewProjection),this.vertexArray.bind();for(let o of r.batches)o.blendMode==="additive"?this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE):this.gl.blendFuncSeparate(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA,this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.drawElements(this.gl.TRIANGLES,o.count,this.gl.UNSIGNED_SHORT,o.start*2);this.gl.depthMask(!0)}dispose(){this.program.dispose(),this.vertexBuffer.dispose(),this.indexBuffer.dispose(),this.vertexArray.dispose()}};function Cu(e){let{system:t,origin:r,normal:n={x:0,y:0,z:1}}=e;for(let i=0;i<12;i+=1){let s=200+t.rng.frandom()*180,o=t.rng.frandom()*.35;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*80,y:n.y*s+(t.rng.frandom()-.5)*80,z:Math.max(n.z*s,120)+o*80},color:[1,.8,.4,1],size:2.5,lifetime:.45+t.rng.frandom()*.1,gravity:600,damping:2,bounce:.45,blendMode:"additive",fade:!0})}for(let i=0;i<8;i+=1)t.spawn({position:r,velocity:{x:(t.rng.frandom()-.5)*40,y:(t.rng.frandom()-.5)*40,z:80+t.rng.frandom()*40},color:[.45,.45,.45,.75],size:6,lifetime:.6,gravity:200,damping:4,bounce:.15,blendMode:"alpha",fade:!0})}function Ru(e){let{system:t,origin:r}=e;for(let n=0;n<40;n+=1){let i=t.rng.frandom()*Math.PI*2,s=Math.acos(2*t.rng.frandom()-1),o=220+t.rng.frandom()*260,a={x:Math.sin(s)*Math.cos(i),y:Math.sin(s)*Math.sin(i),z:Math.cos(s)};t.spawn({position:r,velocity:{x:a.x*o,y:a.y*o,z:a.z*o},color:[1,.6,.2,1],size:5,lifetime:.9,gravity:700,damping:1,bounce:.35,blendMode:"additive",fade:!0})}for(let n=0;n<16;n+=1)t.spawn({position:r,velocity:{x:(t.rng.frandom()-.5)*30,y:(t.rng.frandom()-.5)*30,z:120+t.rng.frandom()*120},color:[.25,.25,.25,.9],size:12,lifetime:1.2,gravity:300,damping:3,blendMode:"alpha",fade:!0})}function Fu(e){let{system:t,origin:r,direction:n={x:0,y:0,z:1}}=e;for(let i=0;i<24;i+=1){let s=120+t.rng.frandom()*180;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*70,y:n.y*s+(t.rng.frandom()-.5)*70,z:n.z*s+t.rng.frandom()*80},color:[.6,0,0,.95],size:3,lifetime:.8,gravity:900,damping:1,bounce:.2,blendMode:"alpha",fade:!0})}}function zu(e){let{system:t,origin:r}=e;for(let n=0;n<30;n+=1){let i=t.rng.frandom()*Math.PI*2,s=8+t.rng.frandom()*8;t.spawn({position:r,velocity:{x:Math.cos(i)*s,y:Math.sin(i)*s,z:100+t.rng.frandom()*80},color:[.4,.6,1,.9],size:4,lifetime:.5,gravity:300,damping:2,blendMode:"additive",fade:!0})}}function ku(e){let{system:t,origin:r,direction:n={x:1,y:0,z:0}}=e;for(let i=0;i<10;i+=1){let s=350+t.rng.frandom()*100;t.spawn({position:r,velocity:{x:n.x*s+(t.rng.frandom()-.5)*30,y:n.y*s+(t.rng.frandom()-.5)*30,z:n.z*s+(t.rng.frandom()-.5)*30},color:[1,.8,.3,1],size:3,lifetime:.25,gravity:200,damping:1,blendMode:"additive",fade:!0})}}function Pu(e){let{system:t,origin:r,direction:n={x:0,y:0,z:0}}=e;for(let i=0;i<6;i+=1)t.spawn({position:{x:r.x+n.x*i*2,y:r.y+n.y*i*2,z:r.z+n.z*i*2},velocity:{x:(t.rng.frandom()-.5)*15,y:(t.rng.frandom()-.5)*15,z:20+t.rng.frandom()*15},color:[.6,.6,.6,.8],size:2.2,lifetime:.6,gravity:200,damping:1.5,blendMode:"alpha",fade:!0})}var Ct=class{constructor(t){this.messageOffsets=[];this.buffer=t,this.view=new DataView(t),this.offset=0,this.scan()}scan(){let t=0;for(this.messageOffsets=[];t+4<=this.buffer.byteLength;){let r=this.view.getInt32(t,!0);if(r<0||r>2097152){console.warn(`DemoReader: Invalid block length ${r} at offset ${t} during scan`);break}if(t+4+r>this.buffer.byteLength){console.warn(`DemoReader: Incomplete block at offset ${t} during scan`);break}this.messageOffsets.push(t),t+=4+r}}hasMore(){return this.offset<this.buffer.byteLength}readNextBlock(){if(this.offset+4>this.buffer.byteLength)return null;let t=this.view.getInt32(this.offset,!0);if(t<0||this.offset+4+t>this.buffer.byteLength)return null;this.offset+=4;let r=this.buffer.slice(this.offset,this.offset+t);return this.offset+=t,{length:t,data:new On(r)}}reset(){this.offset=0}seekToMessage(t){return t<0||t>=this.messageOffsets.length?!1:(this.offset=this.messageOffsets[t],!0)}getMessageCount(){return this.messageOffsets.length}getOffset(){return this.offset}getProgress(){let t=this.offset,r=this.buffer.byteLength;return{current:t,total:r,percent:r>0?t/r*100:0}}};function Tn(e){let t=e.length;for(;--t>=0;)e[t]=0}var C1=0,_0=1,R1=2,F1=3,z1=258,Yl=29,as=256,Ji=as+1+Yl,Mn=30,ql=19,v0=2*Ji+1,Ir=15,Ll=16,k1=7,jl=256,S0=16,w0=17,A0=18,Ul=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Wo=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P1=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),M0=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),D1=512,Ft=new Array((Ji+2)*2);Tn(Ft);var qi=new Array(Mn*2);Tn(qi);var es=new Array(D1);Tn(es);var ts=new Array(z1-F1+1);Tn(ts);var Ql=new Array(Yl);Tn(Ql);var Xo=new Array(Mn);Tn(Xo);function El(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}var L0,E0,T0;function Tl(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}var I0=e=>e<256?es[e]:es[256+(e>>>7)],rs=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},ze=(e,t,r)=>{e.bi_valid>Ll-r?(e.bi_buf|=t<<e.bi_valid&65535,rs(e,e.bi_buf),e.bi_buf=t>>Ll-e.bi_valid,e.bi_valid+=r-Ll):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)},mt=(e,t,r)=>{ze(e,r[t*2],r[t*2+1])},C0=(e,t)=>{let r=0;do r|=e&1,e>>>=1,r<<=1;while(--t>0);return r>>>1},B1=e=>{e.bi_valid===16?(rs(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},O1=(e,t)=>{let r=t.dyn_tree,n=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,d=t.stat_desc.max_length,l,c,h,u,f,m,g=0;for(u=0;u<=Ir;u++)e.bl_count[u]=0;for(r[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<v0;l++)c=e.heap[l],u=r[r[c*2+1]*2+1]+1,u>d&&(u=d,g++),r[c*2+1]=u,!(c>n)&&(e.bl_count[u]++,f=0,c>=a&&(f=o[c-a]),m=r[c*2],e.opt_len+=m*(u+f),s&&(e.static_len+=m*(i[c*2+1]+f)));if(g!==0){do{for(u=d-1;e.bl_count[u]===0;)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[d]--,g-=2}while(g>0);for(u=d;u!==0;u--)for(c=e.bl_count[u];c!==0;)h=e.heap[--l],!(h>n)&&(r[h*2+1]!==u&&(e.opt_len+=(u-r[h*2+1])*r[h*2],r[h*2+1]=u),c--)}},R0=(e,t,r)=>{let n=new Array(Ir+1),i=0,s,o;for(s=1;s<=Ir;s++)i=i+r[s-1]<<1,n[s]=i;for(o=0;o<=t;o++){let a=e[o*2+1];a!==0&&(e[o*2]=C0(n[a]++,a))}},N1=()=>{let e,t,r,n,i,s=new Array(Ir+1);for(r=0,n=0;n<Yl-1;n++)for(Ql[n]=r,e=0;e<1<<Ul[n];e++)ts[r++]=n;for(ts[r-1]=n,i=0,n=0;n<16;n++)for(Xo[n]=i,e=0;e<1<<Wo[n];e++)es[i++]=n;for(i>>=7;n<Mn;n++)for(Xo[n]=i<<7,e=0;e<1<<Wo[n]-7;e++)es[256+i++]=n;for(t=0;t<=Ir;t++)s[t]=0;for(e=0;e<=143;)Ft[e*2+1]=8,e++,s[8]++;for(;e<=255;)Ft[e*2+1]=9,e++,s[9]++;for(;e<=279;)Ft[e*2+1]=7,e++,s[7]++;for(;e<=287;)Ft[e*2+1]=8,e++,s[8]++;for(R0(Ft,Ji+1,s),e=0;e<Mn;e++)qi[e*2+1]=5,qi[e*2]=C0(e,5);L0=new El(Ft,Ul,as+1,Ji,Ir),E0=new El(qi,Wo,0,Mn,Ir),T0=new El(new Array(0),P1,0,ql,k1)},F0=e=>{let t;for(t=0;t<Ji;t++)e.dyn_ltree[t*2]=0;for(t=0;t<Mn;t++)e.dyn_dtree[t*2]=0;for(t=0;t<ql;t++)e.bl_tree[t*2]=0;e.dyn_ltree[jl*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},z0=e=>{e.bi_valid>8?rs(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Du=(e,t,r,n)=>{let i=t*2,s=r*2;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]},Il=(e,t,r)=>{let n=e.heap[r],i=r<<1;for(;i<=e.heap_len&&(i<e.heap_len&&Du(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!Du(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n},Bu=(e,t,r)=>{let n,i,s=0,o,a;if(e.sym_next!==0)do n=e.pending_buf[e.sym_buf+s++]&255,n+=(e.pending_buf[e.sym_buf+s++]&255)<<8,i=e.pending_buf[e.sym_buf+s++],n===0?mt(e,i,t):(o=ts[i],mt(e,o+as+1,t),a=Ul[o],a!==0&&(i-=Ql[o],ze(e,i,a)),n--,o=I0(n),mt(e,o,r),a=Wo[o],a!==0&&(n-=Xo[o],ze(e,n,a)));while(s<e.sym_next);mt(e,jl,t)},Hl=(e,t)=>{let r=t.dyn_tree,n=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems,o,a,d=-1,l;for(e.heap_len=0,e.heap_max=v0,o=0;o<s;o++)r[o*2]!==0?(e.heap[++e.heap_len]=d=o,e.depth[o]=0):r[o*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=d<2?++d:0,r[l*2]=1,e.depth[l]=0,e.opt_len--,i&&(e.static_len-=n[l*2+1]);for(t.max_code=d,o=e.heap_len>>1;o>=1;o--)Il(e,r,o);l=s;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Il(e,r,1),a=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=a,r[l*2]=r[o*2]+r[a*2],e.depth[l]=(e.depth[o]>=e.depth[a]?e.depth[o]:e.depth[a])+1,r[o*2+1]=r[a*2+1]=l,e.heap[1]=l++,Il(e,r,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],O1(e,t),R0(r,d,e.bl_count)},Ou=(e,t,r)=>{let n,i=-1,s,o=t[1],a=0,d=7,l=4;for(o===0&&(d=138,l=3),t[(r+1)*2+1]=65535,n=0;n<=r;n++)s=o,o=t[(n+1)*2+1],!(++a<d&&s===o)&&(a<l?e.bl_tree[s*2]+=a:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[S0*2]++):a<=10?e.bl_tree[w0*2]++:e.bl_tree[A0*2]++,a=0,i=s,o===0?(d=138,l=3):s===o?(d=6,l=3):(d=7,l=4))},Nu=(e,t,r)=>{let n,i=-1,s,o=t[1],a=0,d=7,l=4;for(o===0&&(d=138,l=3),n=0;n<=r;n++)if(s=o,o=t[(n+1)*2+1],!(++a<d&&s===o)){if(a<l)do mt(e,s,e.bl_tree);while(--a!==0);else s!==0?(s!==i&&(mt(e,s,e.bl_tree),a--),mt(e,S0,e.bl_tree),ze(e,a-3,2)):a<=10?(mt(e,w0,e.bl_tree),ze(e,a-3,3)):(mt(e,A0,e.bl_tree),ze(e,a-11,7));a=0,i=s,o===0?(d=138,l=3):s===o?(d=6,l=3):(d=7,l=4)}},U1=e=>{let t;for(Ou(e,e.dyn_ltree,e.l_desc.max_code),Ou(e,e.dyn_dtree,e.d_desc.max_code),Hl(e,e.bl_desc),t=ql-1;t>=3&&e.bl_tree[M0[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},H1=(e,t,r,n)=>{let i;for(ze(e,t-257,5),ze(e,r-1,5),ze(e,n-4,4),i=0;i<n;i++)ze(e,e.bl_tree[M0[i]*2+1],3);Nu(e,e.dyn_ltree,t-1),Nu(e,e.dyn_dtree,r-1)},V1=e=>{let t=4093624447,r;for(r=0;r<=31;r++,t>>>=1)if(t&1&&e.dyn_ltree[r*2]!==0)return 0;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return 1;for(r=32;r<as;r++)if(e.dyn_ltree[r*2]!==0)return 1;return 0},Uu=!1,G1=e=>{Uu||(N1(),Uu=!0),e.l_desc=new Tl(e.dyn_ltree,L0),e.d_desc=new Tl(e.dyn_dtree,E0),e.bl_desc=new Tl(e.bl_tree,T0),e.bi_buf=0,e.bi_valid=0,F0(e)},k0=(e,t,r,n)=>{ze(e,(C1<<1)+(n?1:0),3),z0(e),rs(e,r),rs(e,~r),r&&e.pending_buf.set(e.window.subarray(t,t+r),e.pending),e.pending+=r},W1=e=>{ze(e,_0<<1,3),mt(e,jl,Ft),B1(e)},X1=(e,t,r,n)=>{let i,s,o=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=V1(e)),Hl(e,e.l_desc),Hl(e,e.d_desc),o=U1(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=r+5,r+4<=i&&t!==-1?k0(e,t,r,n):e.strategy===4||s===i?(ze(e,(_0<<1)+(n?1:0),3),Bu(e,Ft,qi)):(ze(e,(R1<<1)+(n?1:0),3),H1(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),Bu(e,e.dyn_ltree,e.dyn_dtree)),F0(e),n&&z0(e)},$1=(e,t,r)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=r,t===0?e.dyn_ltree[r*2]++:(e.matches++,t--,e.dyn_ltree[(ts[r]+as+1)*2]++,e.dyn_dtree[I0(t)*2]++),e.sym_next===e.sym_end),K1=G1,Z1=k0,Y1=X1,q1=$1,j1=W1,Q1={_tr_init:K1,_tr_stored_block:Z1,_tr_flush_block:Y1,_tr_tally:q1,_tr_align:j1},J1=(e,t,r,n)=>{let i=e&65535|0,s=e>>>16&65535|0,o=0;for(;r!==0;){o=r>2e3?2e3:r,r-=o;do i=i+t[n++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0},ns=J1,eg=()=>{let e,t=[];for(var r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;t[r]=e}return t},tg=new Uint32Array(eg()),rg=(e,t,r,n)=>{let i=tg,s=n+r;e^=-1;for(let o=n;o<s;o++)e=e>>>8^i[(e^t[o])&255];return e^-1},fe=rg,Fr={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Pr={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:ng,_tr_stored_block:Vl,_tr_flush_block:ig,_tr_tally:ar,_tr_align:sg}=Q1,{Z_NO_FLUSH:lr,Z_PARTIAL_FLUSH:og,Z_FULL_FLUSH:ag,Z_FINISH:je,Z_BLOCK:Hu,Z_OK:he,Z_STREAM_END:Vu,Z_STREAM_ERROR:pt,Z_DATA_ERROR:lg,Z_BUF_ERROR:Cl,Z_DEFAULT_COMPRESSION:cg,Z_FILTERED:dg,Z_HUFFMAN_ONLY:No,Z_RLE:ug,Z_FIXED:fg,Z_DEFAULT_STRATEGY:hg,Z_UNKNOWN:mg,Z_DEFLATED:Zo}=Pr,pg=9,gg=15,yg=8,xg=29,bg=256,Gl=bg+1+xg,_g=30,vg=19,Sg=2*Gl+1,wg=15,G=3,or=258,gt=or+G+1,Ag=32,Ln=42,Jl=57,Wl=69,Xl=73,$l=91,Kl=103,Cr=113,Zi=666,Te=1,In=2,zr=3,Cn=4,Mg=3,Rr=(e,t)=>(e.msg=Fr[t],t),Gu=e=>e*2-(e>4?9:0),sr=e=>{let t=e.length;for(;--t>=0;)e[t]=0},Lg=e=>{let t,r,n,i=e.w_size;t=e.hash_size,n=t;do r=e.head[--n],e.head[n]=r>=i?r-i:0;while(--t);t=i,n=t;do r=e.prev[--n],e.prev[n]=r>=i?r-i:0;while(--t)},Eg=(e,t,r)=>(t<<e.hash_shift^r)&e.hash_mask,cr=Eg,Ne=e=>{let t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),r!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,t.pending===0&&(t.pending_out=0))},Ue=(e,t)=>{ig(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Ne(e.strm)},$=(e,t)=>{e.pending_buf[e.pending++]=t},Ki=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},Zl=(e,t,r,n)=>{let i=e.avail_in;return i>n&&(i=n),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),r),e.state.wrap===1?e.adler=ns(e.adler,t,i,r):e.state.wrap===2&&(e.adler=fe(e.adler,t,i,r)),e.next_in+=i,e.total_in+=i,i)},P0=(e,t)=>{let r=e.max_chain_length,n=e.strstart,i,s,o=e.prev_length,a=e.nice_match,d=e.strstart>e.w_size-gt?e.strstart-(e.w_size-gt):0,l=e.window,c=e.w_mask,h=e.prev,u=e.strstart+or,f=l[n+o-1],m=l[n+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(l[i+o]!==m||l[i+o-1]!==f||l[i]!==l[n]||l[++i]!==l[n+1])){n+=2,i++;do;while(l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&n<u);if(s=or-(u-n),n=u-or,s>o){if(e.match_start=t,o=s,s>=a)break;f=l[n+o-1],m=l[n+o]}}while((t=h[t&c])>d&&--r!==0);return o<=e.lookahead?o:e.lookahead},En=e=>{let t=e.w_size,r,n,i;do{if(n=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-gt)&&(e.window.set(e.window.subarray(t,t+t-n),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),Lg(e),n+=t),e.strm.avail_in===0)break;if(r=Zl(e.strm,e.window,e.strstart+e.lookahead,n),e.lookahead+=r,e.lookahead+e.insert>=G)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=cr(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=cr(e,e.ins_h,e.window[i+G-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<G)););}while(e.lookahead<gt&&e.strm.avail_in!==0)},D0=(e,t)=>{let r=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n,i,s,o=0,a=e.strm.avail_in;do{if(n=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,i=e.strstart-e.block_start,n>i+e.strm.avail_in&&(n=i+e.strm.avail_in),n>s&&(n=s),n<r&&(n===0&&t!==je||t===lr||n!==i+e.strm.avail_in)))break;o=t===je&&n===i+e.strm.avail_in?1:0,Vl(e,0,0,o),e.pending_buf[e.pending-4]=n,e.pending_buf[e.pending-3]=n>>8,e.pending_buf[e.pending-2]=~n,e.pending_buf[e.pending-1]=~n>>8,Ne(e.strm),i&&(i>n&&(i=n),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,n-=i),n&&(Zl(e.strm,e.strm.output,e.strm.next_out,n),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n)}while(o===0);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?Cn:t!==lr&&t!==je&&e.strm.avail_in===0&&e.strstart===e.block_start?In:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(Zl(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,r=s>e.w_size?e.w_size:s,i=e.strstart-e.block_start,(i>=r||(i||t===je)&&t!==lr&&e.strm.avail_in===0&&i<=s)&&(n=i>s?s:i,o=t===je&&e.strm.avail_in===0&&n===i?1:0,Vl(e,e.block_start,n,o),e.block_start+=n,Ne(e.strm)),o?zr:Te)},Rl=(e,t)=>{let r,n;for(;;){if(e.lookahead<gt){if(En(e),e.lookahead<gt&&t===lr)return Te;if(e.lookahead===0)break}if(r=0,e.lookahead>=G&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),r!==0&&e.strstart-r<=e.w_size-gt&&(e.match_length=P0(e,r)),e.match_length>=G)if(n=ar(e,e.strstart-e.match_start,e.match_length-G),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=G){e.match_length--;do e.strstart++,e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=cr(e,e.ins_h,e.window[e.strstart+1]);else n=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=e.strstart<G-1?e.strstart:G-1,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},wn=(e,t)=>{let r,n,i;for(;;){if(e.lookahead<gt){if(En(e),e.lookahead<gt&&t===lr)return Te;if(e.lookahead===0)break}if(r=0,e.lookahead>=G&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=G-1,r!==0&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-gt&&(e.match_length=P0(e,r),e.match_length<=5&&(e.strategy===dg||e.match_length===G&&e.strstart-e.match_start>4096)&&(e.match_length=G-1)),e.prev_length>=G&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-G,n=ar(e,e.strstart-1-e.prev_match,e.prev_length-G),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=cr(e,e.ins_h,e.window[e.strstart+G-1]),r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=G-1,e.strstart++,n&&(Ue(e,!1),e.strm.avail_out===0))return Te}else if(e.match_available){if(n=ar(e,0,e.window[e.strstart-1]),n&&Ue(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Te}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=ar(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<G-1?e.strstart:G-1,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},Tg=(e,t)=>{let r,n,i,s,o=e.window;for(;;){if(e.lookahead<=or){if(En(e),e.lookahead<=or&&t===lr)return Te;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=G&&e.strstart>0&&(i=e.strstart-1,n=o[i],n===o[++i]&&n===o[++i]&&n===o[++i])){s=e.strstart+or;do;while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<s);e.match_length=or-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=G?(r=ar(e,1,e.match_length-G),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=0,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In},Ig=(e,t)=>{let r;for(;;){if(e.lookahead===0&&(En(e),e.lookahead===0)){if(t===lr)return Te;break}if(e.match_length=0,r=ar(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(Ue(e,!1),e.strm.avail_out===0))return Te}return e.insert=0,t===je?(Ue(e,!0),e.strm.avail_out===0?zr:Cn):e.sym_next&&(Ue(e,!1),e.strm.avail_out===0)?Te:In};function ht(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}var Yi=[new ht(0,0,0,0,D0),new ht(4,4,8,4,Rl),new ht(4,5,16,8,Rl),new ht(4,6,32,32,Rl),new ht(4,4,16,16,wn),new ht(8,16,32,32,wn),new ht(8,16,128,128,wn),new ht(8,32,128,256,wn),new ht(32,128,258,1024,wn),new ht(32,258,258,4096,wn)],Cg=e=>{e.window_size=2*e.w_size,sr(e.head),e.max_lazy_match=Yi[e.level].max_lazy,e.good_match=Yi[e.level].good_length,e.nice_match=Yi[e.level].nice_length,e.max_chain_length=Yi[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=G-1,e.match_available=0,e.ins_h=0};function Rg(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Zo,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Sg*2),this.dyn_dtree=new Uint16Array((2*_g+1)*2),this.bl_tree=new Uint16Array((2*vg+1)*2),sr(this.dyn_ltree),sr(this.dyn_dtree),sr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(wg+1),this.heap=new Uint16Array(2*Gl+1),sr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Gl+1),sr(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var ls=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.status!==Ln&&t.status!==Jl&&t.status!==Wl&&t.status!==Xl&&t.status!==$l&&t.status!==Kl&&t.status!==Cr&&t.status!==Zi?1:0},B0=e=>{if(ls(e))return Rr(e,pt);e.total_in=e.total_out=0,e.data_type=mg;let t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Jl:t.wrap?Ln:Cr,e.adler=t.wrap===2?0:1,t.last_flush=-2,ng(t),he},O0=e=>{let t=B0(e);return t===he&&Cg(e.state),t},Fg=(e,t)=>ls(e)||e.state.wrap!==2?pt:(e.state.gzhead=t,he),N0=(e,t,r,n,i,s)=>{if(!e)return pt;let o=1;if(t===cg&&(t=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>pg||r!==Zo||n<8||n>15||t<0||t>9||s<0||s>fg||n===8&&o!==1)return Rr(e,pt);n===8&&(n=9);let a=new Rg;return e.state=a,a.strm=e,a.status=Ln,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+G-1)/G),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=s,a.method=r,O0(e)},zg=(e,t)=>N0(e,t,Zo,gg,yg,hg),kg=(e,t)=>{if(ls(e)||t>Hu||t<0)return e?Rr(e,pt):pt;let r=e.state;if(!e.output||e.avail_in!==0&&!e.input||r.status===Zi&&t!==je)return Rr(e,e.avail_out===0?Cl:pt);let n=r.last_flush;if(r.last_flush=t,r.pending!==0){if(Ne(e),e.avail_out===0)return r.last_flush=-1,he}else if(e.avail_in===0&&Gu(t)<=Gu(n)&&t!==je)return Rr(e,Cl);if(r.status===Zi&&e.avail_in!==0)return Rr(e,Cl);if(r.status===Ln&&r.wrap===0&&(r.status=Cr),r.status===Ln){let i=Zo+(r.w_bits-8<<4)<<8,s=-1;if(r.strategy>=No||r.level<2?s=0:r.level<6?s=1:r.level===6?s=2:s=3,i|=s<<6,r.strstart!==0&&(i|=Ag),i+=31-i%31,Ki(r,i),r.strstart!==0&&(Ki(r,e.adler>>>16),Ki(r,e.adler&65535)),e.adler=1,r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(r.status===Jl){if(e.adler=0,$(r,31),$(r,139),$(r,8),r.gzhead)$(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),$(r,r.gzhead.time&255),$(r,r.gzhead.time>>8&255),$(r,r.gzhead.time>>16&255),$(r,r.gzhead.time>>24&255),$(r,r.level===9?2:r.strategy>=No||r.level<2?4:0),$(r,r.gzhead.os&255),r.gzhead.extra&&r.gzhead.extra.length&&($(r,r.gzhead.extra.length&255),$(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(e.adler=fe(e.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=Wl;else if($(r,0),$(r,0),$(r,0),$(r,0),$(r,0),$(r,r.level===9?2:r.strategy>=No||r.level<2?4:0),$(r,Mg),r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(r.status===Wl){if(r.gzhead.extra){let i=r.pending,s=(r.gzhead.extra.length&65535)-r.gzindex;for(;r.pending+s>r.pending_buf_size;){let a=r.pending_buf_size-r.pending;if(r.pending_buf.set(r.gzhead.extra.subarray(r.gzindex,r.gzindex+a),r.pending),r.pending=r.pending_buf_size,r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex+=a,Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0,s-=a}let o=new Uint8Array(r.gzhead.extra);r.pending_buf.set(o.subarray(r.gzindex,r.gzindex+s),r.pending),r.pending+=s,r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex=0}r.status=Xl}if(r.status===Xl){if(r.gzhead.name){let i=r.pending,s;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0}r.gzindex<r.gzhead.name.length?s=r.gzhead.name.charCodeAt(r.gzindex++)&255:s=0,$(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),r.gzindex=0}r.status=$l}if(r.status===$l){if(r.gzhead.comment){let i=r.pending,s;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i)),Ne(e),r.pending!==0)return r.last_flush=-1,he;i=0}r.gzindex<r.gzhead.comment.length?s=r.gzhead.comment.charCodeAt(r.gzindex++)&255:s=0,$(r,s)}while(s!==0);r.gzhead.hcrc&&r.pending>i&&(e.adler=fe(e.adler,r.pending_buf,r.pending-i,i))}r.status=Kl}if(r.status===Kl){if(r.gzhead.hcrc){if(r.pending+2>r.pending_buf_size&&(Ne(e),r.pending!==0))return r.last_flush=-1,he;$(r,e.adler&255),$(r,e.adler>>8&255),e.adler=0}if(r.status=Cr,Ne(e),r.pending!==0)return r.last_flush=-1,he}if(e.avail_in!==0||r.lookahead!==0||t!==lr&&r.status!==Zi){let i=r.level===0?D0(r,t):r.strategy===No?Ig(r,t):r.strategy===ug?Tg(r,t):Yi[r.level].func(r,t);if((i===zr||i===Cn)&&(r.status=Zi),i===Te||i===zr)return e.avail_out===0&&(r.last_flush=-1),he;if(i===In&&(t===og?sg(r):t!==Hu&&(Vl(r,0,0,!1),t===ag&&(sr(r.head),r.lookahead===0&&(r.strstart=0,r.block_start=0,r.insert=0))),Ne(e),e.avail_out===0))return r.last_flush=-1,he}return t!==je?he:r.wrap<=0?Vu:(r.wrap===2?($(r,e.adler&255),$(r,e.adler>>8&255),$(r,e.adler>>16&255),$(r,e.adler>>24&255),$(r,e.total_in&255),$(r,e.total_in>>8&255),$(r,e.total_in>>16&255),$(r,e.total_in>>24&255)):(Ki(r,e.adler>>>16),Ki(r,e.adler&65535)),Ne(e),r.wrap>0&&(r.wrap=-r.wrap),r.pending!==0?he:Vu)},Pg=e=>{if(ls(e))return pt;let t=e.state.status;return e.state=null,t===Cr?Rr(e,lg):he},Dg=(e,t)=>{let r=t.length;if(ls(e))return pt;let n=e.state,i=n.wrap;if(i===2||i===1&&n.status!==Ln||n.lookahead)return pt;if(i===1&&(e.adler=ns(e.adler,t,r,0)),n.wrap=0,r>=n.w_size){i===0&&(sr(n.head),n.strstart=0,n.block_start=0,n.insert=0);let d=new Uint8Array(n.w_size);d.set(t.subarray(r-n.w_size,r),0),t=d,r=n.w_size}let s=e.avail_in,o=e.next_in,a=e.input;for(e.avail_in=r,e.next_in=0,e.input=t,En(n);n.lookahead>=G;){let d=n.strstart,l=n.lookahead-(G-1);do n.ins_h=cr(n,n.ins_h,n.window[d+G-1]),n.prev[d&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=d,d++;while(--l);n.strstart=d,n.lookahead=G-1,En(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=G-1,n.match_available=0,e.next_in=o,e.input=a,e.avail_in=s,n.wrap=i,he},Bg=zg,Og=N0,Ng=O0,Ug=B0,Hg=Fg,Vg=kg,Gg=Pg,Wg=Dg,Xg="pako deflate (from Nodeca project)",ji={deflateInit:Bg,deflateInit2:Og,deflateReset:Ng,deflateResetKeep:Ug,deflateSetHeader:Hg,deflate:Vg,deflateEnd:Gg,deflateSetDictionary:Wg,deflateInfo:Xg},$g=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Kg=function(e){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let r=t.shift();if(r){if(typeof r!="object")throw new TypeError(r+"must be non-object");for(let n in r)$g(r,n)&&(e[n]=r[n])}}return e},Zg=e=>{let t=0;for(let n=0,i=e.length;n<i;n++)t+=e[n].length;let r=new Uint8Array(t);for(let n=0,i=0,s=e.length;n<s;n++){let o=e[n];r.set(o,i),i+=o.length}return r},Yo={assign:Kg,flattenChunks:Zg},U0=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{U0=!1}var is=new Uint8Array(256);for(let e=0;e<256;e++)is[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;is[254]=is[254]=1;var Yg=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,r,n,i,s,o=e.length,a=0;for(i=0;i<o;i++)r=e.charCodeAt(i),(r&64512)===55296&&i+1<o&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(r=65536+(r-55296<<10)+(n-56320),i++)),a+=r<128?1:r<2048?2:r<65536?3:4;for(t=new Uint8Array(a),s=0,i=0;s<a;i++)r=e.charCodeAt(i),(r&64512)===55296&&i+1<o&&(n=e.charCodeAt(i+1),(n&64512)===56320&&(r=65536+(r-55296<<10)+(n-56320),i++)),r<128?t[s++]=r:r<2048?(t[s++]=192|r>>>6,t[s++]=128|r&63):r<65536?(t[s++]=224|r>>>12,t[s++]=128|r>>>6&63,t[s++]=128|r&63):(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63,t[s++]=128|r>>>6&63,t[s++]=128|r&63);return t},qg=(e,t)=>{if(t<65534&&e.subarray&&U0)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let r="";for(let n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r},jg=(e,t)=>{let r=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let n,i,s=new Array(r*2);for(i=0,n=0;n<r;){let o=e[n++];if(o<128){s[i++]=o;continue}let a=is[o];if(a>4){s[i++]=65533,n+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&n<r;)o=o<<6|e[n++]&63,a--;if(a>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return qg(s,i)},Qg=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let r=t-1;for(;r>=0&&(e[r]&192)===128;)r--;return r<0||r===0?t:r+is[e[r]]>t?r:t},ss={string2buf:Yg,buf2string:jg,utf8border:Qg};function Jg(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var H0=Jg,V0=Object.prototype.toString,{Z_NO_FLUSH:ey,Z_SYNC_FLUSH:ty,Z_FULL_FLUSH:ry,Z_FINISH:ny,Z_OK:$o,Z_STREAM_END:iy,Z_DEFAULT_COMPRESSION:sy,Z_DEFAULT_STRATEGY:oy,Z_DEFLATED:ay}=Pr;function cs(e){this.options=Yo.assign({level:sy,method:ay,chunkSize:16384,windowBits:15,memLevel:8,strategy:oy},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new H0,this.strm.avail_out=0;let r=ji.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==$o)throw new Error(Fr[r]);if(t.header&&ji.deflateSetHeader(this.strm,t.header),t.dictionary){let n;if(typeof t.dictionary=="string"?n=ss.string2buf(t.dictionary):V0.call(t.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(t.dictionary):n=t.dictionary,r=ji.deflateSetDictionary(this.strm,n),r!==$o)throw new Error(Fr[r]);this._dict_set=!0}}cs.prototype.push=function(e,t){let r=this.strm,n=this.options.chunkSize,i,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?ny:ey,typeof e=="string"?r.input=ss.string2buf(e):V0.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){if(r.avail_out===0&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),(s===ty||s===ry)&&r.avail_out<=6){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(i=ji.deflate(r,s),i===iy)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),i=ji.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===$o;if(r.avail_out===0){this.onData(r.output);continue}if(s>0&&r.next_out>0){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(r.avail_in===0)break}return!0};cs.prototype.onData=function(e){this.chunks.push(e)};cs.prototype.onEnd=function(e){e===$o&&(this.result=Yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function ec(e,t){let r=new cs(t);if(r.push(e,!0),r.err)throw r.msg||Fr[r.err];return r.result}function ly(e,t){return t=t||{},t.raw=!0,ec(e,t)}function cy(e,t){return t=t||{},t.gzip=!0,ec(e,t)}var dy=cs,uy=ec,fy=ly,hy=cy,my=Pr,py={Deflate:dy,deflate:uy,deflateRaw:fy,gzip:hy,constants:my},Uo=16209,gy=16191,yy=function(t,r){let n,i,s,o,a,d,l,c,h,u,f,m,g,p,y,_,b,x,v,A,S,M,E,w,T=t.state;n=t.next_in,E=t.input,i=n+(t.avail_in-5),s=t.next_out,w=t.output,o=s-(r-t.avail_out),a=s+(t.avail_out-257),d=T.dmax,l=T.wsize,c=T.whave,h=T.wnext,u=T.window,f=T.hold,m=T.bits,g=T.lencode,p=T.distcode,y=(1<<T.lenbits)-1,_=(1<<T.distbits)-1;e:do{m<15&&(f+=E[n++]<<m,m+=8,f+=E[n++]<<m,m+=8),b=g[f&y];t:for(;;){if(x=b>>>24,f>>>=x,m-=x,x=b>>>16&255,x===0)w[s++]=b&65535;else if(x&16){v=b&65535,x&=15,x&&(m<x&&(f+=E[n++]<<m,m+=8),v+=f&(1<<x)-1,f>>>=x,m-=x),m<15&&(f+=E[n++]<<m,m+=8,f+=E[n++]<<m,m+=8),b=p[f&_];r:for(;;){if(x=b>>>24,f>>>=x,m-=x,x=b>>>16&255,x&16){if(A=b&65535,x&=15,m<x&&(f+=E[n++]<<m,m+=8,m<x&&(f+=E[n++]<<m,m+=8)),A+=f&(1<<x)-1,A>d){t.msg="invalid distance too far back",T.mode=Uo;break e}if(f>>>=x,m-=x,x=s-o,A>x){if(x=A-x,x>c&&T.sane){t.msg="invalid distance too far back",T.mode=Uo;break e}if(S=0,M=u,h===0){if(S+=l-x,x<v){v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}}else if(h<x){if(S+=l+h-x,x-=h,x<v){v-=x;do w[s++]=u[S++];while(--x);if(S=0,h<v){x=h,v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}}}else if(S+=h-x,x<v){v-=x;do w[s++]=u[S++];while(--x);S=s-A,M=w}for(;v>2;)w[s++]=M[S++],w[s++]=M[S++],w[s++]=M[S++],v-=3;v&&(w[s++]=M[S++],v>1&&(w[s++]=M[S++]))}else{S=s-A;do w[s++]=w[S++],w[s++]=w[S++],w[s++]=w[S++],v-=3;while(v>2);v&&(w[s++]=w[S++],v>1&&(w[s++]=w[S++]))}}else if((x&64)===0){b=p[(b&65535)+(f&(1<<x)-1)];continue r}else{t.msg="invalid distance code",T.mode=Uo;break e}break}}else if((x&64)===0){b=g[(b&65535)+(f&(1<<x)-1)];continue t}else if(x&32){T.mode=gy;break e}else{t.msg="invalid literal/length code",T.mode=Uo;break e}break}}while(n<i&&s<a);v=m>>3,n-=v,m-=v<<3,f&=(1<<m)-1,t.next_in=n,t.next_out=s,t.avail_in=n<i?5+(i-n):5-(n-i),t.avail_out=s<a?257+(a-s):257-(s-a),T.hold=f,T.bits=m},An=15,Wu=852,Xu=592,$u=0,Fl=1,Ku=2,xy=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),by=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),_y=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),vy=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Sy=(e,t,r,n,i,s,o,a)=>{let d=a.bits,l=0,c=0,h=0,u=0,f=0,m=0,g=0,p=0,y=0,_=0,b,x,v,A,S,M=null,E,w=new Uint16Array(An+1),T=new Uint16Array(An+1),F=null,U,C,Z;for(l=0;l<=An;l++)w[l]=0;for(c=0;c<n;c++)w[t[r+c]]++;for(f=d,u=An;u>=1&&w[u]===0;u--);if(f>u&&(f=u),u===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h<u&&w[h]===0;h++);for(f<h&&(f=h),p=1,l=1;l<=An;l++)if(p<<=1,p-=w[l],p<0)return-1;if(p>0&&(e===$u||u!==1))return-1;for(T[1]=0,l=1;l<An;l++)T[l+1]=T[l]+w[l];for(c=0;c<n;c++)t[r+c]!==0&&(o[T[t[r+c]]++]=c);if(e===$u?(M=F=o,E=20):e===Fl?(M=xy,F=by,E=257):(M=_y,F=vy,E=0),_=0,c=0,l=h,S=s,m=f,g=0,v=-1,y=1<<f,A=y-1,e===Fl&&y>Wu||e===Ku&&y>Xu)return 1;for(;;){U=l-g,o[c]+1<E?(C=0,Z=o[c]):o[c]>=E?(C=F[o[c]-E],Z=M[o[c]-E]):(C=96,Z=0),b=1<<l-g,x=1<<m,h=x;do x-=b,i[S+(_>>g)+x]=U<<24|C<<16|Z|0;while(x!==0);for(b=1<<l-1;_&b;)b>>=1;if(b!==0?(_&=b-1,_+=b):_=0,c++,--w[l]===0){if(l===u)break;l=t[r+o[c]]}if(l>f&&(_&A)!==v){for(g===0&&(g=f),S+=h,m=l-g,p=1<<m;m+g<u&&(p-=w[m+g],!(p<=0));)m++,p<<=1;if(y+=1<<m,e===Fl&&y>Wu||e===Ku&&y>Xu)return 1;v=_&A,i[v]=f<<24|m<<16|S-s|0}}return _!==0&&(i[S+_]=l-g<<24|64<<16|0),a.bits=f,0},Qi=Sy,wy=0,G0=1,W0=2,{Z_FINISH:Zu,Z_BLOCK:Ay,Z_TREES:Ho,Z_OK:kr,Z_STREAM_END:My,Z_NEED_DICT:Ly,Z_STREAM_ERROR:Qe,Z_DATA_ERROR:X0,Z_MEM_ERROR:$0,Z_BUF_ERROR:Ey,Z_DEFLATED:Yu}=Pr,qo=16180,qu=16181,ju=16182,Qu=16183,Ju=16184,e0=16185,t0=16186,r0=16187,n0=16188,i0=16189,Ko=16190,Rt=16191,zl=16192,s0=16193,kl=16194,o0=16195,a0=16196,l0=16197,c0=16198,Vo=16199,Go=16200,d0=16201,u0=16202,f0=16203,h0=16204,m0=16205,Pl=16206,p0=16207,g0=16208,ie=16209,K0=16210,Z0=16211,Ty=852,Iy=592,Cy=15,Ry=Cy,y0=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function Fy(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Dr=e=>{if(!e)return 1;let t=e.state;return!t||t.strm!==e||t.mode<qo||t.mode>Z0?1:0},Y0=e=>{if(Dr(e))return Qe;let t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=qo,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(Ty),t.distcode=t.distdyn=new Int32Array(Iy),t.sane=1,t.back=-1,kr},q0=e=>{if(Dr(e))return Qe;let t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Y0(e)},j0=(e,t)=>{let r;if(Dr(e))return Qe;let n=e.state;return t<0?(r=0,t=-t):(r=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Qe:(n.window!==null&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,q0(e))},Q0=(e,t)=>{if(!e)return Qe;let r=new Fy;e.state=r,r.strm=e,r.window=null,r.mode=qo;let n=j0(e,t);return n!==kr&&(e.state=null),n},zy=e=>Q0(e,Ry),x0=!0,Dl,Bl,ky=e=>{if(x0){Dl=new Int32Array(512),Bl=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(Qi(G0,e.lens,0,288,Dl,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;Qi(W0,e.lens,0,32,Bl,0,e.work,{bits:5}),x0=!1}e.lencode=Dl,e.lenbits=9,e.distcode=Bl,e.distbits=5},J0=(e,t,r,n)=>{let i,s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),n>=s.wsize?(s.window.set(t.subarray(r-s.wsize,r),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>n&&(i=n),s.window.set(t.subarray(r-n,r-n+i),s.wnext),n-=i,n?(s.window.set(t.subarray(r-n,r),0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},Py=(e,t)=>{let r,n,i,s,o,a,d,l,c,h,u,f,m,g,p=0,y,_,b,x,v,A,S,M,E=new Uint8Array(4),w,T,F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Dr(e)||!e.output||!e.input&&e.avail_in!==0)return Qe;r=e.state,r.mode===Rt&&(r.mode=zl),o=e.next_out,i=e.output,d=e.avail_out,s=e.next_in,n=e.input,a=e.avail_in,l=r.hold,c=r.bits,h=a,u=d,M=kr;e:for(;;)switch(r.mode){case qo:if(r.wrap===0){r.mode=zl;break}for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&2&&l===35615){r.wbits===0&&(r.wbits=15),r.check=0,E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0),l=0,c=0,r.mode=qu;break}if(r.head&&(r.head.done=!1),!(r.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",r.mode=ie;break}if((l&15)!==Yu){e.msg="unknown compression method",r.mode=ie;break}if(l>>>=4,c-=4,S=(l&15)+8,r.wbits===0&&(r.wbits=S),S>15||S>r.wbits){e.msg="invalid window size",r.mode=ie;break}r.dmax=1<<r.wbits,r.flags=0,e.adler=r.check=1,r.mode=l&512?i0:Rt,l=0,c=0;break;case qu:for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.flags=l,(r.flags&255)!==Yu){e.msg="unknown compression method",r.mode=ie;break}if(r.flags&57344){e.msg="unknown header flags set",r.mode=ie;break}r.head&&(r.head.text=l>>8&1),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0,r.mode=ju;case ju:for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.head&&(r.head.time=l),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,E[2]=l>>>16&255,E[3]=l>>>24&255,r.check=fe(r.check,E,4,0)),l=0,c=0,r.mode=Qu;case Qu:for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.head&&(r.head.xflags=l&255,r.head.os=l>>8),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0,r.mode=Ju;case Ju:if(r.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.length=l,r.head&&(r.head.extra_len=l),r.flags&512&&r.wrap&4&&(E[0]=l&255,E[1]=l>>>8&255,r.check=fe(r.check,E,2,0)),l=0,c=0}else r.head&&(r.head.extra=null);r.mode=e0;case e0:if(r.flags&1024&&(f=r.length,f>a&&(f=a),f&&(r.head&&(S=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(n.subarray(s,s+f),S)),r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,r.length-=f),r.length))break e;r.length=0,r.mode=t0;case t0:if(r.flags&2048){if(a===0)break e;f=0;do S=n[s+f++],r.head&&S&&r.length<65536&&(r.head.name+=String.fromCharCode(S));while(S&&f<a);if(r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,S)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=r0;case r0:if(r.flags&4096){if(a===0)break e;f=0;do S=n[s+f++],r.head&&S&&r.length<65536&&(r.head.comment+=String.fromCharCode(S));while(S&&f<a);if(r.flags&512&&r.wrap&4&&(r.check=fe(r.check,n,f,s)),a-=f,s+=f,S)break e}else r.head&&(r.head.comment=null);r.mode=n0;case n0:if(r.flags&512){for(;c<16;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&4&&l!==(r.check&65535)){e.msg="header crc mismatch",r.mode=ie;break}l=0,c=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=Rt;break;case i0:for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}e.adler=r.check=y0(l),l=0,c=0,r.mode=Ko;case Ko:if(r.havedict===0)return e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,Ly;e.adler=r.check=1,r.mode=Rt;case Rt:if(t===Ay||t===Ho)break e;case zl:if(r.last){l>>>=c&7,c-=c&7,r.mode=Pl;break}for(;c<3;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}switch(r.last=l&1,l>>>=1,c-=1,l&3){case 0:r.mode=s0;break;case 1:if(ky(r),r.mode=Vo,t===Ho){l>>>=2,c-=2;break e}break;case 2:r.mode=a0;break;case 3:e.msg="invalid block type",r.mode=ie}l>>>=2,c-=2;break;case s0:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",r.mode=ie;break}if(r.length=l&65535,l=0,c=0,r.mode=kl,t===Ho)break e;case kl:r.mode=o0;case o0:if(f=r.length,f){if(f>a&&(f=a),f>d&&(f=d),f===0)break e;i.set(n.subarray(s,s+f),o),a-=f,s+=f,d-=f,o+=f,r.length-=f;break}r.mode=Rt;break;case a0:for(;c<14;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.nlen=(l&31)+257,l>>>=5,c-=5,r.ndist=(l&31)+1,l>>>=5,c-=5,r.ncode=(l&15)+4,l>>>=4,c-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=ie;break}r.have=0,r.mode=l0;case l0:for(;r.have<r.ncode;){for(;c<3;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.lens[F[r.have++]]=l&7,l>>>=3,c-=3}for(;r.have<19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,w={bits:r.lenbits},M=Qi(wy,r.lens,0,19,r.lencode,0,r.work,w),r.lenbits=w.bits,M){e.msg="invalid code lengths set",r.mode=ie;break}r.have=0,r.mode=c0;case c0:for(;r.have<r.nlen+r.ndist;){for(;p=r.lencode[l&(1<<r.lenbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(b<16)l>>>=y,c-=y,r.lens[r.have++]=b;else{if(b===16){for(T=y+2;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(l>>>=y,c-=y,r.have===0){e.msg="invalid bit length repeat",r.mode=ie;break}S=r.lens[r.have-1],f=3+(l&3),l>>>=2,c-=2}else if(b===17){for(T=y+3;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=y,c-=y,S=0,f=3+(l&7),l>>>=3,c-=3}else{for(T=y+7;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=y,c-=y,S=0,f=11+(l&127),l>>>=7,c-=7}if(r.have+f>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=ie;break}for(;f--;)r.lens[r.have++]=S}}if(r.mode===ie)break;if(r.lens[256]===0){e.msg="invalid code -- missing end-of-block",r.mode=ie;break}if(r.lenbits=9,w={bits:r.lenbits},M=Qi(G0,r.lens,0,r.nlen,r.lencode,0,r.work,w),r.lenbits=w.bits,M){e.msg="invalid literal/lengths set",r.mode=ie;break}if(r.distbits=6,r.distcode=r.distdyn,w={bits:r.distbits},M=Qi(W0,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,w),r.distbits=w.bits,M){e.msg="invalid distances set",r.mode=ie;break}if(r.mode=Vo,t===Ho)break e;case Vo:r.mode=Go;case Go:if(a>=6&&d>=258){e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,yy(e,u),o=e.next_out,i=e.output,d=e.avail_out,s=e.next_in,n=e.input,a=e.avail_in,l=r.hold,c=r.bits,r.mode===Rt&&(r.back=-1);break}for(r.back=0;p=r.lencode[l&(1<<r.lenbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(_&&(_&240)===0){for(x=y,v=_,A=b;p=r.lencode[A+((l&(1<<x+v)-1)>>x)],y=p>>>24,_=p>>>16&255,b=p&65535,!(x+y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=x,c-=x,r.back+=x}if(l>>>=y,c-=y,r.back+=y,r.length=b,_===0){r.mode=m0;break}if(_&32){r.back=-1,r.mode=Rt;break}if(_&64){e.msg="invalid literal/length code",r.mode=ie;break}r.extra=_&15,r.mode=d0;case d0:if(r.extra){for(T=r.extra;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.length+=l&(1<<r.extra)-1,l>>>=r.extra,c-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=u0;case u0:for(;p=r.distcode[l&(1<<r.distbits)-1],y=p>>>24,_=p>>>16&255,b=p&65535,!(y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if((_&240)===0){for(x=y,v=_,A=b;p=r.distcode[A+((l&(1<<x+v)-1)>>x)],y=p>>>24,_=p>>>16&255,b=p&65535,!(x+y<=c);){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}l>>>=x,c-=x,r.back+=x}if(l>>>=y,c-=y,r.back+=y,_&64){e.msg="invalid distance code",r.mode=ie;break}r.offset=b,r.extra=_&15,r.mode=f0;case f0:if(r.extra){for(T=r.extra;c<T;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}r.offset+=l&(1<<r.extra)-1,l>>>=r.extra,c-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=ie;break}r.mode=h0;case h0:if(d===0)break e;if(f=u-d,r.offset>f){if(f=r.offset-f,f>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=ie;break}f>r.wnext?(f-=r.wnext,m=r.wsize-f):m=r.wnext-f,f>r.length&&(f=r.length),g=r.window}else g=i,m=o-r.offset,f=r.length;f>d&&(f=d),d-=f,r.length-=f;do i[o++]=g[m++];while(--f);r.length===0&&(r.mode=Go);break;case m0:if(d===0)break e;i[o++]=r.length,d--,r.mode=Go;break;case Pl:if(r.wrap){for(;c<32;){if(a===0)break e;a--,l|=n[s++]<<c,c+=8}if(u-=d,e.total_out+=u,r.total+=u,r.wrap&4&&u&&(e.adler=r.check=r.flags?fe(r.check,i,u,o-u):ns(r.check,i,u,o-u)),u=d,r.wrap&4&&(r.flags?l:y0(l))!==r.check){e.msg="incorrect data check",r.mode=ie;break}l=0,c=0}r.mode=p0;case p0:if(r.wrap&&r.flags){for(;c<32;){if(a===0)break e;a--,l+=n[s++]<<c,c+=8}if(r.wrap&4&&l!==(r.total&4294967295)){e.msg="incorrect length check",r.mode=ie;break}l=0,c=0}r.mode=g0;case g0:M=My;break e;case ie:M=X0;break e;case K0:return $0;case Z0:default:return Qe}return e.next_out=o,e.avail_out=d,e.next_in=s,e.avail_in=a,r.hold=l,r.bits=c,(r.wsize||u!==e.avail_out&&r.mode<ie&&(r.mode<Pl||t!==Zu))&&J0(e,e.output,e.next_out,u-e.avail_out),h-=e.avail_in,u-=e.avail_out,e.total_in+=h,e.total_out+=u,r.total+=u,r.wrap&4&&u&&(e.adler=r.check=r.flags?fe(r.check,i,u,e.next_out-u):ns(r.check,i,u,e.next_out-u)),e.data_type=r.bits+(r.last?64:0)+(r.mode===Rt?128:0)+(r.mode===Vo||r.mode===kl?256:0),(h===0&&u===0||t===Zu)&&M===kr&&(M=Ey),M},Dy=e=>{if(Dr(e))return Qe;let t=e.state;return t.window&&(t.window=null),e.state=null,kr},By=(e,t)=>{if(Dr(e))return Qe;let r=e.state;return(r.wrap&2)===0?Qe:(r.head=t,t.done=!1,kr)},Oy=(e,t)=>{let r=t.length,n,i,s;return Dr(e)||(n=e.state,n.wrap!==0&&n.mode!==Ko)?Qe:n.mode===Ko&&(i=1,i=ns(i,t,r,0),i!==n.check)?X0:(s=J0(e,t,r,r),s?(n.mode=K0,$0):(n.havedict=1,kr))},Ny=q0,Uy=j0,Hy=Y0,Vy=zy,Gy=Q0,Wy=Py,Xy=Dy,$y=By,Ky=Oy,Zy="pako inflate (from Nodeca project)",zt={inflateReset:Ny,inflateReset2:Uy,inflateResetKeep:Hy,inflateInit:Vy,inflateInit2:Gy,inflate:Wy,inflateEnd:Xy,inflateGetHeader:$y,inflateSetDictionary:Ky,inflateInfo:Zy};function Yy(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var qy=Yy,ef=Object.prototype.toString,{Z_NO_FLUSH:jy,Z_FINISH:Qy,Z_OK:os,Z_STREAM_END:Ol,Z_NEED_DICT:Nl,Z_STREAM_ERROR:Jy,Z_DATA_ERROR:b0,Z_MEM_ERROR:ex}=Pr;function ds(e){this.options=Yo.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new H0,this.strm.avail_out=0;let r=zt.inflateInit2(this.strm,t.windowBits);if(r!==os)throw new Error(Fr[r]);if(this.header=new qy,zt.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ss.string2buf(t.dictionary):ef.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=zt.inflateSetDictionary(this.strm,t.dictionary),r!==os)))throw new Error(Fr[r])}ds.prototype.push=function(e,t){let r=this.strm,n=this.options.chunkSize,i=this.options.dictionary,s,o,a;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?Qy:jy,ef.call(e)==="[object ArrayBuffer]"?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;){for(r.avail_out===0&&(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),s=zt.inflate(r,o),s===Nl&&i&&(s=zt.inflateSetDictionary(r,i),s===os?s=zt.inflate(r,o):s===b0&&(s=Nl));r.avail_in>0&&s===Ol&&r.state.wrap>0&&e[r.next_in]!==0;)zt.inflateReset(r),s=zt.inflate(r,o);switch(s){case Jy:case b0:case Nl:case ex:return this.onEnd(s),this.ended=!0,!1}if(a=r.avail_out,r.next_out&&(r.avail_out===0||s===Ol))if(this.options.to==="string"){let d=ss.utf8border(r.output,r.next_out),l=r.next_out-d,c=ss.buf2string(r.output,d);r.next_out=l,r.avail_out=n-l,l&&r.output.set(r.output.subarray(d,d+l),0),this.onData(c)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(!(s===os&&a===0)){if(s===Ol)return s=zt.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(r.avail_in===0)break}}return!0};ds.prototype.onData=function(e){this.chunks.push(e)};ds.prototype.onEnd=function(e){e===os&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Yo.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function tc(e,t){let r=new ds(t);if(r.push(e),r.err)throw r.msg||Fr[r.err];return r.result}function tx(e,t){return t=t||{},t.raw=!0,tc(e,t)}var rx=ds,nx=tc,ix=tx,sx=tc,ox=Pr,ax={Inflate:rx,inflate:nx,inflateRaw:ix,ungzip:sx,constants:ox},{Deflate:lx,deflate:cx,deflateRaw:dx,gzip:ux}=py,{Inflate:fx,inflate:hx,inflateRaw:mx,ungzip:px}=ax,gx=lx,yx=cx,xx=dx,bx=ux,_x=fx,vx=hx,Sx=mx,wx=px,Ax=Pr,rc={Deflate:gx,deflate:yx,deflateRaw:xx,gzip:bx,Inflate:_x,inflate:vx,inflateRaw:Sx,ungzip:wx,constants:Ax};var Rn=2023,nc=1,ic=2,sc=4,oc=8,ac=16,lc=32,cc=64,tf=128,Mx=256,dc=512,uc=1024,fc=2048,jo=4096,hc=8192,Qo=16384,Lx=32768,Jo=65536,mc=1<<17,ea=1<<18,ta=1<<19,pc=1<<20,gc=1<<21,yc=1<<22,Ex=1<<23,xc=1<<24,ra=1<<25,bc=1<<26,_c=1<<27,vc=1<<28,Sc=1<<29,wc=1<<30,Tx=-2147483648,Ac=1,Mc=2,Lc=4;var Ix=1,Cx=2,Rx=128,Br=()=>({number:0,modelindex:0,modelindex2:0,modelindex3:0,modelindex4:0,frame:0,skinnum:0,effects:0,renderfx:0,origin:{x:0,y:0,z:0},old_origin:{x:0,y:0,z:0},angles:{x:0,y:0,z:0},sound:0,event:0,solid:0,bits:0,bitsHigh:0,alpha:0,scale:0,instanceBits:0,loopVolume:0,loopAttenuation:0,owner:0,oldFrame:0}),us=()=>({pm_type:0,origin:{x:0,y:0,z:0},velocity:{x:0,y:0,z:0},pm_time:0,pm_flags:0,gravity:0,delta_angles:{x:0,y:0,z:0},viewoffset:{x:0,y:0,z:0},viewangles:{x:0,y:0,z:0},kick_angles:{x:0,y:0,z:0},gun_index:0,gun_frame:0,gun_offset:{x:0,y:0,z:0},gun_angles:{x:0,y:0,z:0},blend:[0,0,0,0],fov:0,rdflags:0,stats:new Array(32).fill(0),gunskin:0,gunrate:0,damage_blend:[0,0,0,0],team_id:0}),kt=class e{constructor(t,r,n=!1){this.protocolVersion=0;this.isDemo=Ix;this.strictMode=!1;this.errorCount=0;this.stream=t,this.handler=r,this.strictMode=n}setProtocolVersion(t){this.protocolVersion=t}getProtocolVersion(){return this.protocolVersion}getErrorCount(){return this.errorCount}translateCommand(t){if(this.protocolVersion===0){if(t===7)return z.serverdata;if(t===12)return z.serverdata}return this.protocolVersion===Rn?t:this.protocolVersion===34||this.protocolVersion===25?t<=z.frame?t:t===22?z.playerinfo:t===23?z.packetentities:z.bad:(this.protocolVersion===0,t)}parseMessage(){for(;this.stream.hasMore();){let t=-1;try{t=this.stream.readByte()}catch{break}if(t===-1)break;let r=t;t=this.translateCommand(t);try{switch(t){case z.bad:this.strictMode;return;case z.nop:break;case z.disconnect:this.handler&&this.handler.onDisconnect&&this.handler.onDisconnect();break;case z.reconnect:this.handler&&this.handler.onReconnect&&this.handler.onReconnect();break;case z.print:this.parsePrint();break;case z.serverdata:this.parseServerData();break;case z.configstring:this.parseConfigString();break;case z.spawnbaseline:this.parseSpawnBaseline();break;case z.centerprint:this.parseCenterPrint();break;case z.download:this.parseDownload();break;case z.frame:this.parseFrame();break;case z.packetentities:this.parsePacketEntities(!1);break;case z.deltapacketentities:this.parsePacketEntities(!0);break;case z.playerinfo:this.parsePlayerState();break;case z.stufftext:this.parseStuffText();break;case z.layout:this.parseLayout();break;case z.inventory:this.parseInventory();break;case z.sound:this.parseSound();break;case z.muzzleflash:this.parseMuzzleFlash();break;case z.muzzleflash2:this.parseMuzzleFlash2();break;case z.temp_entity:this.parseTempEntity();break;case z.splitclient:this.parseSplitClient();break;case z.configblast:this.parseConfigBlast();break;case z.spawnbaselineblast:this.parseSpawnBaselineBlast();break;case z.level_restart:this.handler&&this.handler.onLevelRestart&&this.handler.onLevelRestart();break;case z.damage:this.parseDamage();break;case z.locprint:this.parseLocPrint();break;case z.fog:this.parseFog();break;case z.waitingforplayers:this.parseWaitingForPlayers();break;case z.bot_chat:this.parseBotChat();break;case z.poi:this.parsePoi();break;case z.help_path:this.parseHelpPath();break;case z.muzzleflash3:this.parseMuzzleFlash3();break;case z.achievement:this.parseAchievement();break;default:let n=`Unknown server command: ${r} (translated: ${t}) at offset ${this.stream.getPosition()-1}`;if(this.strictMode)throw new Error(n);console.warn(n),this.errorCount++;return}}catch(n){let i=`offset ${this.stream.getPosition()}, cmd ${t}, protocol ${this.protocolVersion}`;if(console.warn(`Error parsing command ${t} (${i}): ${n.message}`),this.errorCount++,this.strictMode)throw n;return}}}parsePrint(){let t=this.stream.readByte(),r=this.stream.readString();this.handler&&this.handler.onPrint(t,r)}parseStuffText(){let t=this.stream.readString();this.handler&&this.handler.onStuffText(t)}parseLayout(){let t=this.stream.readString();this.handler&&this.handler.onLayout(t)}parseCenterPrint(){let t=this.stream.readString();this.handler&&this.handler.onCenterPrint(t)}parseServerData(){if(this.protocolVersion=this.stream.readLong(),this.protocolVersion===Rn){let t=this.stream.readLong(),r=this.stream.readByte();this.isDemo=r;let n=this.stream.readByte(),i=this.stream.readString(),s=this.stream.readShort();if(s===-2){let a=this.stream.readShort();for(let d=0;d<a;d++)this.stream.readShort();s=0}else s===-1&&(s=-1);let o=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,0,i,s,o,n,r):console.log(`Server Data (Rerelease): Protocol ${this.protocolVersion}, Level ${o}, Tick ${n}`)}else{let t=this.stream.readLong();this.isDemo=this.stream.readByte();let r=0,n=this.stream.readString(),i=this.stream.readShort(),s=this.stream.readString();this.handler?this.handler.onServerData(this.protocolVersion,t,r,n,i,s):console.log(`Server Data: Protocol ${this.protocolVersion}, Level ${s}, GameDir ${n}`)}}parseConfigString(){let t=this.stream.readShort(),r=this.stream.readString();this.handler&&this.handler.onConfigString(t,r)}parseSplitClient(){let t=this.stream.readByte();this.handler&&this.handler.onSplitClient&&this.handler.onSplitClient(t)}parseConfigBlast(){let t=this.stream.readShort(),r=this.stream.readShort(),n=this.stream.readData(t);try{let i=rc.inflate(n);i.byteLength!==r&&console.warn(`svc_configblast: Decompressed size mismatch. Expected ${r}, got ${i.byteLength}`);let s=new On(i.buffer);for(;s.hasMore();){let o=s.readUShort(),a=s.readString();this.handler&&this.handler.onConfigString(o,a)}}catch(i){console.error("svc_configblast: Failed to decompress data",i)}}parseSpawnBaselineBlast(){let t=this.stream.readShort(),r=this.stream.readShort(),n=this.stream.readData(t);try{let i=rc.inflate(n);i.byteLength!==r&&console.warn(`svc_spawnbaselineblast: Decompressed size mismatch. Expected ${r}, got ${i.byteLength}`);let s=new On(i.buffer),o=new e(s,this.handler);for(;s.hasMore();)o.parseSpawnBaseline()}catch(i){console.error("svc_spawnbaselineblast: Failed to decompress data",i)}}parseLocPrint(){let t=this.stream.readByte(),r=this.stream.readString(),n=this.stream.readByte(),i=[];for(let s=0;s<n;s++)i.push(this.stream.readString());this.handler&&this.handler.onLocPrint&&this.handler.onLocPrint(t,r,i)}parseWaitingForPlayers(){let t=this.stream.readByte();this.handler&&this.handler.onWaitingForPlayers&&this.handler.onWaitingForPlayers(t)}parseBotChat(){let t=this.stream.readString(),r=this.stream.readShort(),n=this.stream.readString();this.handler&&this.handler.onBotChat&&this.handler.onBotChat(n)}parsePoi(){let t=this.stream.readUShort(),r=this.stream.readUShort(),n={x:0,y:0,z:0};this.stream.readPos(n);let i=this.stream.readUShort(),s=this.stream.readByte(),o=this.stream.readByte();this.handler&&this.handler.onPoi&&this.handler.onPoi(o,n)}parseHelpPath(){let t=this.stream.readByte(),r={x:0,y:0,z:0};this.stream.readPos(r);let n={x:0,y:0,z:0};this.stream.readDir(n),this.handler&&this.handler.onHelpPath&&this.handler.onHelpPath(r)}parseAchievement(){let t=this.stream.readString();this.handler&&this.handler.onAchievement&&this.handler.onAchievement(t)}parseDownload(){let t=this.stream.readShort(),r=this.stream.readByte(),n;t>0&&(n=this.stream.readData(t)),this.handler&&this.handler.onDownload(t,r,n)}parseInventory(){let r=new Array(256);for(let n=0;n<256;n++)r[n]=this.stream.readShort();this.handler&&this.handler.onInventory(r)}parseSound(){let t=this.stream.readByte(),r=this.stream.readByte(),n,i,s,o,a;if(t&1&&(n=this.stream.readByte()),t&2&&(i=this.stream.readByte()),t&16&&(s=this.stream.readByte()),t&8&&(o=this.stream.readShort()),t&4){let d={x:0,y:0,z:0};this.stream.readPos(d),a=d}this.handler&&this.handler.onSound(t,r,n,i,s,o,a)}parseMuzzleFlash(){let t=this.stream.readShort(),r=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash(t,r)}parseMuzzleFlash2(){let t=this.stream.readShort(),r=this.stream.readByte();this.handler&&this.handler.onMuzzleFlash2(t,r)}parseMuzzleFlash3(){let t=this.stream.readShort(),r=this.stream.readShort();this.handler&&this.handler.onMuzzleFlash3&&this.handler.onMuzzleFlash3(t,r)}parseFog(){let t=this.stream.readByte();if(t&128){let n=this.stream.readByte();t|=n<<8}let r={};t&1&&(r.density=this.stream.readFloat(),r.skyfactor=this.stream.readByte()),t&2&&(r.red=this.stream.readByte()),t&4&&(r.green=this.stream.readByte()),t&8&&(r.blue=this.stream.readByte()),t&16&&(r.time=this.stream.readShort()),t&32&&(r.hf_falloff=this.stream.readFloat()),t&64&&(r.hf_density=this.stream.readFloat()),t&256&&(r.hf_start_r=this.stream.readByte()),t&512&&(r.hf_start_g=this.stream.readByte()),t&1024&&(r.hf_start_b=this.stream.readByte()),t&2048&&(r.hf_start_dist=this.stream.readLong()),t&4096&&(r.hf_end_r=this.stream.readByte()),t&8192&&(r.hf_end_g=this.stream.readByte()),t&16384&&(r.hf_end_b=this.stream.readByte()),t&32768&&(r.hf_end_dist=this.stream.readLong()),this.handler&&this.handler.onFog&&this.handler.onFog(r)}parseDamage(){let t=this.stream.readByte(),r=[];for(let n=0;n<t;n++){let i=this.stream.readByte(),s={x:0,y:0,z:0};this.stream.readDir(s);let o=i&31,a=(i&32)!==0,d=(i&64)!==0,l=(i&128)!==0;r.push({damage:o,health:a,armor:d,power:l,dir:s})}this.handler&&this.handler.onDamage&&this.handler.onDamage(r)}parseTempEntity(){let t=this.stream.readByte(),r={x:0,y:0,z:0},n={x:0,y:0,z:0},i={x:0,y:0,z:0},s,o,a,d,l;switch(t){case I.EXPLOSION1:case I.EXPLOSION2:case I.ROCKET_EXPLOSION:case I.GRENADE_EXPLOSION:case I.ROCKET_EXPLOSION_WATER:case I.GRENADE_EXPLOSION_WATER:case I.BFG_EXPLOSION:case I.BFG_BIGEXPLOSION:case I.BOSSTPORT:case I.PLASMA_EXPLOSION:case I.PLAIN_EXPLOSION:case I.CHAINFIST_SMOKE:case I.TRACKER_EXPLOSION:case I.TELEPORT_EFFECT:case I.DBALL_GOAL:case I.NUKEBLAST:case I.WIDOWSPLASH:case I.EXPLOSION1_BIG:case I.EXPLOSION1_NP:this.stream.readPos(r);break;case I.GUNSHOT:case I.BLOOD:case I.BLASTER:case I.SHOTGUN:case I.SPARKS:case I.BULLET_SPARKS:case I.SCREEN_SPARKS:case I.SHIELD_SPARKS:case I.BLASTER2:case I.FLECHETTE:case I.MOREBLOOD:case I.ELECTRIC_SPARKS:case I.HEATBEAM_SPARKS:case I.HEATBEAM_STEAM:this.stream.readPos(r),this.stream.readDir(i);break;case I.SPLASH:case I.LASER_SPARKS:case I.WELDING_SPARKS:case I.TUNNEL_SPARKS:s=this.stream.readByte(),this.stream.readPos(r),this.stream.readDir(i),o=this.stream.readByte();break;case I.BLUEHYPERBLASTER:this.protocolVersion>=32?(this.stream.readPos(r),this.stream.readPos(n)):(this.stream.readPos(r),this.stream.readDir(i));break;case I.GREENBLOOD:this.protocolVersion>=32?(this.stream.readPos(r),this.stream.readDir(i)):(this.stream.readPos(r),this.stream.readPos(n));break;case I.RAILTRAIL:case I.BUBBLETRAIL:case I.BFG_LASER:case I.DEBUGTRAIL:case I.BUBBLETRAIL2:this.stream.readPos(r),this.stream.readPos(n);break;case I.PARASITE_ATTACK:case I.MEDIC_CABLE_ATTACK:this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n);break;case I.GRAPPLE_CABLE:a=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n),this.stream.readPos(i);break;case I.LIGHTNING:d=this.stream.readShort(),l=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n);break;case I.FLASHLIGHT:this.stream.readPos(r),a=this.stream.readShort();break;case I.FORCEWALL:this.stream.readPos(r),this.stream.readPos(n),o=this.stream.readByte();break;case I.STEAM:let c=this.stream.readShort();s=this.stream.readByte(),this.stream.readPos(r),this.stream.readDir(i),o=this.stream.readByte(),this.stream.readShort(),c!==-1&&this.stream.readLong();break;case I.WIDOWBEAMOUT:this.stream.readShort();case I.HEATBEAM:case I.MONSTER_HEATBEAM:a=this.stream.readShort(),this.stream.readPos(r),this.stream.readPos(n),this.stream.readPos(i);break;default:break}this.handler&&this.handler.onTempEntity(t,r,n,i,s,o,a,d,l)}parseSpawnBaseline(){let t=this.parseEntityBits(),r=Br();this.parseDelta(Br(),r,t.number,t.bits,t.bitsHigh),this.handler&&this.handler.onSpawnBaseline(r)}parseFrame(){let t=this.stream.readLong(),r=this.stream.readLong(),n=0;this.protocolVersion!==26&&(n=this.stream.readByte());let i=this.stream.readByte(),s=this.stream.readData(i),o=this.stream.readByte();if(o=this.translateCommand(o),o!==z.playerinfo)throw new Error(`Expected svc_playerinfo after svc_frame, got ${o} (translated)`);let a=this.parsePlayerState(),d=this.stream.readByte();if(d=this.translateCommand(d),d!==z.packetentities)throw new Error(`Expected svc_packetentities after svc_playerinfo, got ${d} (translated)`);let l=this.collectPacketEntities();if(this.isDemo===Rx){let c=this.stream.readByte();for(let h=0;h<c;h++)this.stream.readByte()}this.isDemo===Cx&&this.stream.readLong(),this.handler&&this.handler.onFrame({serverFrame:t,deltaFrame:r,surpressCount:n,areaBytes:i,areaBits:s,playerState:a,packetEntities:{delta:!0,entities:l}})}parsePlayerState(){let t=us(),r=this.stream.readShort();r&1&&(t.pm_type=this.stream.readByte()),r&2&&(t.origin.x=this.stream.readShort()*.125,t.origin.y=this.stream.readShort()*.125,t.origin.z=this.stream.readShort()*.125),r&4&&(t.velocity.x=this.stream.readShort()*.125,t.velocity.y=this.stream.readShort()*.125,t.velocity.z=this.stream.readShort()*.125),r&8&&(t.pm_time=this.stream.readByte()),r&16&&(t.pm_flags=this.stream.readByte()),r&32&&(t.gravity=this.stream.readShort()),r&64&&(t.delta_angles.x=this.stream.readShort()*(180/32768),t.delta_angles.y=this.stream.readShort()*(180/32768),t.delta_angles.z=this.stream.readShort()*(180/32768)),r&128&&(t.viewoffset.x=this.stream.readChar()*.25,t.viewoffset.y=this.stream.readChar()*.25,t.viewoffset.z=this.stream.readChar()*.25),r&256&&(t.viewangles.x=this.stream.readAngle16(),t.viewangles.y=this.stream.readAngle16(),t.viewangles.z=this.stream.readAngle16()),r&512&&(t.kick_angles.x=this.stream.readChar()*.25,t.kick_angles.y=this.stream.readChar()*.25,t.kick_angles.z=this.stream.readChar()*.25),r&4096&&(t.gun_index=this.stream.readByte()),r&8192&&(t.gun_frame=this.stream.readByte(),t.gun_offset.x=this.stream.readChar()*.25,t.gun_offset.y=this.stream.readChar()*.25,t.gun_offset.z=this.stream.readChar()*.25,t.gun_angles.x=this.stream.readChar()*.25,t.gun_angles.y=this.stream.readChar()*.25,t.gun_angles.z=this.stream.readChar()*.25),r&1024&&(t.blend[0]=this.stream.readByte(),t.blend[1]=this.stream.readByte(),t.blend[2]=this.stream.readByte(),t.blend[3]=this.stream.readByte()),r&2048&&(t.fov=this.stream.readByte()),r&16384&&(t.rdflags=this.stream.readByte());let n=this.stream.readLong();for(let i=0;i<32;i++)n&1<<i&&(t.stats[i]=this.stream.readShort());return t}parsePacketEntities(t){let r=this.collectPacketEntities();this.handler&&this.handler.onFrame({serverFrame:0,deltaFrame:0,surpressCount:0,areaBytes:0,areaBits:new Uint8Array,playerState:us(),packetEntities:{delta:t,entities:r}})}collectPacketEntities(){let t=[];for(;;){let r=this.parseEntityBits();if(r.bits&cc){if(r.number===0)break;continue}let n=Br(),i=r.number===0&&!(r.bits&tf);if((r.number!==0||i)&&this.parseDelta(Br(),n,r.number,r.bits,r.bitsHigh),r.number===0)break;t.push(n)}return t}parseEntityBits(){let t=this.stream.readByte();t&tf&&(t|=this.stream.readByte()<<8),t&Lx&&(t|=this.stream.readByte()<<16),t&Ex&&(t|=this.stream.readByte()<<24);let r=0;this.protocolVersion===Rn&&t&Tx&&(r=this.stream.readByte());let n;return t&Mx?n=this.stream.readShort():n=this.stream.readByte(),{number:n,bits:t,bitsHigh:r}}parseDelta(t,r,n,i,s=0){r.number=t.number,r.modelindex=t.modelindex,r.modelindex2=t.modelindex2,r.modelindex3=t.modelindex3,r.modelindex4=t.modelindex4,r.frame=t.frame,r.skinnum=t.skinnum,r.effects=t.effects,r.renderfx=t.renderfx,r.origin.x=t.origin.x,r.origin.y=t.origin.y,r.origin.z=t.origin.z,r.old_origin.x=t.origin.x,r.old_origin.y=t.origin.y,r.old_origin.z=t.origin.z,r.angles.x=t.angles.x,r.angles.y=t.angles.y,r.angles.z=t.angles.z,r.sound=t.sound,r.event=t.event,r.solid=t.solid,r.alpha=t.alpha,r.scale=t.scale,r.instanceBits=t.instanceBits,r.loopVolume=t.loopVolume,r.loopAttenuation=t.loopAttenuation,r.owner=t.owner,r.oldFrame=t.oldFrame,r.number=n,r.bits=i,r.bitsHigh=s,i&fc&&(r.modelindex=this.stream.readByte()),i&pc&&(r.modelindex2=this.stream.readByte()),i&gc&&(r.modelindex3=this.stream.readByte()),i&yc&&(r.modelindex4=this.stream.readByte()),i&ac&&(r.frame=this.stream.readByte()),i&mc&&(r.frame=this.stream.readShort()),i&Jo&&i&ra?r.skinnum=this.stream.readLong():i&Jo?r.skinnum=this.stream.readByte():i&ra&&(r.skinnum=this.stream.readShort()),i&Qo&&i&ta?r.effects=this.stream.readLong():i&Qo?r.effects=this.stream.readByte():i&ta&&(r.effects=this.stream.readShort()),i&jo&&i&ea?r.renderfx=this.stream.readLong():i&jo?r.renderfx=this.stream.readByte():i&ea&&(r.renderfx=this.stream.readShort()),i&nc&&(r.origin.x=this.stream.readCoord()),i&ic&&(r.origin.y=this.stream.readCoord()),i&dc&&(r.origin.z=this.stream.readCoord()),i&uc&&(r.angles.x=this.stream.readAngle()),i&sc&&(r.angles.y=this.stream.readAngle()),i&oc&&(r.angles.z=this.stream.readAngle()),i&xc&&this.stream.readPos(r.old_origin),i&bc&&(r.sound=this.stream.readByte()),i&lc?r.event=this.stream.readByte():r.event=0,i&_c&&(r.solid=this.stream.readShort()),this.protocolVersion===Rn&&(i&hc&&(r.alpha=this.stream.readByte()/255),i&vc&&(r.scale=this.stream.readFloat()),i&Sc&&(r.instanceBits=this.stream.readLong()),i&wc&&(r.loopVolume=this.stream.readByte()/255),s&Ac&&(r.loopAttenuation=this.stream.readByte()/255),s&Mc&&(r.owner=this.stream.readShort()),s&Lc&&(r.oldFrame=this.stream.readShort()))}};var Ec=(a=>(a[a.WeaponFire=0]="WeaponFire",a[a.DamageDealt=1]="DamageDealt",a[a.DamageReceived=2]="DamageReceived",a[a.Pickup=3]="Pickup",a[a.Death=4]="Death",a[a.Spawn=5]="Spawn",a[a.PlayerInfo=6]="PlayerInfo",a))(Ec||{});var Fn=class{constructor(t){this.events=[];this.summary={totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map};this.header=null;this.configStrings=new Map;this.serverInfo={};this.statistics=null;this.playerStats=new Map;this.weaponStats=new Map;this.activeEntities=new Set;this.buffer=t}analyze(){let t=new Ct(this.buffer),r=-1,n=0,i=.1,s=0,o={onServerData:(a,d,l,c,h,u,f,m)=>{s=a,this.header={protocolVersion:a,gameDir:c,levelName:u,playerNum:h,serverCount:d,spawnCount:d,tickRate:f,demoType:m},f&&f>0&&(i=1/f)},onConfigString:(a,d)=>{this.configStrings.set(a,d),a===0&&this.parseServerInfo(d)},onSpawnBaseline:a=>{},onFrame:a=>{let d=new Set;if(a.packetEntities&&a.packetEntities.entities)for(let l of a.packetEntities.entities)d.add(l.number),this.activeEntities.has(l.number)||this.recordEvent({type:5,frame:r,time:n,entityId:l.number,position:{x:l.origin.x,y:l.origin.y,z:l.origin.z},description:`Entity ${l.number} spawned`});this.activeEntities=d,a.playerState&&this.header},onPrint:(a,d)=>{(d.includes("died")||d.includes("killed")||d.includes("suicide"))&&(this.summary.totalDeaths++,this.recordEvent({type:4,frame:r,time:n,description:d.trim()})),d.startsWith("You got the ")&&this.recordEvent({type:3,frame:r,time:n,description:d.trim()})},onCenterPrint:()=>{},onStuffText:()=>{},onSound:()=>{},onTempEntity:()=>{},onLayout:()=>{},onInventory:()=>{},onMuzzleFlash:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onMuzzleFlash2:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onMuzzleFlash3:(a,d)=>{this.handleWeaponFire(a,d,r,n)},onDisconnect:()=>{},onReconnect:()=>{},onDownload:()=>{},onDamage:a=>{for(let d of a)if(this.recordEvent({type:2,frame:r,time:n,value:d.damage,position:d.dir,description:`Took ${d.damage} damage`}),this.summary.damageReceived+=d.damage,this.header){let l=this.getOrCreatePlayerStats(this.header.playerNum);l.damageReceived+=d.damage}}};for(;t.hasMore();){let a=t.readNextBlock();if(!a)break;r++,n=r*i;let d=new kt(a.data,o);d.setProtocolVersion(s),d.parseMessage(),s=d.getProtocolVersion()}return this.statistics={duration:n,frameCount:r+1,averageFps:(r+1)/(n||1),mapName:this.header?.levelName||"unknown",playerCount:1},{events:this.events,summary:this.summary,header:this.header,configStrings:this.configStrings,serverInfo:this.serverInfo,statistics:this.statistics,playerStats:this.playerStats,weaponStats:this.weaponStats}}handleWeaponFire(t,r,n,i){this.recordEvent({type:0,frame:n,time:i,entityId:t,value:r,description:`Weapon ${r} fired by ${t}`});let s=this.summary.weaponUsage.get(r)||0;this.summary.weaponUsage.set(r,s+1);let o=this.getOrCreateWeaponStat(t,r);o.shotsFired++}recordEvent(t){this.events.push(t)}parseServerInfo(t){let r=t.split("\\");for(let n=1;n<r.length;n+=2)n+1<r.length&&(this.serverInfo[r[n]]=r[n+1])}getOrCreatePlayerStats(t){let r=this.playerStats.get(t);return r||(r={kills:0,deaths:0,damageDealt:0,damageReceived:0,suicides:0},this.playerStats.set(t,r)),r}getOrCreateWeaponStat(t,r){let n=this.weaponStats.get(t);n||(n=[],this.weaponStats.set(t,n));let i=n.find(s=>s.weaponId===r);return i||(i={weaponId:r,shotsFired:0,hits:0,kills:0},n.push(i)),i}};var Tc=(i=>(i[i.FirstPerson=0]="FirstPerson",i[i.ThirdPerson=1]="ThirdPerson",i[i.Free=2]="Free",i[i.Follow=3]="Follow",i))(Tc||{});var na=(i=>(i[i.Stopped=0]="Stopped",i[i.Playing=1]="Playing",i[i.Paused=2]="Paused",i[i.Finished=3]="Finished",i))(na||{}),fs=class{constructor(){this.reader=null;this.buffer=null;this.state=0;this.playbackSpeed=1;this.currentProtocolVersion=0;this.currentFrameIndex=-1;this.lastFrameData=null;this.accumulatedTime=0;this.frameDuration=100;this.snapshotInterval=100;this.snapshots=new Map;this.cachedEvents=null;this.cachedSummary=null;this.cachedHeader=null;this.cachedConfigStrings=null;this.cachedServerInfo=null;this.cachedStatistics=null;this.cachedPlayerStats=null;this.cachedWeaponStats=null;this.cameraMode=0;this.thirdPersonDistance=80;this.thirdPersonOffset={x:0,y:0,z:0}}setHandler(t){this.handler=t}setCallbacks(t){this.callbacks=t}loadDemo(t){this.buffer=t,this.reader=new Ct(t),this.transitionState(0),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.snapshots.clear(),this.lastFrameData=null,this.cachedEvents=null,this.cachedSummary=null,this.cachedHeader=null,this.cachedConfigStrings=null,this.cachedServerInfo=null,this.cachedStatistics=null,this.cachedPlayerStats=null,this.cachedWeaponStats=null}play(){this.reader&&this.state!==1&&this.transitionState(1)}pause(){this.state===1&&this.transitionState(2)}stop(){this.transitionState(0),this.reader&&this.reader.reset(),this.accumulatedTime=0,this.currentProtocolVersion=0,this.currentFrameIndex=-1,this.lastFrameData=null}transitionState(t){this.state!==t&&(this.state=t,this.callbacks?.onPlaybackStateChange&&this.callbacks.onPlaybackStateChange(t))}setFrameDuration(t){this.frameDuration=t}setSpeed(t){this.playbackSpeed=Math.max(.1,Math.min(t,16))}getSpeed(){return this.playbackSpeed}getPlaybackSpeed(){return this.playbackSpeed}getInterpolationFactor(){return this.frameDuration<=0?0:Math.max(0,Math.min(1,this.accumulatedTime/this.frameDuration))}update(t){if(!(this.state!==1||!this.reader))for(this.accumulatedTime+=t*1e3*this.playbackSpeed;this.accumulatedTime>=this.frameDuration;){if(!this.processNextFrame())return;this.accumulatedTime-=this.frameDuration,this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}}stepForward(){this.reader&&(this.processNextFrame(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime()))}stepBackward(){this.reader&&this.currentFrameIndex>0&&this.seek(this.currentFrameIndex-1)}seekToTime(t){let r=Math.floor(t*1e3/this.frameDuration);this.seek(r)}seekToFrame(t){this.seek(t)}seek(t){if(!this.reader)return;let r=this.getTotalFrames();if(t<0&&(t=0),t>=r&&(t=r-1),t===this.currentFrameIndex+1){this.processNextFrame(),this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete();return}let n=-1,i=null;if(t>this.currentFrameIndex&&this.currentFrameIndex!==-1&&(n=this.currentFrameIndex),this.callbacks?.onRestoreSnapshot)for(let[s,o]of this.snapshots)s<=t&&s>n&&(n=s,i=o);for(n===-1&&this.currentFrameIndex>t?(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0):n===-1&&(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0),i&&this.callbacks?.onRestoreSnapshot&&(this.callbacks.onRestoreSnapshot(i),this.reader.seekToMessage(n+1)?this.currentFrameIndex=n:(this.reader.reset(),this.currentFrameIndex=-1,this.currentProtocolVersion=0));this.currentFrameIndex<t&&(this.callbacks?.onCaptureSnapshot&&(this.currentFrameIndex+1)%this.snapshotInterval,!!this.processNextFrame()););this.accumulatedTime=0,this.callbacks?.onSeekComplete&&this.callbacks.onSeekComplete(),this.callbacks?.onTimeUpdate&&this.callbacks.onTimeUpdate(this.getCurrentTime())}processNextFrame(){if(!this.reader||!this.reader.hasMore())return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;let t=this.reader.readNextBlock();if(!t)return this.transitionState(3),this.callbacks?.onPlaybackComplete&&this.callbacks.onPlaybackComplete(),!1;this.currentFrameIndex++;try{let r={...this.handler,onFrame:i=>{this.lastFrameData=i,this.handler?.onFrame&&this.handler.onFrame(i),this.callbacks?.onFrameUpdate&&this.callbacks.onFrameUpdate(i)}},n=new kt(t.data,this.handler?r:void 0);if(n.setProtocolVersion(this.currentProtocolVersion),n.parseMessage(),this.currentProtocolVersion=n.getProtocolVersion(),this.callbacks?.onCaptureSnapshot&&this.currentFrameIndex%this.snapshotInterval===0&&this.currentFrameIndex>0){let i=this.callbacks.onCaptureSnapshot(this.currentFrameIndex);i&&this.snapshots.set(this.currentFrameIndex,i)}}catch(r){return console.error("Error processing demo frame",r),this.callbacks?.onPlaybackError&&this.callbacks.onPlaybackError(r instanceof Error?r:new Error(String(r))),!1}return!0}getState(){return this.state}getCurrentTime(){return this.currentFrameIndex<0?this.accumulatedTime:this.currentFrameIndex*this.frameDuration+this.accumulatedTime}getFrameCount(){return this.reader?this.reader.getMessageCount():0}getTotalFrames(){return this.getFrameCount()}getCurrentFrame(){return this.currentFrameIndex<0?0:this.currentFrameIndex}getDuration(){return this.getFrameCount()*this.frameDuration/1e3}getTotalBytes(){return this.reader?this.reader.getProgress().total:0}getProcessedBytes(){return this.reader?this.reader.getOffset():0}getFrameData(t){if(t===this.currentFrameIndex&&this.lastFrameData)return this.lastFrameData;let r=this.state;return this.pause(),this.seek(t),r===1&&this.play(),this.lastFrameData}getFramePlayerState(t){if(t===this.currentFrameIndex&&this.handler?.getPlayerState){let n=this.handler.getPlayerState();if(n)return n}let r=this.getFrameData(t);return r?r.playerState:null}getFrameEntities(t){if(t===this.currentFrameIndex&&this.handler?.getEntities){let r=this.handler.getEntities();if(r)return Array.from(r.values())}if(this.seek(t),this.handler?.getEntities){let r=this.handler.getEntities();return r?Array.from(r.values()):[]}return[]}compareFrames(t,r){let n=this.getFramePlayerState(t),i=this.getFrameEntities(t),s=new Map;i.forEach(c=>s.set(c.number,c));let o=this.getFramePlayerState(r),a=this.getFrameEntities(r),d=new Map;a.forEach(c=>d.set(c.number,c));let l={frameA:t,frameB:r,playerStateDiff:{origin:null,viewangles:null,health:null,ammo:null},entityDiffs:{added:[],removed:[],moved:[]}};n&&o&&((n.origin.x!==o.origin.x||n.origin.y!==o.origin.y||n.origin.z!==o.origin.z)&&(l.playerStateDiff.origin={x:o.origin.x-n.origin.x,y:o.origin.y-n.origin.y,z:o.origin.z-n.origin.z}),n.stats[1]!==o.stats[1]&&(l.playerStateDiff.health=o.stats[1]-n.stats[1]),n.stats[2]!==o.stats[2]&&(l.playerStateDiff.ammo=o.stats[2]-n.stats[2]));for(let[c,h]of d){let u=s.get(c);u?(u.origin.x!==h.origin.x||u.origin.y!==h.origin.y||u.origin.z!==h.origin.z)&&l.entityDiffs.moved.push({id:c,delta:{x:h.origin.x-u.origin.x,y:h.origin.y-u.origin.y,z:h.origin.z-u.origin.z}}):l.entityDiffs.added.push(c)}for(let[c,h]of s)d.has(c)||l.entityDiffs.removed.push(c);return l}getEntityTrajectory(t,r,n){let i=[],s=this.getCurrentFrame();for(this.seek(r);this.getCurrentFrame()<=n&&this.state!==3;){let o=null;if(t===-1){let a=this.getFramePlayerState(this.getCurrentFrame());a&&(o={...a.origin})}else if(this.handler?.getEntities){let a=this.handler.getEntities().get(t);a&&(o={...a.origin})}if(o&&i.push(o),this.getCurrentFrame()===n)break;this.stepForward()}return this.seek(s),i}getDemoEvents(){return this.ensureAnalysis(),this.cachedEvents||[]}filterEvents(t,r){return this.getDemoEvents().filter(i=>!(i.type!==t||r!==void 0&&i.entityId!==r))}getEventSummary(){return this.ensureAnalysis(),this.cachedSummary||{totalKills:0,totalDeaths:0,damageDealt:0,damageReceived:0,weaponUsage:new Map}}getDemoHeader(){return this.ensureAnalysis(),this.cachedHeader}getDemoConfigStrings(){return this.ensureAnalysis(),this.cachedConfigStrings||new Map}getDemoServerInfo(){return this.ensureAnalysis(),this.cachedServerInfo||{}}getDemoStatistics(){return this.ensureAnalysis(),this.cachedStatistics}getPlayerStatistics(t){return this.ensureAnalysis(),this.cachedPlayerStats?.get(t)||null}getWeaponStatistics(t){return this.ensureAnalysis(),this.cachedWeaponStats?.get(t)||null}ensureAnalysis(){if(!this.cachedEvents&&this.buffer){let r=new Fn(this.buffer).analyze();this.cachedEvents=r.events,this.cachedSummary=r.summary,this.cachedHeader=r.header,this.cachedConfigStrings=r.configStrings,this.cachedServerInfo=r.serverInfo,this.cachedStatistics=r.statistics,this.cachedPlayerStats=r.playerStats,this.cachedWeaponStats=r.weaponStats}}setCameraMode(t){this.cameraMode=t}getCameraMode(){return this.cameraMode}setThirdPersonDistance(t){this.thirdPersonDistance=t}setThirdPersonOffset(t){this.thirdPersonOffset=t}};var hs=class{constructor(){this.isRecording=!1;this.startTime=0;this.frameCount=0;this.filename=null;this.lastMessageSize=-1;this.messageBuffer=new va(1024*1024)}startRecording(t,r=0){this.isRecording||(this.isRecording=!0,this.filename=t,this.startTime=r,this.frameCount=0,this.messageBuffer.reset(),console.log(`DemoRecorder: Started recording to ${t}`))}recordMessage(t){if(this.isRecording){this.messageBuffer.writeLong(t.byteLength);for(let r=0;r<t.length;r++)this.messageBuffer.writeByte(t[r]);this.frameCount++}}stopRecording(){return this.isRecording?(this.isRecording=!1,this.messageBuffer.writeLong(-1),console.log(`DemoRecorder: Stopped recording. Frames: ${this.frameCount}, Size: ${this.messageBuffer.getOffset()} bytes`),this.messageBuffer.getData()):null}getIsRecording(){return this.isRecording}};var ia=class{static validate(t,r){if(r&&!r.toLowerCase().endsWith(".dm2"))return{valid:!1,error:"Invalid file extension (expected .dm2)"};if(t.byteLength<5)return{valid:!1,error:"File too small to be a valid demo"};let n=new DataView(t),i=n.getInt32(0,!0);if(i<=0||i>t.byteLength-4)return{valid:!1,error:`Invalid first block length: ${i}`};let s=n.getUint8(4);if(s!==z.serverdata)return{valid:!1,error:`First command is not svc_serverdata (expected ${z.serverdata}, got ${s})`};let o=-1;return i>=5&&(o=n.getInt32(5,!0)),{valid:!0,version:o}}};var Ic=(u=>(u.Unknown="unknown",u.BSP="bsp",u.MD2="md2",u.MD3="md3",u.WAL="wal",u.PCX="pcx",u.TGA="tga",u.WAV="wav",u.OGG="ogg",u.TXT="txt",u.CFG="cfg",u.DEM="dem",u))(Ic||{}),rf={".bsp":"bsp",".md2":"md2",".md3":"md3",".wal":"wal",".pcx":"pcx",".tga":"tga",".wav":"wav",".ogg":"ogg",".txt":"txt",".cfg":"cfg",".dm2":"dem"};function ms(e,t){if(e.length<t.length)return!1;for(let r=0;r<t.length;r++)if(e[r]!==t[r])return!1;return!0}var Fx=[73,66,83,80],zx=[73,68,80,50],kx=[73,68,80,51];var Px=[82,73,70,70];var Dx=[79,103,103,83];function Cc(e,t){let r=e.slice(e.lastIndexOf(".")).toLowerCase();if(t){if(ms(t,Fx))return"bsp";if(ms(t,zx))return"md2";if(ms(t,kx))return"md3";if(ms(t,Dx))return"ogg";if(t.length>128&&t[0]===10&&t[1]<6)return"pcx";if(ms(t,Px)&&t.length>=12&&t[8]===87&&t[9]===65&&t[10]===86&&t[11]===69)return"wav"}return rf[r]?rf[r]:"unknown"}function Rc(e){let t=Cc(e);return t==="txt"||t==="cfg"}function nf(e){return!Rc(e)}function Bx(e,t,r,n,i){let s=new Uint8ClampedArray(n*i*4),o=t/n,a=r/i;for(let d=0;d<i;d++)for(let l=0;l<n;l++){let c=l*o,h=d*a,u=Math.floor(c),f=Math.floor(h),m=c-u,g=h-f,p=Math.min(u+1,t-1),y=Math.min(f+1,r-1),_=(f*t+u)*4,b=(f*t+p)*4,x=(y*t+u)*4,v=(y*t+p)*4,A=(d*n+l)*4;for(let S=0;S<4;S++){let M=e[_+S],E=e[b+S],w=e[x+S],T=e[v+S],F=M*(1-m)+E*m,U=w*(1-m)+T*m,C=F*(1-g)+U*g;s[A+S]=C}}return s}function Ox(e,t,r,n,i,s,o,a,d,l,c){n=Math.floor(n),i=Math.floor(i),s=Math.floor(s),o=Math.floor(o);let h=Math.abs(s-n),u=Math.abs(o-i),f=n<s?1:-1,m=i<o?1:-1,g=h-u;for(;;){if(n>=0&&n<t&&i>=0&&i<r){let y=(i*t+n)*4,_=1-c/255;e[y]=a*(c/255)+e[y]*_,e[y+1]=d*(c/255)+e[y+1]*_,e[y+2]=l*(c/255)+e[y+2]*_,e[y+3]=255}if(n===s&&i===o)break;let p=2*g;p>-u&&(g-=u,n+=f),p<h&&(g+=h,i+=m)}}function sf(e,t,r,n,i){let a=(e.x-n.x)*.707-(e.y-n.y)*.707,d=(e.x-n.x)*.707+(e.y-n.y)*.707,l=e.z-n.z,c=.866,h=.5,u=d*c-l*h,f=d*h+l*c,m=t/2+a*i,g=r/2-f*i;return{x:m,y:g}}var sa=class{constructor(t){this.assetManager=t}async generateTextureThumbnail(t,r){try{let n=await this.assetManager.loadTexture(t);if(!n||n.levels.length===0)return null;let i=n.levels[0],s=i.width/i.height,o=r,a=r;s>1?a=Math.floor(r/s):o=Math.floor(r*s),o=Math.max(1,o),a=Math.max(1,a);let d=Bx(i.rgba,i.width,i.height,o,a);return new ImageData(d,o,a)}catch(n){return console.error(`Failed to generate thumbnail for ${t}`,n),null}}async generateModelThumbnail(t,r){try{let n=[],i=[],s=t.split(".").pop()?.toLowerCase();if(s==="md2"){let p=await this.assetManager.loadMd2Model(t);if(!p||p.frames.length===0)return null;n=p.frames[0].vertices.map(_=>_.position);for(let _ of p.triangles)i.push(_.vertexIndices[0],_.vertexIndices[1]),i.push(_.vertexIndices[1],_.vertexIndices[2]),i.push(_.vertexIndices[2],_.vertexIndices[0])}else if(s==="md3"){let p=await this.assetManager.loadMd3Model(t);if(!p||p.surfaces.length===0)return null;let y=0;for(let _ of p.surfaces){if(_.vertices.length===0)continue;let b=_.vertices[0];n.push(...b.map(x=>({x:x.position.x,y:x.position.y,z:x.position.z})));for(let x of _.triangles)i.push(y+x.indices[0],y+x.indices[1]),i.push(y+x.indices[1],y+x.indices[2]),i.push(y+x.indices[2],y+x.indices[0]);y+=b.length}}else return null;if(n.length===0)return null;let o={x:1/0,y:1/0,z:1/0},a={x:-1/0,y:-1/0,z:-1/0};for(let p of n)o.x=Math.min(o.x,p.x),o.y=Math.min(o.y,p.y),o.z=Math.min(o.z,p.z),a.x=Math.max(a.x,p.x),a.y=Math.max(a.y,p.y),a.z=Math.max(a.z,p.z);let d={x:(o.x+a.x)/2,y:(o.y+a.y)/2,z:(o.z+a.z)/2},l=a.x-o.x,c=a.y-o.y,h=a.z-o.z,u=Math.max(l,c,h),f=Math.max(u,.001),m=r*.8/f,g=new Uint8ClampedArray(r*r*4);for(let p=0;p<i.length;p+=2){let y=i[p],_=i[p+1],b=n[y],x=n[_],v=sf(b,r,r,d,m),A=sf(x,r,r,d,m);Ox(g,r,r,v.x,v.y,A.x,A.y,0,255,0,255)}return new ImageData(g,r,r)}catch(n){return console.error(`Failed to generate model thumbnail for ${t}`,n),null}}async getMapBounds(t,r){try{let n=Wn(r);if(n.models.length>0){let i=n.models[0];return{mins:{x:i.mins[0],y:i.mins[1],z:i.mins[2]},maxs:{x:i.maxs[0],y:i.maxs[1],z:i.maxs[2]}}}return null}catch(n){return console.error("Failed to get map bounds",n),null}}async extractMapScreenshot(t){return null}};var oa=class{constructor(t){this.loader=t}async getMapStatistics(t){let r=await this.loader.load(t),n=r.faces.filter(o=>o.lightOffset!==-1).length,i=r.models[0],s=i?{mins:i.mins,maxs:i.maxs}:{mins:[0,0,0],maxs:[0,0,0]};return{entityCount:r.entities.entities.length,surfaceCount:r.faces.length,lightmapCount:n,vertexCount:r.vertices.length,bounds:s}}async getUsedTextures(t){let r=await this.loader.load(t),n=new Set;for(let i of r.texInfo)i.texture&&n.add(i.texture);return Array.from(n).sort()}async getUsedModels(t){let r=await this.loader.load(t),n=new Set;for(let i of r.entities.entities)i.properties.model&&!i.properties.model.startsWith("*")&&n.add(i.properties.model);return Array.from(n).sort()}async getUsedSounds(t){let r=await this.loader.load(t),n=new Set;for(let i of r.entities.entities){i.properties.noise&&n.add(i.properties.noise);for(let[s,o]of Object.entries(i.properties))(s==="noise"||s.endsWith("_sound")||s==="sound")&&typeof o=="string"&&n.add(o)}return Array.from(n).sort()}};function Nx(e){return{init(){e.trace({x:0,y:0,z:0},{x:0,y:0,z:0})},shutdown(){},createMainLoop(t,r){return new ur(t,r)}}}return pf(Ux);})();
|
|
482
482
|
/*! Bundled license information:
|
|
483
483
|
|
|
484
484
|
pako/dist/pako.esm.mjs:
|