quake2ts 0.0.577 → 0.0.579
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 +3 -3
- 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 +0 -1
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +0 -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 +11 -11
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +4 -167
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +4 -167
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/assets/md2.d.ts +5 -1
- package/packages/engine/dist/types/assets/md2.d.ts.map +1 -1
- package/packages/engine/dist/types/render/renderer.d.ts +1 -0
- package/packages/engine/dist/types/render/renderer.d.ts.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/tools/dist/browser/index.global.js +212 -2
- package/packages/tools/dist/browser/index.global.js.map +1 -1
- package/packages/tools/dist/cjs/index.cjs +971 -2
- package/packages/tools/dist/cjs/index.cjs.map +1 -1
- package/packages/tools/dist/esm/index.js +969 -1
- package/packages/tools/dist/esm/index.js.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/tools/dist/types/bspTools.d.ts +9 -0
- package/packages/tools/dist/types/bspTools.d.ts.map +1 -0
- package/packages/tools/dist/types/index.d.ts +1 -0
- package/packages/tools/dist/types/index.d.ts.map +1 -1
|
@@ -1,3 +1,213 @@
|
|
|
1
|
-
"use strict";var Quake2Tools=(()=>{var
|
|
2
|
-
`)}function $(n){let e={asset:{version:"2.0",generator:"quake2ts-tools"},scenes:[{nodes:[0]}],nodes:[{name:n.header.name,mesh:0}],meshes:[{name:n.header.name,primitives:[]}],buffers:[{byteLength:0}],bufferViews:[],accessors:[]},o=[],r=(t,i)=>{let h=o.length;for(;o.length%4!==0;)o.push(0);let d=o.length;for(let c=0;c<t.length;c++)o.push(t[c]);let g=t.length,a=e.bufferViews.length;return e.bufferViews.push({buffer:0,byteOffset:d,byteLength:g,target:i}),a},f=(t,i,h,d,g,a)=>{let c=e.accessors.length,l={bufferView:t,componentType:i,count:h,type:d};return g&&(l.min=g),a&&(l.max=a),e.accessors.push(l),c},p=0;for(let t of n.surfaces){let i=t.vertices[p],h=new Float32Array(i.length*3),d=new Float32Array(i.length*3),g=new Float32Array(i.length*2),a=[1/0,1/0,1/0],c=[-1/0,-1/0,-1/0];for(let s=0;s<i.length;s++){let u=i[s];h[s*3]=u.position.x,h[s*3+1]=u.position.y,h[s*3+2]=u.position.z,a[0]=Math.min(a[0],u.position.x),a[1]=Math.min(a[1],u.position.y),a[2]=Math.min(a[2],u.position.z),c[0]=Math.max(c[0],u.position.x),c[1]=Math.max(c[1],u.position.y),c[2]=Math.max(c[2],u.position.z),d[s*3]=u.normal.x,d[s*3+1]=u.normal.y,d[s*3+2]=u.normal.z;let b=t.texCoords[s];g[s*2]=b.s,g[s*2+1]=1-b.t}let l=new Uint16Array(t.triangles.length*3);for(let s=0;s<t.triangles.length;s++)l[s*3]=t.triangles[s].indices[0],l[s*3+1]=t.triangles[s].indices[1],l[s*3+2]=t.triangles[s].indices[2];let m=r(new Uint8Array(h.buffer),34962),x=r(new Uint8Array(d.buffer),34962),w=r(new Uint8Array(g.buffer),34962),A=r(new Uint8Array(l.buffer),34963),M=f(m,5126,i.length,"VEC3",a,c),V=f(x,5126,i.length,"VEC3"),F=f(w,5126,i.length,"VEC2"),I=f(A,5123,l.length,"SCALAR");e.meshes[0].primitives.push({attributes:{POSITION:M,NORMAL:V,TEXCOORD_0:F},indices:I,material:void 0})}for(;o.length%4!==0;)o.push(0);return e.buffers[0].byteLength=o.length,{json:JSON.stringify(e,null,2),buffer:new Uint8Array(o).buffer}}function L(n,e){return{name:n,origin:e}}return E(T);})();
|
|
1
|
+
"use strict";var Quake2Tools=(()=>{var gt=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var sn=Object.getOwnPropertyNames;var an=Object.prototype.hasOwnProperty;var on=(e,r)=>{for(var t in r)gt(e,t,{get:r[t],enumerable:!0})},ln=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of sn(r))!an.call(e,n)&&n!==t&>(e,n,{get:()=>r[n],enumerable:!(i=nn(r,n))||i.enumerable});return e};var cn=e=>ln(gt({},"__esModule",{value:!0}),e);var Oc={};on(Oc,{describeAsset:()=>Ic,exportMd2ToObj:()=>sr,exportMd3ToGltf:()=>ar,replaceBspEntities:()=>rn});function sr(e,r){if(r<0||r>=e.frames.length)throw new Error(`Frame index ${r} out of bounds (0-${e.frames.length-1})`);let t=e.frames[r],i=[];i.push("# Quake 2 MD2 to OBJ Export"),i.push(`# Model: ${e.header.skinWidth}x${e.header.skinHeight}`),i.push(`# Frame: ${r} (${t.name})`),i.push(`o ${t.name}`);for(let a of t.vertices)i.push(`v ${a.position.x.toFixed(6)} ${a.position.y.toFixed(6)} ${a.position.z.toFixed(6)}`);let n=e.header.skinWidth,s=e.header.skinHeight;for(let a of e.texCoords){let o=a.s/n,f=1-a.t/s;i.push(`vt ${o.toFixed(6)} ${f.toFixed(6)}`)}for(let a of t.vertices)i.push(`vn ${a.normal.x.toFixed(6)} ${a.normal.y.toFixed(6)} ${a.normal.z.toFixed(6)}`);i.push("s off");for(let a of e.triangles){let o=a.vertexIndices[0]+1,f=a.vertexIndices[1]+1,l=a.vertexIndices[2]+1,c=a.texCoordIndices[0]+1,d=a.texCoordIndices[1]+1,u=a.texCoordIndices[2]+1,h=o,g=f,v=l;i.push(`f ${o}/${c}/${h} ${f}/${d}/${g} ${l}/${u}/${v}`)}return i.join(`
|
|
2
|
+
`)}function ar(e){let r={asset:{version:"2.0",generator:"quake2ts-tools"},scenes:[{nodes:[0]}],nodes:[{name:e.header.name,mesh:0}],meshes:[{name:e.header.name,primitives:[]}],buffers:[{byteLength:0}],bufferViews:[],accessors:[]},t=[],i=(a,o)=>{let f=t.length;for(;t.length%4!==0;)t.push(0);let l=t.length;for(let u=0;u<a.length;u++)t.push(a[u]);let c=a.length,d=r.bufferViews.length;return r.bufferViews.push({buffer:0,byteOffset:l,byteLength:c,target:o}),d},n=(a,o,f,l,c,d)=>{let u=r.accessors.length,h={bufferView:a,componentType:o,count:f,type:l};return c&&(h.min=c),d&&(h.max=d),r.accessors.push(h),u},s=0;for(let a of e.surfaces){let o=a.vertices[s],f=new Float32Array(o.length*3),l=new Float32Array(o.length*3),c=new Float32Array(o.length*2),d=[1/0,1/0,1/0],u=[-1/0,-1/0,-1/0];for(let S=0;S<o.length;S++){let A=o[S];f[S*3]=A.position.x,f[S*3+1]=A.position.y,f[S*3+2]=A.position.z,d[0]=Math.min(d[0],A.position.x),d[1]=Math.min(d[1],A.position.y),d[2]=Math.min(d[2],A.position.z),u[0]=Math.max(u[0],A.position.x),u[1]=Math.max(u[1],A.position.y),u[2]=Math.max(u[2],A.position.z),l[S*3]=A.normal.x,l[S*3+1]=A.normal.y,l[S*3+2]=A.normal.z;let E=a.texCoords[S];c[S*2]=E.s,c[S*2+1]=1-E.t}let h=new Uint16Array(a.triangles.length*3);for(let S=0;S<a.triangles.length;S++)h[S*3]=a.triangles[S].indices[0],h[S*3+1]=a.triangles[S].indices[1],h[S*3+2]=a.triangles[S].indices[2];let g=i(new Uint8Array(f.buffer),34962),v=i(new Uint8Array(l.buffer),34962),m=i(new Uint8Array(c.buffer),34962),p=i(new Uint8Array(h.buffer),34963),w=n(g,5126,o.length,"VEC3",d,u),y=n(v,5126,o.length,"VEC3"),_=n(m,5126,o.length,"VEC2"),x=n(p,5123,h.length,"SCALAR");r.meshes[0].primitives.push({attributes:{POSITION:w,NORMAL:y,TEXCOORD_0:_},indices:x,material:void 0})}for(;t.length%4!==0;)t.push(0);return r.buffers[0].byteLength=t.length,{json:JSON.stringify(r,null,2),buffer:new Uint8Array(t).buffer}}var hn=Object.defineProperty,fn=(e,r)=>{for(var t in r)hn(e,t,{get:r[t],enumerable:!0})};var Dc=Math.PI/180;var Fc=Math.PI/180,Bc=180/Math.PI;var _t=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];var $=1,ie=2;var vt=8,pt=16,un=32;var dn=16384;var qe=65536,or=1<<17,gn=1<<18,mn=1<<19,_n=1<<20,vn=1<<21,pn=1<<22,wn=1<<23,Cc=1<<24,je=1<<25,yn=1<<26,Pc=1<<27,Uc=1<<28,Gc=1<<29,Je=1<<30,Hc=1<<31;var Vc=1<<25,Wc=1<<28,Xc=1<<29,Kc=1<<30,$c=1<<31;var Zc=$|ie,Yc=$|qe|ie|je|Je,qc=$|qe|ie,jc=$|or|ie|je|Je,Jc=un|vt|pt,Qc=$|pt|vt,Sn=$|je|Je|ie|yn,eh=gn|mn|_n|vn|pn|wn,th=$|vt|pt|je|Je,rh=$|qe|ie,ih=$|ie,nh=$|qe|ie|or,sh=Sn|dn;var ah=Number.MAX_SAFE_INTEGER-1;var lr=256;var An=256,xn=8192,bn=2048,En=512,Mn=256,Ln=lr*2,Tn=256,mt=32;var ne=(e=>(e[e.Name=0]="Name",e[e.CdTrack=1]="CdTrack",e[e.Sky=2]="Sky",e[e.SkyAxis=3]="SkyAxis",e[e.SkyRotate=4]="SkyRotate",e[e.StatusBar=5]="StatusBar",e[e.HealthBarName=55]="HealthBarName",e[e.CONFIG_N64_PHYSICS=56]="CONFIG_N64_PHYSICS",e[e.CONFIG_CTF_TEAMS=57]="CONFIG_CTF_TEAMS",e[e.CONFIG_COOP_RESPAWN_STRING=58]="CONFIG_COOP_RESPAWN_STRING",e[e.Story=54]="Story",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+xn]="Sounds",e[e.Images=e.Sounds+bn]="Images",e[e.Lights=e.Images+En]="Lights",e[e.ShadowLights=e.Lights+An]="ShadowLights",e[e.Items=e.ShadowLights+Tn]="Items",e[e.Players=e.Items+Mn]="Players",e[e.PlayerSkins=e.Players]="PlayerSkins",e[e.General=e.Players+lr]="General",e[e.WheelWeapons=e.General+Ln]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+mt]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+mt]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+mt]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(ne||{}),oh=ne.MaxConfigStrings;var lh=ne.Sounds,ch=ne.Images,hh=ne.Lights,fh=ne.Items,uh=ne.Players,dh=ne.General,Rn={};fn(Rn,{addReplayFrame:()=>Nn,createReplaySession:()=>On,deserializeReplay:()=>In,serializeReplay:()=>zn});function zn(e){return JSON.stringify(e,null,2)}function In(e){let r=JSON.parse(e);if(!r.metadata||!Array.isArray(r.frames))throw new Error("Invalid replay format: missing metadata or frames");return r}function On(e,r){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:r},frames:[]}}function Nn(e,r,t,i){e.frames.push({serverFrame:t,cmd:r,timestamp:Date.now()-i})}var kn=12,Dn=9,gh=Math.ceil(kn*Dn/16),Fn=23,Bn=2,mh=Math.ceil(Fn*Bn/16);var _h=1<<17,vh=1<<18,ph=1<<19,wh=1<<20,yh=1<<21,Sh=1<<22,Ah=1<<23,xh=1<<24,bh=1<<25,Eh=1<<26,Mh=1<<27,Lh=1<<28,Th=1<<29,Rh=1<<30;var cr=class{constructor(e){e instanceof Uint8Array?this.view=new DataView(e.buffer,e.byteOffset,e.byteLength):this.view=new DataView(e),this.offset=0,this.length=this.view.byteLength}getPosition(){return this.offset}getReadPosition(){return this.offset}getLength(){return this.length}getRemaining(){return this.length-this.offset}seek(e){if(e<0||e>this.length)throw new Error(`Seek out of bounds: ${e} (length: ${this.length})`);this.offset=e}setReadPosition(e){this.seek(e)}hasMore(){return this.offset<this.length}hasBytes(e){return this.offset+e<=this.length}readChar(){let e=this.view.getInt8(this.offset);return this.offset+=1,e}readByte(){let e=this.view.getUint8(this.offset);return this.offset+=1,e}readShort(){let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readUShort(){let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readLong(){let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readULong(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readFloat(){let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readString(){let e="";for(;this.offset<this.length;){let r=this.readChar();if(r===-1||r===0)break;e+=String.fromCharCode(r)}return e}readStringLine(){let e="";for(;this.offset<this.length;){let r=this.readChar();if(r===-1||r===0||r===10)break;e+=String.fromCharCode(r)}return e}readCoord(){return this.readShort()*(1/8)}readAngle(){return this.readChar()*(360/256)}readAngle16(){return this.readShort()*360/65536}readData(e){if(this.offset+e>this.length)throw new Error(`Read out of bounds: ${this.offset+e} (length: ${this.length})`);let r=new Uint8Array(this.view.buffer,this.view.byteOffset+this.offset,e);return this.offset+=e,new Uint8Array(r)}readPos(e){e.x=this.readCoord(),e.y=this.readCoord(),e.z=this.readCoord()}readDir(e){let r=this.readByte();if(r>=162){e.x=0,e.y=0,e.z=0;return}let t=_t[r];e.x=t[0],e.y=t[1],e.z=t[2]}},Cn=class{constructor(e=1400){typeof e=="number"?(this.buffer=new Uint8Array(e),this.fixed=!1):(this.buffer=e,this.fixed=!0),this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.offset=0}ensureSpace(e){if(this.offset+e>this.buffer.byteLength){if(this.fixed)throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset+e}`);let r=Math.max(this.buffer.byteLength*2,this.offset+e),t=new Uint8Array(r);t.set(this.buffer),this.buffer=t,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength)}}writeByte(e){this.ensureSpace(1),this.view.setUint8(this.offset,e),this.offset+=1}writeBytes(e){this.ensureSpace(e.byteLength),this.buffer.set(e,this.offset),this.offset+=e.byteLength}writeChar(e){this.ensureSpace(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureSpace(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureSpace(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureSpace(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let r=e.length;this.ensureSpace(r+1);for(let t=0;t<r;t++)this.view.setUint8(this.offset+t,e.charCodeAt(t));this.view.setUint8(this.offset+r,0),this.offset+=r+1}writeCoord(e){this.writeShort(Math.trunc(e*8))}writeAngle(e){this.writeByte(Math.trunc(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.trunc(e*65536/360)&65535)}writePos(e){this.writeCoord(e.x),this.writeCoord(e.y),this.writeCoord(e.z)}writeDir(e){let r=-1,t=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let i=0;i<_t.length;i++){let n=_t[i],s=e.x*n[0]+e.y*n[1]+e.z*n[2];s>r&&(r=s,t=i)}this.writeByte(t)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}};var we=class P{constructor(){this.qport=0,this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new Cn(P.MAX_RELIABLE_BUFFER);let r=Date.now();this.lastReceived=r,this.lastSent=r,this.qport=Math.floor(Math.random()*65536)}setup(r,t=null){this.qport=r,this.remoteAddress=t,this.reset()}reset(){this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.reliableMessage.reset(),this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(r){this.outgoingSequence++,this.lastSent=Date.now();let t=0,i=!1,n=0;this.reliableLength>0&&(this.reliableLength>P.FRAGMENT_SIZE?(i=!0,this.fragmentSendOffset>=this.reliableLength&&(this.fragmentSendOffset=0),t=this.reliableLength-this.fragmentSendOffset,t>P.FRAGMENT_SIZE&&(t=P.FRAGMENT_SIZE),n=this.fragmentSendOffset,this.fragmentSendOffset+=t):t=this.reliableLength);let s=P.PACKET_HEADER,a=t>0?2+(i?8:0):0,o=r?r.length:0;s+a+t+o>P.MAX_MSGLEN&&(o=P.MAX_MSGLEN-s-a-t,o<0&&(o=0));let f=new ArrayBuffer(s+a+t+o),l=new DataView(f),c=new Uint8Array(f),d=this.outgoingSequence;t>0&&(d|=2147483648,(this.outgoingReliableSequence&1)!==0&&(d|=1073741824)),l.setUint32(0,d,!0);let u=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(u|=2147483648),l.setUint32(4,u,!0),l.setUint16(8,this.qport,!0);let h=s;if(t>0){let g=t;i&&(g|=32768),l.setUint16(h,g,!0),h+=2,i&&(l.setUint32(h,n,!0),h+=4,l.setUint32(h,this.reliableLength,!0),h+=4);let m=this.reliableMessage.getBuffer().subarray(n,n+t);c.set(m,h),h+=t}if(r&&o>0){let g=r.slice(0,o);c.set(g,h)}return c}process(r){if(r.length<P.PACKET_HEADER)return null;this.lastReceived=Date.now();let t=new DataView(r.buffer,r.byteOffset,r.byteLength),i=t.getUint32(0,!0),n=t.getUint32(4,!0),s=t.getUint16(8,!0);if(this.qport!==s)return null;let a=i&1073741823;if((a-this.incomingSequence|0)<=0)return null;this.incomingSequence=a;let o=n&2147483647,f=(n&2147483648)!==0;if(o>this.incomingAcknowledged&&(this.incomingAcknowledged=o),this.reliableLength>0){let g=f?1:0,v=this.outgoingReliableSequence&1;g!==v&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1,this.fragmentSendOffset=0)}let l=(i&2147483648)!==0,c=(i&1073741824)!==0?1:0,d=P.PACKET_HEADER,u=null;if(l){if(d+2>r.byteLength)return null;let g=t.getUint16(d,!0);d+=2;let v=(g&32768)!==0;g&=32767;let m=this.incomingReliableSequence&1;if(c===m)if(v){if(d+8>r.byteLength)return null;let p=t.getUint32(d,!0);d+=4;let w=t.getUint32(d,!0);if(d+=4,w>P.MAX_RELIABLE_BUFFER)return console.warn(`NetChan: received invalid fragment total ${w} > ${P.MAX_RELIABLE_BUFFER}`),null;if((!this.fragmentBuffer||this.fragmentBuffer.length!==w)&&(this.fragmentBuffer=new Uint8Array(w),this.fragmentLength=w,this.fragmentReceived=0),d+g>r.byteLength)return null;let y=r.subarray(d,d+g);p===this.fragmentReceived&&p+g<=w&&(this.fragmentBuffer.set(y,p),this.fragmentReceived+=g,this.fragmentReceived>=w&&(u=this.fragmentBuffer,this.incomingReliableSequence++,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0))}else{if(this.incomingReliableSequence++,d+g>r.byteLength)return null;u=r.slice(d,d+g)}d+=g}let h=r.slice(d);if(u&&u.length>0){let g=u.length+h.length,v=new Uint8Array(g);return v.set(u,0),v.set(h,u.length),v}return h||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(r){if(this.reliableLength+1>P.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(r),this.reliableLength++}writeReliableShort(r){if(this.reliableLength+2>P.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(r),this.reliableLength+=2}writeReliableLong(r){if(this.reliableLength+4>P.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(r),this.reliableLength+=4}writeReliableString(r){let t=r.length+1;if(this.reliableLength+t>P.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(r),this.reliableLength+=t}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(r){return r-this.lastSent>1e3}isTimedOut(r,t=3e4){return r-this.lastReceived>t}};we.MAX_MSGLEN=1400;we.FRAGMENT_SIZE=1024;we.PACKET_HEADER=10;we.HEADER_OVERHEAD=we.PACKET_HEADER+2;we.MAX_RELIABLE_BUFFER=262144;var hr=(e=>(e[e.Bullets=0]="Bullets",e[e.Shells=1]="Shells",e[e.Rockets=2]="Rockets",e[e.Grenades=3]="Grenades",e[e.Cells=4]="Cells",e[e.Slugs=5]="Slugs",e[e.MagSlugs=6]="MagSlugs",e[e.Trap=7]="Trap",e[e.Flechettes=8]="Flechettes",e[e.Tesla=9]="Tesla",e[e.Disruptor=10]="Disruptor",e[e.Prox=11]="Prox",e[e.Nuke=12]="Nuke",e[e.Rounds=13]="Rounds",e))(hr||{}),zh=Object.keys(hr).length/2;var Pn=Object.defineProperty,Qr=(e,r)=>{for(var t in r)Pn(e,t,{get:r[t],enumerable:!0})};var Un=Object.defineProperty,Gn=(e,r)=>{for(var t in r)Un(e,t,{get:r[t],enumerable:!0})};var kh=Math.PI/180;var Dh=Math.PI/180,Fh=180/Math.PI;var fr=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];var Q=1,he=2;var $t=8,Zt=16,Hn=32;var Vn=16384;var lt=65536,ei=1<<17,Wn=1<<18,Xn=1<<19,Kn=1<<20,$n=1<<21,Zn=1<<22,Yn=1<<23,Bh=1<<24,ct=1<<25,qn=1<<26,Ch=1<<27,Ph=1<<28,Uh=1<<29,ht=1<<30,Gh=1<<31;var Hh=1<<25,Vh=1<<28,Wh=1<<29,Xh=1<<30,Kh=1<<31,$h=Q|he,Zh=Q|lt|he|ct|ht,Yh=Q|lt|he,qh=Q|ei|he|ct|ht,jh=Hn|$t|Zt,Jh=Q|Zt|$t,jn=Q|ct|ht|he|qn,Qh=Wn|Xn|Kn|$n|Zn|Yn,ef=Q|$t|Zt|ct|ht,tf=Q|lt|he,rf=Q|he,nf=Q|lt|he|ei,sf=jn|Vn,af=Number.MAX_SAFE_INTEGER-1;var ti=256,Jn=256,Qn=8192,es=2048,ts=512,rs=256,is=ti*2,ns=256,wt=32;var fe=(e=>(e[e.Name=0]="Name",e[e.CdTrack=1]="CdTrack",e[e.Sky=2]="Sky",e[e.SkyAxis=3]="SkyAxis",e[e.SkyRotate=4]="SkyRotate",e[e.StatusBar=5]="StatusBar",e[e.HealthBarName=55]="HealthBarName",e[e.CONFIG_N64_PHYSICS=56]="CONFIG_N64_PHYSICS",e[e.CONFIG_CTF_TEAMS=57]="CONFIG_CTF_TEAMS",e[e.CONFIG_COOP_RESPAWN_STRING=58]="CONFIG_COOP_RESPAWN_STRING",e[e.Story=54]="Story",e[e.AirAccel=59]="AirAccel",e[e.MaxClients=60]="MaxClients",e[e.MapChecksum=61]="MapChecksum",e[e.Models=62]="Models",e[e.Sounds=62+Qn]="Sounds",e[e.Images=e.Sounds+es]="Images",e[e.Lights=e.Images+ts]="Lights",e[e.ShadowLights=e.Lights+Jn]="ShadowLights",e[e.Items=e.ShadowLights+ns]="Items",e[e.Players=e.Items+rs]="Players",e[e.PlayerSkins=e.Players]="PlayerSkins",e[e.General=e.Players+ti]="General",e[e.WheelWeapons=e.General+is]="WheelWeapons",e[e.WheelAmmo=e.WheelWeapons+wt]="WheelAmmo",e[e.WheelPowerups=e.WheelAmmo+wt]="WheelPowerups",e[e.CdLoopCount=e.WheelPowerups+wt]="CdLoopCount",e[e.GameStyle=e.CdLoopCount+1]="GameStyle",e[e.MaxConfigStrings=e.GameStyle+1]="MaxConfigStrings",e))(fe||{}),of=fe.MaxConfigStrings;var lf=fe.Sounds,cf=fe.Images,hf=fe.Lights,ff=fe.Items,uf=fe.Players,df=fe.General,ss={};Gn(ss,{addReplayFrame:()=>cs,createReplaySession:()=>ls,deserializeReplay:()=>os,serializeReplay:()=>as});function as(e){return JSON.stringify(e,null,2)}function os(e){let r=JSON.parse(e);if(!r.metadata||!Array.isArray(r.frames))throw new Error("Invalid replay format: missing metadata or frames");return r}function ls(e,r){return{metadata:{map:e,date:new Date().toISOString(),version:"1.0",seed:r},frames:[]}}function cs(e,r,t,i){e.frames.push({serverFrame:t,cmd:r,timestamp:Date.now()-i})}var T=(e=>(e[e.bad=0]="bad",e[e.muzzleflash=1]="muzzleflash",e[e.muzzleflash2=2]="muzzleflash2",e[e.temp_entity=3]="temp_entity",e[e.layout=4]="layout",e[e.inventory=5]="inventory",e[e.nop=6]="nop",e[e.disconnect=7]="disconnect",e[e.reconnect=8]="reconnect",e[e.sound=9]="sound",e[e.print=10]="print",e[e.stufftext=11]="stufftext",e[e.serverdata=12]="serverdata",e[e.configstring=13]="configstring",e[e.spawnbaseline=14]="spawnbaseline",e[e.centerprint=15]="centerprint",e[e.download=16]="download",e[e.playerinfo=17]="playerinfo",e[e.packetentities=18]="packetentities",e[e.deltapacketentities=19]="deltapacketentities",e[e.frame=20]="frame",e[e.splitclient=21]="splitclient",e[e.configblast=22]="configblast",e[e.spawnbaselineblast=23]="spawnbaselineblast",e[e.level_restart=24]="level_restart",e[e.damage=25]="damage",e[e.locprint=26]="locprint",e[e.fog=27]="fog",e[e.waitingforplayers=28]="waitingforplayers",e[e.bot_chat=29]="bot_chat",e[e.poi=30]="poi",e[e.help_path=31]="help_path",e[e.muzzleflash3=32]="muzzleflash3",e[e.achievement=33]="achievement",e))(T||{});var hs=12,fs=9,gf=Math.ceil(hs*fs/16),us=23,ds=2,mf=Math.ceil(us*ds/16);var _f=1<<17,vf=1<<18,pf=1<<19,wf=1<<20,yf=1<<21,Sf=1<<22,Af=1<<23,xf=1<<24,bf=1<<25,Ef=1<<26,Mf=1<<27,Lf=1<<28,Tf=1<<29,Rf=1<<30;var gs=class{constructor(e=1400){typeof e=="number"?(this.buffer=new Uint8Array(e),this.fixed=!1):(this.buffer=e,this.fixed=!0),this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),this.offset=0}ensureSpace(e){if(this.offset+e>this.buffer.byteLength){if(this.fixed)throw new Error(`Buffer overflow: capacity ${this.buffer.byteLength}, needed ${this.offset+e}`);let r=Math.max(this.buffer.byteLength*2,this.offset+e),t=new Uint8Array(r);t.set(this.buffer),this.buffer=t,this.view=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength)}}writeByte(e){this.ensureSpace(1),this.view.setUint8(this.offset,e),this.offset+=1}writeBytes(e){this.ensureSpace(e.byteLength),this.buffer.set(e,this.offset),this.offset+=e.byteLength}writeChar(e){this.ensureSpace(1),this.view.setInt8(this.offset,e),this.offset+=1}writeShort(e){this.ensureSpace(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeLong(e){this.ensureSpace(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeFloat(e){this.ensureSpace(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeString(e){let r=e.length;this.ensureSpace(r+1);for(let t=0;t<r;t++)this.view.setUint8(this.offset+t,e.charCodeAt(t));this.view.setUint8(this.offset+r,0),this.offset+=r+1}writeCoord(e){this.writeShort(Math.trunc(e*8))}writeAngle(e){this.writeByte(Math.trunc(e*256/360)&255)}writeAngle16(e){this.writeShort(Math.trunc(e*65536/360)&65535)}writePos(e){this.writeCoord(e.x),this.writeCoord(e.y),this.writeCoord(e.z)}writeDir(e){let r=-1,t=0;if(e.x===0&&e.y===0&&e.z===0){this.writeByte(0);return}for(let i=0;i<fr.length;i++){let n=fr[i],s=e.x*n[0]+e.y*n[1]+e.z*n[2];s>r&&(r=s,t=i)}this.writeByte(t)}getData(){return this.buffer.slice(0,this.offset)}getBuffer(){return this.buffer}getOffset(){return this.offset}reset(){this.offset=0}},xe=class U{constructor(){this.qport=0,this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=0,this.lastSent=0,this.remoteAddress=null,this.reliableMessage=new gs(U.MAX_RELIABLE_BUFFER);let r=Date.now();this.lastReceived=r,this.lastSent=r,this.qport=Math.floor(Math.random()*65536)}setup(r,t=null){this.qport=r,this.remoteAddress=t,this.reset()}reset(){this.incomingSequence=0,this.outgoingSequence=0,this.incomingAcknowledged=0,this.incomingReliableAcknowledged=!1,this.incomingReliableSequence=0,this.outgoingReliableSequence=0,this.reliableLength=0,this.reliableMessage.reset(),this.fragmentSendOffset=0,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0,this.lastReceived=Date.now(),this.lastSent=Date.now()}transmit(r){this.outgoingSequence++,this.lastSent=Date.now();let t=0,i=!1,n=0;this.reliableLength>0&&(this.reliableLength>U.FRAGMENT_SIZE?(i=!0,this.fragmentSendOffset>=this.reliableLength&&(this.fragmentSendOffset=0),t=this.reliableLength-this.fragmentSendOffset,t>U.FRAGMENT_SIZE&&(t=U.FRAGMENT_SIZE),n=this.fragmentSendOffset,this.fragmentSendOffset+=t):t=this.reliableLength);let s=U.PACKET_HEADER,a=t>0?2+(i?8:0):0,o=r?r.length:0;s+a+t+o>U.MAX_MSGLEN&&(o=U.MAX_MSGLEN-s-a-t,o<0&&(o=0));let f=new ArrayBuffer(s+a+t+o),l=new DataView(f),c=new Uint8Array(f),d=this.outgoingSequence;t>0&&(d|=2147483648,(this.outgoingReliableSequence&1)!==0&&(d|=1073741824)),l.setUint32(0,d,!0);let u=this.incomingSequence;(this.incomingReliableSequence&1)!==0&&(u|=2147483648),l.setUint32(4,u,!0),l.setUint16(8,this.qport,!0);let h=s;if(t>0){let g=t;i&&(g|=32768),l.setUint16(h,g,!0),h+=2,i&&(l.setUint32(h,n,!0),h+=4,l.setUint32(h,this.reliableLength,!0),h+=4);let m=this.reliableMessage.getBuffer().subarray(n,n+t);c.set(m,h),h+=t}if(r&&o>0){let g=r.slice(0,o);c.set(g,h)}return c}process(r){if(r.length<U.PACKET_HEADER)return null;this.lastReceived=Date.now();let t=new DataView(r.buffer,r.byteOffset,r.byteLength),i=t.getUint32(0,!0),n=t.getUint32(4,!0),s=t.getUint16(8,!0);if(this.qport!==s)return null;let a=i&1073741823;if((a-this.incomingSequence|0)<=0)return null;this.incomingSequence=a;let o=n&2147483647,f=(n&2147483648)!==0;if(o>this.incomingAcknowledged&&(this.incomingAcknowledged=o),this.reliableLength>0){let g=f?1:0,v=this.outgoingReliableSequence&1;g!==v&&(this.reliableLength=0,this.reliableMessage.reset(),this.outgoingReliableSequence^=1,this.fragmentSendOffset=0)}let l=(i&2147483648)!==0,c=(i&1073741824)!==0?1:0,d=U.PACKET_HEADER,u=null;if(l){if(d+2>r.byteLength)return null;let g=t.getUint16(d,!0);d+=2;let v=(g&32768)!==0;g&=32767;let m=this.incomingReliableSequence&1;if(c===m)if(v){if(d+8>r.byteLength)return null;let p=t.getUint32(d,!0);d+=4;let w=t.getUint32(d,!0);if(d+=4,w>U.MAX_RELIABLE_BUFFER)return console.warn(`NetChan: received invalid fragment total ${w} > ${U.MAX_RELIABLE_BUFFER}`),null;if((!this.fragmentBuffer||this.fragmentBuffer.length!==w)&&(this.fragmentBuffer=new Uint8Array(w),this.fragmentLength=w,this.fragmentReceived=0),d+g>r.byteLength)return null;let y=r.subarray(d,d+g);p===this.fragmentReceived&&p+g<=w&&(this.fragmentBuffer.set(y,p),this.fragmentReceived+=g,this.fragmentReceived>=w&&(u=this.fragmentBuffer,this.incomingReliableSequence++,this.fragmentBuffer=null,this.fragmentLength=0,this.fragmentReceived=0))}else{if(this.incomingReliableSequence++,d+g>r.byteLength)return null;u=r.slice(d,d+g)}d+=g}let h=r.slice(d);if(u&&u.length>0){let g=u.length+h.length,v=new Uint8Array(g);return v.set(u,0),v.set(h,u.length),v}return h||new Uint8Array(0)}canSendReliable(){return this.reliableLength===0}writeReliableByte(r){if(this.reliableLength+1>U.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeByte(r),this.reliableLength++}writeReliableShort(r){if(this.reliableLength+2>U.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeShort(r),this.reliableLength+=2}writeReliableLong(r){if(this.reliableLength+4>U.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeLong(r),this.reliableLength+=4}writeReliableString(r){let t=r.length+1;if(this.reliableLength+t>U.MAX_RELIABLE_BUFFER)throw new Error("NetChan reliable buffer overflow");this.reliableMessage.writeString(r),this.reliableLength+=t}getReliableData(){return this.reliableLength===0?new Uint8Array(0):this.reliableMessage.getBuffer().subarray(0,this.reliableLength)}needsKeepalive(r){return r-this.lastSent>1e3}isTimedOut(r,t=3e4){return r-this.lastReceived>t}};xe.MAX_MSGLEN=1400;xe.FRAGMENT_SIZE=1024;xe.PACKET_HEADER=10;xe.HEADER_OVERHEAD=xe.PACKET_HEADER+2;xe.MAX_RELIABLE_BUFFER=262144;var ri=(e=>(e[e.Bullets=0]="Bullets",e[e.Shells=1]="Shells",e[e.Rockets=2]="Rockets",e[e.Grenades=3]="Grenades",e[e.Cells=4]="Cells",e[e.Slugs=5]="Slugs",e[e.MagSlugs=6]="MagSlugs",e[e.Trap=7]="Trap",e[e.Flechettes=8]="Flechettes",e[e.Tesla=9]="Tesla",e[e.Disruptor=10]="Disruptor",e[e.Prox=11]="Prox",e[e.Nuke=12]="Nuke",e[e.Rounds=13]="Rounds",e))(ri||{}),zf=Object.keys(ri).length/2;function ms(){let e=new Uint32Array(256);for(let r=0;r<256;r+=1){let t=r;for(let i=0;i<8;i+=1)t=(t&1)!==0?3988292384^t>>>1:t>>>1;e[r]=t>>>0}return e}var If=ms();var Of=Object.freeze([{name:"pak0.pak",checksum:2378051181,description:"Base game assets"},{name:"pak0.pak@baseq2",checksum:2378051181,description:"Base game assets (baseq2)"},{name:"pak0.pak@rogue",checksum:3373211245,description:"Ground Zero (rogue) mission pack"},{name:"pak0.pak@xatrix",checksum:1358269824,description:"The Reckoning (xatrix) mission pack"}]);var _s=19,Nf=8+_s*8;var Ft=4,yt=7*Ft,kf=[{index:0,size:3,type:5126,stride:yt,offset:0},{index:1,size:2,type:5126,stride:yt,offset:3*Ft},{index:2,size:2,type:5126,stride:yt,offset:5*Ft}];var ii=32;var Df=`#version 300 es
|
|
3
|
+
precision highp float;
|
|
4
|
+
|
|
5
|
+
struct DLight {
|
|
6
|
+
vec3 position;
|
|
7
|
+
vec3 color;
|
|
8
|
+
float intensity;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const int MAX_DLIGHTS = ${ii};
|
|
12
|
+
|
|
13
|
+
in vec2 v_texCoord;
|
|
14
|
+
in vec2 v_lightmapCoord;
|
|
15
|
+
in float v_lightmapStep;
|
|
16
|
+
in vec3 v_position;
|
|
17
|
+
in vec4 v_screenPos;
|
|
18
|
+
|
|
19
|
+
uniform sampler2D u_diffuseMap;
|
|
20
|
+
uniform sampler2D u_lightmapAtlas;
|
|
21
|
+
uniform sampler2D u_refractionMap; // New: Refraction map
|
|
22
|
+
uniform vec4 u_lightStyleFactors;
|
|
23
|
+
uniform vec4 u_styleLayerMapping; // 0, 1, 2... or -1 if invalid
|
|
24
|
+
uniform float u_alpha;
|
|
25
|
+
uniform bool u_applyLightmap;
|
|
26
|
+
uniform bool u_warp;
|
|
27
|
+
uniform bool u_lightmapOnly;
|
|
28
|
+
uniform bool u_hasRefraction; // New: Flag to enable refraction
|
|
29
|
+
uniform float u_time;
|
|
30
|
+
|
|
31
|
+
uniform int u_renderMode; // 0: Textured, 1: Solid, 2: Solid Faceted
|
|
32
|
+
uniform vec4 u_solidColor;
|
|
33
|
+
|
|
34
|
+
uniform int u_numDlights;
|
|
35
|
+
uniform DLight u_dlights[MAX_DLIGHTS];
|
|
36
|
+
|
|
37
|
+
// Lighting controls
|
|
38
|
+
uniform float u_brightness;
|
|
39
|
+
uniform float u_gamma;
|
|
40
|
+
uniform bool u_fullbright;
|
|
41
|
+
uniform float u_ambient;
|
|
42
|
+
|
|
43
|
+
out vec4 o_color;
|
|
44
|
+
|
|
45
|
+
void main() {
|
|
46
|
+
vec4 finalColor;
|
|
47
|
+
|
|
48
|
+
if (u_renderMode == 0) {
|
|
49
|
+
// TEXTURED MODE
|
|
50
|
+
vec4 base = vec4(1.0);
|
|
51
|
+
if (!u_lightmapOnly) {
|
|
52
|
+
base = texture(u_diffuseMap, v_texCoord);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Refraction Logic
|
|
56
|
+
if (u_warp && u_hasRefraction) {
|
|
57
|
+
vec2 ndc = (v_screenPos.xy / v_screenPos.w) * 0.5 + 0.5;
|
|
58
|
+
|
|
59
|
+
// Calculate distortion based on texture coordinates time
|
|
60
|
+
// Simple turbulent distortion
|
|
61
|
+
float distortionStrength = 0.05;
|
|
62
|
+
vec2 distortion = vec2(
|
|
63
|
+
sin(v_texCoord.y * 10.0 + u_time * 2.0),
|
|
64
|
+
cos(v_texCoord.x * 10.0 + u_time * 2.0)
|
|
65
|
+
) * distortionStrength;
|
|
66
|
+
|
|
67
|
+
vec3 refractColor = texture(u_refractionMap, ndc + distortion).rgb;
|
|
68
|
+
|
|
69
|
+
// Blend base texture with refraction
|
|
70
|
+
// Quake 2 water usually is quite opaque but let's try a blend
|
|
71
|
+
// Or just tint the refraction
|
|
72
|
+
|
|
73
|
+
// If it's water (warp), we usually want some transparency + refraction
|
|
74
|
+
// Let's mix refraction into the base color
|
|
75
|
+
base.rgb = mix(base.rgb, refractColor, 0.4);
|
|
76
|
+
base.a = 0.7; // Ensure some alpha for water
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
vec3 totalLight = vec3(1.0);
|
|
80
|
+
|
|
81
|
+
if (u_applyLightmap && !u_fullbright) {
|
|
82
|
+
// Multi-style lightmap accumulation
|
|
83
|
+
vec3 light = vec3(0.0);
|
|
84
|
+
bool hasLight = false;
|
|
85
|
+
|
|
86
|
+
// Loop unrolled-ish
|
|
87
|
+
for (int i = 0; i < 4; i++) {
|
|
88
|
+
float layer = u_styleLayerMapping[i];
|
|
89
|
+
float factor = u_lightStyleFactors[i];
|
|
90
|
+
|
|
91
|
+
if (layer >= -0.5) { // Valid layer (check >= 0 approx)
|
|
92
|
+
// Offset V by layer * step
|
|
93
|
+
// Since we packed vertically
|
|
94
|
+
vec2 offset = vec2(0.0, layer * v_lightmapStep);
|
|
95
|
+
light += texture(u_lightmapAtlas, v_lightmapCoord + offset).rgb * factor;
|
|
96
|
+
hasLight = true;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (!hasLight) light = vec3(1.0);
|
|
101
|
+
|
|
102
|
+
totalLight = light;
|
|
103
|
+
|
|
104
|
+
// Add dynamic lights
|
|
105
|
+
for (int i = 0; i < MAX_DLIGHTS; i++) {
|
|
106
|
+
if (i >= u_numDlights) break;
|
|
107
|
+
DLight dlight = u_dlights[i];
|
|
108
|
+
|
|
109
|
+
float dist = distance(v_position, dlight.position);
|
|
110
|
+
// Quake 2 dlight formula
|
|
111
|
+
if (dist < dlight.intensity) {
|
|
112
|
+
float contribution = (dlight.intensity - dist) * (1.0 / 255.0);
|
|
113
|
+
totalLight += dlight.color * contribution;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
} else if (u_fullbright) {
|
|
117
|
+
totalLight = vec3(1.0);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Apply ambient minimum
|
|
121
|
+
totalLight = max(totalLight, vec3(u_ambient));
|
|
122
|
+
|
|
123
|
+
// Apply brightness
|
|
124
|
+
totalLight *= u_brightness;
|
|
125
|
+
|
|
126
|
+
base.rgb *= totalLight;
|
|
127
|
+
|
|
128
|
+
// Gamma correction
|
|
129
|
+
if (u_gamma != 1.0) {
|
|
130
|
+
base.rgb = pow(base.rgb, vec3(1.0 / u_gamma));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
finalColor = vec4(base.rgb, base.a * u_alpha);
|
|
134
|
+
} else {
|
|
135
|
+
// SOLID / WIREFRAME / FACETED
|
|
136
|
+
vec3 color = u_solidColor.rgb;
|
|
137
|
+
if (u_renderMode == 2) {
|
|
138
|
+
// FACETED: simple lighting based on face normal
|
|
139
|
+
vec3 fdx = dFdx(v_position);
|
|
140
|
+
vec3 fdy = dFdy(v_position);
|
|
141
|
+
vec3 faceNormal = normalize(cross(fdx, fdy));
|
|
142
|
+
|
|
143
|
+
// Simple directional light from "camera" or fixed
|
|
144
|
+
vec3 lightDir = normalize(vec3(0.5, 0.5, 1.0));
|
|
145
|
+
float diff = max(dot(faceNormal, lightDir), 0.2); // Ambient 0.2
|
|
146
|
+
color *= diff;
|
|
147
|
+
}
|
|
148
|
+
finalColor = vec4(color, u_solidColor.a * u_alpha);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
o_color = finalColor;
|
|
152
|
+
}`;var Ff=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,-1,-1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,-1,-1,-1,1,1,-1,1,-1,1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,1,1,1,-1,1,-1,1,-1,-1,1,1,1,1,1,-1,1,-1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,1,-1,1,-1,-1,1]);var Bf=`#version 300 es
|
|
153
|
+
precision highp float;
|
|
154
|
+
|
|
155
|
+
layout(location = 0) in vec3 a_position;
|
|
156
|
+
layout(location = 1) in vec3 a_normal;
|
|
157
|
+
layout(location = 2) in vec2 a_texCoord;
|
|
158
|
+
|
|
159
|
+
struct DLight {
|
|
160
|
+
vec3 position;
|
|
161
|
+
vec3 color;
|
|
162
|
+
float intensity;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
const int MAX_DLIGHTS = ${ii};
|
|
166
|
+
|
|
167
|
+
uniform mat4 u_modelViewProjection;
|
|
168
|
+
uniform mat4 u_modelMatrix;
|
|
169
|
+
uniform vec3 u_lightDir;
|
|
170
|
+
uniform float u_ambient;
|
|
171
|
+
|
|
172
|
+
uniform int u_numDlights;
|
|
173
|
+
uniform DLight u_dlights[MAX_DLIGHTS];
|
|
174
|
+
|
|
175
|
+
out vec2 v_texCoord;
|
|
176
|
+
out vec3 v_lightColor;
|
|
177
|
+
out vec3 v_position; // For faceted shading
|
|
178
|
+
|
|
179
|
+
void main() {
|
|
180
|
+
vec3 normal = normalize(a_normal);
|
|
181
|
+
|
|
182
|
+
// Directional Light (simple Lambert)
|
|
183
|
+
float dotL = max(dot(normal, normalize(u_lightDir)), 0.0);
|
|
184
|
+
vec3 lightAcc = vec3(min(1.0, u_ambient + dotL)); // White light assumed for directional/ambient
|
|
185
|
+
|
|
186
|
+
// Dynamic Lights
|
|
187
|
+
vec4 worldPos = u_modelMatrix * vec4(a_position, 1.0);
|
|
188
|
+
|
|
189
|
+
for (int i = 0; i < MAX_DLIGHTS; i++) {
|
|
190
|
+
if (i >= u_numDlights) break;
|
|
191
|
+
DLight dlight = u_dlights[i];
|
|
192
|
+
|
|
193
|
+
float dist = distance(worldPos.xyz, dlight.position);
|
|
194
|
+
if (dist < dlight.intensity) {
|
|
195
|
+
float intensity = (dlight.intensity - dist) / dlight.intensity;
|
|
196
|
+
lightAcc += dlight.color * intensity;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
v_lightColor = lightAcc;
|
|
201
|
+
v_texCoord = a_texCoord;
|
|
202
|
+
v_position = worldPos.xyz;
|
|
203
|
+
gl_Position = u_modelViewProjection * vec4(a_position, 1.0);
|
|
204
|
+
}`;var D=1e-6,J=typeof Float32Array<"u"?Float32Array:Array,ur=Math.random;function St(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var Cf=Math.PI/180,Pf=180/Math.PI,vs={};Qr(vs,{add:()=>ra,adjoint:()=>Es,clone:()=>ws,copy:()=>ys,create:()=>ps,decompose:()=>Hs,determinant:()=>Ms,equals:()=>aa,exactEquals:()=>sa,frob:()=>ta,fromQuat:()=>Xs,fromQuat2:()=>Ps,fromRotation:()=>Ds,fromRotationTranslation:()=>ai,fromRotationTranslationScale:()=>Vs,fromRotationTranslationScaleOrigin:()=>Ws,fromScaling:()=>ks,fromTranslation:()=>Ns,fromValues:()=>Ss,fromXRotation:()=>Fs,fromYRotation:()=>Bs,fromZRotation:()=>Cs,frustum:()=>Ks,getRotation:()=>Gs,getScaling:()=>oi,getTranslation:()=>Us,identity:()=>ni,invert:()=>bs,lookAt:()=>Js,mul:()=>oa,multiply:()=>si,multiplyScalar:()=>ia,multiplyScalarAndAdd:()=>na,ortho:()=>qs,orthoNO:()=>ci,orthoZO:()=>js,perspective:()=>$s,perspectiveFromFieldOfView:()=>Ys,perspectiveNO:()=>li,perspectiveZO:()=>Zs,rotate:()=>Rs,rotateX:()=>zs,rotateY:()=>Is,rotateZ:()=>Os,scale:()=>Ts,set:()=>As,str:()=>ea,sub:()=>la,subtract:()=>hi,targetTo:()=>Qs,translate:()=>Ls,transpose:()=>xs});function ps(){var e=new J(16);return J!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function ws(e){var r=new J(16);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function ys(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function Ss(e,r,t,i,n,s,a,o,f,l,c,d,u,h,g,v){var m=new J(16);return m[0]=e,m[1]=r,m[2]=t,m[3]=i,m[4]=n,m[5]=s,m[6]=a,m[7]=o,m[8]=f,m[9]=l,m[10]=c,m[11]=d,m[12]=u,m[13]=h,m[14]=g,m[15]=v,m}function As(e,r,t,i,n,s,a,o,f,l,c,d,u,h,g,v,m){return e[0]=r,e[1]=t,e[2]=i,e[3]=n,e[4]=s,e[5]=a,e[6]=o,e[7]=f,e[8]=l,e[9]=c,e[10]=d,e[11]=u,e[12]=h,e[13]=g,e[14]=v,e[15]=m,e}function ni(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function xs(e,r){if(e===r){var t=r[1],i=r[2],n=r[3],s=r[6],a=r[7],o=r[11];e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=t,e[6]=r[9],e[7]=r[13],e[8]=i,e[9]=s,e[11]=r[14],e[12]=n,e[13]=a,e[14]=o}else e[0]=r[0],e[1]=r[4],e[2]=r[8],e[3]=r[12],e[4]=r[1],e[5]=r[5],e[6]=r[9],e[7]=r[13],e[8]=r[2],e[9]=r[6],e[10]=r[10],e[11]=r[14],e[12]=r[3],e[13]=r[7],e[14]=r[11],e[15]=r[15];return e}function bs(e,r){var t=r[0],i=r[1],n=r[2],s=r[3],a=r[4],o=r[5],f=r[6],l=r[7],c=r[8],d=r[9],u=r[10],h=r[11],g=r[12],v=r[13],m=r[14],p=r[15],w=t*o-i*a,y=t*f-n*a,_=t*l-s*a,x=i*f-n*o,S=i*l-s*o,A=n*l-s*f,E=c*v-d*g,M=c*m-u*g,b=c*p-h*g,L=d*m-u*v,O=d*p-h*v,N=u*p-h*m,R=w*N-y*O+_*L+x*b-S*M+A*E;return R?(R=1/R,e[0]=(o*N-f*O+l*L)*R,e[1]=(n*O-i*N-s*L)*R,e[2]=(v*A-m*S+p*x)*R,e[3]=(u*S-d*A-h*x)*R,e[4]=(f*b-a*N-l*M)*R,e[5]=(t*N-n*b+s*M)*R,e[6]=(m*_-g*A-p*y)*R,e[7]=(c*A-u*_+h*y)*R,e[8]=(a*O-o*b+l*E)*R,e[9]=(i*b-t*O-s*E)*R,e[10]=(g*S-v*_+p*w)*R,e[11]=(d*_-c*S-h*w)*R,e[12]=(o*M-a*L-f*E)*R,e[13]=(t*L-i*M+n*E)*R,e[14]=(v*y-g*x-m*w)*R,e[15]=(c*x-d*y+u*w)*R,e):null}function Es(e,r){var t=r[0],i=r[1],n=r[2],s=r[3],a=r[4],o=r[5],f=r[6],l=r[7],c=r[8],d=r[9],u=r[10],h=r[11],g=r[12],v=r[13],m=r[14],p=r[15],w=t*o-i*a,y=t*f-n*a,_=t*l-s*a,x=i*f-n*o,S=i*l-s*o,A=n*l-s*f,E=c*v-d*g,M=c*m-u*g,b=c*p-h*g,L=d*m-u*v,O=d*p-h*v,N=u*p-h*m;return e[0]=o*N-f*O+l*L,e[1]=n*O-i*N-s*L,e[2]=v*A-m*S+p*x,e[3]=u*S-d*A-h*x,e[4]=f*b-a*N-l*M,e[5]=t*N-n*b+s*M,e[6]=m*_-g*A-p*y,e[7]=c*A-u*_+h*y,e[8]=a*O-o*b+l*E,e[9]=i*b-t*O-s*E,e[10]=g*S-v*_+p*w,e[11]=d*_-c*S-h*w,e[12]=o*M-a*L-f*E,e[13]=t*L-i*M+n*E,e[14]=v*y-g*x-m*w,e[15]=c*x-d*y+u*w,e}function Ms(e){var r=e[0],t=e[1],i=e[2],n=e[3],s=e[4],a=e[5],o=e[6],f=e[7],l=e[8],c=e[9],d=e[10],u=e[11],h=e[12],g=e[13],v=e[14],m=e[15],p=r*a-t*s,w=r*o-i*s,y=t*o-i*a,_=l*g-c*h,x=l*v-d*h,S=c*v-d*g,A=r*S-t*x+i*_,E=s*S-a*x+o*_,M=l*y-c*w+d*p,b=h*y-g*w+v*p;return f*A-n*E+m*M-u*b}function si(e,r,t){var i=r[0],n=r[1],s=r[2],a=r[3],o=r[4],f=r[5],l=r[6],c=r[7],d=r[8],u=r[9],h=r[10],g=r[11],v=r[12],m=r[13],p=r[14],w=r[15],y=t[0],_=t[1],x=t[2],S=t[3];return e[0]=y*i+_*o+x*d+S*v,e[1]=y*n+_*f+x*u+S*m,e[2]=y*s+_*l+x*h+S*p,e[3]=y*a+_*c+x*g+S*w,y=t[4],_=t[5],x=t[6],S=t[7],e[4]=y*i+_*o+x*d+S*v,e[5]=y*n+_*f+x*u+S*m,e[6]=y*s+_*l+x*h+S*p,e[7]=y*a+_*c+x*g+S*w,y=t[8],_=t[9],x=t[10],S=t[11],e[8]=y*i+_*o+x*d+S*v,e[9]=y*n+_*f+x*u+S*m,e[10]=y*s+_*l+x*h+S*p,e[11]=y*a+_*c+x*g+S*w,y=t[12],_=t[13],x=t[14],S=t[15],e[12]=y*i+_*o+x*d+S*v,e[13]=y*n+_*f+x*u+S*m,e[14]=y*s+_*l+x*h+S*p,e[15]=y*a+_*c+x*g+S*w,e}function Ls(e,r,t){var i=t[0],n=t[1],s=t[2],a,o,f,l,c,d,u,h,g,v,m,p;return r===e?(e[12]=r[0]*i+r[4]*n+r[8]*s+r[12],e[13]=r[1]*i+r[5]*n+r[9]*s+r[13],e[14]=r[2]*i+r[6]*n+r[10]*s+r[14],e[15]=r[3]*i+r[7]*n+r[11]*s+r[15]):(a=r[0],o=r[1],f=r[2],l=r[3],c=r[4],d=r[5],u=r[6],h=r[7],g=r[8],v=r[9],m=r[10],p=r[11],e[0]=a,e[1]=o,e[2]=f,e[3]=l,e[4]=c,e[5]=d,e[6]=u,e[7]=h,e[8]=g,e[9]=v,e[10]=m,e[11]=p,e[12]=a*i+c*n+g*s+r[12],e[13]=o*i+d*n+v*s+r[13],e[14]=f*i+u*n+m*s+r[14],e[15]=l*i+h*n+p*s+r[15]),e}function Ts(e,r,t){var i=t[0],n=t[1],s=t[2];return e[0]=r[0]*i,e[1]=r[1]*i,e[2]=r[2]*i,e[3]=r[3]*i,e[4]=r[4]*n,e[5]=r[5]*n,e[6]=r[6]*n,e[7]=r[7]*n,e[8]=r[8]*s,e[9]=r[9]*s,e[10]=r[10]*s,e[11]=r[11]*s,e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function Rs(e,r,t,i){var n=i[0],s=i[1],a=i[2],o=Math.sqrt(n*n+s*s+a*a),f,l,c,d,u,h,g,v,m,p,w,y,_,x,S,A,E,M,b,L,O,N,R,C;return o<D?null:(o=1/o,n*=o,s*=o,a*=o,f=Math.sin(t),l=Math.cos(t),c=1-l,d=r[0],u=r[1],h=r[2],g=r[3],v=r[4],m=r[5],p=r[6],w=r[7],y=r[8],_=r[9],x=r[10],S=r[11],A=n*n*c+l,E=s*n*c+a*f,M=a*n*c-s*f,b=n*s*c-a*f,L=s*s*c+l,O=a*s*c+n*f,N=n*a*c+s*f,R=s*a*c-n*f,C=a*a*c+l,e[0]=d*A+v*E+y*M,e[1]=u*A+m*E+_*M,e[2]=h*A+p*E+x*M,e[3]=g*A+w*E+S*M,e[4]=d*b+v*L+y*O,e[5]=u*b+m*L+_*O,e[6]=h*b+p*L+x*O,e[7]=g*b+w*L+S*O,e[8]=d*N+v*R+y*C,e[9]=u*N+m*R+_*C,e[10]=h*N+p*R+x*C,e[11]=g*N+w*R+S*C,r!==e&&(e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e)}function zs(e,r,t){var i=Math.sin(t),n=Math.cos(t),s=r[4],a=r[5],o=r[6],f=r[7],l=r[8],c=r[9],d=r[10],u=r[11];return r!==e&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[4]=s*n+l*i,e[5]=a*n+c*i,e[6]=o*n+d*i,e[7]=f*n+u*i,e[8]=l*n-s*i,e[9]=c*n-a*i,e[10]=d*n-o*i,e[11]=u*n-f*i,e}function Is(e,r,t){var i=Math.sin(t),n=Math.cos(t),s=r[0],a=r[1],o=r[2],f=r[3],l=r[8],c=r[9],d=r[10],u=r[11];return r!==e&&(e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=s*n-l*i,e[1]=a*n-c*i,e[2]=o*n-d*i,e[3]=f*n-u*i,e[8]=s*i+l*n,e[9]=a*i+c*n,e[10]=o*i+d*n,e[11]=f*i+u*n,e}function Os(e,r,t){var i=Math.sin(t),n=Math.cos(t),s=r[0],a=r[1],o=r[2],f=r[3],l=r[4],c=r[5],d=r[6],u=r[7];return r!==e&&(e[8]=r[8],e[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15]),e[0]=s*n+l*i,e[1]=a*n+c*i,e[2]=o*n+d*i,e[3]=f*n+u*i,e[4]=l*n-s*i,e[5]=c*n-a*i,e[6]=d*n-o*i,e[7]=u*n-f*i,e}function Ns(e,r){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function ks(e,r){return e[0]=r[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=r[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=r[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ds(e,r,t){var i=t[0],n=t[1],s=t[2],a=Math.sqrt(i*i+n*n+s*s),o,f,l;return a<D?null:(a=1/a,i*=a,n*=a,s*=a,o=Math.sin(r),f=Math.cos(r),l=1-f,e[0]=i*i*l+f,e[1]=n*i*l+s*o,e[2]=s*i*l-n*o,e[3]=0,e[4]=i*n*l-s*o,e[5]=n*n*l+f,e[6]=s*n*l+i*o,e[7]=0,e[8]=i*s*l+n*o,e[9]=n*s*l-i*o,e[10]=s*s*l+f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function Fs(e,r){var t=Math.sin(r),i=Math.cos(r);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=t,e[7]=0,e[8]=0,e[9]=-t,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Bs(e,r){var t=Math.sin(r),i=Math.cos(r);return e[0]=i,e[1]=0,e[2]=-t,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=t,e[9]=0,e[10]=i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Cs(e,r){var t=Math.sin(r),i=Math.cos(r);return e[0]=i,e[1]=t,e[2]=0,e[3]=0,e[4]=-t,e[5]=i,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ai(e,r,t){var i=r[0],n=r[1],s=r[2],a=r[3],o=i+i,f=n+n,l=s+s,c=i*o,d=i*f,u=i*l,h=n*f,g=n*l,v=s*l,m=a*o,p=a*f,w=a*l;return e[0]=1-(h+v),e[1]=d+w,e[2]=u-p,e[3]=0,e[4]=d-w,e[5]=1-(c+v),e[6]=g+m,e[7]=0,e[8]=u+p,e[9]=g-m,e[10]=1-(c+h),e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function Ps(e,r){var t=new J(3),i=-r[0],n=-r[1],s=-r[2],a=r[3],o=r[4],f=r[5],l=r[6],c=r[7],d=i*i+n*n+s*s+a*a;return d>0?(t[0]=(o*a+c*i+f*s-l*n)*2/d,t[1]=(f*a+c*n+l*i-o*s)*2/d,t[2]=(l*a+c*s+o*n-f*i)*2/d):(t[0]=(o*a+c*i+f*s-l*n)*2,t[1]=(f*a+c*n+l*i-o*s)*2,t[2]=(l*a+c*s+o*n-f*i)*2),ai(e,r,t),e}function Us(e,r){return e[0]=r[12],e[1]=r[13],e[2]=r[14],e}function oi(e,r){var t=r[0],i=r[1],n=r[2],s=r[4],a=r[5],o=r[6],f=r[8],l=r[9],c=r[10];return e[0]=Math.sqrt(t*t+i*i+n*n),e[1]=Math.sqrt(s*s+a*a+o*o),e[2]=Math.sqrt(f*f+l*l+c*c),e}function Gs(e,r){var t=new J(3);oi(t,r);var i=1/t[0],n=1/t[1],s=1/t[2],a=r[0]*i,o=r[1]*n,f=r[2]*s,l=r[4]*i,c=r[5]*n,d=r[6]*s,u=r[8]*i,h=r[9]*n,g=r[10]*s,v=a+c+g,m=0;return v>0?(m=Math.sqrt(v+1)*2,e[3]=.25*m,e[0]=(d-h)/m,e[1]=(u-f)/m,e[2]=(o-l)/m):a>c&&a>g?(m=Math.sqrt(1+a-c-g)*2,e[3]=(d-h)/m,e[0]=.25*m,e[1]=(o+l)/m,e[2]=(u+f)/m):c>g?(m=Math.sqrt(1+c-a-g)*2,e[3]=(u-f)/m,e[0]=(o+l)/m,e[1]=.25*m,e[2]=(d+h)/m):(m=Math.sqrt(1+g-a-c)*2,e[3]=(o-l)/m,e[0]=(u+f)/m,e[1]=(d+h)/m,e[2]=.25*m),e}function Hs(e,r,t,i){r[0]=i[12],r[1]=i[13],r[2]=i[14];var n=i[0],s=i[1],a=i[2],o=i[4],f=i[5],l=i[6],c=i[8],d=i[9],u=i[10];t[0]=Math.sqrt(n*n+s*s+a*a),t[1]=Math.sqrt(o*o+f*f+l*l),t[2]=Math.sqrt(c*c+d*d+u*u);var h=1/t[0],g=1/t[1],v=1/t[2],m=n*h,p=s*g,w=a*v,y=o*h,_=f*g,x=l*v,S=c*h,A=d*g,E=u*v,M=m+_+E,b=0;return M>0?(b=Math.sqrt(M+1)*2,e[3]=.25*b,e[0]=(x-A)/b,e[1]=(S-w)/b,e[2]=(p-y)/b):m>_&&m>E?(b=Math.sqrt(1+m-_-E)*2,e[3]=(x-A)/b,e[0]=.25*b,e[1]=(p+y)/b,e[2]=(S+w)/b):_>E?(b=Math.sqrt(1+_-m-E)*2,e[3]=(S-w)/b,e[0]=(p+y)/b,e[1]=.25*b,e[2]=(x+A)/b):(b=Math.sqrt(1+E-m-_)*2,e[3]=(p-y)/b,e[0]=(S+w)/b,e[1]=(x+A)/b,e[2]=.25*b),e}function Vs(e,r,t,i){var n=r[0],s=r[1],a=r[2],o=r[3],f=n+n,l=s+s,c=a+a,d=n*f,u=n*l,h=n*c,g=s*l,v=s*c,m=a*c,p=o*f,w=o*l,y=o*c,_=i[0],x=i[1],S=i[2];return e[0]=(1-(g+m))*_,e[1]=(u+y)*_,e[2]=(h-w)*_,e[3]=0,e[4]=(u-y)*x,e[5]=(1-(d+m))*x,e[6]=(v+p)*x,e[7]=0,e[8]=(h+w)*S,e[9]=(v-p)*S,e[10]=(1-(d+g))*S,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function Ws(e,r,t,i,n){var s=r[0],a=r[1],o=r[2],f=r[3],l=s+s,c=a+a,d=o+o,u=s*l,h=s*c,g=s*d,v=a*c,m=a*d,p=o*d,w=f*l,y=f*c,_=f*d,x=i[0],S=i[1],A=i[2],E=n[0],M=n[1],b=n[2],L=(1-(v+p))*x,O=(h+_)*x,N=(g-y)*x,R=(h-_)*S,C=(1-(u+p))*S,ze=(m+w)*S,Ie=(g+y)*A,ir=(m-w)*A,nr=(1-(u+v))*A;return e[0]=L,e[1]=O,e[2]=N,e[3]=0,e[4]=R,e[5]=C,e[6]=ze,e[7]=0,e[8]=Ie,e[9]=ir,e[10]=nr,e[11]=0,e[12]=t[0]+E-(L*E+R*M+Ie*b),e[13]=t[1]+M-(O*E+C*M+ir*b),e[14]=t[2]+b-(N*E+ze*M+nr*b),e[15]=1,e}function Xs(e,r){var t=r[0],i=r[1],n=r[2],s=r[3],a=t+t,o=i+i,f=n+n,l=t*a,c=i*a,d=i*o,u=n*a,h=n*o,g=n*f,v=s*a,m=s*o,p=s*f;return e[0]=1-d-g,e[1]=c+p,e[2]=u-m,e[3]=0,e[4]=c-p,e[5]=1-l-g,e[6]=h+v,e[7]=0,e[8]=u+m,e[9]=h-v,e[10]=1-l-d,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Ks(e,r,t,i,n,s,a){var o=1/(t-r),f=1/(n-i),l=1/(s-a);return e[0]=s*2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s*2*f,e[6]=0,e[7]=0,e[8]=(t+r)*o,e[9]=(n+i)*f,e[10]=(a+s)*l,e[11]=-1,e[12]=0,e[13]=0,e[14]=a*s*2*l,e[15]=0,e}function li(e,r,t,i,n){var s=1/Math.tan(r/2);if(e[0]=s/t,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,n!=null&&n!==1/0){var a=1/(i-n);e[10]=(n+i)*a,e[14]=2*n*i*a}else e[10]=-1,e[14]=-2*i;return e}var $s=li;function Zs(e,r,t,i,n){var s=1/Math.tan(r/2);if(e[0]=s/t,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,n!=null&&n!==1/0){var a=1/(i-n);e[10]=n*a,e[14]=n*i*a}else e[10]=-1,e[14]=-i;return e}function Ys(e,r,t,i){var n=Math.tan(r.upDegrees*Math.PI/180),s=Math.tan(r.downDegrees*Math.PI/180),a=Math.tan(r.leftDegrees*Math.PI/180),o=Math.tan(r.rightDegrees*Math.PI/180),f=2/(a+o),l=2/(n+s);return e[0]=f,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=l,e[6]=0,e[7]=0,e[8]=-((a-o)*f*.5),e[9]=(n-s)*l*.5,e[10]=i/(t-i),e[11]=-1,e[12]=0,e[13]=0,e[14]=i*t/(t-i),e[15]=0,e}function ci(e,r,t,i,n,s,a){var o=1/(r-t),f=1/(i-n),l=1/(s-a);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*f,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(r+t)*o,e[13]=(n+i)*f,e[14]=(a+s)*l,e[15]=1,e}var qs=ci;function js(e,r,t,i,n,s,a){var o=1/(r-t),f=1/(i-n),l=1/(s-a);return e[0]=-2*o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*f,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=l,e[11]=0,e[12]=(r+t)*o,e[13]=(n+i)*f,e[14]=s*l,e[15]=1,e}function Js(e,r,t,i){var n,s,a,o,f,l,c,d,u,h,g=r[0],v=r[1],m=r[2],p=i[0],w=i[1],y=i[2],_=t[0],x=t[1],S=t[2];return Math.abs(g-_)<D&&Math.abs(v-x)<D&&Math.abs(m-S)<D?ni(e):(c=g-_,d=v-x,u=m-S,h=1/Math.sqrt(c*c+d*d+u*u),c*=h,d*=h,u*=h,n=w*u-y*d,s=y*c-p*u,a=p*d-w*c,h=Math.sqrt(n*n+s*s+a*a),h?(h=1/h,n*=h,s*=h,a*=h):(n=0,s=0,a=0),o=d*a-u*s,f=u*n-c*a,l=c*s-d*n,h=Math.sqrt(o*o+f*f+l*l),h?(h=1/h,o*=h,f*=h,l*=h):(o=0,f=0,l=0),e[0]=n,e[1]=o,e[2]=c,e[3]=0,e[4]=s,e[5]=f,e[6]=d,e[7]=0,e[8]=a,e[9]=l,e[10]=u,e[11]=0,e[12]=-(n*g+s*v+a*m),e[13]=-(o*g+f*v+l*m),e[14]=-(c*g+d*v+u*m),e[15]=1,e)}function Qs(e,r,t,i){var n=r[0],s=r[1],a=r[2],o=i[0],f=i[1],l=i[2],c=n-t[0],d=s-t[1],u=a-t[2],h=c*c+d*d+u*u;h>0&&(h=1/Math.sqrt(h),c*=h,d*=h,u*=h);var g=f*u-l*d,v=l*c-o*u,m=o*d-f*c;return h=g*g+v*v+m*m,h>0&&(h=1/Math.sqrt(h),g*=h,v*=h,m*=h),e[0]=g,e[1]=v,e[2]=m,e[3]=0,e[4]=d*m-u*v,e[5]=u*g-c*m,e[6]=c*v-d*g,e[7]=0,e[8]=c,e[9]=d,e[10]=u,e[11]=0,e[12]=n,e[13]=s,e[14]=a,e[15]=1,e}function ea(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}function ta(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]+e[3]*e[3]+e[4]*e[4]+e[5]*e[5]+e[6]*e[6]+e[7]*e[7]+e[8]*e[8]+e[9]*e[9]+e[10]*e[10]+e[11]*e[11]+e[12]*e[12]+e[13]*e[13]+e[14]*e[14]+e[15]*e[15])}function ra(e,r,t){return e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e[3]=r[3]+t[3],e[4]=r[4]+t[4],e[5]=r[5]+t[5],e[6]=r[6]+t[6],e[7]=r[7]+t[7],e[8]=r[8]+t[8],e[9]=r[9]+t[9],e[10]=r[10]+t[10],e[11]=r[11]+t[11],e[12]=r[12]+t[12],e[13]=r[13]+t[13],e[14]=r[14]+t[14],e[15]=r[15]+t[15],e}function hi(e,r,t){return e[0]=r[0]-t[0],e[1]=r[1]-t[1],e[2]=r[2]-t[2],e[3]=r[3]-t[3],e[4]=r[4]-t[4],e[5]=r[5]-t[5],e[6]=r[6]-t[6],e[7]=r[7]-t[7],e[8]=r[8]-t[8],e[9]=r[9]-t[9],e[10]=r[10]-t[10],e[11]=r[11]-t[11],e[12]=r[12]-t[12],e[13]=r[13]-t[13],e[14]=r[14]-t[14],e[15]=r[15]-t[15],e}function ia(e,r,t){return e[0]=r[0]*t,e[1]=r[1]*t,e[2]=r[2]*t,e[3]=r[3]*t,e[4]=r[4]*t,e[5]=r[5]*t,e[6]=r[6]*t,e[7]=r[7]*t,e[8]=r[8]*t,e[9]=r[9]*t,e[10]=r[10]*t,e[11]=r[11]*t,e[12]=r[12]*t,e[13]=r[13]*t,e[14]=r[14]*t,e[15]=r[15]*t,e}function na(e,r,t,i){return e[0]=r[0]+t[0]*i,e[1]=r[1]+t[1]*i,e[2]=r[2]+t[2]*i,e[3]=r[3]+t[3]*i,e[4]=r[4]+t[4]*i,e[5]=r[5]+t[5]*i,e[6]=r[6]+t[6]*i,e[7]=r[7]+t[7]*i,e[8]=r[8]+t[8]*i,e[9]=r[9]+t[9]*i,e[10]=r[10]+t[10]*i,e[11]=r[11]+t[11]*i,e[12]=r[12]+t[12]*i,e[13]=r[13]+t[13]*i,e[14]=r[14]+t[14]*i,e[15]=r[15]+t[15]*i,e}function sa(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]&&e[4]===r[4]&&e[5]===r[5]&&e[6]===r[6]&&e[7]===r[7]&&e[8]===r[8]&&e[9]===r[9]&&e[10]===r[10]&&e[11]===r[11]&&e[12]===r[12]&&e[13]===r[13]&&e[14]===r[14]&&e[15]===r[15]}function aa(e,r){var t=e[0],i=e[1],n=e[2],s=e[3],a=e[4],o=e[5],f=e[6],l=e[7],c=e[8],d=e[9],u=e[10],h=e[11],g=e[12],v=e[13],m=e[14],p=e[15],w=r[0],y=r[1],_=r[2],x=r[3],S=r[4],A=r[5],E=r[6],M=r[7],b=r[8],L=r[9],O=r[10],N=r[11],R=r[12],C=r[13],ze=r[14],Ie=r[15];return Math.abs(t-w)<=D*Math.max(1,Math.abs(t),Math.abs(w))&&Math.abs(i-y)<=D*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(n-_)<=D*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(s-x)<=D*Math.max(1,Math.abs(s),Math.abs(x))&&Math.abs(a-S)<=D*Math.max(1,Math.abs(a),Math.abs(S))&&Math.abs(o-A)<=D*Math.max(1,Math.abs(o),Math.abs(A))&&Math.abs(f-E)<=D*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(l-M)<=D*Math.max(1,Math.abs(l),Math.abs(M))&&Math.abs(c-b)<=D*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(d-L)<=D*Math.max(1,Math.abs(d),Math.abs(L))&&Math.abs(u-O)<=D*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(h-N)<=D*Math.max(1,Math.abs(h),Math.abs(N))&&Math.abs(g-R)<=D*Math.max(1,Math.abs(g),Math.abs(R))&&Math.abs(v-C)<=D*Math.max(1,Math.abs(v),Math.abs(C))&&Math.abs(m-ze)<=D*Math.max(1,Math.abs(m),Math.abs(ze))&&Math.abs(p-Ie)<=D*Math.max(1,Math.abs(p),Math.abs(Ie))}var oa=si,la=hi,ca={};Qr(ca,{add:()=>ga,angle:()=>Ba,bezier:()=>Ra,ceil:()=>ma,clone:()=>ha,copy:()=>ua,create:()=>fi,cross:()=>Ea,dist:()=>Xa,distance:()=>_i,div:()=>Wa,divide:()=>mi,dot:()=>Yt,equals:()=>Ga,exactEquals:()=>Ua,floor:()=>_a,forEach:()=>Ya,fromValues:()=>fa,hermite:()=>Ta,inverse:()=>xa,len:()=>$a,length:()=>ui,lerp:()=>Ma,max:()=>pa,min:()=>va,mul:()=>Va,multiply:()=>gi,negate:()=>Aa,normalize:()=>ba,random:()=>za,rotateX:()=>ka,rotateY:()=>Da,rotateZ:()=>Fa,round:()=>wa,scale:()=>ya,scaleAndAdd:()=>Sa,set:()=>da,slerp:()=>La,sqrDist:()=>Ka,sqrLen:()=>Za,squaredDistance:()=>vi,squaredLength:()=>pi,str:()=>Pa,sub:()=>Ha,subtract:()=>di,transformMat3:()=>Oa,transformMat4:()=>Ia,transformQuat:()=>Na,zero:()=>Ca});function fi(){var e=new J(3);return J!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function ha(e){var r=new J(3);return r[0]=e[0],r[1]=e[1],r[2]=e[2],r}function ui(e){var r=e[0],t=e[1],i=e[2];return Math.sqrt(r*r+t*t+i*i)}function fa(e,r,t){var i=new J(3);return i[0]=e,i[1]=r,i[2]=t,i}function ua(e,r){return e[0]=r[0],e[1]=r[1],e[2]=r[2],e}function da(e,r,t,i){return e[0]=r,e[1]=t,e[2]=i,e}function ga(e,r,t){return e[0]=r[0]+t[0],e[1]=r[1]+t[1],e[2]=r[2]+t[2],e}function di(e,r,t){return e[0]=r[0]-t[0],e[1]=r[1]-t[1],e[2]=r[2]-t[2],e}function gi(e,r,t){return e[0]=r[0]*t[0],e[1]=r[1]*t[1],e[2]=r[2]*t[2],e}function mi(e,r,t){return e[0]=r[0]/t[0],e[1]=r[1]/t[1],e[2]=r[2]/t[2],e}function ma(e,r){return e[0]=Math.ceil(r[0]),e[1]=Math.ceil(r[1]),e[2]=Math.ceil(r[2]),e}function _a(e,r){return e[0]=Math.floor(r[0]),e[1]=Math.floor(r[1]),e[2]=Math.floor(r[2]),e}function va(e,r,t){return e[0]=Math.min(r[0],t[0]),e[1]=Math.min(r[1],t[1]),e[2]=Math.min(r[2],t[2]),e}function pa(e,r,t){return e[0]=Math.max(r[0],t[0]),e[1]=Math.max(r[1],t[1]),e[2]=Math.max(r[2],t[2]),e}function wa(e,r){return e[0]=St(r[0]),e[1]=St(r[1]),e[2]=St(r[2]),e}function ya(e,r,t){return e[0]=r[0]*t,e[1]=r[1]*t,e[2]=r[2]*t,e}function Sa(e,r,t,i){return e[0]=r[0]+t[0]*i,e[1]=r[1]+t[1]*i,e[2]=r[2]+t[2]*i,e}function _i(e,r){var t=r[0]-e[0],i=r[1]-e[1],n=r[2]-e[2];return Math.sqrt(t*t+i*i+n*n)}function vi(e,r){var t=r[0]-e[0],i=r[1]-e[1],n=r[2]-e[2];return t*t+i*i+n*n}function pi(e){var r=e[0],t=e[1],i=e[2];return r*r+t*t+i*i}function Aa(e,r){return e[0]=-r[0],e[1]=-r[1],e[2]=-r[2],e}function xa(e,r){return e[0]=1/r[0],e[1]=1/r[1],e[2]=1/r[2],e}function ba(e,r){var t=r[0],i=r[1],n=r[2],s=t*t+i*i+n*n;return s>0&&(s=1/Math.sqrt(s)),e[0]=r[0]*s,e[1]=r[1]*s,e[2]=r[2]*s,e}function Yt(e,r){return e[0]*r[0]+e[1]*r[1]+e[2]*r[2]}function Ea(e,r,t){var i=r[0],n=r[1],s=r[2],a=t[0],o=t[1],f=t[2];return e[0]=n*f-s*o,e[1]=s*a-i*f,e[2]=i*o-n*a,e}function Ma(e,r,t,i){var n=r[0],s=r[1],a=r[2];return e[0]=n+i*(t[0]-n),e[1]=s+i*(t[1]-s),e[2]=a+i*(t[2]-a),e}function La(e,r,t,i){var n=Math.acos(Math.min(Math.max(Yt(r,t),-1),1)),s=Math.sin(n),a=Math.sin((1-i)*n)/s,o=Math.sin(i*n)/s;return e[0]=a*r[0]+o*t[0],e[1]=a*r[1]+o*t[1],e[2]=a*r[2]+o*t[2],e}function Ta(e,r,t,i,n,s){var a=s*s,o=a*(2*s-3)+1,f=a*(s-2)+s,l=a*(s-1),c=a*(3-2*s);return e[0]=r[0]*o+t[0]*f+i[0]*l+n[0]*c,e[1]=r[1]*o+t[1]*f+i[1]*l+n[1]*c,e[2]=r[2]*o+t[2]*f+i[2]*l+n[2]*c,e}function Ra(e,r,t,i,n,s){var a=1-s,o=a*a,f=s*s,l=o*a,c=3*s*o,d=3*f*a,u=f*s;return e[0]=r[0]*l+t[0]*c+i[0]*d+n[0]*u,e[1]=r[1]*l+t[1]*c+i[1]*d+n[1]*u,e[2]=r[2]*l+t[2]*c+i[2]*d+n[2]*u,e}function za(e,r){r=r===void 0?1:r;var t=ur()*2*Math.PI,i=ur()*2-1,n=Math.sqrt(1-i*i)*r;return e[0]=Math.cos(t)*n,e[1]=Math.sin(t)*n,e[2]=i*r,e}function Ia(e,r,t){var i=r[0],n=r[1],s=r[2],a=t[3]*i+t[7]*n+t[11]*s+t[15];return a=a||1,e[0]=(t[0]*i+t[4]*n+t[8]*s+t[12])/a,e[1]=(t[1]*i+t[5]*n+t[9]*s+t[13])/a,e[2]=(t[2]*i+t[6]*n+t[10]*s+t[14])/a,e}function Oa(e,r,t){var i=r[0],n=r[1],s=r[2];return e[0]=i*t[0]+n*t[3]+s*t[6],e[1]=i*t[1]+n*t[4]+s*t[7],e[2]=i*t[2]+n*t[5]+s*t[8],e}function Na(e,r,t){var i=t[0],n=t[1],s=t[2],a=t[3],o=r[0],f=r[1],l=r[2],c=n*l-s*f,d=s*o-i*l,u=i*f-n*o;return c=c+c,d=d+d,u=u+u,e[0]=o+a*c+n*u-s*d,e[1]=f+a*d+s*c-i*u,e[2]=l+a*u+i*d-n*c,e}function ka(e,r,t,i){var n=[],s=[];return n[0]=r[0]-t[0],n[1]=r[1]-t[1],n[2]=r[2]-t[2],s[0]=n[0],s[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),s[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=s[0]+t[0],e[1]=s[1]+t[1],e[2]=s[2]+t[2],e}function Da(e,r,t,i){var n=[],s=[];return n[0]=r[0]-t[0],n[1]=r[1]-t[1],n[2]=r[2]-t[2],s[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),s[1]=n[1],s[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=s[0]+t[0],e[1]=s[1]+t[1],e[2]=s[2]+t[2],e}function Fa(e,r,t,i){var n=[],s=[];return n[0]=r[0]-t[0],n[1]=r[1]-t[1],n[2]=r[2]-t[2],s[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),s[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),s[2]=n[2],e[0]=s[0]+t[0],e[1]=s[1]+t[1],e[2]=s[2]+t[2],e}function Ba(e,r){var t=e[0],i=e[1],n=e[2],s=r[0],a=r[1],o=r[2],f=Math.sqrt((t*t+i*i+n*n)*(s*s+a*a+o*o)),l=f&&Yt(e,r)/f;return Math.acos(Math.min(Math.max(l,-1),1))}function Ca(e){return e[0]=0,e[1]=0,e[2]=0,e}function Pa(e){return"vec3("+e[0]+", "+e[1]+", "+e[2]+")"}function Ua(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]}function Ga(e,r){var t=e[0],i=e[1],n=e[2],s=r[0],a=r[1],o=r[2];return Math.abs(t-s)<=D*Math.max(1,Math.abs(t),Math.abs(s))&&Math.abs(i-a)<=D*Math.max(1,Math.abs(i),Math.abs(a))&&Math.abs(n-o)<=D*Math.max(1,Math.abs(n),Math.abs(o))}var Ha=di,Va=gi,Wa=mi,Xa=_i,Ka=vi,$a=ui,Za=pi,Ya=(function(){var e=fi();return function(r,t,i,n,s,a){var o,f;for(t||(t=3),i||(i=0),n?f=Math.min(n*t+i,r.length):f=r.length,o=i;o<f;o+=t)e[0]=r[o],e[1]=r[o+1],e[2]=r[o+2],s(e,e,a),r[o]=e[0],r[o+1]=e[1],r[o+2]=e[2];return r}})();var qa=4,dr=0,gr=1,ja=2;function Me(e){let r=e.length;for(;--r>=0;)e[r]=0}var Ja=0,wi=1,Qa=2,eo=3,to=258,qt=29,Ke=256,Ce=Ke+1+qt,Ae=30,jt=19,yi=2*Ce+1,ue=15,At=16,ro=7,Jt=256,Si=16,Ai=17,xi=18,Bt=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]),nt=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]),io=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bi=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),no=512,te=new Array((Ce+2)*2);Me(te);var De=new Array(Ae*2);Me(De);var Pe=new Array(no);Me(Pe);var Ue=new Array(to-eo+1);Me(Ue);var Qt=new Array(qt);Me(Qt);var st=new Array(Ae);Me(st);function xt(e,r,t,i,n){this.static_tree=e,this.extra_bits=r,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=e&&e.length}var Ei,Mi,Li;function bt(e,r){this.dyn_tree=e,this.max_code=0,this.stat_desc=r}var Ti=e=>e<256?Pe[e]:Pe[256+(e>>>7)],Ge=(e,r)=>{e.pending_buf[e.pending++]=r&255,e.pending_buf[e.pending++]=r>>>8&255},H=(e,r,t)=>{e.bi_valid>At-t?(e.bi_buf|=r<<e.bi_valid&65535,Ge(e,e.bi_buf),e.bi_buf=r>>At-e.bi_valid,e.bi_valid+=t-At):(e.bi_buf|=r<<e.bi_valid&65535,e.bi_valid+=t)},Y=(e,r,t)=>{H(e,t[r*2],t[r*2+1])},Ri=(e,r)=>{let t=0;do t|=e&1,e>>>=1,t<<=1;while(--r>0);return t>>>1},so=e=>{e.bi_valid===16?(Ge(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)},ao=(e,r)=>{let t=r.dyn_tree,i=r.max_code,n=r.stat_desc.static_tree,s=r.stat_desc.has_stree,a=r.stat_desc.extra_bits,o=r.stat_desc.extra_base,f=r.stat_desc.max_length,l,c,d,u,h,g,v=0;for(u=0;u<=ue;u++)e.bl_count[u]=0;for(t[e.heap[e.heap_max]*2+1]=0,l=e.heap_max+1;l<yi;l++)c=e.heap[l],u=t[t[c*2+1]*2+1]+1,u>f&&(u=f,v++),t[c*2+1]=u,!(c>i)&&(e.bl_count[u]++,h=0,c>=o&&(h=a[c-o]),g=t[c*2],e.opt_len+=g*(u+h),s&&(e.static_len+=g*(n[c*2+1]+h)));if(v!==0){do{for(u=f-1;e.bl_count[u]===0;)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[f]--,v-=2}while(v>0);for(u=f;u!==0;u--)for(c=e.bl_count[u];c!==0;)d=e.heap[--l],!(d>i)&&(t[d*2+1]!==u&&(e.opt_len+=(u-t[d*2+1])*t[d*2],t[d*2+1]=u),c--)}},zi=(e,r,t)=>{let i=new Array(ue+1),n=0,s,a;for(s=1;s<=ue;s++)n=n+t[s-1]<<1,i[s]=n;for(a=0;a<=r;a++){let o=e[a*2+1];o!==0&&(e[a*2]=Ri(i[o]++,o))}},oo=()=>{let e,r,t,i,n,s=new Array(ue+1);for(t=0,i=0;i<qt-1;i++)for(Qt[i]=t,e=0;e<1<<Bt[i];e++)Ue[t++]=i;for(Ue[t-1]=i,n=0,i=0;i<16;i++)for(st[i]=n,e=0;e<1<<nt[i];e++)Pe[n++]=i;for(n>>=7;i<Ae;i++)for(st[i]=n<<7,e=0;e<1<<nt[i]-7;e++)Pe[256+n++]=i;for(r=0;r<=ue;r++)s[r]=0;for(e=0;e<=143;)te[e*2+1]=8,e++,s[8]++;for(;e<=255;)te[e*2+1]=9,e++,s[9]++;for(;e<=279;)te[e*2+1]=7,e++,s[7]++;for(;e<=287;)te[e*2+1]=8,e++,s[8]++;for(zi(te,Ce+1,s),e=0;e<Ae;e++)De[e*2+1]=5,De[e*2]=Ri(e,5);Ei=new xt(te,Bt,Ke+1,Ce,ue),Mi=new xt(De,nt,0,Ae,ue),Li=new xt(new Array(0),io,0,jt,ro)},Ii=e=>{let r;for(r=0;r<Ce;r++)e.dyn_ltree[r*2]=0;for(r=0;r<Ae;r++)e.dyn_dtree[r*2]=0;for(r=0;r<jt;r++)e.bl_tree[r*2]=0;e.dyn_ltree[Jt*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oi=e=>{e.bi_valid>8?Ge(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},mr=(e,r,t,i)=>{let n=r*2,s=t*2;return e[n]<e[s]||e[n]===e[s]&&i[r]<=i[t]},Et=(e,r,t)=>{let i=e.heap[t],n=t<<1;for(;n<=e.heap_len&&(n<e.heap_len&&mr(r,e.heap[n+1],e.heap[n],e.depth)&&n++,!mr(r,i,e.heap[n],e.depth));)e.heap[t]=e.heap[n],t=n,n<<=1;e.heap[t]=i},_r=(e,r,t)=>{let i,n,s=0,a,o;if(e.sym_next!==0)do i=e.pending_buf[e.sym_buf+s++]&255,i+=(e.pending_buf[e.sym_buf+s++]&255)<<8,n=e.pending_buf[e.sym_buf+s++],i===0?Y(e,n,r):(a=Ue[n],Y(e,a+Ke+1,r),o=Bt[a],o!==0&&(n-=Qt[a],H(e,n,o)),i--,a=Ti(i),Y(e,a,t),o=nt[a],o!==0&&(i-=st[a],H(e,i,o)));while(s<e.sym_next);Y(e,Jt,r)},Ct=(e,r)=>{let t=r.dyn_tree,i=r.stat_desc.static_tree,n=r.stat_desc.has_stree,s=r.stat_desc.elems,a,o,f=-1,l;for(e.heap_len=0,e.heap_max=yi,a=0;a<s;a++)t[a*2]!==0?(e.heap[++e.heap_len]=f=a,e.depth[a]=0):t[a*2+1]=0;for(;e.heap_len<2;)l=e.heap[++e.heap_len]=f<2?++f:0,t[l*2]=1,e.depth[l]=0,e.opt_len--,n&&(e.static_len-=i[l*2+1]);for(r.max_code=f,a=e.heap_len>>1;a>=1;a--)Et(e,t,a);l=s;do a=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Et(e,t,1),o=e.heap[1],e.heap[--e.heap_max]=a,e.heap[--e.heap_max]=o,t[l*2]=t[a*2]+t[o*2],e.depth[l]=(e.depth[a]>=e.depth[o]?e.depth[a]:e.depth[o])+1,t[a*2+1]=t[o*2+1]=l,e.heap[1]=l++,Et(e,t,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],ao(e,r),zi(t,f,e.bl_count)},vr=(e,r,t)=>{let i,n=-1,s,a=r[1],o=0,f=7,l=4;for(a===0&&(f=138,l=3),r[(t+1)*2+1]=65535,i=0;i<=t;i++)s=a,a=r[(i+1)*2+1],!(++o<f&&s===a)&&(o<l?e.bl_tree[s*2]+=o:s!==0?(s!==n&&e.bl_tree[s*2]++,e.bl_tree[Si*2]++):o<=10?e.bl_tree[Ai*2]++:e.bl_tree[xi*2]++,o=0,n=s,a===0?(f=138,l=3):s===a?(f=6,l=3):(f=7,l=4))},pr=(e,r,t)=>{let i,n=-1,s,a=r[1],o=0,f=7,l=4;for(a===0&&(f=138,l=3),i=0;i<=t;i++)if(s=a,a=r[(i+1)*2+1],!(++o<f&&s===a)){if(o<l)do Y(e,s,e.bl_tree);while(--o!==0);else s!==0?(s!==n&&(Y(e,s,e.bl_tree),o--),Y(e,Si,e.bl_tree),H(e,o-3,2)):o<=10?(Y(e,Ai,e.bl_tree),H(e,o-3,3)):(Y(e,xi,e.bl_tree),H(e,o-11,7));o=0,n=s,a===0?(f=138,l=3):s===a?(f=6,l=3):(f=7,l=4)}},lo=e=>{let r;for(vr(e,e.dyn_ltree,e.l_desc.max_code),vr(e,e.dyn_dtree,e.d_desc.max_code),Ct(e,e.bl_desc),r=jt-1;r>=3&&e.bl_tree[bi[r]*2+1]===0;r--);return e.opt_len+=3*(r+1)+5+5+4,r},co=(e,r,t,i)=>{let n;for(H(e,r-257,5),H(e,t-1,5),H(e,i-4,4),n=0;n<i;n++)H(e,e.bl_tree[bi[n]*2+1],3);pr(e,e.dyn_ltree,r-1),pr(e,e.dyn_dtree,t-1)},ho=e=>{let r=4093624447,t;for(t=0;t<=31;t++,r>>>=1)if(r&1&&e.dyn_ltree[t*2]!==0)return dr;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return gr;for(t=32;t<Ke;t++)if(e.dyn_ltree[t*2]!==0)return gr;return dr},wr=!1,fo=e=>{wr||(oo(),wr=!0),e.l_desc=new bt(e.dyn_ltree,Ei),e.d_desc=new bt(e.dyn_dtree,Mi),e.bl_desc=new bt(e.bl_tree,Li),e.bi_buf=0,e.bi_valid=0,Ii(e)},Ni=(e,r,t,i)=>{H(e,(Ja<<1)+(i?1:0),3),Oi(e),Ge(e,t),Ge(e,~t),t&&e.pending_buf.set(e.window.subarray(r,r+t),e.pending),e.pending+=t},uo=e=>{H(e,wi<<1,3),Y(e,Jt,te),so(e)},go=(e,r,t,i)=>{let n,s,a=0;e.level>0?(e.strm.data_type===ja&&(e.strm.data_type=ho(e)),Ct(e,e.l_desc),Ct(e,e.d_desc),a=lo(e),n=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=n&&(n=s)):n=s=t+5,t+4<=n&&r!==-1?Ni(e,r,t,i):e.strategy===qa||s===n?(H(e,(wi<<1)+(i?1:0),3),_r(e,te,De)):(H(e,(Qa<<1)+(i?1:0),3),co(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),_r(e,e.dyn_ltree,e.dyn_dtree)),Ii(e),i&&Oi(e)},mo=(e,r,t)=>(e.pending_buf[e.sym_buf+e.sym_next++]=r,e.pending_buf[e.sym_buf+e.sym_next++]=r>>8,e.pending_buf[e.sym_buf+e.sym_next++]=t,r===0?e.dyn_ltree[t*2]++:(e.matches++,r--,e.dyn_ltree[(Ue[t]+Ke+1)*2]++,e.dyn_dtree[Ti(r)*2]++),e.sym_next===e.sym_end),_o=fo,vo=Ni,po=go,wo=mo,yo=uo,So={_tr_init:_o,_tr_stored_block:vo,_tr_flush_block:po,_tr_tally:wo,_tr_align:yo},Ao=(e,r,t,i)=>{let n=e&65535|0,s=e>>>16&65535|0,a=0;for(;t!==0;){a=t>2e3?2e3:t,t-=a;do n=n+r[i++]|0,s=s+n|0;while(--a);n%=65521,s%=65521}return n|s<<16|0},He=Ao,xo=()=>{let e,r=[];for(var t=0;t<256;t++){e=t;for(var i=0;i<8;i++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r},bo=new Uint32Array(xo()),Eo=(e,r,t,i)=>{let n=bo,s=i+t;e^=-1;for(let a=i;a<s;a++)e=e>>>8^n[(e^r[a])&255];return e^-1},F=Eo,me={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"},Le={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:Mo,_tr_stored_block:Pt,_tr_flush_block:Lo,_tr_tally:oe,_tr_align:To}=So,{Z_NO_FLUSH:le,Z_PARTIAL_FLUSH:Ro,Z_FULL_FLUSH:zo,Z_FINISH:X,Z_BLOCK:yr,Z_OK:B,Z_STREAM_END:Sr,Z_STREAM_ERROR:q,Z_DATA_ERROR:Io,Z_BUF_ERROR:Mt,Z_DEFAULT_COMPRESSION:Oo,Z_FILTERED:No,Z_HUFFMAN_ONLY:Qe,Z_RLE:ko,Z_FIXED:Do,Z_DEFAULT_STRATEGY:Fo,Z_UNKNOWN:Bo,Z_DEFLATED:ft}=Le,Co=9,Po=15,Uo=8,Go=29,Ho=256,Ut=Ho+1+Go,Vo=30,Wo=19,Xo=2*Ut+1,Ko=15,z=3,ae=258,j=ae+z+1,$o=32,be=42,er=57,Gt=69,Ht=73,Vt=91,Wt=103,de=113,Ne=666,G=1,Te=2,_e=3,Re=4,Zo=3,ge=(e,r)=>(e.msg=me[r],r),Ar=e=>e*2-(e>4?9:0),se=e=>{let r=e.length;for(;--r>=0;)e[r]=0},Yo=e=>{let r,t,i,n=e.w_size;r=e.hash_size,i=r;do t=e.head[--i],e.head[i]=t>=n?t-n:0;while(--r);r=n,i=r;do t=e.prev[--i],e.prev[i]=t>=n?t-n:0;while(--r)},qo=(e,r,t)=>(r<<e.hash_shift^t)&e.hash_mask,ce=qo,V=e=>{let r=e.state,t=r.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.output.set(r.pending_buf.subarray(r.pending_out,r.pending_out+t),e.next_out),e.next_out+=t,r.pending_out+=t,e.total_out+=t,e.avail_out-=t,r.pending-=t,r.pending===0&&(r.pending_out=0))},W=(e,r)=>{Lo(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,r),e.block_start=e.strstart,V(e.strm)},I=(e,r)=>{e.pending_buf[e.pending++]=r},Oe=(e,r)=>{e.pending_buf[e.pending++]=r>>>8&255,e.pending_buf[e.pending++]=r&255},Xt=(e,r,t,i)=>{let n=e.avail_in;return n>i&&(n=i),n===0?0:(e.avail_in-=n,r.set(e.input.subarray(e.next_in,e.next_in+n),t),e.state.wrap===1?e.adler=He(e.adler,r,n,t):e.state.wrap===2&&(e.adler=F(e.adler,r,n,t)),e.next_in+=n,e.total_in+=n,n)},ki=(e,r)=>{let t=e.max_chain_length,i=e.strstart,n,s,a=e.prev_length,o=e.nice_match,f=e.strstart>e.w_size-j?e.strstart-(e.w_size-j):0,l=e.window,c=e.w_mask,d=e.prev,u=e.strstart+ae,h=l[i+a-1],g=l[i+a];e.prev_length>=e.good_match&&(t>>=2),o>e.lookahead&&(o=e.lookahead);do if(n=r,!(l[n+a]!==g||l[n+a-1]!==h||l[n]!==l[i]||l[++n]!==l[i+1])){i+=2,n++;do;while(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]===l[++n]&&i<u);if(s=ae-(u-i),i=u-ae,s>a){if(e.match_start=r,a=s,s>=o)break;h=l[i+a-1],g=l[i+a]}}while((r=d[r&c])>f&&--t!==0);return a<=e.lookahead?a:e.lookahead},Ee=e=>{let r=e.w_size,t,i,n;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-j)&&(e.window.set(e.window.subarray(r,r+r-i),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,e.insert>e.strstart&&(e.insert=e.strstart),Yo(e),i+=r),e.strm.avail_in===0)break;if(t=Xt(e.strm,e.window,e.strstart+e.lookahead,i),e.lookahead+=t,e.lookahead+e.insert>=z)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=ce(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=ce(e,e.ins_h,e.window[n+z-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<z)););}while(e.lookahead<j&&e.strm.avail_in!==0)},Di=(e,r)=>{let t=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,i,n,s,a=0,o=e.strm.avail_in;do{if(i=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,n=e.strstart-e.block_start,i>n+e.strm.avail_in&&(i=n+e.strm.avail_in),i>s&&(i=s),i<t&&(i===0&&r!==X||r===le||i!==n+e.strm.avail_in)))break;a=r===X&&i===n+e.strm.avail_in?1:0,Pt(e,0,0,a),e.pending_buf[e.pending-4]=i,e.pending_buf[e.pending-3]=i>>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,V(e.strm),n&&(n>i&&(n=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,i-=n),i&&(Xt(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(a===0);return o-=e.strm.avail_in,o&&(o>=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<=o&&(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-o,e.strm.next_in),e.strstart),e.strstart+=o,e.insert+=o>e.w_size-e.insert?e.w_size-e.insert:o),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),a?Re:r!==le&&r!==X&&e.strm.avail_in===0&&e.strstart===e.block_start?Te:(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&&(Xt(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,t=s>e.w_size?e.w_size:s,n=e.strstart-e.block_start,(n>=t||(n||r===X)&&r!==le&&e.strm.avail_in===0&&n<=s)&&(i=n>s?s:n,a=r===X&&e.strm.avail_in===0&&i===n?1:0,Pt(e,e.block_start,i,a),e.block_start+=i,V(e.strm)),a?_e:G)},Lt=(e,r)=>{let t,i;for(;;){if(e.lookahead<j){if(Ee(e),e.lookahead<j&&r===le)return G;if(e.lookahead===0)break}if(t=0,e.lookahead>=z&&(e.ins_h=ce(e,e.ins_h,e.window[e.strstart+z-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),t!==0&&e.strstart-t<=e.w_size-j&&(e.match_length=ki(e,t)),e.match_length>=z)if(i=oe(e,e.strstart-e.match_start,e.match_length-z),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=z){e.match_length--;do e.strstart++,e.ins_h=ce(e,e.ins_h,e.window[e.strstart+z-1]),t=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=ce(e,e.ins_h,e.window[e.strstart+1]);else i=oe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(i&&(W(e,!1),e.strm.avail_out===0))return G}return e.insert=e.strstart<z-1?e.strstart:z-1,r===X?(W(e,!0),e.strm.avail_out===0?_e:Re):e.sym_next&&(W(e,!1),e.strm.avail_out===0)?G:Te},ye=(e,r)=>{let t,i,n;for(;;){if(e.lookahead<j){if(Ee(e),e.lookahead<j&&r===le)return G;if(e.lookahead===0)break}if(t=0,e.lookahead>=z&&(e.ins_h=ce(e,e.ins_h,e.window[e.strstart+z-1]),t=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=z-1,t!==0&&e.prev_length<e.max_lazy_match&&e.strstart-t<=e.w_size-j&&(e.match_length=ki(e,t),e.match_length<=5&&(e.strategy===No||e.match_length===z&&e.strstart-e.match_start>4096)&&(e.match_length=z-1)),e.prev_length>=z&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-z,i=oe(e,e.strstart-1-e.prev_match,e.prev_length-z),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=ce(e,e.ins_h,e.window[e.strstart+z-1]),t=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=z-1,e.strstart++,i&&(W(e,!1),e.strm.avail_out===0))return G}else if(e.match_available){if(i=oe(e,0,e.window[e.strstart-1]),i&&W(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return G}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(i=oe(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<z-1?e.strstart:z-1,r===X?(W(e,!0),e.strm.avail_out===0?_e:Re):e.sym_next&&(W(e,!1),e.strm.avail_out===0)?G:Te},jo=(e,r)=>{let t,i,n,s,a=e.window;for(;;){if(e.lookahead<=ae){if(Ee(e),e.lookahead<=ae&&r===le)return G;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=z&&e.strstart>0&&(n=e.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){s=e.strstart+ae;do;while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&n<s);e.match_length=ae-(s-n),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=z?(t=oe(e,1,e.match_length-z),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=oe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(W(e,!1),e.strm.avail_out===0))return G}return e.insert=0,r===X?(W(e,!0),e.strm.avail_out===0?_e:Re):e.sym_next&&(W(e,!1),e.strm.avail_out===0)?G:Te},Jo=(e,r)=>{let t;for(;;){if(e.lookahead===0&&(Ee(e),e.lookahead===0)){if(r===le)return G;break}if(e.match_length=0,t=oe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(W(e,!1),e.strm.avail_out===0))return G}return e.insert=0,r===X?(W(e,!0),e.strm.avail_out===0?_e:Re):e.sym_next&&(W(e,!1),e.strm.avail_out===0)?G:Te};function Z(e,r,t,i,n){this.good_length=e,this.max_lazy=r,this.nice_length=t,this.max_chain=i,this.func=n}var ke=[new Z(0,0,0,0,Di),new Z(4,4,8,4,Lt),new Z(4,5,16,8,Lt),new Z(4,6,32,32,Lt),new Z(4,4,16,16,ye),new Z(8,16,32,32,ye),new Z(8,16,128,128,ye),new Z(8,32,128,256,ye),new Z(32,128,258,1024,ye),new Z(32,258,258,4096,ye)],Qo=e=>{e.window_size=2*e.w_size,se(e.head),e.max_lazy_match=ke[e.level].max_lazy,e.good_match=ke[e.level].good_length,e.nice_match=ke[e.level].nice_length,e.max_chain_length=ke[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=z-1,e.match_available=0,e.ins_h=0};function el(){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=ft,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(Xo*2),this.dyn_dtree=new Uint16Array((2*Vo+1)*2),this.bl_tree=new Uint16Array((2*Wo+1)*2),se(this.dyn_ltree),se(this.dyn_dtree),se(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Ko+1),this.heap=new Uint16Array(2*Ut+1),se(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Ut+1),se(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 $e=e=>{if(!e)return 1;let r=e.state;return!r||r.strm!==e||r.status!==be&&r.status!==er&&r.status!==Gt&&r.status!==Ht&&r.status!==Vt&&r.status!==Wt&&r.status!==de&&r.status!==Ne?1:0},Fi=e=>{if($e(e))return ge(e,q);e.total_in=e.total_out=0,e.data_type=Bo;let r=e.state;return r.pending=0,r.pending_out=0,r.wrap<0&&(r.wrap=-r.wrap),r.status=r.wrap===2?er:r.wrap?be:de,e.adler=r.wrap===2?0:1,r.last_flush=-2,Mo(r),B},Bi=e=>{let r=Fi(e);return r===B&&Qo(e.state),r},tl=(e,r)=>$e(e)||e.state.wrap!==2?q:(e.state.gzhead=r,B),Ci=(e,r,t,i,n,s)=>{if(!e)return q;let a=1;if(r===Oo&&(r=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>Co||t!==ft||i<8||i>15||r<0||r>9||s<0||s>Do||i===8&&a!==1)return ge(e,q);i===8&&(i=9);let o=new el;return e.state=o,o.strm=e,o.status=be,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+z-1)/z),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=r,o.strategy=s,o.method=t,Bi(e)},rl=(e,r)=>Ci(e,r,ft,Po,Uo,Fo),il=(e,r)=>{if($e(e)||r>yr||r<0)return e?ge(e,q):q;let t=e.state;if(!e.output||e.avail_in!==0&&!e.input||t.status===Ne&&r!==X)return ge(e,e.avail_out===0?Mt:q);let i=t.last_flush;if(t.last_flush=r,t.pending!==0){if(V(e),e.avail_out===0)return t.last_flush=-1,B}else if(e.avail_in===0&&Ar(r)<=Ar(i)&&r!==X)return ge(e,Mt);if(t.status===Ne&&e.avail_in!==0)return ge(e,Mt);if(t.status===be&&t.wrap===0&&(t.status=de),t.status===be){let n=ft+(t.w_bits-8<<4)<<8,s=-1;if(t.strategy>=Qe||t.level<2?s=0:t.level<6?s=1:t.level===6?s=2:s=3,n|=s<<6,t.strstart!==0&&(n|=$o),n+=31-n%31,Oe(t,n),t.strstart!==0&&(Oe(t,e.adler>>>16),Oe(t,e.adler&65535)),e.adler=1,t.status=de,V(e),t.pending!==0)return t.last_flush=-1,B}if(t.status===er){if(e.adler=0,I(t,31),I(t,139),I(t,8),t.gzhead)I(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),I(t,t.gzhead.time&255),I(t,t.gzhead.time>>8&255),I(t,t.gzhead.time>>16&255),I(t,t.gzhead.time>>24&255),I(t,t.level===9?2:t.strategy>=Qe||t.level<2?4:0),I(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(I(t,t.gzhead.extra.length&255),I(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(e.adler=F(e.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=Gt;else if(I(t,0),I(t,0),I(t,0),I(t,0),I(t,0),I(t,t.level===9?2:t.strategy>=Qe||t.level<2?4:0),I(t,Zo),t.status=de,V(e),t.pending!==0)return t.last_flush=-1,B}if(t.status===Gt){if(t.gzhead.extra){let n=t.pending,s=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+s>t.pending_buf_size;){let o=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n)),t.gzindex+=o,V(e),t.pending!==0)return t.last_flush=-1,B;n=0,s-=o}let a=new Uint8Array(t.gzhead.extra);t.pending_buf.set(a.subarray(t.gzindex,t.gzindex+s),t.pending),t.pending+=s,t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n)),t.gzindex=0}t.status=Ht}if(t.status===Ht){if(t.gzhead.name){let n=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n)),V(e),t.pending!==0)return t.last_flush=-1,B;n=0}t.gzindex<t.gzhead.name.length?s=t.gzhead.name.charCodeAt(t.gzindex++)&255:s=0,I(t,s)}while(s!==0);t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n)),t.gzindex=0}t.status=Vt}if(t.status===Vt){if(t.gzhead.comment){let n=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n)),V(e),t.pending!==0)return t.last_flush=-1,B;n=0}t.gzindex<t.gzhead.comment.length?s=t.gzhead.comment.charCodeAt(t.gzindex++)&255:s=0,I(t,s)}while(s!==0);t.gzhead.hcrc&&t.pending>n&&(e.adler=F(e.adler,t.pending_buf,t.pending-n,n))}t.status=Wt}if(t.status===Wt){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(V(e),t.pending!==0))return t.last_flush=-1,B;I(t,e.adler&255),I(t,e.adler>>8&255),e.adler=0}if(t.status=de,V(e),t.pending!==0)return t.last_flush=-1,B}if(e.avail_in!==0||t.lookahead!==0||r!==le&&t.status!==Ne){let n=t.level===0?Di(t,r):t.strategy===Qe?Jo(t,r):t.strategy===ko?jo(t,r):ke[t.level].func(t,r);if((n===_e||n===Re)&&(t.status=Ne),n===G||n===_e)return e.avail_out===0&&(t.last_flush=-1),B;if(n===Te&&(r===Ro?To(t):r!==yr&&(Pt(t,0,0,!1),r===zo&&(se(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),V(e),e.avail_out===0))return t.last_flush=-1,B}return r!==X?B:t.wrap<=0?Sr:(t.wrap===2?(I(t,e.adler&255),I(t,e.adler>>8&255),I(t,e.adler>>16&255),I(t,e.adler>>24&255),I(t,e.total_in&255),I(t,e.total_in>>8&255),I(t,e.total_in>>16&255),I(t,e.total_in>>24&255)):(Oe(t,e.adler>>>16),Oe(t,e.adler&65535)),V(e),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?B:Sr)},nl=e=>{if($e(e))return q;let r=e.state.status;return e.state=null,r===de?ge(e,Io):B},sl=(e,r)=>{let t=r.length;if($e(e))return q;let i=e.state,n=i.wrap;if(n===2||n===1&&i.status!==be||i.lookahead)return q;if(n===1&&(e.adler=He(e.adler,r,t,0)),i.wrap=0,t>=i.w_size){n===0&&(se(i.head),i.strstart=0,i.block_start=0,i.insert=0);let f=new Uint8Array(i.w_size);f.set(r.subarray(t-i.w_size,t),0),r=f,t=i.w_size}let s=e.avail_in,a=e.next_in,o=e.input;for(e.avail_in=t,e.next_in=0,e.input=r,Ee(i);i.lookahead>=z;){let f=i.strstart,l=i.lookahead-(z-1);do i.ins_h=ce(i,i.ins_h,i.window[f+z-1]),i.prev[f&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=f,f++;while(--l);i.strstart=f,i.lookahead=z-1,Ee(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=z-1,i.match_available=0,e.next_in=a,e.input=o,e.avail_in=s,i.wrap=n,B},al=rl,ol=Ci,ll=Bi,cl=Fi,hl=tl,fl=il,ul=nl,dl=sl,gl="pako deflate (from Nodeca project)",Fe={deflateInit:al,deflateInit2:ol,deflateReset:ll,deflateResetKeep:cl,deflateSetHeader:hl,deflate:fl,deflateEnd:ul,deflateSetDictionary:dl,deflateInfo:gl},ml=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),_l=function(e){let r=Array.prototype.slice.call(arguments,1);for(;r.length;){let t=r.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let i in t)ml(t,i)&&(e[i]=t[i])}}return e},vl=e=>{let r=0;for(let i=0,n=e.length;i<n;i++)r+=e[i].length;let t=new Uint8Array(r);for(let i=0,n=0,s=e.length;i<s;i++){let a=e[i];t.set(a,n),n+=a.length}return t},ut={assign:_l,flattenChunks:vl},Pi=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Pi=!1}var Ve=new Uint8Array(256);for(let e=0;e<256;e++)Ve[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;Ve[254]=Ve[254]=1;var pl=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let r,t,i,n,s,a=e.length,o=0;for(n=0;n<a;n++)t=e.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=e.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),o+=t<128?1:t<2048?2:t<65536?3:4;for(r=new Uint8Array(o),s=0,n=0;s<o;n++)t=e.charCodeAt(n),(t&64512)===55296&&n+1<a&&(i=e.charCodeAt(n+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),n++)),t<128?r[s++]=t:t<2048?(r[s++]=192|t>>>6,r[s++]=128|t&63):t<65536?(r[s++]=224|t>>>12,r[s++]=128|t>>>6&63,r[s++]=128|t&63):(r[s++]=240|t>>>18,r[s++]=128|t>>>12&63,r[s++]=128|t>>>6&63,r[s++]=128|t&63);return r},wl=(e,r)=>{if(r<65534&&e.subarray&&Pi)return String.fromCharCode.apply(null,e.length===r?e:e.subarray(0,r));let t="";for(let i=0;i<r;i++)t+=String.fromCharCode(e[i]);return t},yl=(e,r)=>{let t=r||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,r));let i,n,s=new Array(t*2);for(n=0,i=0;i<t;){let a=e[i++];if(a<128){s[n++]=a;continue}let o=Ve[a];if(o>4){s[n++]=65533,i+=o-1;continue}for(a&=o===2?31:o===3?15:7;o>1&&i<t;)a=a<<6|e[i++]&63,o--;if(o>1){s[n++]=65533;continue}a<65536?s[n++]=a:(a-=65536,s[n++]=55296|a>>10&1023,s[n++]=56320|a&1023)}return wl(s,n)},Sl=(e,r)=>{r=r||e.length,r>e.length&&(r=e.length);let t=r-1;for(;t>=0&&(e[t]&192)===128;)t--;return t<0||t===0?r:t+Ve[e[t]]>r?t:r},We={string2buf:pl,buf2string:yl,utf8border:Sl};function Al(){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 Ui=Al,Gi=Object.prototype.toString,{Z_NO_FLUSH:xl,Z_SYNC_FLUSH:bl,Z_FULL_FLUSH:El,Z_FINISH:Ml,Z_OK:at,Z_STREAM_END:Ll,Z_DEFAULT_COMPRESSION:Tl,Z_DEFAULT_STRATEGY:Rl,Z_DEFLATED:zl}=Le;function Ze(e){this.options=ut.assign({level:Tl,method:zl,chunkSize:16384,windowBits:15,memLevel:8,strategy:Rl},e||{});let r=this.options;r.raw&&r.windowBits>0?r.windowBits=-r.windowBits:r.gzip&&r.windowBits>0&&r.windowBits<16&&(r.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ui,this.strm.avail_out=0;let t=Fe.deflateInit2(this.strm,r.level,r.method,r.windowBits,r.memLevel,r.strategy);if(t!==at)throw new Error(me[t]);if(r.header&&Fe.deflateSetHeader(this.strm,r.header),r.dictionary){let i;if(typeof r.dictionary=="string"?i=We.string2buf(r.dictionary):Gi.call(r.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(r.dictionary):i=r.dictionary,t=Fe.deflateSetDictionary(this.strm,i),t!==at)throw new Error(me[t]);this._dict_set=!0}}Ze.prototype.push=function(e,r){let t=this.strm,i=this.options.chunkSize,n,s;if(this.ended)return!1;for(r===~~r?s=r:s=r===!0?Ml:xl,typeof e=="string"?t.input=We.string2buf(e):Gi.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(s===bl||s===El)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(n=Fe.deflate(t,s),n===Ll)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),n=Fe.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===at;if(t.avail_out===0){this.onData(t.output);continue}if(s>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};Ze.prototype.onData=function(e){this.chunks.push(e)};Ze.prototype.onEnd=function(e){e===at&&(this.result=ut.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function tr(e,r){let t=new Ze(r);if(t.push(e,!0),t.err)throw t.msg||me[t.err];return t.result}function Il(e,r){return r=r||{},r.raw=!0,tr(e,r)}function Ol(e,r){return r=r||{},r.gzip=!0,tr(e,r)}var Nl=Ze,kl=tr,Dl=Il,Fl=Ol,Bl=Le,Cl={Deflate:Nl,deflate:kl,deflateRaw:Dl,gzip:Fl,constants:Bl},et=16209,Pl=16191,Ul=function(r,t){let i,n,s,a,o,f,l,c,d,u,h,g,v,m,p,w,y,_,x,S,A,E,M,b,L=r.state;i=r.next_in,M=r.input,n=i+(r.avail_in-5),s=r.next_out,b=r.output,a=s-(t-r.avail_out),o=s+(r.avail_out-257),f=L.dmax,l=L.wsize,c=L.whave,d=L.wnext,u=L.window,h=L.hold,g=L.bits,v=L.lencode,m=L.distcode,p=(1<<L.lenbits)-1,w=(1<<L.distbits)-1;e:do{g<15&&(h+=M[i++]<<g,g+=8,h+=M[i++]<<g,g+=8),y=v[h&p];t:for(;;){if(_=y>>>24,h>>>=_,g-=_,_=y>>>16&255,_===0)b[s++]=y&65535;else if(_&16){x=y&65535,_&=15,_&&(g<_&&(h+=M[i++]<<g,g+=8),x+=h&(1<<_)-1,h>>>=_,g-=_),g<15&&(h+=M[i++]<<g,g+=8,h+=M[i++]<<g,g+=8),y=m[h&w];r:for(;;){if(_=y>>>24,h>>>=_,g-=_,_=y>>>16&255,_&16){if(S=y&65535,_&=15,g<_&&(h+=M[i++]<<g,g+=8,g<_&&(h+=M[i++]<<g,g+=8)),S+=h&(1<<_)-1,S>f){r.msg="invalid distance too far back",L.mode=et;break e}if(h>>>=_,g-=_,_=s-a,S>_){if(_=S-_,_>c&&L.sane){r.msg="invalid distance too far back",L.mode=et;break e}if(A=0,E=u,d===0){if(A+=l-_,_<x){x-=_;do b[s++]=u[A++];while(--_);A=s-S,E=b}}else if(d<_){if(A+=l+d-_,_-=d,_<x){x-=_;do b[s++]=u[A++];while(--_);if(A=0,d<x){_=d,x-=_;do b[s++]=u[A++];while(--_);A=s-S,E=b}}}else if(A+=d-_,_<x){x-=_;do b[s++]=u[A++];while(--_);A=s-S,E=b}for(;x>2;)b[s++]=E[A++],b[s++]=E[A++],b[s++]=E[A++],x-=3;x&&(b[s++]=E[A++],x>1&&(b[s++]=E[A++]))}else{A=s-S;do b[s++]=b[A++],b[s++]=b[A++],b[s++]=b[A++],x-=3;while(x>2);x&&(b[s++]=b[A++],x>1&&(b[s++]=b[A++]))}}else if((_&64)===0){y=m[(y&65535)+(h&(1<<_)-1)];continue r}else{r.msg="invalid distance code",L.mode=et;break e}break}}else if((_&64)===0){y=v[(y&65535)+(h&(1<<_)-1)];continue t}else if(_&32){L.mode=Pl;break e}else{r.msg="invalid literal/length code",L.mode=et;break e}break}}while(i<n&&s<o);x=g>>3,i-=x,g-=x<<3,h&=(1<<g)-1,r.next_in=i,r.next_out=s,r.avail_in=i<n?5+(n-i):5-(i-n),r.avail_out=s<o?257+(o-s):257-(s-o),L.hold=h,L.bits=g},Se=15,xr=852,br=592,Er=0,Tt=1,Mr=2,Gl=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]),Hl=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]),Vl=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]),Wl=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]),Xl=(e,r,t,i,n,s,a,o)=>{let f=o.bits,l=0,c=0,d=0,u=0,h=0,g=0,v=0,m=0,p=0,w=0,y,_,x,S,A,E=null,M,b=new Uint16Array(Se+1),L=new Uint16Array(Se+1),O=null,N,R,C;for(l=0;l<=Se;l++)b[l]=0;for(c=0;c<i;c++)b[r[t+c]]++;for(h=f,u=Se;u>=1&&b[u]===0;u--);if(h>u&&(h=u),u===0)return n[s++]=1<<24|64<<16|0,n[s++]=1<<24|64<<16|0,o.bits=1,0;for(d=1;d<u&&b[d]===0;d++);for(h<d&&(h=d),m=1,l=1;l<=Se;l++)if(m<<=1,m-=b[l],m<0)return-1;if(m>0&&(e===Er||u!==1))return-1;for(L[1]=0,l=1;l<Se;l++)L[l+1]=L[l]+b[l];for(c=0;c<i;c++)r[t+c]!==0&&(a[L[r[t+c]]++]=c);if(e===Er?(E=O=a,M=20):e===Tt?(E=Gl,O=Hl,M=257):(E=Vl,O=Wl,M=0),w=0,c=0,l=d,A=s,g=h,v=0,x=-1,p=1<<h,S=p-1,e===Tt&&p>xr||e===Mr&&p>br)return 1;for(;;){N=l-v,a[c]+1<M?(R=0,C=a[c]):a[c]>=M?(R=O[a[c]-M],C=E[a[c]-M]):(R=96,C=0),y=1<<l-v,_=1<<g,d=_;do _-=y,n[A+(w>>v)+_]=N<<24|R<<16|C|0;while(_!==0);for(y=1<<l-1;w&y;)y>>=1;if(y!==0?(w&=y-1,w+=y):w=0,c++,--b[l]===0){if(l===u)break;l=r[t+a[c]]}if(l>h&&(w&S)!==x){for(v===0&&(v=h),A+=d,g=l-v,m=1<<g;g+v<u&&(m-=b[g+v],!(m<=0));)g++,m<<=1;if(p+=1<<g,e===Tt&&p>xr||e===Mr&&p>br)return 1;x=w&S,n[x]=h<<24|g<<16|A-s|0}}return w!==0&&(n[A+w]=l-v<<24|64<<16|0),o.bits=h,0},Be=Xl,Kl=0,Hi=1,Vi=2,{Z_FINISH:Lr,Z_BLOCK:$l,Z_TREES:tt,Z_OK:ve,Z_STREAM_END:Zl,Z_NEED_DICT:Yl,Z_STREAM_ERROR:K,Z_DATA_ERROR:Wi,Z_MEM_ERROR:Xi,Z_BUF_ERROR:ql,Z_DEFLATED:Tr}=Le,dt=16180,Rr=16181,zr=16182,Ir=16183,Or=16184,Nr=16185,kr=16186,Dr=16187,Fr=16188,Br=16189,ot=16190,ee=16191,Rt=16192,Cr=16193,zt=16194,Pr=16195,Ur=16196,Gr=16197,Hr=16198,rt=16199,it=16200,Vr=16201,Wr=16202,Xr=16203,Kr=16204,$r=16205,It=16206,Zr=16207,Yr=16208,k=16209,Ki=16210,$i=16211,jl=852,Jl=592,Ql=15,ec=Ql,qr=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function tc(){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 pe=e=>{if(!e)return 1;let r=e.state;return!r||r.strm!==e||r.mode<dt||r.mode>$i?1:0},Zi=e=>{if(pe(e))return K;let r=e.state;return e.total_in=e.total_out=r.total=0,e.msg="",r.wrap&&(e.adler=r.wrap&1),r.mode=dt,r.last=0,r.havedict=0,r.flags=-1,r.dmax=32768,r.head=null,r.hold=0,r.bits=0,r.lencode=r.lendyn=new Int32Array(jl),r.distcode=r.distdyn=new Int32Array(Jl),r.sane=1,r.back=-1,ve},Yi=e=>{if(pe(e))return K;let r=e.state;return r.wsize=0,r.whave=0,r.wnext=0,Zi(e)},qi=(e,r)=>{let t;if(pe(e))return K;let i=e.state;return r<0?(t=0,r=-r):(t=(r>>4)+5,r<48&&(r&=15)),r&&(r<8||r>15)?K:(i.window!==null&&i.wbits!==r&&(i.window=null),i.wrap=t,i.wbits=r,Yi(e))},ji=(e,r)=>{if(!e)return K;let t=new tc;e.state=t,t.strm=e,t.window=null,t.mode=dt;let i=qi(e,r);return i!==ve&&(e.state=null),i},rc=e=>ji(e,ec),jr=!0,Ot,Nt,ic=e=>{if(jr){Ot=new Int32Array(512),Nt=new Int32Array(32);let r=0;for(;r<144;)e.lens[r++]=8;for(;r<256;)e.lens[r++]=9;for(;r<280;)e.lens[r++]=7;for(;r<288;)e.lens[r++]=8;for(Be(Hi,e.lens,0,288,Ot,0,e.work,{bits:9}),r=0;r<32;)e.lens[r++]=5;Be(Vi,e.lens,0,32,Nt,0,e.work,{bits:5}),jr=!1}e.lencode=Ot,e.lenbits=9,e.distcode=Nt,e.distbits=5},Ji=(e,r,t,i)=>{let n,s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(r.subarray(t-s.wsize,t),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(r.subarray(t-i,t-i+n),s.wnext),i-=n,i?(s.window.set(r.subarray(t-i,t),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0},nc=(e,r)=>{let t,i,n,s,a,o,f,l,c,d,u,h,g,v,m=0,p,w,y,_,x,S,A,E,M=new Uint8Array(4),b,L,O=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(pe(e)||!e.output||!e.input&&e.avail_in!==0)return K;t=e.state,t.mode===ee&&(t.mode=Rt),a=e.next_out,n=e.output,f=e.avail_out,s=e.next_in,i=e.input,o=e.avail_in,l=t.hold,c=t.bits,d=o,u=f,E=ve;e:for(;;)switch(t.mode){case dt:if(t.wrap===0){t.mode=Rt;break}for(;c<16;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(t.wrap&2&&l===35615){t.wbits===0&&(t.wbits=15),t.check=0,M[0]=l&255,M[1]=l>>>8&255,t.check=F(t.check,M,2,0),l=0,c=0,t.mode=Rr;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){e.msg="incorrect header check",t.mode=k;break}if((l&15)!==Tr){e.msg="unknown compression method",t.mode=k;break}if(l>>>=4,c-=4,A=(l&15)+8,t.wbits===0&&(t.wbits=A),A>15||A>t.wbits){e.msg="invalid window size",t.mode=k;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=l&512?Br:ee,l=0,c=0;break;case Rr:for(;c<16;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(t.flags=l,(t.flags&255)!==Tr){e.msg="unknown compression method",t.mode=k;break}if(t.flags&57344){e.msg="unknown header flags set",t.mode=k;break}t.head&&(t.head.text=l>>8&1),t.flags&512&&t.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,t.check=F(t.check,M,2,0)),l=0,c=0,t.mode=zr;case zr:for(;c<32;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.head&&(t.head.time=l),t.flags&512&&t.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,M[2]=l>>>16&255,M[3]=l>>>24&255,t.check=F(t.check,M,4,0)),l=0,c=0,t.mode=Ir;case Ir:for(;c<16;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.head&&(t.head.xflags=l&255,t.head.os=l>>8),t.flags&512&&t.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,t.check=F(t.check,M,2,0)),l=0,c=0,t.mode=Or;case Or:if(t.flags&1024){for(;c<16;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.length=l,t.head&&(t.head.extra_len=l),t.flags&512&&t.wrap&4&&(M[0]=l&255,M[1]=l>>>8&255,t.check=F(t.check,M,2,0)),l=0,c=0}else t.head&&(t.head.extra=null);t.mode=Nr;case Nr:if(t.flags&1024&&(h=t.length,h>o&&(h=o),h&&(t.head&&(A=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(s,s+h),A)),t.flags&512&&t.wrap&4&&(t.check=F(t.check,i,h,s)),o-=h,s+=h,t.length-=h),t.length))break e;t.length=0,t.mode=kr;case kr:if(t.flags&2048){if(o===0)break e;h=0;do A=i[s+h++],t.head&&A&&t.length<65536&&(t.head.name+=String.fromCharCode(A));while(A&&h<o);if(t.flags&512&&t.wrap&4&&(t.check=F(t.check,i,h,s)),o-=h,s+=h,A)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Dr;case Dr:if(t.flags&4096){if(o===0)break e;h=0;do A=i[s+h++],t.head&&A&&t.length<65536&&(t.head.comment+=String.fromCharCode(A));while(A&&h<o);if(t.flags&512&&t.wrap&4&&(t.check=F(t.check,i,h,s)),o-=h,s+=h,A)break e}else t.head&&(t.head.comment=null);t.mode=Fr;case Fr:if(t.flags&512){for(;c<16;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(t.wrap&4&&l!==(t.check&65535)){e.msg="header crc mismatch",t.mode=k;break}l=0,c=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=ee;break;case Br:for(;c<32;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}e.adler=t.check=qr(l),l=0,c=0,t.mode=ot;case ot:if(t.havedict===0)return e.next_out=a,e.avail_out=f,e.next_in=s,e.avail_in=o,t.hold=l,t.bits=c,Yl;e.adler=t.check=1,t.mode=ee;case ee:if(r===$l||r===tt)break e;case Rt:if(t.last){l>>>=c&7,c-=c&7,t.mode=It;break}for(;c<3;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}switch(t.last=l&1,l>>>=1,c-=1,l&3){case 0:t.mode=Cr;break;case 1:if(ic(t),t.mode=rt,r===tt){l>>>=2,c-=2;break e}break;case 2:t.mode=Ur;break;case 3:e.msg="invalid block type",t.mode=k}l>>>=2,c-=2;break;case Cr:for(l>>>=c&7,c-=c&7;c<32;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if((l&65535)!==(l>>>16^65535)){e.msg="invalid stored block lengths",t.mode=k;break}if(t.length=l&65535,l=0,c=0,t.mode=zt,r===tt)break e;case zt:t.mode=Pr;case Pr:if(h=t.length,h){if(h>o&&(h=o),h>f&&(h=f),h===0)break e;n.set(i.subarray(s,s+h),a),o-=h,s+=h,f-=h,a+=h,t.length-=h;break}t.mode=ee;break;case Ur:for(;c<14;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(t.nlen=(l&31)+257,l>>>=5,c-=5,t.ndist=(l&31)+1,l>>>=5,c-=5,t.ncode=(l&15)+4,l>>>=4,c-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=k;break}t.have=0,t.mode=Gr;case Gr:for(;t.have<t.ncode;){for(;c<3;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.lens[O[t.have++]]=l&7,l>>>=3,c-=3}for(;t.have<19;)t.lens[O[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,b={bits:t.lenbits},E=Be(Kl,t.lens,0,19,t.lencode,0,t.work,b),t.lenbits=b.bits,E){e.msg="invalid code lengths set",t.mode=k;break}t.have=0,t.mode=Hr;case Hr:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[l&(1<<t.lenbits)-1],p=m>>>24,w=m>>>16&255,y=m&65535,!(p<=c);){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(y<16)l>>>=p,c-=p,t.lens[t.have++]=y;else{if(y===16){for(L=p+2;c<L;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(l>>>=p,c-=p,t.have===0){e.msg="invalid bit length repeat",t.mode=k;break}A=t.lens[t.have-1],h=3+(l&3),l>>>=2,c-=2}else if(y===17){for(L=p+3;c<L;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}l>>>=p,c-=p,A=0,h=3+(l&7),l>>>=3,c-=3}else{for(L=p+7;c<L;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}l>>>=p,c-=p,A=0,h=11+(l&127),l>>>=7,c-=7}if(t.have+h>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=k;break}for(;h--;)t.lens[t.have++]=A}}if(t.mode===k)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=k;break}if(t.lenbits=9,b={bits:t.lenbits},E=Be(Hi,t.lens,0,t.nlen,t.lencode,0,t.work,b),t.lenbits=b.bits,E){e.msg="invalid literal/lengths set",t.mode=k;break}if(t.distbits=6,t.distcode=t.distdyn,b={bits:t.distbits},E=Be(Vi,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,b),t.distbits=b.bits,E){e.msg="invalid distances set",t.mode=k;break}if(t.mode=rt,r===tt)break e;case rt:t.mode=it;case it:if(o>=6&&f>=258){e.next_out=a,e.avail_out=f,e.next_in=s,e.avail_in=o,t.hold=l,t.bits=c,Ul(e,u),a=e.next_out,n=e.output,f=e.avail_out,s=e.next_in,i=e.input,o=e.avail_in,l=t.hold,c=t.bits,t.mode===ee&&(t.back=-1);break}for(t.back=0;m=t.lencode[l&(1<<t.lenbits)-1],p=m>>>24,w=m>>>16&255,y=m&65535,!(p<=c);){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(w&&(w&240)===0){for(_=p,x=w,S=y;m=t.lencode[S+((l&(1<<_+x)-1)>>_)],p=m>>>24,w=m>>>16&255,y=m&65535,!(_+p<=c);){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}l>>>=_,c-=_,t.back+=_}if(l>>>=p,c-=p,t.back+=p,t.length=y,w===0){t.mode=$r;break}if(w&32){t.back=-1,t.mode=ee;break}if(w&64){e.msg="invalid literal/length code",t.mode=k;break}t.extra=w&15,t.mode=Vr;case Vr:if(t.extra){for(L=t.extra;c<L;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.length+=l&(1<<t.extra)-1,l>>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Wr;case Wr:for(;m=t.distcode[l&(1<<t.distbits)-1],p=m>>>24,w=m>>>16&255,y=m&65535,!(p<=c);){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if((w&240)===0){for(_=p,x=w,S=y;m=t.distcode[S+((l&(1<<_+x)-1)>>_)],p=m>>>24,w=m>>>16&255,y=m&65535,!(_+p<=c);){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}l>>>=_,c-=_,t.back+=_}if(l>>>=p,c-=p,t.back+=p,w&64){e.msg="invalid distance code",t.mode=k;break}t.offset=y,t.extra=w&15,t.mode=Xr;case Xr:if(t.extra){for(L=t.extra;c<L;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}t.offset+=l&(1<<t.extra)-1,l>>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=k;break}t.mode=Kr;case Kr:if(f===0)break e;if(h=u-f,t.offset>h){if(h=t.offset-h,h>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=k;break}h>t.wnext?(h-=t.wnext,g=t.wsize-h):g=t.wnext-h,h>t.length&&(h=t.length),v=t.window}else v=n,g=a-t.offset,h=t.length;h>f&&(h=f),f-=h,t.length-=h;do n[a++]=v[g++];while(--h);t.length===0&&(t.mode=it);break;case $r:if(f===0)break e;n[a++]=t.length,f--,t.mode=it;break;case It:if(t.wrap){for(;c<32;){if(o===0)break e;o--,l|=i[s++]<<c,c+=8}if(u-=f,e.total_out+=u,t.total+=u,t.wrap&4&&u&&(e.adler=t.check=t.flags?F(t.check,n,u,a-u):He(t.check,n,u,a-u)),u=f,t.wrap&4&&(t.flags?l:qr(l))!==t.check){e.msg="incorrect data check",t.mode=k;break}l=0,c=0}t.mode=Zr;case Zr:if(t.wrap&&t.flags){for(;c<32;){if(o===0)break e;o--,l+=i[s++]<<c,c+=8}if(t.wrap&4&&l!==(t.total&4294967295)){e.msg="incorrect length check",t.mode=k;break}l=0,c=0}t.mode=Yr;case Yr:E=Zl;break e;case k:E=Wi;break e;case Ki:return Xi;case $i:default:return K}return e.next_out=a,e.avail_out=f,e.next_in=s,e.avail_in=o,t.hold=l,t.bits=c,(t.wsize||u!==e.avail_out&&t.mode<k&&(t.mode<It||r!==Lr))&&Ji(e,e.output,e.next_out,u-e.avail_out),d-=e.avail_in,u-=e.avail_out,e.total_in+=d,e.total_out+=u,t.total+=u,t.wrap&4&&u&&(e.adler=t.check=t.flags?F(t.check,n,u,e.next_out-u):He(t.check,n,u,e.next_out-u)),e.data_type=t.bits+(t.last?64:0)+(t.mode===ee?128:0)+(t.mode===rt||t.mode===zt?256:0),(d===0&&u===0||r===Lr)&&E===ve&&(E=ql),E},sc=e=>{if(pe(e))return K;let r=e.state;return r.window&&(r.window=null),e.state=null,ve},ac=(e,r)=>{if(pe(e))return K;let t=e.state;return(t.wrap&2)===0?K:(t.head=r,r.done=!1,ve)},oc=(e,r)=>{let t=r.length,i,n,s;return pe(e)||(i=e.state,i.wrap!==0&&i.mode!==ot)?K:i.mode===ot&&(n=1,n=He(n,r,t,0),n!==i.check)?Wi:(s=Ji(e,r,t,t),s?(i.mode=Ki,Xi):(i.havedict=1,ve))},lc=Yi,cc=qi,hc=Zi,fc=rc,uc=ji,dc=nc,gc=sc,mc=ac,_c=oc,vc="pako inflate (from Nodeca project)",re={inflateReset:lc,inflateReset2:cc,inflateResetKeep:hc,inflateInit:fc,inflateInit2:uc,inflate:dc,inflateEnd:gc,inflateGetHeader:mc,inflateSetDictionary:_c,inflateInfo:vc};function pc(){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 wc=pc,Qi=Object.prototype.toString,{Z_NO_FLUSH:yc,Z_FINISH:Sc,Z_OK:Xe,Z_STREAM_END:kt,Z_NEED_DICT:Dt,Z_STREAM_ERROR:Ac,Z_DATA_ERROR:Jr,Z_MEM_ERROR:xc}=Le;function Ye(e){this.options=ut.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});let r=this.options;r.raw&&r.windowBits>=0&&r.windowBits<16&&(r.windowBits=-r.windowBits,r.windowBits===0&&(r.windowBits=-15)),r.windowBits>=0&&r.windowBits<16&&!(e&&e.windowBits)&&(r.windowBits+=32),r.windowBits>15&&r.windowBits<48&&(r.windowBits&15)===0&&(r.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ui,this.strm.avail_out=0;let t=re.inflateInit2(this.strm,r.windowBits);if(t!==Xe)throw new Error(me[t]);if(this.header=new wc,re.inflateGetHeader(this.strm,this.header),r.dictionary&&(typeof r.dictionary=="string"?r.dictionary=We.string2buf(r.dictionary):Qi.call(r.dictionary)==="[object ArrayBuffer]"&&(r.dictionary=new Uint8Array(r.dictionary)),r.raw&&(t=re.inflateSetDictionary(this.strm,r.dictionary),t!==Xe)))throw new Error(me[t])}Ye.prototype.push=function(e,r){let t=this.strm,i=this.options.chunkSize,n=this.options.dictionary,s,a,o;if(this.ended)return!1;for(r===~~r?a=r:a=r===!0?Sc:yc,Qi.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),s=re.inflate(t,a),s===Dt&&n&&(s=re.inflateSetDictionary(t,n),s===Xe?s=re.inflate(t,a):s===Jr&&(s=Dt));t.avail_in>0&&s===kt&&t.state.wrap>0&&e[t.next_in]!==0;)re.inflateReset(t),s=re.inflate(t,a);switch(s){case Ac:case Jr:case Dt:case xc:return this.onEnd(s),this.ended=!0,!1}if(o=t.avail_out,t.next_out&&(t.avail_out===0||s===kt))if(this.options.to==="string"){let f=We.utf8border(t.output,t.next_out),l=t.next_out-f,c=We.buf2string(t.output,f);t.next_out=l,t.avail_out=i-l,l&&t.output.set(t.output.subarray(f,f+l),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(s===Xe&&o===0)){if(s===kt)return s=re.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Ye.prototype.onData=function(e){this.chunks.push(e)};Ye.prototype.onEnd=function(e){e===Xe&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ut.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function rr(e,r){let t=new Ye(r);if(t.push(e),t.err)throw t.msg||me[t.err];return t.result}function bc(e,r){return r=r||{},r.raw=!0,rr(e,r)}var Ec=Ye,Mc=rr,Lc=bc,Tc=rr,Rc=Le,zc={Inflate:Ec,inflate:Mc,inflateRaw:Lc,ungzip:Tc,constants:Rc},{Deflate:Uf,deflate:Gf,deflateRaw:Hf,gzip:Vf}=Cl,{Inflate:Wf,inflate:Xf,inflateRaw:Kf,ungzip:$f}=zc;var en=class Kt{constructor(r=Kt.INITIAL_SIZE){this.buffer=new Uint8Array(r),this.readOffset=0,this.writeOffset=0}append(r){let t=r instanceof Uint8Array?r:new Uint8Array(r),i=this.writeOffset+t.length;i>this.buffer.length&&this.grow(i),this.buffer.set(t,this.writeOffset),this.writeOffset+=t.length}hasBytes(r){return this.writeOffset-this.readOffset>=r}available(){return this.writeOffset-this.readOffset}readByte(){if(!this.hasBytes(1))throw new Error("Buffer underflow");return this.buffer[this.readOffset++]}readShort(){if(!this.hasBytes(2))throw new Error("Buffer underflow");let r=this.buffer[this.readOffset]|this.buffer[this.readOffset+1]<<8;return this.readOffset+=2,r>32767?r-65536:r}readLong(){if(!this.hasBytes(4))throw new Error("Buffer underflow");let r=this.buffer[this.readOffset]|this.buffer[this.readOffset+1]<<8|this.buffer[this.readOffset+2]<<16|this.buffer[this.readOffset+3]<<24;return this.readOffset+=4,r}readFloat(){if(!this.hasBytes(4))throw new Error("Buffer underflow");let t=new DataView(this.buffer.buffer,this.buffer.byteOffset+this.readOffset,4).getFloat32(0,!0);return this.readOffset+=4,t}readString(){let r=Math.min(Kt.MAX_STRING_LENGTH,this.writeOffset-this.readOffset),t=0;for(;t<r&&this.buffer[this.readOffset+t]!==0;)t++;if(t>=r)throw this.writeOffset-this.readOffset<=r?new Error("Buffer underflow"):new Error("String exceeds max length");let i=this.buffer.slice(this.readOffset,this.readOffset+t);return this.readOffset+=t+1,new TextDecoder("latin1").decode(i)}peekBytes(r){if(!this.hasBytes(r))throw new Error("Buffer underflow");return this.buffer.slice(this.readOffset,this.readOffset+r)}readBytes(r){if(!this.hasBytes(r))throw new Error("Buffer underflow");let t=this.buffer.slice(this.readOffset,this.readOffset+r);return this.readOffset+=r,t}readData(r){return this.readBytes(r)}getReadPosition(){return this.readOffset}getWritePosition(){return this.writeOffset}setReadPosition(r){if(r<0||r>this.writeOffset)throw new Error("Invalid read position");this.readOffset=r}grow(r){let t=r?Math.max(r,this.buffer.length*2):this.buffer.length*2,i=new Uint8Array(t);i.set(this.buffer),this.buffer=i}compact(){if(this.readOffset===0)return;let r=this.writeOffset-this.readOffset;if(r===0){this.readOffset=0,this.writeOffset=0;return}this.buffer.copyWithin(0,this.readOffset,this.writeOffset),this.readOffset=0,this.writeOffset=r}getCapacity(){return this.buffer.length}reset(){this.readOffset=0,this.writeOffset=0}};en.INITIAL_SIZE=64*1024;en.MAX_STRING_LENGTH=2048;var Zf=1<<17,Yf=1<<18,qf=1<<19,jf=1<<20,Jf=1<<21,Qf=1<<22,eu=1<<23,tu=1<<24,ru=1<<25,iu=1<<26,nu=1<<27,su=1<<28,au=1<<29,ou=1<<30;var lu={0:T.bad,1:T.nop,2:T.disconnect,3:T.reconnect,4:T.download,5:T.frame,6:T.inventory,7:T.layout,8:T.muzzleflash,9:T.sound,10:T.print,11:T.stufftext,12:T.serverdata,13:T.configstring,14:T.spawnbaseline,15:T.centerprint,16:T.download,17:T.playerinfo,18:T.packetentities,19:T.deltapacketentities,23:T.temp_entity,22:T.muzzleflash2};var cu={[T.bad]:0,[T.nop]:1,[T.disconnect]:2,[T.reconnect]:3,[T.download]:16,[T.frame]:5,[T.inventory]:6,[T.layout]:7,[T.muzzleflash]:8,[T.sound]:9,[T.print]:10,[T.stufftext]:11,[T.serverdata]:12,[T.configstring]:13,[T.spawnbaseline]:14,[T.centerprint]:15,[T.playerinfo]:17,[T.packetentities]:18,[T.deltapacketentities]:19,[T.temp_entity]:23,[T.muzzleflash2]:22};function tn(e){let r="";for(let t of e){r+=`{
|
|
205
|
+
`;let n=Object.keys(t.properties).sort((s,a)=>s==="classname"?-1:a==="classname"?1:s==="origin"?-1:a==="origin"?1:s.localeCompare(a));for(let s of n){let a=t.properties[s];r+=`"${s}" "${a}"
|
|
206
|
+
`}r+=`}
|
|
207
|
+
`}return r}function rn(e,r){let t=new cr(e),i=t.readLong(),n=t.readLong();if(i!==1347633737||n!==38)throw new Error("Invalid BSP file");let s=0,a=[];for(let w=0;w<19;w++)a.push({offset:t.readLong(),length:t.readLong()});let o=a[s],f=tn(r),c=new TextEncoder().encode(f),d=new Uint8Array(c.length+1);d.set(c),d[c.length]=0;let u=d.length-o.length,h=e.length+u,g=new Uint8Array(h),v=o.offset,m=v+o.length;g.set(e.subarray(0,v),0),g.set(d,v),m<e.length&&g.set(e.subarray(m),v+d.length);let p=new DataView(g.buffer);p.setInt32(8,v,!0),p.setInt32(12,d.length,!0);for(let w=0;w<19;w++){if(w===s)continue;let y=a[w].offset;if(y>=m){let _=y+u;p.setInt32(8+w*8,_,!0)}}return g}function Ic(e,r){return{name:e,origin:r}}return cn(Oc);})();
|
|
208
|
+
/*! Bundled license information:
|
|
209
|
+
|
|
210
|
+
pako/dist/pako.esm.mjs:
|
|
211
|
+
(*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
|
|
212
|
+
*/
|
|
3
213
|
//# sourceMappingURL=index.global.js.map
|