genosdb 0.8.0 → 0.8.2
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/README.md +1 -1
- package/dist/gdb.min.js +1 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function n6(W){const Q=W.length;let J=0,V=0;while(V<Q){let G=W.charCodeAt(V++);if((G&4294967168)===0){J++;continue}else if((G&4294965248)===0)J+=2;else{if(G>=55296&&G<=56319){if(V<Q){const X=W.charCodeAt(V);if((X&64512)===56320)++V,G=((G&1023)<<10)+(X&1023)+65536}}if((G&4294901760)===0)J+=3;else J+=4}}return J}function fW(W,Q,J){const V=W.length;let G=J,X=0;while(X<V){let Y=W.charCodeAt(X++);if((Y&4294967168)===0){Q[G++]=Y;continue}else if((Y&4294965248)===0)Q[G++]=Y>>6&31|192;else{if(Y>=55296&&Y<=56319){if(X<V){const q=W.charCodeAt(X);if((q&64512)===56320)++X,Y=((Y&1023)<<10)+(q&1023)+65536}}if((Y&4294901760)===0)Q[G++]=Y>>12&15|224,Q[G++]=Y>>6&63|128;else Q[G++]=Y>>18&7|240,Q[G++]=Y>>12&63|128,Q[G++]=Y>>6&63|128}Q[G++]=Y&63|128}}function uW(W,Q,J){bW.encodeInto(W,Q.subarray(J))}function o6(W,Q,J){if(W.length>hW)uW(W,Q,J);else fW(W,Q,J)}function y8(W,Q,J){let V=Q;const G=V+J,X=[];let Y="";while(V<G){const q=W[V++];if((q&128)===0)X.push(q);else if((q&224)===192){const F=W[V++]&63;X.push((q&31)<<6|F)}else if((q&240)===224){const F=W[V++]&63,U=W[V++]&63;X.push((q&31)<<12|F<<6|U)}else if((q&248)===240){const F=W[V++]&63,U=W[V++]&63,K=W[V++]&63;let $=(q&7)<<18|F<<12|U<<6|K;if($>65535)$-=65536,X.push($>>>10&1023|55296),$=56320|$&1023;X.push($)}else X.push(q);if(X.length>=mW)Y+=String.fromCharCode(...X),X.length=0}if(X.length>0)Y+=String.fromCharCode(...X);return Y}function dW(W,Q,J){const V=W.subarray(Q,Q+J);return _W.decode(V)}function a6(W,Q,J){if(J>cW)return dW(W,Q,J);else return y8(W,Q,J)}var bW=new TextEncoder,hW=50,mW=4096,_W=new TextDecoder,cW=200;class J1{constructor(W,Q){this.type=W,this.data=Q}}class Y0 extends Error{constructor(W){super(W);const Q=Object.create(Y0.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Y0.name})}}function s6(W,Q,J){const V=J/4294967296,G=J;W.setUint32(Q,V),W.setUint32(Q+4,G)}function a1(W,Q,J){const V=Math.floor(J/4294967296),G=J;W.setUint32(Q,V),W.setUint32(Q+4,G)}function s1(W,Q){const J=W.getInt32(Q),V=W.getUint32(Q+4);return J*4294967296+V}function e6(W,Q){const J=W.getUint32(Q),V=W.getUint32(Q+4);return J*4294967296+V}var Q1=4294967295;function nW({sec:W,nsec:Q}){if(W>=0&&Q>=0&&W<=rW)if(Q===0&&W<=lW){const J=new Uint8Array(4);return new DataView(J.buffer).setUint32(0,W),J}else{const J=W/4294967296,V=W&4294967295,G=new Uint8Array(8),X=new DataView(G.buffer);return X.setUint32(0,Q<<2|J&3),X.setUint32(4,V),G}else{const J=new Uint8Array(12),V=new DataView(J.buffer);return V.setUint32(0,Q),a1(V,4,W),J}}function oW(W){const Q=W.getTime(),J=Math.floor(Q/1000),V=(Q-J*1000)*1e6,G=Math.floor(V/1e9);return{sec:J+G,nsec:V-G*1e9}}function aW(W){if(W instanceof Date){const Q=oW(W);return nW(Q)}else return null}function sW(W){const Q=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:return{sec:Q.getUint32(0),nsec:0};case 8:{const J=Q.getUint32(0),V=Q.getUint32(4),G=(J&3)*4294967296+V,X=J>>>2;return{sec:G,nsec:X}}case 12:{const J=s1(Q,4),V=Q.getUint32(0);return{sec:J,nsec:V}}default:throw new Y0(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function eW(W){const Q=sW(W);return new Date(Q.sec*1000+Q.nsec/1e6)}var iW=-1,lW=4294967295,rW=17179869183,t6={type:iW,encode:aW,decode:eW};class u0{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(t6)}register({type:W,encode:Q,decode:J}){if(W>=0)this.encoders[W]=Q,this.decoders[W]=J;else{const V=-1-W;this.builtInEncoders[V]=Q,this.builtInDecoders[V]=J}}tryToEncode(W,Q){for(let J=0;J<this.builtInEncoders.length;J++){const V=this.builtInEncoders[J];if(V!=null){const G=V(W,Q);if(G!=null){const X=-1-J;return new J1(X,G)}}}for(let J=0;J<this.encoders.length;J++){const V=this.encoders[J];if(V!=null){const G=V(W,Q);if(G!=null)return new J1(J,G)}}if(W instanceof J1)return W;return null}decode(W,Q,J){const V=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(V)return V(W,Q,J);else return new J1(Q,W)}}u0.defaultCodec=new u0;var tW=function(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer!=="undefined"&&W instanceof SharedArrayBuffer};function L1(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(tW(W))return new Uint8Array(W);else return Uint8Array.from(W)}var WJ=100,JJ=2048;class e1{constructor(W){this.entered=!1,this.extensionCodec=W?.extensionCodec??u0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??WJ,this.initialBufferSize=W?.initialBufferSize??JJ,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new e1({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,Q){if(Q>this.maxDepth)throw new Error(`Too deep objects in depth ${Q}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,Q)}ensureBufferSizeToWrite(W){const Q=this.pos+W;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(W){const Q=new ArrayBuffer(W),J=new Uint8Array(Q),V=new DataView(Q);J.set(this.bytes),this.view=V,this.bytes=J}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw new Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){const J=n6(W);this.ensureBufferSizeToWrite(5+J),this.writeStringHeader(J),o6(W,this.bytes,this.pos),this.pos+=J}encodeObject(W,Q){const J=this.extensionCodec.tryToEncode(W,this.context);if(J!=null)this.encodeExtension(J);else if(Array.isArray(W))this.encodeArray(W,Q);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,Q);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){const Q=W.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw new Error(`Too large binary: ${Q}`);const J=L1(W);this.writeU8a(J)}encodeArray(W,Q){const J=W.length;if(J<16)this.writeU8(144+J);else if(J<65536)this.writeU8(220),this.writeU16(J);else if(J<4294967296)this.writeU8(221),this.writeU32(J);else throw new Error(`Too large array: ${J}`);for(let V of W)this.doEncode(V,Q+1)}countWithoutUndefined(W,Q){let J=0;for(let V of Q)if(W[V]!==void 0)J++;return J}encodeMap(W,Q){const J=Object.keys(W);if(this.sortKeys)J.sort();const V=this.ignoreUndefined?this.countWithoutUndefined(W,J):J.length;if(V<16)this.writeU8(128+V);else if(V<65536)this.writeU8(222),this.writeU16(V);else if(V<4294967296)this.writeU8(223),this.writeU32(V);else throw new Error(`Too large map object: ${V}`);for(let G of J){const X=W[G];if(!(this.ignoreUndefined&&X===void 0))this.encodeString(G),this.doEncode(X,Q+1)}}encodeExtension(W){if(typeof W.data==="function"){const J=W.data(this.pos+6),V=J.length;if(V>=4294967296)throw new Error(`Too large extension object: ${V}`);this.writeU8(201),this.writeU32(V),this.writeI8(W.type),this.writeU8a(J);return}const Q=W.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw new Error(`Too large extension object: ${Q}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){const Q=W.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(W,this.pos),this.pos+=Q}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),s6(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),a1(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function t1(W,Q){return new e1(Q).encodeSharedRef(W)}function W8(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var QJ=16,VJ=16;class p8{constructor(W=QJ,Q=VJ){this.hit=0,this.miss=0,this.maxKeyLength=W,this.maxLengthPerKey=Q,this.caches=[];for(let J=0;J<this.maxKeyLength;J++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,Q,J){const V=this.caches[J-1];W:for(let G of V){const X=G.bytes;for(let Y=0;Y<J;Y++)if(X[Y]!==W[Q+Y])continue W;return G.str}return null}store(W,Q){const J=this.caches[W.length-1],V={bytes:W,str:Q};if(J.length>=this.maxLengthPerKey)J[Math.random()*J.length|0]=V;else J.push(V)}decode(W,Q,J){const V=this.find(W,Q,J);if(V!=null)return this.hit++,V;this.miss++;const G=y8(W,Q,J),X=Uint8Array.prototype.slice.call(W,Q,Q+J);return this.store(X,G),G}}var f8="array",D1="map_key",J5="map_value",GJ=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new Y0("The type of key must be string or number but "+typeof W)};class Q5{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){const Q=this.getUninitializedStateFromPool();Q.type=f8,Q.position=0,Q.size=W,Q.array=new Array(W)}pushMapState(W){const Q=this.getUninitializedStateFromPool();Q.type=D1,Q.readCount=0,Q.size=W,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===f8){const J=W;J.size=0,J.array=void 0,J.position=0,J.type=void 0}if(W.type===D1||W.type===J5){const J=W;J.size=0,J.map=void 0,J.readCount=0,J.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var I1=-1,b8=new DataView(new ArrayBuffer(0)),XJ=new Uint8Array(b8.buffer);try{b8.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var W5=new RangeError("Insufficient data"),YJ=new p8;class J8{constructor(W){this.totalPos=0,this.pos=0,this.view=b8,this.bytes=XJ,this.headByte=I1,this.stack=new Q5,this.entered=!1,this.extensionCodec=W?.extensionCodec??u0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??Q1,this.maxBinLength=W?.maxBinLength??Q1,this.maxArrayLength=W?.maxArrayLength??Q1,this.maxMapLength=W?.maxMapLength??Q1,this.maxExtLength=W?.maxExtLength??Q1,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:YJ,this.mapKeyConverter=W?.mapKeyConverter??GJ}clone(){return new J8({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=I1,this.stack.reset()}setBuffer(W){const Q=L1(W);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===I1&&!this.hasRemaining(1))this.setBuffer(W);else{const Q=this.bytes.subarray(this.pos),J=L1(W),V=new Uint8Array(Q.length+J.length);V.set(Q),V.set(J,Q.length),this.setBuffer(V)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){const{view:Q,pos:J}=this;return new RangeError(`Extra ${Q.byteLength-J} of ${Q.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);const Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let Q=!1,J;for await(let Y of W){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Y);try{J=this.doDecodeSync(),Q=!0}catch(q){if(!(q instanceof RangeError))throw q}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return J}const{headByte:V,pos:G,totalPos:X}=this;throw new RangeError(`Insufficient data in parsing ${W8(V)} at ${X} (${G} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,Q){if(this.entered){yield*this.clone().decodeMultiAsync(W,Q);return}try{this.entered=!0;let J=Q,V=-1;for await(let G of W){if(Q&&V===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(G),J)V=this.readArraySize(),J=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--V===0)break}catch(X){if(!(X instanceof RangeError))throw X}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){const W=this.readHeadByte();let Q;if(W>=224)Q=W-256;else if(W<192)if(W<128)Q=W;else if(W<144){const V=W-128;if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W<160){const V=W-144;if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else{const V=W-160;Q=this.decodeString(V,0)}else if(W===192)Q=null;else if(W===194)Q=!1;else if(W===195)Q=!0;else if(W===202)Q=this.readF32();else if(W===203)Q=this.readF64();else if(W===204)Q=this.readU8();else if(W===205)Q=this.readU16();else if(W===206)Q=this.readU32();else if(W===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(W===208)Q=this.readI8();else if(W===209)Q=this.readI16();else if(W===210)Q=this.readI32();else if(W===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(W===217){const V=this.lookU8();Q=this.decodeString(V,1)}else if(W===218){const V=this.lookU16();Q=this.decodeString(V,2)}else if(W===219){const V=this.lookU32();Q=this.decodeString(V,4)}else if(W===220){const V=this.readU16();if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else if(W===221){const V=this.readU32();if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else if(W===222){const V=this.readU16();if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W===223){const V=this.readU32();if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W===196){const V=this.lookU8();Q=this.decodeBinary(V,1)}else if(W===197){const V=this.lookU16();Q=this.decodeBinary(V,2)}else if(W===198){const V=this.lookU32();Q=this.decodeBinary(V,4)}else if(W===212)Q=this.decodeExtension(1,0);else if(W===213)Q=this.decodeExtension(2,0);else if(W===214)Q=this.decodeExtension(4,0);else if(W===215)Q=this.decodeExtension(8,0);else if(W===216)Q=this.decodeExtension(16,0);else if(W===199){const V=this.lookU8();Q=this.decodeExtension(V,1)}else if(W===200){const V=this.lookU16();Q=this.decodeExtension(V,2)}else if(W===201){const V=this.lookU32();Q=this.decodeExtension(V,4)}else throw new Y0(`Unrecognized type byte: ${W8(W)}`);this.complete();const J=this.stack;while(J.length>0){const V=J.top();if(V.type===f8)if(V.array[V.position]=Q,V.position++,V.position===V.size)Q=V.array,J.release(V);else continue W;else if(V.type===D1){if(Q==="__proto__")throw new Y0("The key __proto__ is not allowed");V.key=this.mapKeyConverter(Q),V.type=J5;continue W}else if(V.map[V.key]=Q,V.readCount++,V.readCount===V.size)Q=V.map,J.release(V);else{V.key=null,V.type=D1;continue W}}return Q}}readHeadByte(){if(this.headByte===I1)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=I1}readArraySize(){const W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new Y0(`Unrecognized array type byte: ${W8(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new Y0(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new Y0(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,Q);return this.decodeBinary(W,Q)}decodeUtf8String(W,Q){if(W>this.maxStrLength)throw new Y0(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+W)throw W5;const J=this.pos+Q;let V;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))V=this.keyDecoder.decode(this.bytes,J,W);else V=a6(this.bytes,J,W);return this.pos+=Q+W,V}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===D1;return!1}decodeBinary(W,Q){if(W>this.maxBinLength)throw new Y0(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+Q))throw W5;const J=this.pos+Q,V=this.bytes.subarray(J,J+W);return this.pos+=Q+W,V}decodeExtension(W,Q){if(W>this.maxExtLength)throw new Y0(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);const J=this.view.getInt8(this.pos+Q),V=this.decodeBinary(W,Q+1);return this.extensionCodec.decode(V,J,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){const W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){const W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){const W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){const W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){const W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){const W=e6(this.view,this.pos);return this.pos+=8,W}readI64(){const W=s1(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){const W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){const W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){const W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){const W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function Q8(W,Q){return new J8(Q).decode(W)}var U1=function(W){let Q=W.length;while(--Q>=0)W[Q]=0},u8=function(W,Q,J,V,G){this.static_tree=W,this.extra_bits=Q,this.extra_base=J,this.elems=V,this.max_length=G,this.has_stree=W&&W.length},m8=function(W,Q){this.dyn_tree=W,this.max_code=0,this.stat_desc=Q},B0=function(W,Q,J,V,G){this.good_length=W,this.max_lazy=Q,this.nice_length=J,this.max_chain=V,this.func=G},U9=function(){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=z8,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(tJ*2),this.dyn_dtree=new Uint16Array((2*sJ+1)*2),this.bl_tree=new Uint16Array((2*eJ+1)*2),g0(this.dyn_ltree),g0(this.dyn_dtree),g0(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(W9+1),this.heap=new Uint16Array(2*Q6+1),g0(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Q6+1),g0(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},v9=function(){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},m1=function(W){this.options=Z8.assign({level:p9,method:b9,chunkSize:16384,windowBits:15,memLevel:8,strategy:f9},W||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new U7,this.strm.avail_out=0;let J=S1.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(J!==K8)throw new Error(d0[J]);if(Q.header)S1.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let V;if(typeof Q.dictionary==="string")V=f1.string2buf(Q.dictionary);else if(P7.call(Q.dictionary)==="[object ArrayBuffer]")V=new Uint8Array(Q.dictionary);else V=Q.dictionary;if(J=S1.deflateSetDictionary(this.strm,V),J!==K8)throw new Error(d0[J]);this._dict_set=!0}},Z6=function(W,Q){const J=new m1(Q);if(J.push(W,!0),J.err)throw J.msg||d0[J.err];return J.result},h9=function(W,Q){return Q=Q||{},Q.raw=!0,Z6(W,Q)},u9=function(W,Q){return Q=Q||{},Q.gzip=!0,Z6(W,Q)},PQ=function(){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},xQ=function(){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},_1=function(W){this.options=Z8.assign({chunkSize:65536,windowBits:15,to:""},W||{});const Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(W&&W.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new U7,this.strm.avail_out=0;let J=N0.inflateInit2(this.strm,Q.windowBits);if(J!==b1)throw new Error(d0[J]);if(this.header=new wQ,N0.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=f1.string2buf(Q.dictionary);else if(R7.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(J=N0.inflateSetDictionary(this.strm,Q.dictionary),J!==b1)throw new Error(d0[J])}}},H6=function(W,Q){const J=new _1(Q);if(J.push(W),J.err)throw J.msg||d0[J.err];return J.result},TQ=function(W,Q){return Q=Q||{},Q.raw=!0,H6(W,Q)};/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */var qJ=0,m5=1,UJ=2,PJ=3,KJ=258,U6=29,h1=256,A1=h1+1+U6,X1=30,P6=19,_5=2*A1+1,m0=15,h8=16,FJ=7,K6=256,c5=16,d5=17,i5=18,t8=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]),U8=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]),zJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),l5=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ZJ=512,w0=new Array((A1+2)*2);U1(w0);var N1=new Array(X1*2);U1(N1);var T1=new Array(ZJ);U1(T1);var g1=new Array(KJ-PJ+1);U1(g1);var F6=new Array(U6);U1(F6);var P8=new Array(X1);U1(P8);var r5,n5,o5,a5=(W)=>{return W<256?T1[W]:T1[256+(W>>>7)]},E1=(W,Q)=>{W.pending_buf[W.pending++]=Q&255,W.pending_buf[W.pending++]=Q>>>8&255},P0=(W,Q,J)=>{if(W.bi_valid>h8-J)W.bi_buf|=Q<<W.bi_valid&65535,E1(W,W.bi_buf),W.bi_buf=Q>>h8-W.bi_valid,W.bi_valid+=J-h8;else W.bi_buf|=Q<<W.bi_valid&65535,W.bi_valid+=J},M0=(W,Q,J)=>{P0(W,J[Q*2],J[Q*2+1])},s5=(W,Q)=>{let J=0;do J|=W&1,W>>>=1,J<<=1;while(--Q>0);return J>>>1},HJ=(W)=>{if(W.bi_valid===16)E1(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},kJ=(W,Q)=>{const{dyn_tree:J,max_code:V}=Q,G=Q.stat_desc.static_tree,X=Q.stat_desc.has_stree,Y=Q.stat_desc.extra_bits,q=Q.stat_desc.extra_base,F=Q.stat_desc.max_length;let U,K,$,P,z,C,S=0;for(P=0;P<=m0;P++)W.bl_count[P]=0;J[W.heap[W.heap_max]*2+1]=0;for(U=W.heap_max+1;U<_5;U++){if(K=W.heap[U],P=J[J[K*2+1]*2+1]+1,P>F)P=F,S++;if(J[K*2+1]=P,K>V)continue;if(W.bl_count[P]++,z=0,K>=q)z=Y[K-q];if(C=J[K*2],W.opt_len+=C*(P+z),X)W.static_len+=C*(G[K*2+1]+z)}if(S===0)return;do{P=F-1;while(W.bl_count[P]===0)P--;W.bl_count[P]--,W.bl_count[P+1]+=2,W.bl_count[F]--,S-=2}while(S>0);for(P=F;P!==0;P--){K=W.bl_count[P];while(K!==0){if($=W.heap[--U],$>V)continue;if(J[$*2+1]!==P)W.opt_len+=(P-J[$*2+1])*J[$*2],J[$*2+1]=P;K--}}},e5=(W,Q,J)=>{const V=new Array(m0+1);let G=0,X,Y;for(X=1;X<=m0;X++)G=G+J[X-1]<<1,V[X]=G;for(Y=0;Y<=Q;Y++){let q=W[Y*2+1];if(q===0)continue;W[Y*2]=s5(V[q]++,q)}},$J=()=>{let W,Q,J,V,G;const X=new Array(m0+1);J=0;for(V=0;V<U6-1;V++){F6[V]=J;for(W=0;W<1<<t8[V];W++)g1[J++]=V}g1[J-1]=V,G=0;for(V=0;V<16;V++){P8[V]=G;for(W=0;W<1<<U8[V];W++)T1[G++]=V}G>>=7;for(;V<X1;V++){P8[V]=G<<7;for(W=0;W<1<<U8[V]-7;W++)T1[256+G++]=V}for(Q=0;Q<=m0;Q++)X[Q]=0;W=0;while(W<=143)w0[W*2+1]=8,W++,X[8]++;while(W<=255)w0[W*2+1]=9,W++,X[9]++;while(W<=279)w0[W*2+1]=7,W++,X[7]++;while(W<=287)w0[W*2+1]=8,W++,X[8]++;e5(w0,A1+1,X);for(W=0;W<X1;W++)N1[W*2+1]=5,N1[W*2]=s5(W,5);r5=new u8(w0,t8,h1+1,A1,m0),n5=new u8(N1,U8,0,X1,m0),o5=new u8(new Array(0),zJ,0,P6,FJ)},t5=(W)=>{let Q;for(Q=0;Q<A1;Q++)W.dyn_ltree[Q*2]=0;for(Q=0;Q<X1;Q++)W.dyn_dtree[Q*2]=0;for(Q=0;Q<P6;Q++)W.bl_tree[Q*2]=0;W.dyn_ltree[K6*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},W7=(W)=>{if(W.bi_valid>8)E1(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},V5=(W,Q,J,V)=>{const G=Q*2,X=J*2;return W[G]<W[X]||W[G]===W[X]&&V[Q]<=V[J]},_8=(W,Q,J)=>{const V=W.heap[J];let G=J<<1;while(G<=W.heap_len){if(G<W.heap_len&&V5(Q,W.heap[G+1],W.heap[G],W.depth))G++;if(V5(Q,V,W.heap[G],W.depth))break;W.heap[J]=W.heap[G],J=G,G<<=1}W.heap[J]=V},G5=(W,Q,J)=>{let V,G,X=0,Y,q;if(W.sym_next!==0)do if(V=W.pending_buf[W.sym_buf+X++]&255,V+=(W.pending_buf[W.sym_buf+X++]&255)<<8,G=W.pending_buf[W.sym_buf+X++],V===0)M0(W,G,Q);else{if(Y=g1[G],M0(W,Y+h1+1,Q),q=t8[Y],q!==0)G-=F6[Y],P0(W,G,q);if(V--,Y=a5(V),M0(W,Y,J),q=U8[Y],q!==0)V-=P8[Y],P0(W,V,q)}while(X<W.sym_next);M0(W,K6,Q)},W6=(W,Q)=>{const J=Q.dyn_tree,V=Q.stat_desc.static_tree,G=Q.stat_desc.has_stree,X=Q.stat_desc.elems;let Y,q,F=-1,U;W.heap_len=0,W.heap_max=_5;for(Y=0;Y<X;Y++)if(J[Y*2]!==0)W.heap[++W.heap_len]=F=Y,W.depth[Y]=0;else J[Y*2+1]=0;while(W.heap_len<2)if(U=W.heap[++W.heap_len]=F<2?++F:0,J[U*2]=1,W.depth[U]=0,W.opt_len--,G)W.static_len-=V[U*2+1];Q.max_code=F;for(Y=W.heap_len>>1;Y>=1;Y--)_8(W,J,Y);U=X;do Y=W.heap[1],W.heap[1]=W.heap[W.heap_len--],_8(W,J,1),q=W.heap[1],W.heap[--W.heap_max]=Y,W.heap[--W.heap_max]=q,J[U*2]=J[Y*2]+J[q*2],W.depth[U]=(W.depth[Y]>=W.depth[q]?W.depth[Y]:W.depth[q])+1,J[Y*2+1]=J[q*2+1]=U,W.heap[1]=U++,_8(W,J,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],kJ(W,Q),e5(J,F,W.bl_count)},X5=(W,Q,J)=>{let V,G=-1,X,Y=Q[1],q=0,F=7,U=4;if(Y===0)F=138,U=3;Q[(J+1)*2+1]=65535;for(V=0;V<=J;V++){if(X=Y,Y=Q[(V+1)*2+1],++q<F&&X===Y)continue;else if(q<U)W.bl_tree[X*2]+=q;else if(X!==0){if(X!==G)W.bl_tree[X*2]++;W.bl_tree[c5*2]++}else if(q<=10)W.bl_tree[d5*2]++;else W.bl_tree[i5*2]++;if(q=0,G=X,Y===0)F=138,U=3;else if(X===Y)F=6,U=3;else F=7,U=4}},Y5=(W,Q,J)=>{let V,G=-1,X,Y=Q[1],q=0,F=7,U=4;if(Y===0)F=138,U=3;for(V=0;V<=J;V++){if(X=Y,Y=Q[(V+1)*2+1],++q<F&&X===Y)continue;else if(q<U)do M0(W,X,W.bl_tree);while(--q!==0);else if(X!==0){if(X!==G)M0(W,X,W.bl_tree),q--;M0(W,c5,W.bl_tree),P0(W,q-3,2)}else if(q<=10)M0(W,d5,W.bl_tree),P0(W,q-3,3);else M0(W,i5,W.bl_tree),P0(W,q-11,7);if(q=0,G=X,Y===0)F=138,U=3;else if(X===Y)F=6,U=3;else F=7,U=4}},CJ=(W)=>{let Q;X5(W,W.dyn_ltree,W.l_desc.max_code),X5(W,W.dyn_dtree,W.d_desc.max_code),W6(W,W.bl_desc);for(Q=P6-1;Q>=3;Q--)if(W.bl_tree[l5[Q]*2+1]!==0)break;return W.opt_len+=3*(Q+1)+5+5+4,Q},jJ=(W,Q,J,V)=>{let G;P0(W,Q-257,5),P0(W,J-1,5),P0(W,V-4,4);for(G=0;G<V;G++)P0(W,W.bl_tree[l5[G]*2+1],3);Y5(W,W.dyn_ltree,Q-1),Y5(W,W.dyn_dtree,J-1)},BJ=(W)=>{let Q=4093624447,J;for(J=0;J<=31;J++,Q>>>=1)if(Q&1&&W.dyn_ltree[J*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(J=32;J<h1;J++)if(W.dyn_ltree[J*2]!==0)return 1;return 0},q5=!1,MJ=(W)=>{if(!q5)$J(),q5=!0;W.l_desc=new m8(W.dyn_ltree,r5),W.d_desc=new m8(W.dyn_dtree,n5),W.bl_desc=new m8(W.bl_tree,o5),W.bi_buf=0,W.bi_valid=0,t5(W)},J7=(W,Q,J,V)=>{if(P0(W,(qJ<<1)+(V?1:0),3),W7(W),E1(W,J),E1(W,~J),J)W.pending_buf.set(W.window.subarray(Q,Q+J),W.pending);W.pending+=J},RJ=(W)=>{P0(W,m5<<1,3),M0(W,K6,w0),HJ(W)},LJ=(W,Q,J,V)=>{let G,X,Y=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=BJ(W);if(W6(W,W.l_desc),W6(W,W.d_desc),Y=CJ(W),G=W.opt_len+3+7>>>3,X=W.static_len+3+7>>>3,X<=G)G=X}else G=X=J+5;if(J+4<=G&&Q!==-1)J7(W,Q,J,V);else if(W.strategy===4||X===G)P0(W,(m5<<1)+(V?1:0),3),G5(W,w0,N1);else P0(W,(UJ<<1)+(V?1:0),3),jJ(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Y+1),G5(W,W.dyn_ltree,W.dyn_dtree);if(t5(W),V)W7(W)},IJ=(W,Q,J)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=Q,W.pending_buf[W.sym_buf+W.sym_next++]=Q>>8,W.pending_buf[W.sym_buf+W.sym_next++]=J,Q===0)W.dyn_ltree[J*2]++;else W.matches++,Q--,W.dyn_ltree[(g1[J]+h1+1)*2]++,W.dyn_dtree[a5(Q)*2]++;return W.sym_next===W.sym_end},DJ=MJ,OJ=J7,xJ=LJ,wJ=IJ,NJ=RJ,SJ={_tr_init:DJ,_tr_stored_block:OJ,_tr_flush_block:xJ,_tr_tally:wJ,_tr_align:NJ},vJ=(W,Q,J,V)=>{let G=W&65535|0,X=W>>>16&65535|0,Y=0;while(J!==0){Y=J>2000?2000:J,J-=Y;do G=G+Q[V++]|0,X=X+G|0;while(--Y);G%=65521,X%=65521}return G|X<<16|0},y1=vJ,AJ=()=>{let W,Q=[];for(var J=0;J<256;J++){W=J;for(var V=0;V<8;V++)W=W&1?3988292384^W>>>1:W>>>1;Q[J]=W}return Q},TJ=new Uint32Array(AJ()),gJ=(W,Q,J,V)=>{const G=TJ,X=V+J;W^=-1;for(let Y=V;Y<X;Y++)W=W>>>8^G[(W^Q[Y])&255];return W^-1},V0=gJ,d0={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"},r0={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:EJ,_tr_stored_block:J6,_tr_flush_block:yJ,_tr_tally:y0,_tr_align:pJ}=SJ,{Z_NO_FLUSH:p0,Z_PARTIAL_FLUSH:fJ,Z_FULL_FLUSH:bJ,Z_FINISH:k0,Z_BLOCK:U5,Z_OK:X0,Z_STREAM_END:P5,Z_STREAM_ERROR:R0,Z_DATA_ERROR:hJ,Z_BUF_ERROR:c8,Z_DEFAULT_COMPRESSION:uJ,Z_FILTERED:mJ,Z_HUFFMAN_ONLY:V8,Z_RLE:_J,Z_FIXED:cJ,Z_DEFAULT_STRATEGY:dJ,Z_UNKNOWN:iJ,Z_DEFLATED:z8}=r0,lJ=9,rJ=15,nJ=8,oJ=29,aJ=256,Q6=aJ+1+oJ,sJ=30,eJ=19,tJ=2*Q6+1,W9=15,a=3,E0=258,L0=E0+a+1,J9=32,Y1=42,z6=57,V6=69,G6=73,X6=91,Y6=103,_0=113,x1=666,q0=1,P1=2,i0=3,K1=4,Q9=3,c0=(W,Q)=>{return W.msg=d0[Q],Q},K5=(W)=>{return W*2-(W>4?9:0)},g0=(W)=>{let Q=W.length;while(--Q>=0)W[Q]=0},V9=(W)=>{let Q,J,V,G=W.w_size;Q=W.hash_size,V=Q;do J=W.head[--V],W.head[V]=J>=G?J-G:0;while(--Q);Q=G,V=Q;do J=W.prev[--V],W.prev[V]=J>=G?J-G:0;while(--Q)},G9=(W,Q,J)=>(Q<<W.hash_shift^J)&W.hash_mask,f0=G9,F0=(W)=>{const Q=W.state;let J=Q.pending;if(J>W.avail_out)J=W.avail_out;if(J===0)return;if(W.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+J),W.next_out),W.next_out+=J,Q.pending_out+=J,W.total_out+=J,W.avail_out-=J,Q.pending-=J,Q.pending===0)Q.pending_out=0},z0=(W,Q)=>{yJ(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,Q),W.block_start=W.strstart,F0(W.strm)},s=(W,Q)=>{W.pending_buf[W.pending++]=Q},O1=(W,Q)=>{W.pending_buf[W.pending++]=Q>>>8&255,W.pending_buf[W.pending++]=Q&255},q6=(W,Q,J,V)=>{let G=W.avail_in;if(G>V)G=V;if(G===0)return 0;if(W.avail_in-=G,Q.set(W.input.subarray(W.next_in,W.next_in+G),J),W.state.wrap===1)W.adler=y1(W.adler,Q,G,J);else if(W.state.wrap===2)W.adler=V0(W.adler,Q,G,J);return W.next_in+=G,W.total_in+=G,G},Q7=(W,Q)=>{let{max_chain_length:J,strstart:V}=W,G,X,Y=W.prev_length,q=W.nice_match;const F=W.strstart>W.w_size-L0?W.strstart-(W.w_size-L0):0,U=W.window,K=W.w_mask,$=W.prev,P=W.strstart+E0;let z=U[V+Y-1],C=U[V+Y];if(W.prev_length>=W.good_match)J>>=2;if(q>W.lookahead)q=W.lookahead;do{if(G=Q,U[G+Y]!==C||U[G+Y-1]!==z||U[G]!==U[V]||U[++G]!==U[V+1])continue;V+=2,G++;do;while(U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&V<P);if(X=E0-(P-V),V=P-E0,X>Y){if(W.match_start=Q,Y=X,X>=q)break;z=U[V+Y-1],C=U[V+Y]}}while((Q=$[Q&K])>F&&--J!==0);if(Y<=W.lookahead)return Y;return W.lookahead},q1=(W)=>{const Q=W.w_size;let J,V,G;do{if(V=W.window_size-W.lookahead-W.strstart,W.strstart>=Q+(Q-L0)){if(W.window.set(W.window.subarray(Q,Q+Q-V),0),W.match_start-=Q,W.strstart-=Q,W.block_start-=Q,W.insert>W.strstart)W.insert=W.strstart;V9(W),V+=Q}if(W.strm.avail_in===0)break;if(J=q6(W.strm,W.window,W.strstart+W.lookahead,V),W.lookahead+=J,W.lookahead+W.insert>=a){G=W.strstart-W.insert,W.ins_h=W.window[G],W.ins_h=f0(W,W.ins_h,W.window[G+1]);while(W.insert)if(W.ins_h=f0(W,W.ins_h,W.window[G+a-1]),W.prev[G&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=G,G++,W.insert--,W.lookahead+W.insert<a)break}}while(W.lookahead<L0&&W.strm.avail_in!==0)},V7=(W,Q)=>{let J=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,V,G,X,Y=0,q=W.strm.avail_in;do{if(V=65535,X=W.bi_valid+42>>3,W.strm.avail_out<X)break;if(X=W.strm.avail_out-X,G=W.strstart-W.block_start,V>G+W.strm.avail_in)V=G+W.strm.avail_in;if(V>X)V=X;if(V<J&&(V===0&&Q!==k0||Q===p0||V!==G+W.strm.avail_in))break;if(Y=Q===k0&&V===G+W.strm.avail_in?1:0,J6(W,0,0,Y),W.pending_buf[W.pending-4]=V,W.pending_buf[W.pending-3]=V>>8,W.pending_buf[W.pending-2]=~V,W.pending_buf[W.pending-1]=~V>>8,F0(W.strm),G){if(G>V)G=V;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+G),W.strm.next_out),W.strm.next_out+=G,W.strm.avail_out-=G,W.strm.total_out+=G,W.block_start+=G,V-=G}if(V)q6(W.strm,W.strm.output,W.strm.next_out,V),W.strm.next_out+=V,W.strm.avail_out-=V,W.strm.total_out+=V}while(Y===0);if(q-=W.strm.avail_in,q){if(q>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=q){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-q,W.strm.next_in),W.strstart),W.strstart+=q,W.insert+=q>W.w_size-W.insert?W.w_size-W.insert:q}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Y)return K1;if(Q!==p0&&Q!==k0&&W.strm.avail_in===0&&W.strstart===W.block_start)return P1;if(X=W.window_size-W.strstart,W.strm.avail_in>X&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(X+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(X>W.strm.avail_in)X=W.strm.avail_in;if(X)q6(W.strm,W.window,W.strstart,X),W.strstart+=X,W.insert+=X>W.w_size-W.insert?W.w_size-W.insert:X;if(W.high_water<W.strstart)W.high_water=W.strstart;if(X=W.bi_valid+42>>3,X=W.pending_buf_size-X>65535?65535:W.pending_buf_size-X,J=X>W.w_size?W.w_size:X,G=W.strstart-W.block_start,G>=J||(G||Q===k0)&&Q!==p0&&W.strm.avail_in===0&&G<=X)V=G>X?X:G,Y=Q===k0&&W.strm.avail_in===0&&V===G?1:0,J6(W,W.block_start,V,Y),W.block_start+=V,F0(W.strm);return Y?i0:q0},d8=(W,Q)=>{let J,V;for(;;){if(W.lookahead<L0){if(q1(W),W.lookahead<L0&&Q===p0)return q0;if(W.lookahead===0)break}if(J=0,W.lookahead>=a)W.ins_h=f0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(J!==0&&W.strstart-J<=W.w_size-L0)W.match_length=Q7(W,J);if(W.match_length>=a)if(V=y0(W,W.strstart-W.match_start,W.match_length-a),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=a){W.match_length--;do W.strstart++,W.ins_h=f0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=f0(W,W.ins_h,W.window[W.strstart+1]);else V=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(V){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=W.strstart<a-1?W.strstart:a-1,Q===k0){if(z0(W,!0),W.strm.avail_out===0)return i0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},V1=(W,Q)=>{let J,V,G;for(;;){if(W.lookahead<L0){if(q1(W),W.lookahead<L0&&Q===p0)return q0;if(W.lookahead===0)break}if(J=0,W.lookahead>=a)W.ins_h=f0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=a-1,J!==0&&W.prev_length<W.max_lazy_match&&W.strstart-J<=W.w_size-L0){if(W.match_length=Q7(W,J),W.match_length<=5&&(W.strategy===mJ||W.match_length===a&&W.strstart-W.match_start>4096))W.match_length=a-1}if(W.prev_length>=a&&W.match_length<=W.prev_length){G=W.strstart+W.lookahead-a,V=y0(W,W.strstart-1-W.prev_match,W.prev_length-a),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=G)W.ins_h=f0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=a-1,W.strstart++,V){if(z0(W,!1),W.strm.avail_out===0)return q0}}else if(W.match_available){if(V=y0(W,0,W.window[W.strstart-1]),V)z0(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return q0}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)V=y0(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<a-1?W.strstart:a-1,Q===k0){if(z0(W,!0),W.strm.avail_out===0)return i0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},X9=(W,Q)=>{let J,V,G,X;const Y=W.window;for(;;){if(W.lookahead<=E0){if(q1(W),W.lookahead<=E0&&Q===p0)return q0;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=a&&W.strstart>0){if(G=W.strstart-1,V=Y[G],V===Y[++G]&&V===Y[++G]&&V===Y[++G]){X=W.strstart+E0;do;while(V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&G<X);if(W.match_length=E0-(X-G),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=a)J=y0(W,1,W.match_length-a),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else J=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(J){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=0,Q===k0){if(z0(W,!0),W.strm.avail_out===0)return i0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},Y9=(W,Q)=>{let J;for(;;){if(W.lookahead===0){if(q1(W),W.lookahead===0){if(Q===p0)return q0;break}}if(W.match_length=0,J=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,J){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=0,Q===k0){if(z0(W,!0),W.strm.avail_out===0)return i0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},w1=[new B0(0,0,0,0,V7),new B0(4,4,8,4,d8),new B0(4,5,16,8,d8),new B0(4,6,32,32,d8),new B0(4,4,16,16,V1),new B0(8,16,32,32,V1),new B0(8,16,128,128,V1),new B0(8,32,128,256,V1),new B0(32,128,258,1024,V1),new B0(32,258,258,4096,V1)],q9=(W)=>{W.window_size=2*W.w_size,g0(W.head),W.max_lazy_match=w1[W.level].max_lazy,W.good_match=w1[W.level].good_length,W.nice_match=w1[W.level].nice_length,W.max_chain_length=w1[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=a-1,W.match_available=0,W.ins_h=0},u1=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.status!==Y1&&Q.status!==z6&&Q.status!==V6&&Q.status!==G6&&Q.status!==X6&&Q.status!==Y6&&Q.status!==_0&&Q.status!==x1)return 1;return 0},G7=(W)=>{if(u1(W))return c0(W,R0);W.total_in=W.total_out=0,W.data_type=iJ;const Q=W.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?z6:Q.wrap?Y1:_0,W.adler=Q.wrap===2?0:1,Q.last_flush=-2,EJ(Q),X0},X7=(W)=>{const Q=G7(W);if(Q===X0)q9(W.state);return Q},P9=(W,Q)=>{if(u1(W)||W.state.wrap!==2)return R0;return W.state.gzhead=Q,X0},Y7=(W,Q,J,V,G,X)=>{if(!W)return R0;let Y=1;if(Q===uJ)Q=6;if(V<0)Y=0,V=-V;else if(V>15)Y=2,V-=16;if(G<1||G>lJ||J!==z8||V<8||V>15||Q<0||Q>9||X<0||X>cJ||V===8&&Y!==1)return c0(W,R0);if(V===8)V=9;const q=new U9;return W.state=q,q.strm=W,q.status=Y1,q.wrap=Y,q.gzhead=null,q.w_bits=V,q.w_size=1<<q.w_bits,q.w_mask=q.w_size-1,q.hash_bits=G+7,q.hash_size=1<<q.hash_bits,q.hash_mask=q.hash_size-1,q.hash_shift=~~((q.hash_bits+a-1)/a),q.window=new Uint8Array(q.w_size*2),q.head=new Uint16Array(q.hash_size),q.prev=new Uint16Array(q.w_size),q.lit_bufsize=1<<G+6,q.pending_buf_size=q.lit_bufsize*4,q.pending_buf=new Uint8Array(q.pending_buf_size),q.sym_buf=q.lit_bufsize,q.sym_end=(q.lit_bufsize-1)*3,q.level=Q,q.strategy=X,q.method=J,X7(W)},K9=(W,Q)=>{return Y7(W,Q,z8,rJ,nJ,dJ)},F9=(W,Q)=>{if(u1(W)||Q>U5||Q<0)return W?c0(W,R0):R0;const J=W.state;if(!W.output||W.avail_in!==0&&!W.input||J.status===x1&&Q!==k0)return c0(W,W.avail_out===0?c8:R0);const V=J.last_flush;if(J.last_flush=Q,J.pending!==0){if(F0(W),W.avail_out===0)return J.last_flush=-1,X0}else if(W.avail_in===0&&K5(Q)<=K5(V)&&Q!==k0)return c0(W,c8);if(J.status===x1&&W.avail_in!==0)return c0(W,c8);if(J.status===Y1&&J.wrap===0)J.status=_0;if(J.status===Y1){let G=z8+(J.w_bits-8<<4)<<8,X=-1;if(J.strategy>=V8||J.level<2)X=0;else if(J.level<6)X=1;else if(J.level===6)X=2;else X=3;if(G|=X<<6,J.strstart!==0)G|=J9;if(G+=31-G%31,O1(J,G),J.strstart!==0)O1(J,W.adler>>>16),O1(J,W.adler&65535);if(W.adler=1,J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}if(J.status===z6)if(W.adler=0,s(J,31),s(J,139),s(J,8),!J.gzhead){if(s(J,0),s(J,0),s(J,0),s(J,0),s(J,0),s(J,J.level===9?2:J.strategy>=V8||J.level<2?4:0),s(J,Q9),J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}else{if(s(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(!J.gzhead.extra?0:4)+(!J.gzhead.name?0:8)+(!J.gzhead.comment?0:16)),s(J,J.gzhead.time&255),s(J,J.gzhead.time>>8&255),s(J,J.gzhead.time>>16&255),s(J,J.gzhead.time>>24&255),s(J,J.level===9?2:J.strategy>=V8||J.level<2?4:0),s(J,J.gzhead.os&255),J.gzhead.extra&&J.gzhead.extra.length)s(J,J.gzhead.extra.length&255),s(J,J.gzhead.extra.length>>8&255);if(J.gzhead.hcrc)W.adler=V0(W.adler,J.pending_buf,J.pending,0);J.gzindex=0,J.status=V6}if(J.status===V6){if(J.gzhead.extra){let G=J.pending,X=(J.gzhead.extra.length&65535)-J.gzindex;while(J.pending+X>J.pending_buf_size){let q=J.pending_buf_size-J.pending;if(J.pending_buf.set(J.gzhead.extra.subarray(J.gzindex,J.gzindex+q),J.pending),J.pending=J.pending_buf_size,J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G);if(J.gzindex+=q,F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0,X-=q}let Y=new Uint8Array(J.gzhead.extra);if(J.pending_buf.set(Y.subarray(J.gzindex,J.gzindex+X),J.pending),J.pending+=X,J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=G6}if(J.status===G6){if(J.gzhead.name){let G=J.pending,X;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G);if(F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0}if(J.gzindex<J.gzhead.name.length)X=J.gzhead.name.charCodeAt(J.gzindex++)&255;else X=0;s(J,X)}while(X!==0);if(J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=X6}if(J.status===X6){if(J.gzhead.comment){let G=J.pending,X;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G);if(F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0}if(J.gzindex<J.gzhead.comment.length)X=J.gzhead.comment.charCodeAt(J.gzindex++)&255;else X=0;s(J,X)}while(X!==0);if(J.gzhead.hcrc&&J.pending>G)W.adler=V0(W.adler,J.pending_buf,J.pending-G,G)}J.status=Y6}if(J.status===Y6){if(J.gzhead.hcrc){if(J.pending+2>J.pending_buf_size){if(F0(W),J.pending!==0)return J.last_flush=-1,X0}s(J,W.adler&255),s(J,W.adler>>8&255),W.adler=0}if(J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}if(W.avail_in!==0||J.lookahead!==0||Q!==p0&&J.status!==x1){let G=J.level===0?V7(J,Q):J.strategy===V8?Y9(J,Q):J.strategy===_J?X9(J,Q):w1[J.level].func(J,Q);if(G===i0||G===K1)J.status=x1;if(G===q0||G===i0){if(W.avail_out===0)J.last_flush=-1;return X0}if(G===P1){if(Q===fJ)pJ(J);else if(Q!==U5){if(J6(J,0,0,!1),Q===bJ){if(g0(J.head),J.lookahead===0)J.strstart=0,J.block_start=0,J.insert=0}}if(F0(W),W.avail_out===0)return J.last_flush=-1,X0}}if(Q!==k0)return X0;if(J.wrap<=0)return P5;if(J.wrap===2)s(J,W.adler&255),s(J,W.adler>>8&255),s(J,W.adler>>16&255),s(J,W.adler>>24&255),s(J,W.total_in&255),s(J,W.total_in>>8&255),s(J,W.total_in>>16&255),s(J,W.total_in>>24&255);else O1(J,W.adler>>>16),O1(J,W.adler&65535);if(F0(W),J.wrap>0)J.wrap=-J.wrap;return J.pending!==0?X0:P5},z9=(W)=>{if(u1(W))return R0;const Q=W.state.status;return W.state=null,Q===_0?c0(W,hJ):X0},Z9=(W,Q)=>{let J=Q.length;if(u1(W))return R0;const V=W.state,G=V.wrap;if(G===2||G===1&&V.status!==Y1||V.lookahead)return R0;if(G===1)W.adler=y1(W.adler,Q,J,0);if(V.wrap=0,J>=V.w_size){if(G===0)g0(V.head),V.strstart=0,V.block_start=0,V.insert=0;let F=new Uint8Array(V.w_size);F.set(Q.subarray(J-V.w_size,J),0),Q=F,J=V.w_size}const{avail_in:X,next_in:Y,input:q}=W;W.avail_in=J,W.next_in=0,W.input=Q,q1(V);while(V.lookahead>=a){let F=V.strstart,U=V.lookahead-(a-1);do V.ins_h=f0(V,V.ins_h,V.window[F+a-1]),V.prev[F&V.w_mask]=V.head[V.ins_h],V.head[V.ins_h]=F,F++;while(--U);V.strstart=F,V.lookahead=a-1,q1(V)}return V.strstart+=V.lookahead,V.block_start=V.strstart,V.insert=V.lookahead,V.lookahead=0,V.match_length=V.prev_length=a-1,V.match_available=0,W.next_in=Y,W.input=q,W.avail_in=X,V.wrap=G,X0},H9=K9,k9=Y7,$9=X7,C9=G7,j9=P9,B9=F9,M9=z9,R9=Z9,L9="pako deflate (from Nodeca project)",S1={deflateInit:H9,deflateInit2:k9,deflateReset:$9,deflateResetKeep:C9,deflateSetHeader:j9,deflate:B9,deflateEnd:M9,deflateSetDictionary:R9,deflateInfo:L9},I9=(W,Q)=>{return Object.prototype.hasOwnProperty.call(W,Q)},D9=function(W){const Q=Array.prototype.slice.call(arguments,1);while(Q.length){const J=Q.shift();if(!J)continue;if(typeof J!=="object")throw new TypeError(J+"must be non-object");for(let V in J)if(I9(J,V))W[V]=J[V]}return W},O9=(W)=>{let Q=0;for(let V=0,G=W.length;V<G;V++)Q+=W[V].length;const J=new Uint8Array(Q);for(let V=0,G=0,X=W.length;V<X;V++){let Y=W[V];J.set(Y,G),G+=Y.length}return J},Z8={assign:D9,flattenChunks:O9},q7=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){q7=!1}var p1=new Uint8Array(256);for(let W=0;W<256;W++)p1[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;p1[254]=p1[254]=1;var x9=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return(new TextEncoder()).encode(W);let Q,J,V,G,X,Y=W.length,q=0;for(G=0;G<Y;G++){if(J=W.charCodeAt(G),(J&64512)===55296&&G+1<Y){if(V=W.charCodeAt(G+1),(V&64512)===56320)J=65536+(J-55296<<10)+(V-56320),G++}q+=J<128?1:J<2048?2:J<65536?3:4}Q=new Uint8Array(q);for(X=0,G=0;X<q;G++){if(J=W.charCodeAt(G),(J&64512)===55296&&G+1<Y){if(V=W.charCodeAt(G+1),(V&64512)===56320)J=65536+(J-55296<<10)+(V-56320),G++}if(J<128)Q[X++]=J;else if(J<2048)Q[X++]=192|J>>>6,Q[X++]=128|J&63;else if(J<65536)Q[X++]=224|J>>>12,Q[X++]=128|J>>>6&63,Q[X++]=128|J&63;else Q[X++]=240|J>>>18,Q[X++]=128|J>>>12&63,Q[X++]=128|J>>>6&63,Q[X++]=128|J&63}return Q},w9=(W,Q)=>{if(Q<65534){if(W.subarray&&q7)return String.fromCharCode.apply(null,W.length===Q?W:W.subarray(0,Q))}let J="";for(let V=0;V<Q;V++)J+=String.fromCharCode(W[V]);return J},N9=(W,Q)=>{const J=Q||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return(new TextDecoder()).decode(W.subarray(0,Q));let V,G;const X=new Array(J*2);for(G=0,V=0;V<J;){let Y=W[V++];if(Y<128){X[G++]=Y;continue}let q=p1[Y];if(q>4){X[G++]=65533,V+=q-1;continue}Y&=q===2?31:q===3?15:7;while(q>1&&V<J)Y=Y<<6|W[V++]&63,q--;if(q>1){X[G++]=65533;continue}if(Y<65536)X[G++]=Y;else Y-=65536,X[G++]=55296|Y>>10&1023,X[G++]=56320|Y&1023}return w9(X,G)},S9=(W,Q)=>{if(Q=Q||W.length,Q>W.length)Q=W.length;let J=Q-1;while(J>=0&&(W[J]&192)===128)J--;if(J<0)return Q;if(J===0)return Q;return J+p1[W[J]]>Q?J:Q},f1={string2buf:x9,buf2string:N9,utf8border:S9},U7=v9,P7=Object.prototype.toString,{Z_NO_FLUSH:A9,Z_SYNC_FLUSH:T9,Z_FULL_FLUSH:g9,Z_FINISH:E9,Z_OK:K8,Z_STREAM_END:y9,Z_DEFAULT_COMPRESSION:p9,Z_DEFAULT_STRATEGY:f9,Z_DEFLATED:b9}=r0;m1.prototype.push=function(W,Q){const J=this.strm,V=this.options.chunkSize;let G,X;if(this.ended)return!1;if(Q===~~Q)X=Q;else X=Q===!0?E9:A9;if(typeof W==="string")J.input=f1.string2buf(W);else if(P7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(V),J.next_out=0,J.avail_out=V;if((X===T9||X===g9)&&J.avail_out<=6){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(G=S1.deflate(J,X),G===y9){if(J.next_out>0)this.onData(J.output.subarray(0,J.next_out));return G=S1.deflateEnd(this.strm),this.onEnd(G),this.ended=!0,G===K8}if(J.avail_out===0){this.onData(J.output);continue}if(X>0&&J.next_out>0){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(J.avail_in===0)break}return!0};m1.prototype.onData=function(W){this.chunks.push(W)};m1.prototype.onEnd=function(W){if(W===K8)this.result=Z8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var m9=m1,_9=Z6,c9=h9,d9=u9,i9=r0,l9={Deflate:m9,deflate:_9,deflateRaw:c9,gzip:d9,constants:i9},G8=16209,r9=16191,n9=function W(Q,J){let V,G,X,Y,q,F,U,K,$,P,z,C,S,T,p,f,u,w,c,i,D,R,N,Z;const H=Q.state;V=Q.next_in,N=Q.input,G=V+(Q.avail_in-5),X=Q.next_out,Z=Q.output,Y=X-(J-Q.avail_out),q=X+(Q.avail_out-257),F=H.dmax,U=H.wsize,K=H.whave,$=H.wnext,P=H.window,z=H.hold,C=H.bits,S=H.lencode,T=H.distcode,p=(1<<H.lenbits)-1,f=(1<<H.distbits)-1;W:do{if(C<15)z+=N[V++]<<C,C+=8,z+=N[V++]<<C,C+=8;u=S[z&p];J:for(;;){if(w=u>>>24,z>>>=w,C-=w,w=u>>>16&255,w===0)Z[X++]=u&65535;else if(w&16){if(c=u&65535,w&=15,w){if(C<w)z+=N[V++]<<C,C+=8;c+=z&(1<<w)-1,z>>>=w,C-=w}if(C<15)z+=N[V++]<<C,C+=8,z+=N[V++]<<C,C+=8;u=T[z&f];Q:for(;;){if(w=u>>>24,z>>>=w,C-=w,w=u>>>16&255,w&16){if(i=u&65535,w&=15,C<w){if(z+=N[V++]<<C,C+=8,C<w)z+=N[V++]<<C,C+=8}if(i+=z&(1<<w)-1,i>F){Q.msg="invalid distance too far back",H.mode=G8;break W}if(z>>>=w,C-=w,w=X-Y,i>w){if(w=i-w,w>K){if(H.sane){Q.msg="invalid distance too far back",H.mode=G8;break W}}if(D=0,R=P,$===0){if(D+=U-w,w<c){c-=w;do Z[X++]=P[D++];while(--w);D=X-i,R=Z}}else if($<w){if(D+=U+$-w,w-=$,w<c){c-=w;do Z[X++]=P[D++];while(--w);if(D=0,$<c){w=$,c-=w;do Z[X++]=P[D++];while(--w);D=X-i,R=Z}}}else if(D+=$-w,w<c){c-=w;do Z[X++]=P[D++];while(--w);D=X-i,R=Z}while(c>2)Z[X++]=R[D++],Z[X++]=R[D++],Z[X++]=R[D++],c-=3;if(c){if(Z[X++]=R[D++],c>1)Z[X++]=R[D++]}}else{D=X-i;do Z[X++]=Z[D++],Z[X++]=Z[D++],Z[X++]=Z[D++],c-=3;while(c>2);if(c){if(Z[X++]=Z[D++],c>1)Z[X++]=Z[D++]}}}else if((w&64)===0){u=T[(u&65535)+(z&(1<<w)-1)];continue Q}else{Q.msg="invalid distance code",H.mode=G8;break W}break}}else if((w&64)===0){u=S[(u&65535)+(z&(1<<w)-1)];continue J}else if(w&32){H.mode=r9;break W}else{Q.msg="invalid literal/length code",H.mode=G8;break W}break}}while(V<G&&X<q);c=C>>3,V-=c,C-=c<<3,z&=(1<<C)-1,Q.next_in=V,Q.next_out=X,Q.avail_in=V<G?5+(G-V):5-(V-G),Q.avail_out=X<q?257+(q-X):257-(X-q),H.hold=z,H.bits=C;return},G1=15,F5=852,z5=592,Z5=0,i8=1,H5=2,o9=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]),a9=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]),s9=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]),e9=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]),t9=(W,Q,J,V,G,X,Y,q)=>{const F=q.bits;let U=0,K=0,$=0,P=0,z=0,C=0,S=0,T=0,p=0,f=0,u,w,c,i,D,R=null,N;const Z=new Uint16Array(G1+1),H=new Uint16Array(G1+1);let M=null,k,j,O;for(U=0;U<=G1;U++)Z[U]=0;for(K=0;K<V;K++)Z[Q[J+K]]++;z=F;for(P=G1;P>=1;P--)if(Z[P]!==0)break;if(z>P)z=P;if(P===0)return G[X++]=1<<24|64<<16|0,G[X++]=1<<24|64<<16|0,q.bits=1,0;for($=1;$<P;$++)if(Z[$]!==0)break;if(z<$)z=$;T=1;for(U=1;U<=G1;U++)if(T<<=1,T-=Z[U],T<0)return-1;if(T>0&&(W===Z5||P!==1))return-1;H[1]=0;for(U=1;U<G1;U++)H[U+1]=H[U]+Z[U];for(K=0;K<V;K++)if(Q[J+K]!==0)Y[H[Q[J+K]]++]=K;if(W===Z5)R=M=Y,N=20;else if(W===i8)R=o9,M=a9,N=257;else R=s9,M=e9,N=0;if(f=0,K=0,U=$,D=X,C=z,S=0,c=-1,p=1<<z,i=p-1,W===i8&&p>F5||W===H5&&p>z5)return 1;for(;;){if(k=U-S,Y[K]+1<N)j=0,O=Y[K];else if(Y[K]>=N)j=M[Y[K]-N],O=R[Y[K]-N];else j=96,O=0;u=1<<U-S,w=1<<C,$=w;do w-=u,G[D+(f>>S)+w]=k<<24|j<<16|O|0;while(w!==0);u=1<<U-1;while(f&u)u>>=1;if(u!==0)f&=u-1,f+=u;else f=0;if(K++,--Z[U]===0){if(U===P)break;U=Q[J+Y[K]]}if(U>z&&(f&i)!==c){if(S===0)S=z;D+=$,C=U-S,T=1<<C;while(C+S<P){if(T-=Z[C+S],T<=0)break;C++,T<<=1}if(p+=1<<C,W===i8&&p>F5||W===H5&&p>z5)return 1;c=f&i,G[c]=z<<24|C<<16|D-X|0}}if(f!==0)G[D+f]=U-S<<24|64<<16|0;return q.bits=z,0},v1=t9,WQ=0,K7=1,F7=2,{Z_FINISH:k5,Z_BLOCK:JQ,Z_TREES:X8,Z_OK:l0,Z_STREAM_END:QQ,Z_NEED_DICT:VQ,Z_STREAM_ERROR:$0,Z_DATA_ERROR:z7,Z_MEM_ERROR:Z7,Z_BUF_ERROR:GQ,Z_DEFLATED:$5}=r0,H8=16180,C5=16181,j5=16182,B5=16183,M5=16184,R5=16185,L5=16186,I5=16187,D5=16188,O5=16189,F8=16190,x0=16191,l8=16192,x5=16193,r8=16194,w5=16195,N5=16196,S5=16197,v5=16198,Y8=16199,q8=16200,A5=16201,T5=16202,g5=16203,E5=16204,y5=16205,n8=16206,p5=16207,f5=16208,t=16209,H7=16210,k7=16211,XQ=852,YQ=592,qQ=15,UQ=qQ,b5=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)},n0=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.mode<H8||Q.mode>k7)return 1;return 0},$7=(W)=>{if(n0(W))return $0;const Q=W.state;if(W.total_in=W.total_out=Q.total=0,W.msg="",Q.wrap)W.adler=Q.wrap&1;return Q.mode=H8,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(XQ),Q.distcode=Q.distdyn=new Int32Array(YQ),Q.sane=1,Q.back=-1,l0},C7=(W)=>{if(n0(W))return $0;const Q=W.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,$7(W)},j7=(W,Q)=>{let J;if(n0(W))return $0;const V=W.state;if(Q<0)J=0,Q=-Q;else if(J=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return $0;if(V.window!==null&&V.wbits!==Q)V.window=null;return V.wrap=J,V.wbits=Q,C7(W)},B7=(W,Q)=>{if(!W)return $0;const J=new PQ;W.state=J,J.strm=W,J.window=null,J.mode=H8;const V=j7(W,Q);if(V!==l0)W.state=null;return V},KQ=(W)=>{return B7(W,UQ)},h5=!0,o8,a8,FQ=(W)=>{if(h5){o8=new Int32Array(512),a8=new Int32Array(32);let Q=0;while(Q<144)W.lens[Q++]=8;while(Q<256)W.lens[Q++]=9;while(Q<280)W.lens[Q++]=7;while(Q<288)W.lens[Q++]=8;v1(K7,W.lens,0,288,o8,0,W.work,{bits:9}),Q=0;while(Q<32)W.lens[Q++]=5;v1(F7,W.lens,0,32,a8,0,W.work,{bits:5}),h5=!1}W.lencode=o8,W.lenbits=9,W.distcode=a8,W.distbits=5},M7=(W,Q,J,V)=>{let G;const X=W.state;if(X.window===null)X.wsize=1<<X.wbits,X.wnext=0,X.whave=0,X.window=new Uint8Array(X.wsize);if(V>=X.wsize)X.window.set(Q.subarray(J-X.wsize,J),0),X.wnext=0,X.whave=X.wsize;else{if(G=X.wsize-X.wnext,G>V)G=V;if(X.window.set(Q.subarray(J-V,J-V+G),X.wnext),V-=G,V)X.window.set(Q.subarray(J-V,J),0),X.wnext=V,X.whave=X.wsize;else{if(X.wnext+=G,X.wnext===X.wsize)X.wnext=0;if(X.whave<X.wsize)X.whave+=G}}return 0},zQ=(W,Q)=>{let J,V,G,X,Y,q,F,U,K,$,P,z,C,S,T=0,p,f,u,w,c,i,D,R;const N=new Uint8Array(4);let Z,H;const M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(n0(W)||!W.output||!W.input&&W.avail_in!==0)return $0;if(J=W.state,J.mode===x0)J.mode=l8;Y=W.next_out,G=W.output,F=W.avail_out,X=W.next_in,V=W.input,q=W.avail_in,U=J.hold,K=J.bits,$=q,P=F,R=l0;W:for(;;)switch(J.mode){case H8:if(J.wrap===0){J.mode=l8;break}while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&2&&U===35615){if(J.wbits===0)J.wbits=15;J.check=0,N[0]=U&255,N[1]=U>>>8&255,J.check=V0(J.check,N,2,0),U=0,K=0,J.mode=C5;break}if(J.head)J.head.done=!1;if(!(J.wrap&1)||(((U&255)<<8)+(U>>8))%31){W.msg="incorrect header check",J.mode=t;break}if((U&15)!==$5){W.msg="unknown compression method",J.mode=t;break}if(U>>>=4,K-=4,D=(U&15)+8,J.wbits===0)J.wbits=D;if(D>15||D>J.wbits){W.msg="invalid window size",J.mode=t;break}J.dmax=1<<J.wbits,J.flags=0,W.adler=J.check=1,J.mode=U&512?O5:x0,U=0,K=0;break;case C5:while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.flags=U,(J.flags&255)!==$5){W.msg="unknown compression method",J.mode=t;break}if(J.flags&57344){W.msg="unknown header flags set",J.mode=t;break}if(J.head)J.head.text=U>>8&1;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=V0(J.check,N,2,0);U=0,K=0,J.mode=j5;case j5:while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.head)J.head.time=U;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,N[2]=U>>>16&255,N[3]=U>>>24&255,J.check=V0(J.check,N,4,0);U=0,K=0,J.mode=B5;case B5:while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.head)J.head.xflags=U&255,J.head.os=U>>8;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=V0(J.check,N,2,0);U=0,K=0,J.mode=M5;case M5:if(J.flags&1024){while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.length=U,J.head)J.head.extra_len=U;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=V0(J.check,N,2,0);U=0,K=0}else if(J.head)J.head.extra=null;J.mode=R5;case R5:if(J.flags&1024){if(z=J.length,z>q)z=q;if(z){if(J.head){if(D=J.head.extra_len-J.length,!J.head.extra)J.head.extra=new Uint8Array(J.head.extra_len);J.head.extra.set(V.subarray(X,X+z),D)}if(J.flags&512&&J.wrap&4)J.check=V0(J.check,V,z,X);q-=z,X+=z,J.length-=z}if(J.length)break W}J.length=0,J.mode=L5;case L5:if(J.flags&2048){if(q===0)break W;z=0;do if(D=V[X+z++],J.head&&D&&J.length<65536)J.head.name+=String.fromCharCode(D);while(D&&z<q);if(J.flags&512&&J.wrap&4)J.check=V0(J.check,V,z,X);if(q-=z,X+=z,D)break W}else if(J.head)J.head.name=null;J.length=0,J.mode=I5;case I5:if(J.flags&4096){if(q===0)break W;z=0;do if(D=V[X+z++],J.head&&D&&J.length<65536)J.head.comment+=String.fromCharCode(D);while(D&&z<q);if(J.flags&512&&J.wrap&4)J.check=V0(J.check,V,z,X);if(q-=z,X+=z,D)break W}else if(J.head)J.head.comment=null;J.mode=D5;case D5:if(J.flags&512){while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&4&&U!==(J.check&65535)){W.msg="header crc mismatch",J.mode=t;break}U=0,K=0}if(J.head)J.head.hcrc=J.flags>>9&1,J.head.done=!0;W.adler=J.check=0,J.mode=x0;break;case O5:while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}W.adler=J.check=b5(U),U=0,K=0,J.mode=F8;case F8:if(J.havedict===0)return W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,VQ;W.adler=J.check=1,J.mode=x0;case x0:if(Q===JQ||Q===X8)break W;case l8:if(J.last){U>>>=K&7,K-=K&7,J.mode=n8;break}while(K<3){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}switch(J.last=U&1,U>>>=1,K-=1,U&3){case 0:J.mode=x5;break;case 1:if(FQ(J),J.mode=Y8,Q===X8){U>>>=2,K-=2;break W}break;case 2:J.mode=N5;break;case 3:W.msg="invalid block type",J.mode=t}U>>>=2,K-=2;break;case x5:U>>>=K&7,K-=K&7;while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if((U&65535)!==(U>>>16^65535)){W.msg="invalid stored block lengths",J.mode=t;break}if(J.length=U&65535,U=0,K=0,J.mode=r8,Q===X8)break W;case r8:J.mode=w5;case w5:if(z=J.length,z){if(z>q)z=q;if(z>F)z=F;if(z===0)break W;G.set(V.subarray(X,X+z),Y),q-=z,X+=z,F-=z,Y+=z,J.length-=z;break}J.mode=x0;break;case N5:while(K<14){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.nlen=(U&31)+257,U>>>=5,K-=5,J.ndist=(U&31)+1,U>>>=5,K-=5,J.ncode=(U&15)+4,U>>>=4,K-=4,J.nlen>286||J.ndist>30){W.msg="too many length or distance symbols",J.mode=t;break}J.have=0,J.mode=S5;case S5:while(J.have<J.ncode){while(K<3){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.lens[M[J.have++]]=U&7,U>>>=3,K-=3}while(J.have<19)J.lens[M[J.have++]]=0;if(J.lencode=J.lendyn,J.lenbits=7,Z={bits:J.lenbits},R=v1(WQ,J.lens,0,19,J.lencode,0,J.work,Z),J.lenbits=Z.bits,R){W.msg="invalid code lengths set",J.mode=t;break}J.have=0,J.mode=v5;case v5:while(J.have<J.nlen+J.ndist){for(;;){if(T=J.lencode[U&(1<<J.lenbits)-1],p=T>>>24,f=T>>>16&255,u=T&65535,p<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(u<16)U>>>=p,K-=p,J.lens[J.have++]=u;else{if(u===16){H=p+2;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(U>>>=p,K-=p,J.have===0){W.msg="invalid bit length repeat",J.mode=t;break}D=J.lens[J.have-1],z=3+(U&3),U>>>=2,K-=2}else if(u===17){H=p+3;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=p,K-=p,D=0,z=3+(U&7),U>>>=3,K-=3}else{H=p+7;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=p,K-=p,D=0,z=11+(U&127),U>>>=7,K-=7}if(J.have+z>J.nlen+J.ndist){W.msg="invalid bit length repeat",J.mode=t;break}while(z--)J.lens[J.have++]=D}}if(J.mode===t)break;if(J.lens[256]===0){W.msg="invalid code -- missing end-of-block",J.mode=t;break}if(J.lenbits=9,Z={bits:J.lenbits},R=v1(K7,J.lens,0,J.nlen,J.lencode,0,J.work,Z),J.lenbits=Z.bits,R){W.msg="invalid literal/lengths set",J.mode=t;break}if(J.distbits=6,J.distcode=J.distdyn,Z={bits:J.distbits},R=v1(F7,J.lens,J.nlen,J.ndist,J.distcode,0,J.work,Z),J.distbits=Z.bits,R){W.msg="invalid distances set",J.mode=t;break}if(J.mode=Y8,Q===X8)break W;case Y8:J.mode=q8;case q8:if(q>=6&&F>=258){if(W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,n9(W,P),Y=W.next_out,G=W.output,F=W.avail_out,X=W.next_in,V=W.input,q=W.avail_in,U=J.hold,K=J.bits,J.mode===x0)J.back=-1;break}J.back=0;for(;;){if(T=J.lencode[U&(1<<J.lenbits)-1],p=T>>>24,f=T>>>16&255,u=T&65535,p<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(f&&(f&240)===0){w=p,c=f,i=u;for(;;){if(T=J.lencode[i+((U&(1<<w+c)-1)>>w)],p=T>>>24,f=T>>>16&255,u=T&65535,w+p<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=w,K-=w,J.back+=w}if(U>>>=p,K-=p,J.back+=p,J.length=u,f===0){J.mode=y5;break}if(f&32){J.back=-1,J.mode=x0;break}if(f&64){W.msg="invalid literal/length code",J.mode=t;break}J.extra=f&15,J.mode=A5;case A5:if(J.extra){H=J.extra;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.length+=U&(1<<J.extra)-1,U>>>=J.extra,K-=J.extra,J.back+=J.extra}J.was=J.length,J.mode=T5;case T5:for(;;){if(T=J.distcode[U&(1<<J.distbits)-1],p=T>>>24,f=T>>>16&255,u=T&65535,p<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if((f&240)===0){w=p,c=f,i=u;for(;;){if(T=J.distcode[i+((U&(1<<w+c)-1)>>w)],p=T>>>24,f=T>>>16&255,u=T&65535,w+p<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=w,K-=w,J.back+=w}if(U>>>=p,K-=p,J.back+=p,f&64){W.msg="invalid distance code",J.mode=t;break}J.offset=u,J.extra=f&15,J.mode=g5;case g5:if(J.extra){H=J.extra;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.offset+=U&(1<<J.extra)-1,U>>>=J.extra,K-=J.extra,J.back+=J.extra}if(J.offset>J.dmax){W.msg="invalid distance too far back",J.mode=t;break}J.mode=E5;case E5:if(F===0)break W;if(z=P-F,J.offset>z){if(z=J.offset-z,z>J.whave){if(J.sane){W.msg="invalid distance too far back",J.mode=t;break}}if(z>J.wnext)z-=J.wnext,C=J.wsize-z;else C=J.wnext-z;if(z>J.length)z=J.length;S=J.window}else S=G,C=Y-J.offset,z=J.length;if(z>F)z=F;F-=z,J.length-=z;do G[Y++]=S[C++];while(--z);if(J.length===0)J.mode=q8;break;case y5:if(F===0)break W;G[Y++]=J.length,F--,J.mode=q8;break;case n8:if(J.wrap){while(K<32){if(q===0)break W;q--,U|=V[X++]<<K,K+=8}if(P-=F,W.total_out+=P,J.total+=P,J.wrap&4&&P)W.adler=J.check=J.flags?V0(J.check,G,P,Y-P):y1(J.check,G,P,Y-P);if(P=F,J.wrap&4&&(J.flags?U:b5(U))!==J.check){W.msg="incorrect data check",J.mode=t;break}U=0,K=0}J.mode=p5;case p5:if(J.wrap&&J.flags){while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&4&&U!==(J.total&4294967295)){W.msg="incorrect length check",J.mode=t;break}U=0,K=0}J.mode=f5;case f5:R=QQ;break W;case t:R=z7;break W;case H7:return Z7;case k7:default:return $0}if(W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,J.wsize||P!==W.avail_out&&J.mode<t&&(J.mode<n8||Q!==k5)){if(M7(W,W.output,W.next_out,P-W.avail_out));}if($-=W.avail_in,P-=W.avail_out,W.total_in+=$,W.total_out+=P,J.total+=P,J.wrap&4&&P)W.adler=J.check=J.flags?V0(J.check,G,P,W.next_out-P):y1(J.check,G,P,W.next_out-P);if(W.data_type=J.bits+(J.last?64:0)+(J.mode===x0?128:0)+(J.mode===Y8||J.mode===r8?256:0),($===0&&P===0||Q===k5)&&R===l0)R=GQ;return R},ZQ=(W)=>{if(n0(W))return $0;let Q=W.state;if(Q.window)Q.window=null;return W.state=null,l0},HQ=(W,Q)=>{if(n0(W))return $0;const J=W.state;if((J.wrap&2)===0)return $0;return J.head=Q,Q.done=!1,l0},kQ=(W,Q)=>{const J=Q.length;let V,G,X;if(n0(W))return $0;if(V=W.state,V.wrap!==0&&V.mode!==F8)return $0;if(V.mode===F8){if(G=1,G=y1(G,Q,J,0),G!==V.check)return z7}if(X=M7(W,Q,J,J),X)return V.mode=H7,Z7;return V.havedict=1,l0},$Q=C7,CQ=j7,jQ=$7,BQ=KQ,MQ=B7,RQ=zQ,LQ=ZQ,IQ=HQ,DQ=kQ,OQ="pako inflate (from Nodeca project)",N0={inflateReset:$Q,inflateReset2:CQ,inflateResetKeep:jQ,inflateInit:BQ,inflateInit2:MQ,inflate:RQ,inflateEnd:LQ,inflateGetHeader:IQ,inflateSetDictionary:DQ,inflateInfo:OQ},wQ=xQ,R7=Object.prototype.toString,{Z_NO_FLUSH:NQ,Z_FINISH:SQ,Z_OK:b1,Z_STREAM_END:s8,Z_NEED_DICT:e8,Z_STREAM_ERROR:vQ,Z_DATA_ERROR:u5,Z_MEM_ERROR:AQ}=r0;_1.prototype.push=function(W,Q){const J=this.strm,V=this.options.chunkSize,G=this.options.dictionary;let X,Y,q;if(this.ended)return!1;if(Q===~~Q)Y=Q;else Y=Q===!0?SQ:NQ;if(R7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(V),J.next_out=0,J.avail_out=V;if(X=N0.inflate(J,Y),X===e8&&G){if(X=N0.inflateSetDictionary(J,G),X===b1)X=N0.inflate(J,Y);else if(X===u5)X=e8}while(J.avail_in>0&&X===s8&&J.state.wrap>0&&W[J.next_in]!==0)N0.inflateReset(J),X=N0.inflate(J,Y);switch(X){case vQ:case u5:case e8:case AQ:return this.onEnd(X),this.ended=!0,!1}if(q=J.avail_out,J.next_out){if(J.avail_out===0||X===s8)if(this.options.to==="string"){let F=f1.utf8border(J.output,J.next_out),U=J.next_out-F,K=f1.buf2string(J.output,F);if(J.next_out=U,J.avail_out=V-U,U)J.output.set(J.output.subarray(F,F+U),0);this.onData(K)}else this.onData(J.output.length===J.next_out?J.output:J.output.subarray(0,J.next_out))}if(X===b1&&q===0)continue;if(X===s8)return X=N0.inflateEnd(this.strm),this.onEnd(X),this.ended=!0,!0;if(J.avail_in===0)break}return!0};_1.prototype.onData=function(W){this.chunks.push(W)};_1.prototype.onEnd=function(W){if(W===b1)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=Z8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var gQ=_1,EQ=H6,yQ=TQ,pQ=H6,fQ=r0,bQ={Inflate:gQ,inflate:EQ,inflateRaw:yQ,ungzip:pQ,constants:fQ},{Deflate:hQ,deflate:uQ,deflateRaw:mQ,gzip:_Q}=l9,{Inflate:cQ,inflate:dQ,inflateRaw:iQ,ungzip:lQ}=bQ,rQ=hQ,nQ=uQ,oQ=mQ,aQ=_Q,sQ=cQ,eQ=dQ,tQ=iQ,WV=lQ,JV=r0,c1={Deflate:rQ,deflate:nQ,deflateRaw:oQ,gzip:aQ,Inflate:sQ,inflate:eQ,inflateRaw:tQ,ungzip:WV,constants:JV};var v8=function(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"},D6=function(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)},W1=function(W,...Q){if(!v8(W))throw Error("Uint8Array expected");if(Q.length>0&&!Q.includes(W.length))throw Error("Uint8Array expected of length "+Q+", got length="+W.length)},d7=function(W){if(typeof W!="function"||typeof W.create!="function")throw Error("Hash should be wrapped by utils.createHasher");D6(W.outputLen),D6(W.blockLen)},R8=function(W,Q=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(Q&&W.finished)throw Error("Hash#digest() has already been called")},L8=function(...W){for(let Q=0;Q<W.length;Q++)W[Q].fill(0)},k6=function(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)},I0=function(W,Q){return W<<32-Q|W>>>Q},$1=function(W){if(W1(W),i7)return W.toHex();let Q="";for(let J=0;J<W.length;J++)Q+=QV[W[J]];return Q},O7=function(W){return W>=L7&&W<=VV?W-L7:W>=I7&&W<=GV?W-(I7-10):W>=D7&&W<=XV?W-(D7-10):void 0},I8=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);if(i7)return Uint8Array.fromHex(W);const Q=W.length,J=Q/2;if(Q%2)throw Error("hex string expected, got unpadded hex of length "+Q);const V=new Uint8Array(J);for(let G=0,X=0;G<J;G++,X+=2){const Y=O7(W.charCodeAt(X)),q=O7(W.charCodeAt(X+1));if(Y===void 0||q===void 0){const F=W[X]+W[X+1];throw Error('hex string expected, got non-hex character "'+F+'" at index '+X)}V[G]=16*Y+q}return V},l7=function(W){if(typeof W!="string")throw Error("string expected");return new Uint8Array((new TextEncoder()).encode(W))},g6=function(W){return typeof W=="string"&&(W=l7(W)),W1(W),W},D0=function(...W){let Q=0;for(let V=0;V<W.length;V++){const G=W[V];W1(G),Q+=G.length}const J=new Uint8Array(Q);for(let V=0,G=0;V<W.length;V++){const X=W[V];J.set(X,G),G+=X.length}return J},YV=function(W){const Q=(V)=>W().update(g6(V)).digest(),J=W();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>W(),Q},D8=function(W=32){if(F1&&typeof F1.getRandomValues=="function")return F1.getRandomValues(new Uint8Array(W));if(F1&&typeof F1.randomBytes=="function")return Uint8Array.from(F1.randomBytes(W));throw Error("crypto.getRandomValues must be defined")},qV=function(W,Q,J){return W&Q^W&J^Q&J},O8=function(W,Q=""){if(typeof W!="boolean")throw Error((Q&&`"${Q}"`)+"expected boolean, got type="+typeof W);return W},o0=function(W,Q,J=""){const V=v8(W),G=W?.length,X=Q!==void 0;if(!V||X&&G!==Q)throw Error((J&&`"${J}" `)+"expected Uint8Array"+(X?" of length "+Q:"")+", got "+(V?"length="+G:"type="+typeof W));return W},k8=function(W){const Q=W.toString(16);return 1&Q.length?"0"+Q:Q},a7=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);return W===""?p6:BigInt("0x"+W)},B1=function(W){return a7($1(W))},s7=function(W){return W1(W),a7($1(Uint8Array.from(W).reverse()))},A8=function(W,Q){return I8(W.toString(16).padStart(2*Q,"0"))},e7=function(W,Q){return A8(W,Q).reverse()},Q0=function(W,Q,J){let V;if(typeof Q=="string")try{V=I8(Q)}catch(X){throw Error(W+" must be hex string or Uint8Array, cause: "+X)}else{if(!v8(Q))throw Error(W+" must be hex string or Uint8Array");V=Uint8Array.from(Q)}const G=V.length;if(typeof J=="number"&&G!==J)throw Error(W+" of length "+J+" expected, got "+G);return V},w6=function(W,Q,J){return $6(W)&&$6(Q)&&$6(J)&&Q<=W&&W<J},t7=function(W){let Q;for(Q=0;W>p6;W>>=x6,Q+=1);return Q},f6=function(W,Q,J={}){if(!W||typeof W!="object")throw Error("expected valid options object");function V(G,X,Y){const q=W[G];if(Y&&q===void 0)return;const F=typeof q;if(F!==X||q===null)throw Error(`param "${G}" is invalid: expected ${X}, got ${F}`)}Object.entries(Q).forEach(([G,X])=>V(G,X,!1)),Object.entries(J).forEach(([G,X])=>V(G,X,!0))},x7=function(W){const Q=new WeakMap;return(J,...V)=>{const G=Q.get(J);if(G!==void 0)return G;const X=W(J,...V);return Q.set(J,X),X}},j0=function(W,Q){const J=W%Q;return J>=K0?J:Q+J},C0=function(W,Q,J){let V=W;for(;Q-- >K0;)V*=V,V%=J;return V},N7=function(W,Q){if(W===K0)throw Error("invert: expected non-zero number");if(Q<=K0)throw Error("invert: expected positive modulus, got "+Q);let J=j0(W,Q),V=Q,G=K0,X=U0;for(;J!==K0;){const Y=V%J,q=G-X*(V/J);V=J,J=Y,G=X,X=q}if(V!==U0)throw Error("invert: does not exist");return j0(G,Q)},b6=function(W,Q,J){if(!W.eql(W.sqr(Q),J))throw Error("Cannot find square root")},GW=function(W,Q){const J=(W.ORDER+U0)/JW,V=W.pow(Q,J);return b6(W,V,Q),V},FV=function(W,Q){const J=(W.ORDER-QW)/VW,V=W.mul(Q,s0),G=W.pow(V,J),X=W.mul(Q,G),Y=W.mul(W.mul(X,s0),G),q=W.mul(X,W.sub(Y,W.ONE));return b6(W,q,Q),q},S7=function(W){if(W<WW)throw Error("sqrt is not defined for small field");let Q=W-U0,J=0;for(;Q%s0===K0;)Q/=s0,J++;let V=s0;const G=o1(W);for(;v7(G,V)===1;)if(V++>1000)throw Error("Cannot find square root: probably non-prime P");if(J===1)return GW;let X=G.pow(V,Q);const Y=(Q+U0)/s0;return function(q,F){if(q.is0(F))return F;if(v7(q,F)!==1)throw Error("Cannot find square root");let U=J,K=q.mul(q.ONE,X),$=q.pow(F,Q),P=q.pow(F,Y);for(;!q.eql($,q.ONE);){if(q.is0($))return q.ZERO;let z=1,C=q.sqr($);for(;!q.eql(C,q.ONE);)if(z++,C=q.sqr(C),z===U)throw Error("Cannot find square root");const S=U0<<BigInt(U-z-1),T=q.pow(K,S);U=z,K=q.sqr(T),$=q.mul($,K),P=q.mul(P,T)}return P}},zV=function(W){return W%JW===WW?GW:W%VW===QW?FV:W%w7===KV?function(Q){const J=o1(Q),V=S7(Q),G=V(J,J.neg(J.ONE)),X=V(J,G),Y=V(J,J.neg(G)),q=(Q+PV)/w7;return(F,U)=>{let K=F.pow(U,q),$=F.mul(K,G);const P=F.mul(K,X),z=F.mul(K,Y),C=F.eql(F.sqr($),U),S=F.eql(F.sqr(P),U);K=F.cmov(K,$,C),$=F.cmov(z,P,S);const T=F.eql(F.sqr($),U),p=F.cmov(K,$,T);return b6(F,p,U),p}}(W):S7(W)},XW=function(W,Q,J=!1){const V=Array(Q.length).fill(J?W.ZERO:void 0),G=Q.reduce((Y,q,F)=>W.is0(q)?Y:(V[F]=Y,W.mul(Y,q)),W.ONE),X=W.inv(G);return Q.reduceRight((Y,q,F)=>W.is0(q)?Y:(V[F]=W.mul(Y,V[F]),W.mul(Y,q)),X),V},v7=function(W,Q){const J=(W.ORDER-U0)/s0,V=W.pow(Q,J),G=W.eql(V,W.ONE),X=W.eql(V,W.ZERO),Y=W.eql(V,W.neg(W.ONE));if(!G&&!X&&!Y)throw Error("invalid Legendre symbol result");return G?1:X?0:-1},YW=function(W,Q){Q!==void 0&&D6(Q);const J=Q!==void 0?Q:W.toString(2).length;return{nBitLength:J,nByteLength:Math.ceil(J/8)}},o1=function(W,Q,J=!1,V={}){if(W<=K0)throw Error("invalid field: expected ORDER > 0, got "+W);let G,X,Y,q=!1;if(typeof Q=="object"&&Q!=null){if(V.sqrt||J)throw Error("cannot specify opts in two arguments");const P=Q;P.BITS&&(G=P.BITS),P.sqrt&&(X=P.sqrt),typeof P.isLE=="boolean"&&(J=P.isLE),typeof P.modFromBytes=="boolean"&&(q=P.modFromBytes),Y=P.allowedLengths}else typeof Q=="number"&&(G=Q),V.sqrt&&(X=V.sqrt);const{nBitLength:F,nByteLength:U}=YW(W,G);if(U>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let K;const $=Object.freeze({ORDER:W,isLE:J,BITS:F,BYTES:U,MASK:n1(F),ZERO:K0,ONE:U0,allowedLengths:Y,create(P){return j0(P,W)},isValid(P){if(typeof P!="bigint")throw Error("invalid field element: expected bigint, got "+typeof P);return K0<=P&&P<W},is0(P){return P===K0},isValidNot0(P){return!$.is0(P)&&$.isValid(P)},isOdd(P){return(P&U0)===U0},neg(P){return j0(-P,W)},eql(P,z){return P===z},sqr(P){return j0(P*P,W)},add(P,z){return j0(P+z,W)},sub(P,z){return j0(P-z,W)},mul(P,z){return j0(P*z,W)},pow(P,z){return function(C,S,T){if(T<K0)throw Error("invalid exponent, negatives unsupported");if(T===K0)return C.ONE;if(T===U0)return S;let p=C.ONE,f=S;for(;T>K0;)T&U0&&(p=C.mul(p,f)),f=C.sqr(f),T>>=U0;return p}($,P,z)},div(P,z){return j0(P*N7(z,W),W)},sqrN(P){return P*P},addN(P,z){return P+z},subN(P,z){return P-z},mulN(P,z){return P*z},inv(P){return N7(P,W)},sqrt:X||((P)=>(K||(K=zV(W)),K($,P))),toBytes(P){return J?e7(P,U):A8(P,U)},fromBytes(P,z=!0){if(Y){if(!Y.includes(P.length)||P.length>U)throw Error("Field.fromBytes: expected "+Y+" bytes, got "+P.length);const S=new Uint8Array(U);S.set(P,J?0:S.length-P.length),P=S}if(P.length!==U)throw Error("Field.fromBytes: expected "+U+" bytes, got "+P.length);let C=J?s7(P):B1(P);if(q&&(C=j0(C,W)),!z&&!$.isValid(C))throw Error("invalid field element: outside of range 0..ORDER");return C},invertBatch(P){return XW($,P)},cmov(P,z,C){return C?z:P}});return Object.freeze($)},qW=function(W){if(typeof W!="bigint")throw Error("field order must be bigint");const Q=W.toString(2).length;return Math.ceil(Q/8)},UW=function(W){const Q=qW(W);return Q+Math.ceil(Q/2)},PW=function(W,Q,J=!1){const V=W.length,G=qW(Q),X=UW(Q);if(V<16||V<X||V>1024)throw Error("expected "+X+"-1024 bytes of input, got "+V);const Y=j0(J?s7(W):B1(W),Q-U0)+U0;return J?e7(Y,G):A8(Y,G)},x8=function(W,Q){const J=Q.negate();return W?J:Q},C6=function(W,Q){const J=XW(W.Fp,Q.map((V)=>V.Z));return Q.map((V,G)=>W.fromAffine(V.toAffine(J[G])))},KW=function(W,Q){if(!Number.isSafeInteger(W)||W<=0||W>Q)throw Error("invalid window size, expected [1.."+Q+"], got W="+W)},j6=function(W,Q){KW(W,Q);const J=2**W;return{windows:Math.ceil(Q/W)+1,windowSize:2**(W-1),mask:n1(W),maxNumber:J,shiftBy:BigInt(W)}},A7=function(W,Q,J){const{windowSize:V,mask:G,maxNumber:X,shiftBy:Y}=J;let q=Number(W&G),F=W>>Y;q>V&&(q-=X,F+=e0);const U=Q*V;return{nextN:F,offset:U+Math.abs(q)-1,isZero:q===0,isNeg:q<0,isNegF:Q%2!=0,offsetF:U}},M6=function(W){return FW.get(W)||1},T7=function(W){if(W!==C1)throw Error("invalid wNAF")},HV=function(W,Q,J,V){(function(P,z){if(!Array.isArray(P))throw Error("array expected");P.forEach((C,S)=>{if(!(C instanceof z))throw Error("invalid point at index "+S)})})(J,W),function(P,z){if(!Array.isArray(P))throw Error("array of scalars expected");P.forEach((C,S)=>{if(!z.isValid(C))throw Error("invalid scalar at index "+S)})}(V,Q);const G=J.length,X=V.length;if(G!==X)throw Error("arrays of points and scalars must have equal length");const Y=W.ZERO,q=t7(BigInt(G));let F=1;q>12?F=q-3:q>4?F=q-2:q>0&&(F=2);const U=n1(F),K=Array(Number(U)+1).fill(Y);let $=Y;for(let P=Math.floor((Q.BITS-1)/F)*F;P>=0;P-=F){K.fill(Y);for(let C=0;C<X;C++){const S=V[C],T=Number(S>>BigInt(P)&U);K[T]=K[T].add(J[C])}let z=Y;for(let C=K.length-1,S=Y;C>0;C--)S=S.add(K[C]),z=z.add(S);if($=$.add(z),P!==0)for(let C=0;C<F;C++)$=$.double()}return $},g7=function(W,Q,J){if(Q){if(Q.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return function(V){f6(V,ZV.reduce((G,X)=>(G[X]="function",G),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(Q),Q}return o1(W,{isLE:J})},N6=function(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W},R6=function(W,Q){const J={};for(let V of Object.keys(Q))J[V]=W[V]===void 0?Q[V]:W[V];return O8(J.lowS,"lowS"),O8(J.prehash,"prehash"),J.format!==void 0&&N6(J.format),J},a0=function(W,Q){const{BYTES:J}=W;let V;if(typeof Q=="bigint")V=Q;else{let G=Q0("private key",Q);try{V=W.fromBytes(G)}catch(X){throw Error(`invalid private key: expected ui8a of size ${J}, got ${typeof Q}`)}}if(!W.isValidNot0(V))throw Error("invalid private key: out of range [1..N-1]");return V},$V=function(W,Q={}){const J=function(Z,H,M={},k){if(k===void 0&&(k=Z==="edwards"),!H||typeof H!="object")throw Error(`expected valid ${Z} CURVE object`);for(let x of["p","n","h"]){const B=H[x];if(!(typeof B=="bigint"&&B>C1))throw Error(`CURVE.${x} must be positive bigint`)}const j=g7(H.p,M.Fp,k),O=g7(H.n,M.Fn,k),L=["Gx","Gy","a","b"];for(let x of L)if(!j.isValid(H[x]))throw Error(`CURVE.${x} must be valid field element of CURVE.Fp`);return{CURVE:H=Object.freeze(Object.assign({},H)),Fp:j,Fn:O}}("weierstrass",W,Q),{Fp:V,Fn:G}=J;let X=J.CURVE;const{h:Y,n:q}=X;f6(Q,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:F}=Q;if(F&&(!V.is0(X.a)||typeof F.beta!="bigint"||!Array.isArray(F.basises)))throw Error('invalid endo: expected "beta": bigint and "basises": array');const U=kW(V,G);function K(){if(!V.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}const $=Q.toBytes||function(Z,H,M){const{x:k,y:j}=H.toAffine(),O=V.toBytes(k);if(O8(M,"isCompressed"),M)return K(),D0(HW(!V.isOdd(j)),O);return D0(Uint8Array.of(4),O,V.toBytes(j))},P=Q.fromBytes||function(Z){o0(Z,void 0,"Point");const{publicKey:H,publicKeyUncompressed:M}=U,k=Z.length,j=Z[0],O=Z.subarray(1);if(k!==H||j!==2&&j!==3){if(k===M&&j===4){const L=V.BYTES,x=V.fromBytes(O.subarray(0,L)),B=V.fromBytes(O.subarray(L,2*L));if(!C(x,B))throw Error("bad point: is not on curve");return{x,y:B}}throw Error(`bad point: got length ${k}, expected compressed=${H} or uncompressed=${M}`)}{const L=V.fromBytes(O);if(!V.isValid(L))throw Error("bad point: is not on curve, wrong x");const x=z(L);let B;try{B=V.sqrt(x)}catch(v){const b=v instanceof Error?": "+v.message:"";throw Error("bad point: is not on curve, sqrt error"+b)}return K(),!(1&~j)!==V.isOdd(B)&&(B=V.neg(B)),{x:L,y:B}}};function z(Z){const H=V.sqr(Z),M=V.mul(H,Z);return V.add(V.add(M,V.mul(Z,X.a)),X.b)}function C(Z,H){const M=V.sqr(H),k=z(Z);return V.eql(M,k)}if(!C(X.Gx,X.Gy))throw Error("bad curve params: generator point");const S=V.mul(V.pow(X.a,$8),kV),T=V.mul(V.sqr(X.b),BigInt(27));if(V.is0(V.add(S,T)))throw Error("bad curve params: a or b");function p(Z,H,M=!1){if(!V.isValid(H)||M&&V.is0(H))throw Error("bad point coordinate "+Z);return H}function f(Z){if(!(Z instanceof D))throw Error("ProjectivePoint expected")}function u(Z){if(!F||!F.basises)throw Error("no endo");return function(H,M,k){const[[j,O],[L,x]]=M,B=E7(x*H,k),v=E7(-O*H,k);let b=H-B*j-v*L,A=-B*O-v*x;const h=b<A0,d=A<A0;h&&(b=-b),d&&(A=-A);const l=n1(Math.ceil(t7(k)/2))+H1;if(b<A0||b>=l||A<A0||A>=l)throw Error("splitScalar (endomorphism): failed, k="+H);return{k1neg:h,k1:b,k2neg:d,k2:A}}(Z,F.basises,G.ORDER)}const w=x7((Z,H)=>{const{X:M,Y:k,Z:j}=Z;if(V.eql(j,V.ONE))return{x:M,y:k};const O=Z.is0();H==null&&(H=O?V.ONE:V.inv(j));const L=V.mul(M,H),x=V.mul(k,H),B=V.mul(j,H);if(O)return{x:V.ZERO,y:V.ZERO};if(!V.eql(B,V.ONE))throw Error("invZ was invalid");return{x:L,y:x}}),c=x7((Z)=>{if(Z.is0()){if(Q.allowInfinityPoint&&!V.is0(Z.Y))return;throw Error("bad point: ZERO")}const{x:H,y:M}=Z.toAffine();if(!V.isValid(H)||!V.isValid(M))throw Error("bad point: x or y not field elements");if(!C(H,M))throw Error("bad point: equation left != right");if(!Z.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function i(Z,H,M,k,j){return M=new D(V.mul(M.X,Z),M.Y,M.Z),H=x8(k,H),M=x8(j,M),H.add(M)}class D{constructor(Z,H,M){this.X=p("x",Z),this.Y=p("y",H,!0),this.Z=p("z",M),Object.freeze(this)}static CURVE(){return X}static fromAffine(Z){const{x:H,y:M}=Z||{};if(!Z||!V.isValid(H)||!V.isValid(M))throw Error("invalid affine point");if(Z instanceof D)throw Error("projective point not allowed");return V.is0(H)&&V.is0(M)?D.ZERO:new D(H,M,V.ONE)}static fromBytes(Z){const H=D.fromAffine(P(o0(Z,void 0,"point")));return H.assertValidity(),H}static fromHex(Z){return D.fromBytes(Q0("pointHex",Z))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(Z=8,H=!0){return N.createCache(this,Z),H||this.multiply($8),this}assertValidity(){c(this)}hasEvenY(){const{y:Z}=this.toAffine();if(!V.isOdd)throw Error("Field doesn't support isOdd");return!V.isOdd(Z)}equals(Z){f(Z);const{X:H,Y:M,Z:k}=this,{X:j,Y:O,Z:L}=Z,x=V.eql(V.mul(H,L),V.mul(j,k)),B=V.eql(V.mul(M,L),V.mul(O,k));return x&&B}negate(){return new D(this.X,V.neg(this.Y),this.Z)}double(){const{a:Z,b:H}=X,M=V.mul(H,$8),{X:k,Y:j,Z:O}=this;let{ZERO:L,ZERO:x,ZERO:B}=V,v=V.mul(k,k),b=V.mul(j,j),A=V.mul(O,O),h=V.mul(k,j);return h=V.add(h,h),B=V.mul(k,O),B=V.add(B,B),L=V.mul(Z,B),x=V.mul(M,A),x=V.add(L,x),L=V.sub(b,x),x=V.add(b,x),x=V.mul(L,x),L=V.mul(h,L),B=V.mul(M,B),A=V.mul(Z,A),h=V.sub(v,A),h=V.mul(Z,h),h=V.add(h,B),B=V.add(v,v),v=V.add(B,v),v=V.add(v,A),v=V.mul(v,h),x=V.add(x,v),A=V.mul(j,O),A=V.add(A,A),v=V.mul(A,h),L=V.sub(L,v),B=V.mul(A,b),B=V.add(B,B),B=V.add(B,B),new D(L,x,B)}add(Z){f(Z);const{X:H,Y:M,Z:k}=this,{X:j,Y:O,Z:L}=Z;let{ZERO:x,ZERO:B,ZERO:v}=V;const b=X.a,A=V.mul(X.b,$8);let h=V.mul(H,j),d=V.mul(M,O),l=V.mul(k,L),I=V.add(H,M),g=V.add(j,O);I=V.mul(I,g),g=V.add(h,d),I=V.sub(I,g),g=V.add(H,k);let y=V.add(j,L);return g=V.mul(g,y),y=V.add(h,l),g=V.sub(g,y),y=V.add(M,k),x=V.add(O,L),y=V.mul(y,x),x=V.add(d,l),y=V.sub(y,x),v=V.mul(b,g),x=V.mul(A,l),v=V.add(x,v),x=V.sub(d,v),v=V.add(d,v),B=V.mul(x,v),d=V.add(h,h),d=V.add(d,h),l=V.mul(b,l),g=V.mul(A,g),d=V.add(d,l),l=V.sub(h,l),l=V.mul(b,l),g=V.add(g,l),h=V.mul(d,g),B=V.add(B,h),h=V.mul(y,g),x=V.mul(I,x),x=V.sub(x,h),h=V.mul(I,d),v=V.mul(y,v),v=V.add(v,h),new D(x,B,v)}subtract(Z){return this.add(Z.negate())}is0(){return this.equals(D.ZERO)}multiply(Z){const{endo:H}=Q;if(!G.isValidNot0(Z))throw Error("invalid scalar: out of range");let M,k;const j=(O)=>N.cached(this,O,(L)=>C6(D,L));if(H){const{k1neg:O,k1:L,k2neg:x,k2:B}=u(Z),{p:v,f:b}=j(L),{p:A,f:h}=j(B);k=b.add(h),M=i(H.beta,v,A,O,x)}else{const{p:O,f:L}=j(Z);M=O,k=L}return C6(D,[M,k])[0]}multiplyUnsafe(Z){const{endo:H}=Q,M=this;if(!G.isValid(Z))throw Error("invalid scalar: out of range");if(Z===A0||M.is0())return D.ZERO;if(Z===H1)return M;if(N.hasCache(this))return this.multiply(Z);if(H){const{k1neg:k,k1:j,k2neg:O,k2:L}=u(Z),{p1:x,p2:B}=function(v,b,A,h){let d=b,l=v.ZERO,I=v.ZERO;for(;A>C1||h>C1;)A&e0&&(l=l.add(d)),h&e0&&(I=I.add(d)),d=d.double(),A>>=e0,h>>=e0;return{p1:l,p2:I}}(D,M,j,L);return i(H.beta,x,B,k,O)}return N.unsafe(M,Z)}multiplyAndAddUnsafe(Z,H,M){const k=this.multiplyUnsafe(H).add(Z.multiplyUnsafe(M));return k.is0()?void 0:k}toAffine(Z){return w(this,Z)}isTorsionFree(){const{isTorsionFree:Z}=Q;return Y===H1||(Z?Z(D,this):N.unsafe(this,q).is0())}clearCofactor(){const{clearCofactor:Z}=Q;return Y===H1?this:Z?Z(D,this):this.multiplyUnsafe(Y)}isSmallOrder(){return this.multiplyUnsafe(Y).is0()}toBytes(Z=!0){return O8(Z,"isCompressed"),this.assertValidity(),$(D,this,Z)}toHex(Z=!0){return $1(this.toBytes(Z))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(Z=!0){return this.toBytes(Z)}_setWindowSize(Z){this.precompute(Z)}static normalizeZ(Z){return C6(D,Z)}static msm(Z,H){return HV(D,G,Z,H)}static fromPrivateKey(Z){return D.BASE.multiply(a0(G,Z))}}D.BASE=new D(X.Gx,X.Gy,V.ONE),D.ZERO=new D(V.ZERO,V.ONE,V.ZERO),D.Fp=V,D.Fn=G;const R=G.BITS,N=new zW(D,Q.endo?Math.ceil(R/2):R);return D.BASE.precompute(8),D},HW=function(W){return Uint8Array.of(W?2:3)},kW=function(W,Q){return{secretKey:Q.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*Q.BYTES}},CV=function(W,Q,J={}){d7(Q),f6(J,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const V=J.randomBytes||D8,G=J.hmac||((R,...N)=>o7(Q,R,D0(...N))),{Fp:X,Fn:Y}=W,{ORDER:q,BITS:F}=Y,{keygen:U,getPublicKey:K,getSharedSecret:$,utils:P,lengths:z}=function(R,N={}){const{Fn:Z}=R,H=N.randomBytes||D8,M=Object.assign(kW(R.Fp,Z),{seed:UW(Z.ORDER)});function k(B){try{return!!a0(Z,B)}catch(v){return!1}}function j(B=H(M.seed)){return PW(o0(B,M.seed,"seed"),Z.ORDER)}function O(B,v=!0){return R.BASE.multiply(a0(Z,B)).toBytes(v)}function L(B){if(typeof B=="bigint")return!1;if(B instanceof R)return!0;const{secretKey:v,publicKey:b,publicKeyUncompressed:A}=M;if(Z.allowedLengths||v===b)return;const h=Q0("key",B).length;return h===b||h===A}return Object.freeze({getPublicKey:O,getSharedSecret(B,v,b=!0){if(L(B)===!0)throw Error("first arg must be private key");if(L(v)===!1)throw Error("second arg must be public key");const A=a0(Z,B);return R.fromHex(v).multiply(A).toBytes(b)},keygen(B){const v=j(B);return{secretKey:v,publicKey:O(v)}},Point:R,utils:{isValidSecretKey:k,isValidPublicKey(B,v){const{publicKey:b,publicKeyUncompressed:A}=M;try{const h=B.length;return!(v===!0&&h!==b||v===!1&&h!==A||!R.fromBytes(B))}catch(h){return!1}},randomSecretKey:j,isValidPrivateKey:k,randomPrivateKey:j,normPrivateKeyToScalar:(B)=>a0(Z,B),precompute(B=8,v=R.BASE){return v.precompute(B,!1)}},lengths:M})}(W,J),C={prehash:!1,lowS:typeof J.lowS=="boolean"&&J.lowS,format:void 0,extraEntropy:!1},S="compact";function T(R){return R>q>>H1}function p(R,N){if(!Y.isValidNot0(N))throw Error(`invalid signature ${R}: out of range 1..Point.Fn.ORDER`);return N}class f{constructor(R,N,Z){this.r=p("r",R),this.s=p("s",N),Z!=null&&(this.recovery=Z),Object.freeze(this)}static fromBytes(R,N=S){let Z;if(function(j,O){N6(O);const L=z.signature;o0(j,O==="compact"?L:O==="recovered"?L+1:void 0,O+" signature")}(R,N),N==="der"){const{r:j,s:O}=v0.toSig(o0(R));return new f(j,O)}N==="recovered"&&(Z=R[0],N="compact",R=R.subarray(1));const H=Y.BYTES,M=R.subarray(0,H),k=R.subarray(H,2*H);return new f(Y.fromBytes(M),Y.fromBytes(k),Z)}static fromHex(R,N){return this.fromBytes(I8(R),N)}addRecoveryBit(R){return new f(this.r,this.s,R)}recoverPublicKey(R){const N=X.ORDER,{r:Z,s:H,recovery:M}=this;if(M==null||![0,1,2,3].includes(M))throw Error("recovery id invalid");if(q*ZW<N&&M>1)throw Error("recovery id is ambiguous for h>1 curve");const k=M===2||M===3?Z+q:Z;if(!X.isValid(k))throw Error("recovery id 2 or 3 invalid");const j=X.toBytes(k),O=W.fromBytes(D0(HW(!(1&M)),j)),L=Y.inv(k),x=w(Q0("msgHash",R)),B=Y.create(-x*L),v=Y.create(H*L),b=W.BASE.multiplyUnsafe(B).add(O.multiplyUnsafe(v));if(b.is0())throw Error("point at infinify");return b.assertValidity(),b}hasHighS(){return T(this.s)}toBytes(R=S){if(N6(R),R==="der")return I8(v0.hexFromSig(this));const N=Y.toBytes(this.r),Z=Y.toBytes(this.s);if(R==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return D0(Uint8Array.of(this.recovery),N,Z)}return D0(N,Z)}toHex(R){return $1(this.toBytes(R))}assertValidity(){}static fromCompact(R){return f.fromBytes(Q0("sig",R),"compact")}static fromDER(R){return f.fromBytes(Q0("sig",R),"der")}normalizeS(){return this.hasHighS()?new f(this.r,Y.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return $1(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return $1(this.toBytes("compact"))}}const u=J.bits2int||function(R){if(R.length>8192)throw Error("input is too large");const N=B1(R),Z=8*R.length-F;return Z>0?N>>BigInt(Z):N},w=J.bits2int_modN||function(R){return Y.create(u(R))},c=n1(F);function i(R){return function(N,Z,H,M){if(!w6(Z,H,M))throw Error("expected valid "+N+": "+H+" <= n < "+M+", got "+Z)}("num < 2^"+F,R,A0,c),Y.toBytes(R)}function D(R,N){return o0(R,void 0,"message"),N?o0(Q(R),void 0,"prehashed message"):R}return Object.freeze({keygen:U,getPublicKey:K,getSharedSecret:$,utils:P,lengths:z,Point:W,sign(R,N,Z={}){R=Q0("message",R);const{seed:H,k2sig:M}=function(k,j,O){if(["recovered","canonical"].some((l)=>(l in O)))throw Error("sign() legacy options not supported");const{lowS:L,prehash:x,extraEntropy:B}=R6(O,C);k=D(k,x);const v=w(k),b=a0(Y,j),A=[i(b),i(v)];if(B!=null&&B!==!1){const l=B===!0?V(z.secretKey):B;A.push(Q0("extraEntropy",l))}const h=D0(...A),d=v;return{seed:h,k2sig(l){const I=u(l);if(!Y.isValidNot0(I))return;const g=Y.inv(I),y=W.BASE.multiply(I).toAffine(),o=Y.create(y.x);if(o===A0)return;const E=Y.create(g*Y.create(d+o*b));if(E===A0)return;let _=(y.x===o?0:2)|Number(y.y&H1),m=E;return L&&T(E)&&(m=Y.neg(E),_^=1),new f(o,m,_)}}}(R,N,Z);return function(k,j,O){if(typeof k!="number"||k<2)throw Error("hashLen must be a number");if(typeof j!="number"||j<2)throw Error("qByteLen must be a number");if(typeof O!="function")throw Error("hmacFn must be a function");const L=(I)=>new Uint8Array(I),x=(I)=>Uint8Array.of(I);let B=L(k),v=L(k),b=0;const A=()=>{B.fill(1),v.fill(0),b=0},h=(...I)=>O(v,B,...I),d=(I=L(0))=>{v=h(x(0),I),B=h(),I.length!==0&&(v=h(x(1),I),B=h())},l=()=>{if(b++>=1000)throw Error("drbg: tried 1000 values");let I=0;const g=[];for(;I<j;){B=h();const y=B.slice();g.push(y),I+=B.length}return D0(...g)};return(I,g)=>{let y;for(A(),d(I);!(y=g(l()));)d();return A(),y}}(Q.outputLen,Y.BYTES,G)(H,M)},verify(R,N,Z,H={}){const{lowS:M,prehash:k,format:j}=R6(H,C);if(Z=Q0("publicKey",Z),N=D(Q0("message",N),k),("strict"in H))throw Error("options.strict was renamed to lowS");const O=j===void 0?function(L){let x;const B=typeof L=="string"||v8(L),v=!B&&L!==null&&typeof L=="object"&&typeof L.r=="bigint"&&typeof L.s=="bigint";if(!B&&!v)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(v)x=new f(L.r,L.s);else if(B){try{x=f.fromBytes(Q0("sig",L),"der")}catch(b){if(!(b instanceof v0.Err))throw b}if(!x)try{x=f.fromBytes(Q0("sig",L),"compact")}catch(b){return!1}}return x||!1}(R):f.fromBytes(Q0("sig",R),j);if(O===!1)return!1;try{const L=W.fromBytes(Z);if(M&&O.hasHighS())return!1;const{r:x,s:B}=O,v=w(N),b=Y.inv(B),A=Y.create(v*b),h=Y.create(x*b),d=W.BASE.multiplyUnsafe(A).add(L.multiplyUnsafe(h));if(d.is0())return!1;return Y.create(d.x)===x}catch(L){return!1}},recoverPublicKey(R,N,Z={}){const{prehash:H}=R6(Z,C);return N=D(N,H),f.fromBytes(R,"recovered").recoverPublicKey(N).toBytes()},Signature:f,hash:Q})},jV=function(W){const{CURVE:Q,curveOpts:J}=function(G){const X={a:G.a,b:G.b,p:G.Fp.ORDER,n:G.n,h:G.h,Gx:G.Gx,Gy:G.Gy},Y=G.Fp;let q=G.allowedPrivateKeyLengths?Array.from(new Set(G.allowedPrivateKeyLengths.map((F)=>Math.ceil(F/2)))):void 0;return{CURVE:X,curveOpts:{Fp:Y,Fn:o1(X.n,{BITS:G.nBitLength,allowedLengths:q,modFromBytes:G.wrapPrivateKey}),allowInfinityPoint:G.allowInfinityPoint,endo:G.endo,isTorsionFree:G.isTorsionFree,clearCofactor:G.clearCofactor,fromBytes:G.fromBytes,toBytes:G.toBytes}}}(W),V={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:Q,curveOpts:J,hash:W.hash,ecdsaOpts:V}},BV=function(W){const{CURVE:Q,curveOpts:J,hash:V,ecdsaOpts:G}=jV(W);return function(X,Y){const q=Y.Point;return Object.assign({},Y,{ProjectivePoint:q,CURVE:Object.assign({},X,YW(q.Fn.ORDER,q.Fn.BITS))})}(W,CV($V(Q,J),V,G))},N8=function(W,...Q){let J=p7[W];if(J===void 0){const V=O6(l7(W));J=D0(V,V),p7[W]=J}return O6(D0(J,...Q))},v6=function(W){const{Fn:Q,BASE:J}=M1,V=a0(Q,W),G=J.multiply(V);return{scalar:u6(G.y)?V:Q.neg(V),bytes:h6(G)}},CW=function(W){const Q=w8;if(!Q.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");const J=Q.create(W*W),V=Q.create(J*W+BigInt(7));let G=Q.sqrt(V);u6(G)||(G=Q.neg(G));const X=M1.fromAffine({x:W,y:G});return X.assertValidity(),X},jW=function(...W){return M1.Fn.create(r1(N8("BIP0340/challenge",...W)))},f7=function(W){return v6(W).bytes},LV=function(W,Q,J=D8(32)){const{Fn:V}=M1,G=Q0("message",W),{bytes:X,scalar:Y}=v6(Q),q=Q0("auxRand",J,32),F=V.toBytes(Y^r1(N8("BIP0340/aux",q))),U=N8("BIP0340/nonce",F,X,G),{bytes:K,scalar:$}=v6(U),P=jW(K,X,G),z=new Uint8Array(64);if(z.set(K,0),z.set(V.toBytes(V.create($+P*Y)),32),!BW(z,G,X))throw Error("sign: Invalid signature produced");return z},BW=function(W,Q,J){const{Fn:V,BASE:G}=M1,X=Q0("signature",W,64),Y=Q0("message",Q),q=Q0("publicKey",J,32);try{const F=CW(r1(q)),U=r1(X.subarray(0,32));if(!w6(U,y7,j1.p))return!1;const K=r1(X.subarray(32,64));if(!w6(K,y7,j1.n))return!1;const $=jW(V.toBytes(U),h6(F),Y),P=G.multiplyUnsafe(K).add(F.multiplyUnsafe(V.neg($))),{x:z,y:C}=P.toAffine();return!(P.is0()||!u6(C)||z!==U)}catch(F){return!1}},F1=typeof globalThis=="object"&&("crypto"in globalThis)?globalThis.crypto:void 0,i7=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),QV=Array.from({length:256},(W,Q)=>Q.toString(16).padStart(2,"0")),L7=48,VV=57,I7=65,GV=70,D7=97,XV=102;class E6{}class r7 extends E6{constructor(W,Q,J,V){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=Q,this.padOffset=J,this.isLE=V,this.buffer=new Uint8Array(W),this.view=k6(this.buffer)}update(W){R8(this),W1(W=g6(W));const{view:Q,buffer:J,blockLen:V}=this,G=W.length;for(let X=0;X<G;){const Y=Math.min(V-this.pos,G-X);if(Y!==V)J.set(W.subarray(X,X+Y),this.pos),this.pos+=Y,X+=Y,this.pos===V&&(this.process(Q,0),this.pos=0);else{const q=k6(W);for(;V<=G-X;X+=V)this.process(q,X)}}return this.length+=W.length,this.roundClean(),this}digestInto(W){R8(this),function(K,$){W1(K);const P=$.outputLen;if(K.length<P)throw Error("digestInto() expects output buffer of length at least "+P)}(W,this),this.finished=!0;const{buffer:Q,view:J,blockLen:V,isLE:G}=this;let{pos:X}=this;Q[X++]=128,L8(this.buffer.subarray(X)),this.padOffset>V-X&&(this.process(J,0),X=0);for(let K=X;K<V;K++)Q[K]=0;(function(K,$,P,z){if(typeof K.setBigUint64=="function")return K.setBigUint64($,P,z);const C=BigInt(32),S=BigInt(4294967295),T=Number(P>>C&S),p=Number(P&S),f=z?4:0,u=z?0:4;K.setUint32($+f,T,z),K.setUint32($+u,p,z)})(J,V-8,BigInt(8*this.length),G),this.process(J,0);const Y=k6(W),q=this.outputLen;if(q%4)throw Error("_sha2: outputLen should be aligned to 32bit");const F=q/4,U=this.get();if(F>U.length)throw Error("_sha2: outputLen bigger than state");for(let K=0;K<F;K++)Y.setUint32(4*K,U[K],G)}digest(){const{buffer:W,outputLen:Q}=this;this.digestInto(W);const J=W.slice(0,Q);return this.destroy(),J}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());const{blockLen:Q,buffer:J,length:V,finished:G,destroyed:X,pos:Y}=this;return W.destroyed=X,W.finished=G,W.length=V,W.pos=Y,V%Q&&W.buffer.set(J),W}clone(){return this._cloneInto()}}var b0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),UV=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),h0=new Uint32Array(64);class n7 extends r7{constructor(W=32){super(64,W,8,!1),this.A=0|b0[0],this.B=0|b0[1],this.C=0|b0[2],this.D=0|b0[3],this.E=0|b0[4],this.F=0|b0[5],this.G=0|b0[6],this.H=0|b0[7]}get(){const{A:W,B:Q,C:J,D:V,E:G,F:X,G:Y,H:q}=this;return[W,Q,J,V,G,X,Y,q]}set(W,Q,J,V,G,X,Y,q){this.A=0|W,this.B=0|Q,this.C=0|J,this.D=0|V,this.E=0|G,this.F=0|X,this.G=0|Y,this.H=0|q}process(W,Q){for(let $=0;$<16;$++,Q+=4)h0[$]=W.getUint32(Q,!1);for(let $=16;$<64;$++){const P=h0[$-15],z=h0[$-2],C=I0(P,7)^I0(P,18)^P>>>3,S=I0(z,17)^I0(z,19)^z>>>10;h0[$]=S+h0[$-7]+C+h0[$-16]|0}let{A:J,B:V,C:G,D:X,E:Y,F:q,G:F,H:U}=this;for(let $=0;$<64;$++){const P=U+(I0(Y,6)^I0(Y,11)^I0(Y,25))+((K=Y)&q^~K&F)+UV[$]+h0[$]|0,z=(I0(J,2)^I0(J,13)^I0(J,22))+qV(J,V,G)|0;U=F,F=q,q=Y,Y=X+P|0,X=G,G=V,V=J,J=P+z|0}var K;J=J+this.A|0,V=V+this.B|0,G=G+this.C|0,X=X+this.D|0,Y=Y+this.E|0,q=q+this.F|0,F=F+this.G|0,U=U+this.H|0,this.set(J,V,G,X,Y,q,F,U)}roundClean(){L8(h0)}destroy(){this.set(0,0,0,0,0,0,0,0),L8(this.buffer)}}var O6=YV(()=>new n7);class y6 extends E6{constructor(W,Q){super(),this.finished=!1,this.destroyed=!1,d7(W);const J=g6(Q);if(this.iHash=W.create(),typeof this.iHash.update!="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const V=this.blockLen,G=new Uint8Array(V);G.set(J.length>V?W.create().update(J).digest():J);for(let X=0;X<G.length;X++)G[X]^=54;this.iHash.update(G),this.oHash=W.create();for(let X=0;X<G.length;X++)G[X]^=106;this.oHash.update(G),L8(G)}update(W){return R8(this),this.iHash.update(W),this}digestInto(W){R8(this),W1(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){const W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));const{oHash:Q,iHash:J,finished:V,destroyed:G,blockLen:X,outputLen:Y}=this;return W.finished=V,W.destroyed=G,W.blockLen=X,W.outputLen=Y,W.oHash=Q._cloneInto(W.oHash),W.iHash=J._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var o7=(W,Q,J)=>new y6(W,Q).update(J).digest();o7.create=(W,Q)=>new y6(W,Q);var p6=BigInt(0),x6=BigInt(1),$6=(W)=>typeof W=="bigint"&&p6<=W,n1=(W)=>(x6<<BigInt(W))-x6,K0=BigInt(0),U0=BigInt(1),s0=BigInt(2),WW=BigInt(3),JW=BigInt(4),QW=BigInt(5),PV=BigInt(7),VW=BigInt(8),KV=BigInt(9),w7=BigInt(16),ZV=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"],C1=BigInt(0),e0=BigInt(1),B6=new WeakMap,FW=new WeakMap;class zW{constructor(W,Q){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=Q}_unsafeLadder(W,Q,J=this.ZERO){let V=W;for(;Q>C1;)Q&e0&&(J=J.add(V)),V=V.double(),Q>>=e0;return J}precomputeWindow(W,Q){const{windows:J,windowSize:V}=j6(Q,this.bits),G=[];let X=W,Y=X;for(let q=0;q<J;q++){Y=X,G.push(Y);for(let F=1;F<V;F++)Y=Y.add(X),G.push(Y);X=Y.double()}return G}wNAF(W,Q,J){if(!this.Fn.isValid(J))throw Error("invalid scalar");let V=this.ZERO,G=this.BASE;const X=j6(W,this.bits);for(let Y=0;Y<X.windows;Y++){const{nextN:q,offset:F,isZero:U,isNeg:K,isNegF:$,offsetF:P}=A7(J,Y,X);J=q,U?G=G.add(x8($,Q[P])):V=V.add(x8(K,Q[F]))}return T7(J),{p:V,f:G}}wNAFUnsafe(W,Q,J,V=this.ZERO){const G=j6(W,this.bits);for(let X=0;X<G.windows&&J!==C1;X++){const{nextN:Y,offset:q,isZero:F,isNeg:U}=A7(J,X,G);if(J=Y,!F){const K=Q[q];V=V.add(U?K.negate():K)}}return T7(J),V}getPrecomputes(W,Q,J){let V=B6.get(Q);return V||(V=this.precomputeWindow(Q,W),W!==1&&(typeof J=="function"&&(V=J(V)),B6.set(Q,V))),V}cached(W,Q,J){const V=M6(W);return this.wNAF(V,this.getPrecomputes(V,W,J),Q)}unsafe(W,Q,J,V){const G=M6(W);return G===1?this._unsafeLadder(W,Q,V):this.wNAFUnsafe(G,this.getPrecomputes(G,W,J),Q,V)}createCache(W,Q){KW(Q,this.bits),FW.set(W,Q),B6.delete(W)}hasCache(W){return M6(W)!==1}}var E7=(W,Q)=>(W+(W>=0?Q:-Q)/ZW)/Q,v0={Err:class extends Error{constructor(W=""){super(W)}},_tlv:{encode(W,Q){const{Err:J}=v0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(1&Q.length)throw new J("tlv.encode: unpadded data");const V=Q.length/2,G=k8(V);if(G.length/2&128)throw new J("tlv.encode: long form length too big");const X=V>127?k8(G.length/2|128):"";return k8(W)+X+G+Q},decode(W,Q){const{Err:J}=v0;let V=0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(Q.length<2||Q[V++]!==W)throw new J("tlv.decode: wrong tlv");const G=Q[V++];let X=0;if(128&G){const q=127&G;if(!q)throw new J("tlv.decode(long): indefinite length not supported");if(q>4)throw new J("tlv.decode(long): byte length is too big");const F=Q.subarray(V,V+q);if(F.length!==q)throw new J("tlv.decode: length bytes not complete");if(F[0]===0)throw new J("tlv.decode(long): zero leftmost byte");for(let U of F)X=X<<8|U;if(V+=q,X<128)throw new J("tlv.decode(long): not minimal encoding")}else X=G;const Y=Q.subarray(V,V+X);if(Y.length!==X)throw new J("tlv.decode: wrong value length");return{v:Y,l:Q.subarray(V+X)}}},_int:{encode(W){const{Err:Q}=v0;if(W<A0)throw new Q("integer: negative integers are not allowed");let J=k8(W);if(8&Number.parseInt(J[0],16)&&(J="00"+J),1&J.length)throw new Q("unexpected DER parsing assertion: unpadded hex");return J},decode(W){const{Err:Q}=v0;if(128&W[0])throw new Q("invalid signature integer: negative");if(W[0]===0&&!(128&W[1]))throw new Q("invalid signature integer: unnecessary leading zero");return B1(W)}},toSig(W){const{Err:Q,_int:J,_tlv:V}=v0,G=Q0("signature",W),{v:X,l:Y}=V.decode(48,G);if(Y.length)throw new Q("invalid signature: left bytes after parsing");const{v:q,l:F}=V.decode(2,X),{v:U,l:K}=V.decode(2,F);if(K.length)throw new Q("invalid signature: left bytes after parsing");return{r:J.decode(q),s:J.decode(U)}},hexFromSig(W){const{_tlv:Q,_int:J}=v0,V=Q.encode(2,J.encode(W.r))+Q.encode(2,J.encode(W.s));return Q.encode(48,V)}},A0=BigInt(0),H1=BigInt(1),ZW=BigInt(2),$8=BigInt(3),kV=BigInt(4),j1={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},MV={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},RV=BigInt(0),y7=BigInt(1),S6=BigInt(2),w8=o1(j1.p,{sqrt(W){const Q=j1.p,J=BigInt(3),V=BigInt(6),G=BigInt(11),X=BigInt(22),Y=BigInt(23),q=BigInt(44),F=BigInt(88),U=W*W*W%Q,K=U*U*W%Q,$=C0(K,J,Q)*K%Q,P=C0($,J,Q)*K%Q,z=C0(P,S6,Q)*U%Q,C=C0(z,G,Q)*z%Q,S=C0(C,X,Q)*C%Q,T=C0(S,q,Q)*S%Q,p=C0(T,F,Q)*T%Q,f=C0(p,q,Q)*S%Q,u=C0(f,J,Q)*K%Q,w=C0(u,Y,Q)*C%Q,c=C0(w,V,Q)*U%Q,i=C0(c,S6,Q);if(!w8.eql(w8.sqr(i),W))throw Error("Cannot find square root");return i}}),$W=function(W,Q){const J=(V)=>BV({...W,hash:V});return{...J(Q),create:J}}({...j1,Fp:w8,lowS:!0,endo:MV},O6),p7={},h6=(W)=>W.toBytes(!0).slice(1),M1=(()=>$W.Point)(),u6=(W)=>W%S6===RV,r1=B1,m6=(()=>{const W=(Q=D8(48))=>PW(Q,j1.n);return $W.utils.randomSecretKey,{keygen(Q){const J=W(Q);return{secretKey:J,publicKey:f7(J)}},getPublicKey:f7,sign:LV,verify:BW,Point:M1,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:N8,lift_x:CW,pointToBytes:h6,numberToBytesBE:A8,bytesToNumberBE:B1,mod:j0},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),IV=new TextEncoder,DV=new TextDecoder,t0=(W)=>IV.encode(W),l1=(W)=>DV.decode(W),A6=(W)=>Array.from(W,(Q)=>Q.toString(16).padStart(2,"0")).join(""),T0=JSON.stringify,S8=JSON.parse,MW=(W,Q=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((J,V)=>J+V.charCodeAt(0),0)%Q,_6="AES-GCM",OV={},C8=(W)=>OV[W]??=crypto.subtle.digest("SHA-1",t0(W)).then((Q)=>{const J=new Uint8Array(Q);let V="";for(let G of J)V+=G.toString(36);return V}),xV=async(W,Q)=>{const J=crypto.getRandomValues(new Uint8Array(12)),V=await W,G=await crypto.subtle.encrypt({name:_6,iv:J},V,t0(Q));return`${J.join(",")}\$${((X)=>{const Y=new Uint8Array(X);let q="";for(let F=0;F<Y.length;F+=32768)q+=String.fromCharCode(...Y.subarray(F,F+32768));return btoa(q)})(G)}`},wV=async(W,Q)=>{const[J,V]=Q.split("$");if(!J||!V)throw Error("Invalid encrypted payload format");const G=Uint8Array.from(J.split(","),Number),X=await W,Y=await crypto.subtle.decrypt({name:_6,iv:G},X,(q=V,Uint8Array.from(atob(q),(F)=>F.charCodeAt(0)).buffer));var q;return l1(Y)},Z0="GenosRTC",c6=(W,Q)=>Array.from({length:W},Q),NV="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",T6=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(Q)=>NV[Q%62]).join(""),z1=T6(20),k1=Promise.all.bind(Promise),SV=typeof window!="undefined",{entries:vV,fromEntries:RW}=Object,AV=()=>{},S0=(W)=>Error(`${Z0}: ${W}`),j8=(...W)=>W.join("@"),b7="icegatheringstatechange",h7="offer",TV=[...c6(3,(W,Q)=>`stun:stun${Q||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),L6=(W,{rtcConfig:Q,rtcPolyfill:J,turnConfig:V})=>{const G=new(J||RTCPeerConnection)({iceServers:[...TV,...V||[]],...Q}),X={};let Y,q=!1,F=!1;const U=(P)=>Object.assign(P,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage(z){return X.data?.(z.data)},onopen(){return X.connect?.()},onclose(){return X.close?.()},onerror(z){return!z?.error?.message?.includes("User-Initiated Abort")&&X.error?.(z)}}),K=()=>Promise.race([new Promise((P)=>{const z=()=>{G.iceGatheringState==="complete"&&(G.removeEventListener(b7,z),P())};G.addEventListener(b7,z),z()}),new Promise((P)=>setTimeout(P,5000))]).then(()=>({type:G.localDescription.type,sdp:G.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));W?U(Y=G.createDataChannel("data")):G.ondatachannel=({channel:P})=>U(Y=P),G.onnegotiationneeded=async()=>{try{q=!0,await G.setLocalDescription(),X.signal?.(await K())}catch(P){X.error?.(P)}finally{q=!1}},G.onconnectionstatechange=()=>{["disconnected","failed","closed"].includes(G.connectionState)&&X.close?.()},G.ontrack=(P)=>{X.track?.(P.track,P.streams[0]),X.stream?.(P.streams[0])},G.onremovestream=(P)=>X.stream?.(P.stream),W&&!G.canTrickleIceCandidates&&G.onnegotiationneeded();const $=()=>G.getSenders();return{created:Date.now(),connection:G,get channel(){return Y},get isDead(){return G.connectionState==="closed"},async signal(P){if(Y?.readyState!=="open"||P.sdp?.includes("a=rtpmap"))try{if(P.type===h7){if(q||G.signalingState!=="stable"&&!F){if(W)return;await k1([G.setLocalDescription({type:"rollback"}),G.setRemoteDescription(P)])}else await G.setRemoteDescription(P);await G.setLocalDescription();const z=await K();return X.signal?.(z),z}if(P.type==="answer"){F=!0;try{await G.setRemoteDescription(P)}finally{F=!1}}}catch(z){X.error?.(z)}},sendData(P){return Y.send(P)},destroy(){Y?.close(),G.close(),q=F=!1},setHandlers(P){return Object.assign(X,P)},offerPromise:W?new Promise((P)=>X.signal=(z)=>z.type===h7&&P(z)):Promise.resolve(),addStream(P){return P.getTracks().forEach((z)=>G.addTrack(z,P))},removeStream(P){return $().filter((z)=>P.getTracks().includes(z.track)).forEach((z)=>G.removeTrack(z))},addTrack(P,z){return G.addTrack(P,z)},removeTrack(P){const z=$().find((C)=>C.track===P);z&&G.removeTrack(z)},replaceTrack(P,z){return $().find((C)=>C.track===P)?.replaceTrack(z)}}},gV=Object.getPrototypeOf(Uint8Array),d1=16369,B8=255,I6="bufferedamountlow",Z1=(W)=>"@_"+W,EV=(W,Q,J)=>{const V=new Map,G=new Map,X=new Map,Y={},q={},F={},U={},K=new Map,$=(k,...j)=>K.get(k)?.forEach((O)=>O(...j)),P=(k,j)=>{const O=k?Array.isArray(k)?k:[k]:V.keys();return Array.from(O,(L)=>{const x=V.get(L);return x?j(L,x):(console.warn(`${Z0}: no peer with id ${L}`),null)}).filter(Boolean)},z=(k)=>{V.has(k)&&(V.delete(k),delete Y[k],delete q[k],delete F[k],delete U[k],$("peer:leave",k),Q(k))},C=(k)=>new Promise((j,O)=>{let L=setTimeout(()=>{k.removeEventListener(I6,x),O(Error(Z0+": bufferLow timeout"))},5000);function x(){clearTimeout(L),k.removeEventListener(I6,x),j()}k.addEventListener(I6,x)}),S=(k)=>{if(X.has(k))return X.get(k);if(!k)throw S0("action type is required");const j=t0(k);if(j.byteLength>12)throw S0(`"${k}" exceeds 12 bytes`);const O=new Uint8Array(12).map((b,A)=>j[A]||0);let L=0;const x=new Map([["message",new Set],["progress",new Set]]),B=async(b,A,h,d)=>{if(h&&typeof h!="object")throw S0("meta must be object");if(b===void 0)throw S0("data cannot be undefined");const l=b instanceof Blob,I=l||b instanceof ArrayBuffer||b instanceof gV,g=typeof b!="string";if(h&&!I)throw S0("meta only allowed with binary");const y=I?new Uint8Array(l?await b.arrayBuffer():b):t0(g?T0(b):b),o=h?t0(T0(h)):null,E=Math.ceil(y.byteLength/d1)+(h?1:0)||1;if(E>100)throw S0("Message too large, exceeds max chunks 100");const _=c6(E,(m,r)=>{const n=r===E-1,e=h&&r===0,W0=e?o:y.subarray(h?(r-1)*d1:r*d1,h?r*d1:(r+1)*d1),G0=new Uint8Array(15+W0.byteLength);return G0.set(O),G0.set([L],12),G0.set([n|e<<1|I<<2|g<<3],13),G0.set([Math.round((r+1)/E*B8)],14),G0.set(W0,15),G0});return L=L+1&B8,k1(P(A,async(m,r)=>{const{channel:n}=r;for(let e=0;e<E;e++){let W0=0;for(;n.bufferedAmount>n.bufferedAmountLowThreshold;){if(W0++>3)throw S0(`${Z0}: send buffer full, max retries reached for peer ${m}`);try{await C(n)}catch(G0){console.warn(G0.message),await new Promise((O0)=>setTimeout(O0,200))}}if(!V.has(m))break;r.sendData(_[e]),d?.(_[e][14]/B8,m,h)}}))};G.set(k,{listeners:x,send:B});const v={send:B,on(b,A){return x.get(b)?.add(A)},off(b,A){return x.get(b)?.delete(A)}};return X.set(k,v),v},T=async()=>{try{await H(""),await new Promise((k)=>setTimeout(k,99))}catch(k){console.warn(Z0+": error sending leave",k)}for(let[k,j]of V){try{j.destroy()}catch{}V.delete(k)}J()},{send:p,on:f}=S(Z1("ping")),{send:u,on:w}=S(Z1("pong")),{send:c,on:i}=S(Z1("signal")),{send:D,on:R}=S(Z1("stream")),{send:N,on:Z}=S(Z1("track")),{send:H,on:M}=S(Z1("leave"));return W((k,j)=>{V.has(j)||(V.set(j,k),k.setHandlers({data(O){return((L,x)=>{try{const B=new Uint8Array(x),v=l1(B.subarray(0,12)).replace(/\0/g,"");if(!G.has(v))return console.warn(`${Z0}: unregistered type (${v})`);const[b]=B.subarray(12,13),[A]=B.subarray(13,14),[h]=B.subarray(14,15),d=B.subarray(15),l=!!(1&A),I=!!(2&A),g=!!(4&A),y=!!(8&A),o=G.get(v),E=(Y[L]||={})[v]||={};if(E[b]?.chunks?.length>100)return void console.warn(`${Z0}: peer ${L} sent too many chunks for nonce ${b}, ignoring.`);const _=E[b]||={chunks:[]};if(I)try{_.meta=S8(l1(d))}catch{return void console.warn(`${Z0}: failed to parse meta from peer ${L} for type ${v}`)}else _.chunks.push(d);if(o.listeners.get("progress").forEach((n)=>{try{n(h/B8,L,_.meta)}catch(e){console.error(e)}}),!l)return;const m=new Uint8Array(_.chunks.reduce((n,e)=>n+e.byteLength,0));let r;if(_.chunks.reduce((n,e)=>(m.set(e,n),n+e.byteLength),0),delete E[b],g)r=m;else if(y)try{r=S8(l1(m))}catch{return void console.warn(`${Z0}: failed to parse JSON message data from peer ${L} for type ${v}`)}else r=l1(m);o.listeners.get("message").forEach((n)=>{try{n(r,L,_.meta)}catch(e){console.error(e)}})}catch(B){console.error(`${Z0}: error handling data from peer ${L}:`,B)}})(j,O)},stream(O){$("stream:add",O,j,F[j]),delete F[j]},track(O,L){$("track:add",O,L,j,U[j]),delete U[j]},signal(O){return c(O,j)},close(){return z(j)},error(O){console.error(`${Z0}: peer error for ${j}`,O),z(j)}}),$("peer:join",j))}),f("message",(k,j)=>u("",j)),w("message",(k,j)=>{q[j]?.(),delete q[j]}),i("message",(k,j)=>V.get(j)?.signal(k)),R("message",(k,j)=>F[j]=k),Z("message",(k,j)=>U[j]=k),M("message",(k,j)=>z(j)),SV&&addEventListener("beforeunload",T),{on(k,j){K.has(k)||K.set(k,new Set),K.get(k).add(j)},off(k,j){return K.get(k)?.delete(j)},channel:S,leave:T,async ping(k){if(!k)throw S0("ping() requires target peer ID");const j=Date.now();return p("",k),await new Promise((O)=>q[k]=O),Date.now()-j},getPeers(){return RW(Array.from(V,([k,j])=>[k,j.connection]))},addStream(k,j,O){return P(j,async(L,x)=>{O&&await D(O,L),x.addStream(k)})},removeStream(k,j){return P(j,(O,L)=>L.removeStream(k))},addTrack(k,j,O,L){return P(O,async(x,B)=>{L&&await N(L,x),B.addTrack(k,j)})},removeTrack(k,j){return P(j,(O,L)=>L.removeTrack(k))},replaceTrack(k,j,O,L){return P(O,async(x,B)=>{L&&await N(L,x),B.replaceTrack(k,j)})}}},M8={},LW={};if(typeof window!="undefined"){const W=()=>{console.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(LW).forEach((Q)=>{Q.socket&&Q.socket.readyState!==WebSocket.OPEN&&Q.socket.readyState!==WebSocket.CONNECTING&&Q.forceReconnect()})};window.addEventListener("online",()=>{console.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{console.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&W()})}var yV=(W,Q,J,V)=>(W.relayUrls??(V?((G,X)=>{const Y=[...G];let q=Y.length;const F=()=>{const U=1e4*Math.sin(X++);return U-Math.floor(U)};for(;q;){const U=Math.floor(F()*q--);[Y[q],Y[U]]=[Y[U],Y[q]]}return Y})(Q,MW(W.appId)):Q)).slice(0,W.relayUrls?.length??W.relayRedundancy??J),IW={},DW="EVENT",OW=m6.utils.randomSecretKey(),pV=A6(m6.getPublicKey(OW)),d6={},i1={},fV={},xW=()=>Math.floor(Date.now()/1000),wW=(W)=>fV[W]??=MW(W,1e4)+20000,u7=async(W,Q)=>{const J={kind:wW(W),content:Q,pubkey:pV,created_at:xW(),tags:[["x",W]]},V=new Uint8Array(await crypto.subtle.digest("SHA-256",t0(T0([0,J.pubkey,J.created_at,J.kind,J.tags,J.content])))),G=m6.sign(V,OW);return T0([DW,{...J,id:A6(V),sig:A6(G)}])},m7=(W,Q)=>(d6[W]=Q,T0(["REQ",W,{kinds:[wW(Q)],since:xW(),"#x":[Q]}])),_7=(W)=>(delete d6[W],T0(["CLOSE",W])),i6=(({init:W,subscribe:Q,announce:J})=>{const V={};let G,X,Y=!1;return(q,F,U)=>{const{appId:K}=q;if(V[K]?.[F])return V[K][F];if(!q||!F||!K&&!q.firebaseApp)throw S0(q?F?"appId missing":"roomId required":"config required");let $=AV;if(!Y){const Z=W(q);X=c6(20,()=>L6(!0,q)),G=Array.isArray(Z)?Z:[Z];const H=setInterval(()=>{X=X.filter((M)=>{const k=Date.now()-M.created<57333;return k||M.destroy(),k})},57333);V.offerCleanupTimer||=H,Y=!0}const P={},z={},C=j8(Z0,K,F),S=C8(C),T=C8(j8(C,z1)),p=(async(Z,H,M)=>{const k=await crypto.subtle.digest("SHA-256",t0(`${Z}:${H}:${M}`));return crypto.subtle.importKey("raw",k,{name:_6},!1,["encrypt","decrypt"])})(q.password||"",K,F),f=(Z)=>async(H)=>({type:H.type,sdp:await Z(p,H.sdp)}),u=f(wV),w=f(xV),c=(Z,H)=>{z[H]!==Z&&(z[H]?.destroy(),z[H]=Z,$(Z,H),P[H]?.forEach((M)=>M!==Z&&M.destroy()),delete P[H])},i=(Z,H)=>{z[H]===Z&&delete z[H]},D=k1(G.map(async(Z,H)=>{return Q(await Z,await S,await T,(M=H,async(k,j,O)=>{const[L,x]=await k1([S,T]);if(k!==L&&k!==x)return;const{peerId:B,offer:v,answer:b}=typeof j=="string"?S8(j):j;if(B!==z1&&!z[B])if(v){if(P[B]?.[M]&&z1>B)return;const A=L6(!1,q);A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}});try{const h=await u(v);if(A.isDead)return;const[d,l]=await k1([C8(j8(C,B)),A.signal(h).then(w)]);O(d,T0({peerId:z1,answer:l}))}catch{U?.({error:"decryption failed (offer)",appId:K,peerId:B,roomId:F})}}else if(b){const A=P[B]?.[M];if(!A||A.isDead)return;A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}});try{A.signal(await u(b))}catch{U?.({error:"decryption failed (answer)",appId:K,peerId:B,roomId:F})}}else{if(P[B]?.[M])return;const A=X.pop()||L6(!0,q),[h,{offer:d}]=await k1([C8(j8(C,B)),A.offerPromise.then(w).then((l)=>({offer:l}))]);P[B]||=[],P[B][M]=A,A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}}),O(h,T0({peerId:z1,offer:d,peer:A}))}}));var M})),R=[];D.then((Z)=>{G.forEach((H,M)=>{const k=async()=>{const j=await J(await H,await S,await T);R[M]=setTimeout(k,typeof j=="number"?j:5333)};k()}),V[K][F].onCleanup=()=>{delete V[K][F],R.forEach(clearTimeout),Z.forEach((H)=>H()),Object.keys(V).length===0&&(clearInterval(V.offerCleanupTimer),delete V.offerCleanupTimer)}}),V[K]||={};const N=EV((Z)=>$=Z,(Z)=>delete z[Z],()=>N.onCleanup?.());return V[K][F]=N}})({init(W){return yV(W,bV,5,!0).map((Q)=>{const J=((V,G)=>{const X={};let Y=null;const q=()=>{Y&&(clearTimeout(Y),Y=null);const F=new WebSocket(V);F.onclose=()=>{M8[V]??=3333,Y=setTimeout(q,M8[V]),M8[V]*=2},F.onmessage=(U)=>G(U.data),X.socket=F,X.url=F.url,X.ready=new Promise((U)=>{F.onopen=()=>{M8[V]=3333,U(X)}}),X.send=(U)=>{F.readyState===1&&F.send(U)}};return X.forceReconnect=q,q(),LW[V]=X,X})(Q,(V)=>{const[G,X,Y,q]=S8(V);if(G===DW)i1[X]?.(d6[X],Y.content);else{const F=`${Z0}: relay failure from ${J.url} - `;G==="NOTICE"?console.warn(F+X):G!=="OK"||Y||console.warn(F+q)}});return IW[Q]=J,J.ready})},subscribe(W,Q,J,V){const G=T6(64),X=T6(64);return i1[G]=i1[X]=(Y,q)=>V(Y,q,async(F,U)=>W.send(await u7(F,U))),W.send(m7(G,Q)),W.send(m7(X,J)),()=>{W.send(_7(G)),W.send(_7(X)),delete i1[G],delete i1[X]}},async announce(W,Q){return W.send(await u7(Q,T0({peerId:z1})))}}),wG=(c7=IW,()=>RW(vV(c7).map(([W,Q])=>[W,Q.socket]))),c7,bV=["black.nostrcity.club","eu.purplerelay.com","ftp.halifax.rwth-aachen.de/nostr","nostr.cool110.xyz","nostr.data.haus","nostr.mom","nostr.oxtr.dev","nostr.sathoarder.com","nostr.vulpem.com","playground.nostrcheck.me/relay","relay.agorist.space","relay.binaryrobot.com","relay.fountain.fm","relay.mostro.network","relay.nostraddress.com","relay.nostrdice.com","relay.nostromo.social","relay.oldenburg.cool","relay.snort.social","relay.verified-nostr.com","sendit.nosflare.com","yabu.me/v2","relay.damus.io"].map((W)=>"wss://"+W);function NW(W,Q,J){let V=Q.timestamp;if(V?.physical>Date.now()+7200000)V={physical:Date.now()+7200000,logical:V.logical};if(!W?.timestamp)return{resolved:!0,value:Q.value,timestamp:V};if(J.compare(V,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:Q.value,timestamp:V}}function SW(W,Q=50){const J=`gdb_oplog_${W}`;let V=[];function G(){try{const Y=localStorage.getItem(J);V=Y?JSON.parse(Y):[]}catch(Y){console.error("\u274C GDB: Failed to load oplog from localStorage:",Y),V=[]}}function X(){try{localStorage.setItem(J,JSON.stringify(V))}catch(Y){console.error("\u274C GDB: Failed to save oplog to localStorage:",Y)}}return G(),{add(Y){if(V.push(Y),V.length>Q)V.shift();X()},getDelta(Y,q){if(!Y)return[...V];return V.filter((F)=>q(F.timestamp,Y)>0)},getOldest(){return V[0]},clear(){V=[],localStorage.removeItem(J)}}}var hV=()=>{const W=new Map,Q=async()=>{try{const F=await navigator.storage.getDirectory(),K=await(await F.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await K?.close(),await F.removeEntry("~opfs-sync-test"),!!K}catch{return!1}};let J="idb";const V=(async()=>{if(await Q())J="sync";else try{const F=await navigator.storage.getDirectory(),K=await(await F.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();if(await K?.close(),await F.removeEntry("~opfs-async-test"),K)J="async";else J="idb"}catch{J="idb"}})(),G=async(F,U)=>{if(!W.has(F))W.set(F,[]);const K=W.get(F),$=K[K.length-1]||Promise.resolve();let P;const z=new Promise((C)=>P=C);K.push(z);try{return await $,await U()}finally{if(K.shift(),P(),K.length===0)W.delete(F)}},X=(()=>{let F;const U=async()=>{if(!F)F=new Promise((K,$)=>{const P=indexedDB.open("opfs-fallback-db",1);P.onupgradeneeded=()=>P.result.createObjectStore("files"),P.onsuccess=()=>K(P.result),P.onerror=()=>$(P.error)});return F};return{getDB:U,get:async(K)=>{const $=await U();return new Promise((P,z)=>{const S=$.transaction("files","readonly").objectStore("files").get(K);S.onsuccess=()=>P(S.result||new Uint8Array),S.onerror=()=>z(S.error)})},set:async(K,$)=>{const P=await U();return new Promise((z,C)=>{const T=P.transaction("files","readwrite").objectStore("files").put($,K);T.onsuccess=()=>z(),T.onerror=()=>C(T.error)})}}})(),Y=async(F)=>{await V;try{if(J==="idb"){const z=await X.get(F);return{type:"loaded",name:F,data:z}}const K=await(await navigator.storage.getDirectory()).getFileHandle(F);if(J==="sync"){let z;try{z=await K.createSyncAccessHandle();const C=z.getSize(),S=new Uint8Array(C),T=z.read(S,{at:0});return{type:"loaded",name:F,data:S.slice(0,T)}}finally{z?.close()}}const $=await K.getFile(),P=new Uint8Array(await $.arrayBuffer());return{type:"loaded",name:F,data:P}}catch(U){const K=U.name==="NotFoundError"?"File not found":U.message||"Error reading file";return{type:"error",name:F,message:K}}},q=async(F,U)=>{if(await V,!(U instanceof Uint8Array))return{type:"error",name:F,message:"Content must be a Uint8Array"};return G(F,async()=>{try{if(J==="idb")return await X.set(F,U),{type:"saved",name:F};const $=await(await navigator.storage.getDirectory()).getFileHandle(F,{create:!0});if(J==="sync"){let P;try{P=await $.createSyncAccessHandle(),P.truncate(0),P.write(U,{at:0}),P.flush()}finally{P?.close()}}else{let P;try{P=await $.createWritable(),await P.write(U)}finally{await P?.close()}}return{type:"saved",name:F}}catch(K){return{type:"error",name:F,message:K.message||"Error saving file"}}})};self.onmessage=async({data:F})=>{const{type:U,name:K,content:$}=F;await V;const P={load:()=>Y(K),save:()=>q(K,$)};try{const z=P[U],C=z?await z():{type:"error",message:`Unrecognized action type: ${U}`};self.postMessage(C)}catch(z){console.error("\u274C Worker unexpected error:",z),self.postMessage({type:"error",name:K,message:z.message||"Unexpected worker error"})}}},vW=hV;var R1={$eq:(W,Q)=>W===Q,$ne:(W,Q)=>W!==Q,$gt:(W,Q)=>W>Q,$gte:(W,Q)=>W>=Q,$lt:(W,Q)=>W<Q,$lte:(W,Q)=>W<=Q,$in:(W,Q)=>Array.isArray(Q)&&(Array.isArray(W)?W.some((J)=>Q.includes(J)):Q.includes(W)),$between:(W,[Q,J])=>W>=Q&&W<=J,$exists:(W,Q)=>Q?W!==void 0:W===void 0,$text:{global:(W,Q)=>{const J=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=J(Q);return Object.values(W).some((G)=>typeof G==="object"?null.fieldSearch(G,V):J(G).includes(V))},field:(W,Q)=>{const J=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=J(Q);return Array.isArray(W)?W.some((G)=>J(G).includes(V)):J(W).includes(V)}},$like:(W,Q)=>typeof W==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}\$`,"i").test(W),$regex:(W,Q)=>typeof W==="string"&&new RegExp(Q.$regex||Q,"i").test(W),$and:(W,Q,J)=>Q.every((V)=>J.createFilter(V,J.allNodes)(W)),$or:(W,Q,J)=>Q.some((V)=>J.createFilter(V,J.allNodes)(W)),$not:(W,Q,J)=>!J.createFilter(Q,J.allNodes)(W),$edge:(W,Q,J)=>{if(!W.edges?.length||typeof Q!=="object"||Q===null)return!1;const V=J.createFilter(Q,J.allNodes),G=[...W.edges],X=new Set(G).add(W.id),Y=[];while(G.length){const q=G.shift(),F=J.allNodes[q];if(!F)continue;if(V(F))Y.push(F);F.edges?.forEach((U)=>!X.has(U)&&X.add(U)&&G.push(U))}if(Y.length)W._edgeResult=Y;return Y.length>0}},l6=(W,Q)=>Q.split(".").reduce((J,V)=>J&&typeof J==="object"&&(V in J)?J[V]:void 0,W),T8=(W,Q)=>{if(Object.keys(W).length===0)return()=>!0;return(J)=>Object.entries(W).every(([V,G])=>{if(V.startsWith("$"))return R1[V](J,G,{createFilter:T8,allNodes:Q});const X=l6(J.value,V);if(typeof G!=="object"||G===null)return R1.$eq(X,G);return Object.entries(G).every(([Y,q])=>{if(Y==="$text")return R1.$text.field(X,q);if(Y==="$between"&&q.every((F)=>F instanceof Date))return R1.$between(new Date(X),q);return R1[Y]?.(X,q,{createFilter:T8,allNodes:Q})??!1})})},r6=(W,Q)=>{const{$edge:J,...V}=Q.query||{},G=T8(V,W),X=Object.values(W).filter(G);let q=[...J?(()=>{const F=T8({$edge:J},W);X.forEach((K)=>F(K));const U=new Map;return X.forEach((K)=>{if(K._edgeResult)K._edgeResult.forEach(($)=>U.set($.id,$)),delete K._edgeResult}),Array.from(U.values())})():X];if(Q.field){const F=Q.order==="asc"?1:-1;q.sort((U,K)=>{const $=l6(U.value,Q.field),P=l6(K.value,Q.field);if(typeof $==="string"&&typeof P==="string")return $.localeCompare(P)*F;return(($??0)-(P??0))*F})}if(Q.$after){const F=q.findIndex((U)=>U.id===Q.$after);q=F>=0?q.slice(F+1):[]}if(Q.$before){const F=q.findIndex((U)=>U.id===Q.$before);q=F>=0?q.slice(0,F):[]}if(Q.$limit)q=q.slice(0,Q.$limit);return q};function AW(){let W=Date.now(),Q=0;return{now(){const J=Date.now();return W=Math.max(W,J),Q++,{physical:W,logical:Q}},update(J){if(!J||typeof J.physical!=="number"||typeof J.logical!=="number"){console.warn("\u26A0\uFE0F HybridClock.update received an invalid remote timestamp.",J);return}W=Math.max(W,J.physical),Q=Math.max(Q,J.logical)+1},compare(J,V){if(!J&&!V)return 0;if(!J)return-1;if(!V)return 1;if(J.physical>V.physical)return 1;if(J.physical<V.physical)return-1;if(J.logical>V.logical)return 1;if(J.logical<V.logical)return-1;return 0}}}var TW=function(W,Q){return W.length===Q.length&&W.every((J,V)=>J===Q[V])};async function _V(){if(console.info(navigator?.storage?.getDirectory?"\u2705 OPFS is enabled.":"\uD83D\uDEAB OPFS is not available."),navigator?.storage?.getDirectory)await navigator.storage.getDirectory()}var cV=function(){const W={nodes:{}};return{get nodes(){return W.nodes},set nodes(J){W.nodes=J||{}},upsert(J,V,G){const X=W.nodes[J];W.nodes[J]={id:J,value:V&&typeof V==="object"?uV(V):V,edges:X?.edges?[...X.edges]:[],timestamp:G}},get(J){return W.nodes[J]||null},link(J,V,G){const X=W.nodes[J],Y=W.nodes[V];if(X&&Y&&!X.edges.includes(V))W.nodes[J]={...X,edges:[...X.edges,V],timestamp:G}},getAllNodes(){return Object.values(W.nodes)},serialize(){return c1.deflate(t1(W.nodes))},deserialize(J){W.nodes=Q8(c1.inflate(new Uint8Array(J)))}}};async function EW(W,Q={}){const{password:J,sm:V=!1,ii:G=!1,rx:X=!1,ai:Y=!1,geo:q=!1,relayUrls:F=null,turnConfig:U=null,saveDelay:K=200,oplogSize:$=20}=Q,P=cV(),z=AW(),C=SW(W,$),S=[];let T=null,p=[],f=null,u=null,w=null,c=null;const i=[],D={};Object.defineProperties(D,{hybridClock:{get:()=>z},graph:{get:()=>P},syncChannel:{get:()=>u},ready:{get:()=>Promise.resolve(!0)}});async function R(I,g){const y=new URL(`./${I}.min.js`,import.meta.url).href,o=`https://cdn.jsdelivr.net/npm/genosdb@latest/dist/${I}.min.js`;try{const E=await import(y).catch(()=>{return console.warn(`\u26A0\uFE0F ${I} not found locally, loading from CDN...`),import(o)}),_=g&&typeof g==="object"?g:{},m=typeof E.init==="function"?E.init(D,E,_):null;if(m)Object.assign(D,m);return E}catch(E){throw console.error(`\u274C Initialization of ${I} failed:`,E),E}}function N(){const I=localStorage.getItem(`${W}_time`);T=I?JSON.parse(I):null}function Z(I){T=I,localStorage.setItem(`${W}_time`,JSON.stringify(I))}function H(){try{const I=URL.createObjectURL(new Blob([`(${vW.toString()})()`],{type:"application/javascript"}));f=new Worker(I),URL.revokeObjectURL(I),f.addEventListener("message",({data:g})=>{console.info(`\uD83D\uDCBE ${g.name} ${g.type}`)}),console.info("\u2699\uFE0F Worker initialized successfully.")}catch({message:I}){console.error("\u274C Failed to initialize worker:",I)}}function M(){const I={...P.nodes};p.forEach((g)=>g(I))}const k=mV(()=>M()),j=gW(async()=>{const I=i.splice(0,i.length);if(!I.length)return!1;return await u.send(I),!0},16);async function O(){return crypto.randomUUID()}async function L(){try{const g=await((y)=>new Promise((o,E)=>{const _=async({data:m})=>{if(m.type==="loaded"&&m.name===y)f.removeEventListener("message",_),o(new Uint8Array(m.data));else if(m.type==="error")f.removeEventListener("message",_),E(new Error(m.message||"Unknown error"))};f.addEventListener("message",_),f.postMessage({type:"load",name:y})}))(`${W}_graph.msgpack`).catch(()=>new Uint8Array);g.byteLength>0?P.deserialize(g):console.warn("\u26A0\uFE0F The file '_graph.msgpack' is empty or could not be loaded."),console.info(`\u2705 Graph loaded: [ ${P.getAllNodes().length} nodes ]`)}catch({message:I}){console.error("\u274C Error loading the graph:",I)}}async function x(){try{const I=P.serialize();return await((y,o)=>new Promise((E,_)=>{const m=({data:r})=>{if(r.type==="saved"&&r.name===y)f.removeEventListener("message",m),E();else if(r.type==="error")f.removeEventListener("message",m),_(new Error(r.message||"Save error"))};f.addEventListener("message",m),f.postMessage({type:"save",name:y,content:o})}))(`${W}_graph.msgpack`,I),w.postMessage("update"),!0}catch({message:I}){throw console.error("\u274C Save error:",I),new Error("Save failed")}}const B=gW(()=>x(),K);async function v(I){try{console.info("\uD83D\uDD04 Applying full graph from remote..."),P.nodes={...I.nodes},await x()}catch({message:g}){console.error(`\u274C Error applying the full graph: ${g}`)}}async function b(I){let g=!1,y=null;const o={upsert:(E)=>{const _=P.get(E.id),m=NW(_,E,z);if(m.resolved){if(P.upsert(E.id,m.value,m.timestamp),z.update(m.timestamp),C.add({type:"upsert",id:E.id,timestamp:m.timestamp}),g=!0,!y||z.compare(m.timestamp,y)>0)y=m.timestamp}},remove:(E)=>{const _=P.get(E.id);if(_&&z.compare(_.timestamp,E.timestamp)<0){if(delete P.nodes[E.id],z.update(E.timestamp),C.add({type:"remove",id:E.id,timestamp:E.timestamp}),g=!0,!y||z.compare(E.timestamp,y)>0)y=E.timestamp}},link:(E)=>{const _=P.get(E.sourceId),m=P.get(E.targetId);if(_&&m&&z.compare(_.timestamp,E.timestamp)<0){if(P.link(E.sourceId,E.targetId,E.timestamp),z.update(E.timestamp),C.add({type:"link",sourceId:E.sourceId,targetId:E.targetId,timestamp:E.timestamp}),g=!0,!y||z.compare(E.timestamp,y)>0)y=E.timestamp}},sync:async(E)=>{const _=E.timestamp;if(_===null){console.info("\uD83D\uDCEC [SYNC REQUEST] from new peer (no timestamp). Sending full graph."),await u.send([{type:"syncReceive",graph:P}]);return}console.info("\uD83D\uDCEC [SYNC REQUEST] since:",new Date(_.physical).toLocaleString());const m=C.getOldest();if(m&&z.compare(_,m.timestamp)<0){console.info("\uD83D\uDCA5 [FALLBACK TRIGGERED] Peer is too far behind. Sending FULL graph state."),await u.send([{type:"syncReceive",graph:P}]);return}const r=C.getDelta(_,z.compare);if(r.length>0){const n=r.map((W0)=>{if(W0.type==="upsert"){const G0=P.get(W0.id);return{...W0,value:G0?G0.value:null}}return W0}),e=c1.deflate(t1(n));console.info(`\uD83D\uDE80 [DELTA SYNC SENDING] Found ${r.length} new operations to send.`),await u.send([{type:"deltaSync",operations:e}])}else console.info("\u2705 [ALREADY SYNCED] Peer is up-to-date. Nothing to send.")},deltaSync:(E)=>{console.info("\uD83D\uDEF0\uFE0F [DELTA SYNC RECEIVED] Applying delta from a peer.");let _=Q8(c1.inflate(E.operations));for(let m of _)o[m.type]?.(m)},syncReceive:async(E)=>{if(console.info("\uD83D\uDCE6 [FULL SYNC RECEIVED] Overwriting local state with full graph from a peer."),E.graph&&E.graph.nodes){await v(E.graph),C.clear(),console.info("\uD83D\uDD12 Oplog has been cleared due to full sync."),g=!0;let _=null;for(let m in E.graph.nodes){const r=E.graph.nodes[m];if(r.timestamp&&(!_||z.compare(r.timestamp,_)>0))_=r.timestamp}if(_)console.info("\uD83D\uDCC8 [GLOBAL TIMESTAMP] Updated from full sync."),y=_,z.update(_)}else console.error("\u274C Full sync failed: received graph data is invalid.",E.graph)}};for(let E of I)if(o[E.type])await o[E.type](E);else console.warn(`\uD83E\uDD37\u200D\u2640\uFE0F [UNKNOWN MESSAGE TYPE] Received unhandled message type: "${E.type}"`);if(y){if(!T||z.compare(y,T)>0)console.info(`\uD83D\uDCC8 [GLOBAL TIMESTAMP] Advanced from ${T?.logical} to ${y.logical}.`),Z(y)}if(g)console.info("\uD83D\uDCBE [STATE CHANGED] Saving state and emitting update."),await x(),M()}Object.assign(D,{use(I){if(typeof I==="function")S.push(I)},async put(I,g){const y=z.now();Z(y),g??=await O(),P.upsert(g,I,y),C.add({type:"upsert",id:g,timestamp:y}),B();try{i.push({type:"upsert",id:g,value:I,timestamp:y}),j().catch(()=>{})}finally{k()}return g},async link(I,g){const y=z.now();if(!P.nodes[I]||!P.nodes[g]){console.warn(`\u26A0\uFE0F One or both nodes (${I}, ${g}) do not exist.`);return}P.link(I,g,y),C.add({type:"link",sourceId:I,targetId:g,timestamp:y}),B(),Z(y);try{i.push({type:"link",sourceId:I,targetId:g,timestamp:y}),j().catch(()=>{})}finally{k()}},async remove(I){const g=z.now(),y=P.get(I);if(!y)return console.warn(`\u26A0\uFE0F Node with ID '${I}' not found.`);delete P.nodes[I],C.add({type:"remove",id:I,timestamp:g}),Object.values(P.nodes).forEach((o)=>o.edges=o.edges.filter((E)=>E!==I)),B(),Z(g);try{i.push({type:"remove",id:I,value:y.value,timestamp:g}),j().catch(()=>{})}finally{k()}},async get(I,g=null){if(typeof I!=="string")return{result:null};const y=P.get(I);if(!y){if(g)g(null);return{result:null}}const o=(m)=>{if(!m)return null;const r=m.value!==null&&typeof m.value==="object"?{...m.value}:m.value;return{...m,value:r}};if(!g)return{result:o(y)};let E=y.timestamp;g(o(y));const _=(m)=>{const r=m[I];if(r){if(z.compare(r.timestamp,E)>0)E=r.timestamp,g(o(r))}else g(null),p.splice(p.indexOf(_),1)};return p.push(_),{result:o(y),unsubscribe:()=>{const m=p.indexOf(_);if(m>-1)p.splice(m,1)}}},async map(...I){let y={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},o=null,E=!1;I.forEach((n)=>typeof n==="function"?o=n:n&&typeof n==="object"&&(E||=("realtime"in n),Object.assign(y,n))),o&&!E&&(y.realtime=!0);let _=r6(P.nodes,y),m=null;const r=(n)=>{const e=n.filter((J0)=>!_.some((H0)=>H0.id===J0.id)),W0=_.filter((J0)=>!n.some((H0)=>H0.id===J0.id)),G0=n.filter((J0)=>{const H0=_.find((pW)=>pW.id===J0.id),g8=[...J0.edges||[]],E8=[...H0?.edges||[]],yW=!!H0&&((J0.timestamp?.physical||0)!==(H0.timestamp?.physical||0)||(J0.timestamp?.logical||0)!==(H0.timestamp?.logical||0));return H0&&(yW||!TW(g8,E8))}),O0=(J0,H0)=>{const g8=H0==="removed"?null:J0.value,E8={id:J0.id,value:g8,edges:J0.edges||[],timestamp:J0.timestamp||null,action:H0};o(E8)};e.forEach((J0)=>O0(J0,"added")),W0.forEach((J0)=>O0(J0,"removed")),G0.forEach((J0)=>O0(J0,"updated"))};if(o){if(_.forEach((n)=>{o({id:n.id,value:n.value,edges:n.edges,timestamp:n.timestamp,action:"initial"})}),y.realtime){const n=(e)=>{const W0=e.timestamp?.physical||0,G0=e.timestamp?.logical||0,O0=(e.edges||[]).join(",");return`${e.id}:${W0}:${G0}:${O0}`};m=(e)=>{const W0=r6(e,y);if(W0.length!==_.length)r(W0),_=W0;else{const G0=W0.map(n),O0=_.map(n);if(!TW(G0,O0))r(W0),_=W0}},p.push(m)}}return{results:_,...y.realtime&&o&&m&&{unsubscribe:()=>{const n=p.indexOf(m);n>-1&&p.splice(n,1)}}}},async clear(){P.nodes={};try{await(await navigator.storage.getDirectory()).removeEntry(`${W}_graph.msgpack`)}catch({message:I}){console.warn(`\u26A0\uFE0F Error deleting _graph.msgpack: ${I}`)}M(),console.info("\u2705 All data has been deleted.")}}),H(),N(),await _V(),await L();const A=[];if(V)A.push(R("sm",V));if(Y)A.push(R("AIQuery",Y));if(X)A.push(R("radixindex",X));if(G)A.push(R("invertedindex",G));if(q)A.push(R("geo",q));await Promise.all(A);const h=`graph-sync-room-${W}`,d={appId:"1234",...J&&{password:J}};if(F)d.relayUrls=F;if(U)d.turnConfig=U;const l=i6(d,h);return u=l.channel("syncGraph"),c=i6(d,`app-sync-${W}`),D.room=c,l.on("peer:join",async(I)=>{console.info("\u26A1 New peer connected:",I),u.send([{type:"sync",timestamp:T}])}),l.on("peer:leave",(I)=>{console.info("\u26A1 Peer disconnected:",I)}),u.on("message",async(I)=>{let g=I;for(let y of S)try{if(g=await y(g),!g||g.length===0)return}catch(o){console.error("\u274C GDB: Middleware error, discarding message.",o);return}await b(g)}),w=new BroadcastChannel(`graphdb_sync_${W}`),w.onmessage=async(I)=>{if(I.data==="update")console.info("\uD83D\uDD04 Update received from another tab..."),await L(),N(),k()},console.info(`\u2705 GenosDB [ ${W} ] instance is ready.`),D}var uV=(W)=>{if(W===null||typeof W!=="object")return W;if(typeof structuredClone==="function")return structuredClone(W);return JSON.parse(JSON.stringify(W))},gW=(W,Q=16)=>{let J=null,V=null;return(...G)=>{if(!V)V={},V.promise=new Promise((Y,q)=>(V.resolve=Y,V.reject=q));if(J)("cancelIdleCallback"in window?cancelIdleCallback:clearTimeout)(J);const X=async()=>{J=null;try{V.resolve(await W(...G))}catch(Y){V.reject(Y)}finally{V=null}};return J=("requestIdleCallback"in window)?requestIdleCallback(X,{timeout:Q}):setTimeout(X,Q),V.promise}},mV=(W)=>{let Q=null;return()=>{if(Q!==null)return;Q=requestAnimationFrame(()=>{Q=null,W()})}};var iG=EW;class dV{constructor(){throw new Error("\u26A0\uFE0F WARNING: `new GDB()` is deprecated and will be removed. "+"Migrate to async factory function `const db = await gdb(...)`.\nMigration Guide: https://github.com/estebanrfp/gdb/wiki/Migration-Guide\nWiki: https://github.com/estebanrfp/gdb/wiki")}}export{iG as gdb,dV as GDB};
|
|
1
|
+
function o6(W){const Q=W.length;let J=0,V=0;while(V<Q){let G=W.charCodeAt(V++);if((G&4294967168)===0){J++;continue}else if((G&4294965248)===0)J+=2;else{if(G>=55296&&G<=56319){if(V<Q){const X=W.charCodeAt(V);if((X&64512)===56320)++V,G=((G&1023)<<10)+(X&1023)+65536}}if((G&4294901760)===0)J+=3;else J+=4}}return J}function fW(W,Q,J){const V=W.length;let G=J,X=0;while(X<V){let Y=W.charCodeAt(X++);if((Y&4294967168)===0){Q[G++]=Y;continue}else if((Y&4294965248)===0)Q[G++]=Y>>6&31|192;else{if(Y>=55296&&Y<=56319){if(X<V){const q=W.charCodeAt(X);if((q&64512)===56320)++X,Y=((Y&1023)<<10)+(q&1023)+65536}}if((Y&4294901760)===0)Q[G++]=Y>>12&15|224,Q[G++]=Y>>6&63|128;else Q[G++]=Y>>18&7|240,Q[G++]=Y>>12&63|128,Q[G++]=Y>>6&63|128}Q[G++]=Y&63|128}}function hW(W,Q,J){pW.encodeInto(W,Q.subarray(J))}function a6(W,Q,J){if(W.length>bW)hW(W,Q,J);else fW(W,Q,J)}function y8(W,Q,J){let V=Q;const G=V+J,X=[];let Y="";while(V<G){const q=W[V++];if((q&128)===0)X.push(q);else if((q&224)===192){const F=W[V++]&63;X.push((q&31)<<6|F)}else if((q&240)===224){const F=W[V++]&63,U=W[V++]&63;X.push((q&31)<<12|F<<6|U)}else if((q&248)===240){const F=W[V++]&63,U=W[V++]&63,K=W[V++]&63;let $=(q&7)<<18|F<<12|U<<6|K;if($>65535)$-=65536,X.push($>>>10&1023|55296),$=56320|$&1023;X.push($)}else X.push(q);if(X.length>=uW)Y+=String.fromCharCode(...X),X.length=0}if(X.length>0)Y+=String.fromCharCode(...X);return Y}function cW(W,Q,J){const V=W.subarray(Q,Q+J);return mW.decode(V)}function s6(W,Q,J){if(J>_W)return cW(W,Q,J);else return y8(W,Q,J)}var pW=new TextEncoder,bW=50,uW=4096,mW=new TextDecoder,_W=200;class J1{constructor(W,Q){this.type=W,this.data=Q}}class Y0 extends Error{constructor(W){super(W);const Q=Object.create(Y0.prototype);Object.setPrototypeOf(this,Q),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Y0.name})}}function e6(W,Q,J){const V=J/4294967296,G=J;W.setUint32(Q,V),W.setUint32(Q+4,G)}function e1(W,Q,J){const V=Math.floor(J/4294967296),G=J;W.setUint32(Q,V),W.setUint32(Q+4,G)}function t1(W,Q){const J=W.getInt32(Q),V=W.getUint32(Q+4);return J*4294967296+V}function t6(W,Q){const J=W.getUint32(Q),V=W.getUint32(Q+4);return J*4294967296+V}var Q1=4294967295;function rW({sec:W,nsec:Q}){if(W>=0&&Q>=0&&W<=iW)if(Q===0&&W<=lW){const J=new Uint8Array(4);return new DataView(J.buffer).setUint32(0,W),J}else{const J=W/4294967296,V=W&4294967295,G=new Uint8Array(8),X=new DataView(G.buffer);return X.setUint32(0,Q<<2|J&3),X.setUint32(4,V),G}else{const J=new Uint8Array(12),V=new DataView(J.buffer);return V.setUint32(0,Q),e1(V,4,W),J}}function nW(W){const Q=W.getTime(),J=Math.floor(Q/1000),V=(Q-J*1000)*1e6,G=Math.floor(V/1e9);return{sec:J+G,nsec:V-G*1e9}}function oW(W){if(W instanceof Date){const Q=nW(W);return rW(Q)}else return null}function aW(W){const Q=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:return{sec:Q.getUint32(0),nsec:0};case 8:{const J=Q.getUint32(0),V=Q.getUint32(4),G=(J&3)*4294967296+V,X=J>>>2;return{sec:G,nsec:X}}case 12:{const J=t1(Q,4),V=Q.getUint32(0);return{sec:J,nsec:V}}default:throw new Y0(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function sW(W){const Q=aW(W);return new Date(Q.sec*1000+Q.nsec/1e6)}var dW=-1,lW=4294967295,iW=17179869183,W5={type:dW,encode:oW,decode:sW};class u0{constructor(){this.builtInEncoders=[],this.builtInDecoders=[],this.encoders=[],this.decoders=[],this.register(W5)}register({type:W,encode:Q,decode:J}){if(W>=0)this.encoders[W]=Q,this.decoders[W]=J;else{const V=-1-W;this.builtInEncoders[V]=Q,this.builtInDecoders[V]=J}}tryToEncode(W,Q){for(let J=0;J<this.builtInEncoders.length;J++){const V=this.builtInEncoders[J];if(V!=null){const G=V(W,Q);if(G!=null){const X=-1-J;return new J1(X,G)}}}for(let J=0;J<this.encoders.length;J++){const V=this.encoders[J];if(V!=null){const G=V(W,Q);if(G!=null)return new J1(J,G)}}if(W instanceof J1)return W;return null}decode(W,Q,J){const V=Q<0?this.builtInDecoders[-1-Q]:this.decoders[Q];if(V)return V(W,Q,J);else return new J1(Q,W)}}u0.defaultCodec=new u0;var eW=function(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer!=="undefined"&&W instanceof SharedArrayBuffer};function L1(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(eW(W))return new Uint8Array(W);else return Uint8Array.from(W)}var tW=100,WJ=2048;class W8{constructor(W){this.entered=!1,this.extensionCodec=W?.extensionCodec??u0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??tW,this.initialBufferSize=W?.initialBufferSize??WJ,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new W8({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,Q){if(Q>this.maxDepth)throw new Error(`Too deep objects in depth ${Q}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,Q)}ensureBufferSizeToWrite(W){const Q=this.pos+W;if(this.view.byteLength<Q)this.resizeBuffer(Q*2)}resizeBuffer(W){const Q=new ArrayBuffer(W),J=new Uint8Array(Q),V=new DataView(Q);J.set(this.bytes),this.view=V,this.bytes=J}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw new Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){const J=o6(W);this.ensureBufferSizeToWrite(5+J),this.writeStringHeader(J),a6(W,this.bytes,this.pos),this.pos+=J}encodeObject(W,Q){const J=this.extensionCodec.tryToEncode(W,this.context);if(J!=null)this.encodeExtension(J);else if(Array.isArray(W))this.encodeArray(W,Q);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,Q);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){const Q=W.byteLength;if(Q<256)this.writeU8(196),this.writeU8(Q);else if(Q<65536)this.writeU8(197),this.writeU16(Q);else if(Q<4294967296)this.writeU8(198),this.writeU32(Q);else throw new Error(`Too large binary: ${Q}`);const J=L1(W);this.writeU8a(J)}encodeArray(W,Q){const J=W.length;if(J<16)this.writeU8(144+J);else if(J<65536)this.writeU8(220),this.writeU16(J);else if(J<4294967296)this.writeU8(221),this.writeU32(J);else throw new Error(`Too large array: ${J}`);for(let V of W)this.doEncode(V,Q+1)}countWithoutUndefined(W,Q){let J=0;for(let V of Q)if(W[V]!==void 0)J++;return J}encodeMap(W,Q){const J=Object.keys(W);if(this.sortKeys)J.sort();const V=this.ignoreUndefined?this.countWithoutUndefined(W,J):J.length;if(V<16)this.writeU8(128+V);else if(V<65536)this.writeU8(222),this.writeU16(V);else if(V<4294967296)this.writeU8(223),this.writeU32(V);else throw new Error(`Too large map object: ${V}`);for(let G of J){const X=W[G];if(!(this.ignoreUndefined&&X===void 0))this.encodeString(G),this.doEncode(X,Q+1)}}encodeExtension(W){if(typeof W.data==="function"){const J=W.data(this.pos+6),V=J.length;if(V>=4294967296)throw new Error(`Too large extension object: ${V}`);this.writeU8(201),this.writeU32(V),this.writeI8(W.type),this.writeU8a(J);return}const Q=W.data.length;if(Q===1)this.writeU8(212);else if(Q===2)this.writeU8(213);else if(Q===4)this.writeU8(214);else if(Q===8)this.writeU8(215);else if(Q===16)this.writeU8(216);else if(Q<256)this.writeU8(199),this.writeU8(Q);else if(Q<65536)this.writeU8(200),this.writeU16(Q);else if(Q<4294967296)this.writeU8(201),this.writeU32(Q);else throw new Error(`Too large extension object: ${Q}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){const Q=W.length;this.ensureBufferSizeToWrite(Q),this.bytes.set(W,this.pos),this.pos+=Q}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),e6(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),e1(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function I1(W,Q){return new W8(Q).encodeSharedRef(W)}function J8(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var JJ=16,QJ=16;class f8{constructor(W=JJ,Q=QJ){this.hit=0,this.miss=0,this.maxKeyLength=W,this.maxLengthPerKey=Q,this.caches=[];for(let J=0;J<this.maxKeyLength;J++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,Q,J){const V=this.caches[J-1];W:for(let G of V){const X=G.bytes;for(let Y=0;Y<J;Y++)if(X[Y]!==W[Q+Y])continue W;return G.str}return null}store(W,Q){const J=this.caches[W.length-1],V={bytes:W,str:Q};if(J.length>=this.maxLengthPerKey)J[Math.random()*J.length|0]=V;else J.push(V)}decode(W,Q,J){const V=this.find(W,Q,J);if(V!=null)return this.hit++,V;this.miss++;const G=y8(W,Q,J),X=Uint8Array.prototype.slice.call(W,Q,Q+J);return this.store(X,G),G}}var p8="array",O1="map_key",Q5="map_value",VJ=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new Y0("The type of key must be string or number but "+typeof W)};class V5{constructor(){this.stack=[],this.stackHeadPosition=-1}get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){const Q=this.getUninitializedStateFromPool();Q.type=p8,Q.position=0,Q.size=W,Q.array=new Array(W)}pushMapState(W){const Q=this.getUninitializedStateFromPool();Q.type=O1,Q.readCount=0,Q.size=W,Q.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===p8){const J=W;J.size=0,J.array=void 0,J.position=0,J.type=void 0}if(W.type===O1||W.type===Q5){const J=W;J.size=0,J.map=void 0,J.readCount=0,J.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var D1=-1,b8=new DataView(new ArrayBuffer(0)),GJ=new Uint8Array(b8.buffer);try{b8.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var J5=new RangeError("Insufficient data"),XJ=new f8;class Q8{constructor(W){this.totalPos=0,this.pos=0,this.view=b8,this.bytes=GJ,this.headByte=D1,this.stack=new V5,this.entered=!1,this.extensionCodec=W?.extensionCodec??u0.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??Q1,this.maxBinLength=W?.maxBinLength??Q1,this.maxArrayLength=W?.maxArrayLength??Q1,this.maxMapLength=W?.maxMapLength??Q1,this.maxExtLength=W?.maxExtLength??Q1,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:XJ,this.mapKeyConverter=W?.mapKeyConverter??VJ}clone(){return new Q8({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=D1,this.stack.reset()}setBuffer(W){const Q=L1(W);this.bytes=Q,this.view=new DataView(Q.buffer,Q.byteOffset,Q.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===D1&&!this.hasRemaining(1))this.setBuffer(W);else{const Q=this.bytes.subarray(this.pos),J=L1(W),V=new Uint8Array(Q.length+J.length);V.set(Q),V.set(J,Q.length),this.setBuffer(V)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){const{view:Q,pos:J}=this;return new RangeError(`Extra ${Q.byteLength-J} of ${Q.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);const Q=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return Q}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let Q=!1,J;for await(let Y of W){if(Q)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Y);try{J=this.doDecodeSync(),Q=!0}catch(q){if(!(q instanceof RangeError))throw q}this.totalPos+=this.pos}if(Q){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return J}const{headByte:V,pos:G,totalPos:X}=this;throw new RangeError(`Insufficient data in parsing ${J8(V)} at ${X} (${G} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,Q){if(this.entered){yield*this.clone().decodeMultiAsync(W,Q);return}try{this.entered=!0;let J=Q,V=-1;for await(let G of W){if(Q&&V===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(G),J)V=this.readArraySize(),J=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--V===0)break}catch(X){if(!(X instanceof RangeError))throw X}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){const W=this.readHeadByte();let Q;if(W>=224)Q=W-256;else if(W<192)if(W<128)Q=W;else if(W<144){const V=W-128;if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W<160){const V=W-144;if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else{const V=W-160;Q=this.decodeString(V,0)}else if(W===192)Q=null;else if(W===194)Q=!1;else if(W===195)Q=!0;else if(W===202)Q=this.readF32();else if(W===203)Q=this.readF64();else if(W===204)Q=this.readU8();else if(W===205)Q=this.readU16();else if(W===206)Q=this.readU32();else if(W===207)if(this.useBigInt64)Q=this.readU64AsBigInt();else Q=this.readU64();else if(W===208)Q=this.readI8();else if(W===209)Q=this.readI16();else if(W===210)Q=this.readI32();else if(W===211)if(this.useBigInt64)Q=this.readI64AsBigInt();else Q=this.readI64();else if(W===217){const V=this.lookU8();Q=this.decodeString(V,1)}else if(W===218){const V=this.lookU16();Q=this.decodeString(V,2)}else if(W===219){const V=this.lookU32();Q=this.decodeString(V,4)}else if(W===220){const V=this.readU16();if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else if(W===221){const V=this.readU32();if(V!==0){this.pushArrayState(V),this.complete();continue W}else Q=[]}else if(W===222){const V=this.readU16();if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W===223){const V=this.readU32();if(V!==0){this.pushMapState(V),this.complete();continue W}else Q={}}else if(W===196){const V=this.lookU8();Q=this.decodeBinary(V,1)}else if(W===197){const V=this.lookU16();Q=this.decodeBinary(V,2)}else if(W===198){const V=this.lookU32();Q=this.decodeBinary(V,4)}else if(W===212)Q=this.decodeExtension(1,0);else if(W===213)Q=this.decodeExtension(2,0);else if(W===214)Q=this.decodeExtension(4,0);else if(W===215)Q=this.decodeExtension(8,0);else if(W===216)Q=this.decodeExtension(16,0);else if(W===199){const V=this.lookU8();Q=this.decodeExtension(V,1)}else if(W===200){const V=this.lookU16();Q=this.decodeExtension(V,2)}else if(W===201){const V=this.lookU32();Q=this.decodeExtension(V,4)}else throw new Y0(`Unrecognized type byte: ${J8(W)}`);this.complete();const J=this.stack;while(J.length>0){const V=J.top();if(V.type===p8)if(V.array[V.position]=Q,V.position++,V.position===V.size)Q=V.array,J.release(V);else continue W;else if(V.type===O1){if(Q==="__proto__")throw new Y0("The key __proto__ is not allowed");V.key=this.mapKeyConverter(Q),V.type=Q5;continue W}else if(V.map[V.key]=Q,V.readCount++,V.readCount===V.size)Q=V.map,J.release(V);else{V.key=null,V.type=O1;continue W}}return Q}}readHeadByte(){if(this.headByte===D1)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=D1}readArraySize(){const W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new Y0(`Unrecognized array type byte: ${J8(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new Y0(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new Y0(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,Q){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,Q);return this.decodeBinary(W,Q)}decodeUtf8String(W,Q){if(W>this.maxStrLength)throw new Y0(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+Q+W)throw J5;const J=this.pos+Q;let V;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))V=this.keyDecoder.decode(this.bytes,J,W);else V=s6(this.bytes,J,W);return this.pos+=Q+W,V}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===O1;return!1}decodeBinary(W,Q){if(W>this.maxBinLength)throw new Y0(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+Q))throw J5;const J=this.pos+Q,V=this.bytes.subarray(J,J+W);return this.pos+=Q+W,V}decodeExtension(W,Q){if(W>this.maxExtLength)throw new Y0(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);const J=this.view.getInt8(this.pos+Q),V=this.decodeBinary(W,Q+1);return this.extensionCodec.decode(V,J,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){const W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){const W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){const W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){const W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){const W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){const W=t6(this.view,this.pos);return this.pos+=8,W}readI64(){const W=t1(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){const W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){const W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){const W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){const W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function V8(W,Q){return new Q8(Q).decode(W)}var U1=function(W){let Q=W.length;while(--Q>=0)W[Q]=0},u8=function(W,Q,J,V,G){this.static_tree=W,this.extra_bits=Q,this.extra_base=J,this.elems=V,this.max_length=G,this.has_stree=W&&W.length},m8=function(W,Q){this.dyn_tree=W,this.max_code=0,this.stat_desc=Q},j0=function(W,Q,J,V,G){this.good_length=W,this.max_lazy=Q,this.nice_length=J,this.max_chain=V,this.func=G},q9=function(){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=Z8,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(eJ*2),this.dyn_dtree=new Uint16Array((2*aJ+1)*2),this.bl_tree=new Uint16Array((2*sJ+1)*2),g0(this.dyn_ltree),g0(this.dyn_dtree),g0(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(tJ+1),this.heap=new Uint16Array(2*Q6+1),g0(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Q6+1),g0(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},S9=function(){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},_1=function(W){this.options=H8.assign({level:y9,method:p9,chunkSize:16384,windowBits:15,memLevel:8,strategy:f9},W||{});let Q=this.options;if(Q.raw&&Q.windowBits>0)Q.windowBits=-Q.windowBits;else if(Q.gzip&&Q.windowBits>0&&Q.windowBits<16)Q.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new P7,this.strm.avail_out=0;let J=v1.deflateInit2(this.strm,Q.level,Q.method,Q.windowBits,Q.memLevel,Q.strategy);if(J!==F8)throw new Error(d0[J]);if(Q.header)v1.deflateSetHeader(this.strm,Q.header);if(Q.dictionary){let V;if(typeof Q.dictionary==="string")V=b1.string2buf(Q.dictionary);else if(K7.call(Q.dictionary)==="[object ArrayBuffer]")V=new Uint8Array(Q.dictionary);else V=Q.dictionary;if(J=v1.deflateSetDictionary(this.strm,V),J!==F8)throw new Error(d0[J]);this._dict_set=!0}},Z6=function(W,Q){const J=new _1(Q);if(J.push(W,!0),J.err)throw J.msg||d0[J.err];return J.result},b9=function(W,Q){return Q=Q||{},Q.raw=!0,Z6(W,Q)},h9=function(W,Q){return Q=Q||{},Q.gzip=!0,Z6(W,Q)},UQ=function(){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},OQ=function(){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},c1=function(W){this.options=H8.assign({chunkSize:65536,windowBits:15,to:""},W||{});const Q=this.options;if(Q.raw&&Q.windowBits>=0&&Q.windowBits<16){if(Q.windowBits=-Q.windowBits,Q.windowBits===0)Q.windowBits=-15}if(Q.windowBits>=0&&Q.windowBits<16&&!(W&&W.windowBits))Q.windowBits+=32;if(Q.windowBits>15&&Q.windowBits<48){if((Q.windowBits&15)===0)Q.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new P7,this.strm.avail_out=0;let J=x0.inflateInit2(this.strm,Q.windowBits);if(J!==h1)throw new Error(d0[J]);if(this.header=new xQ,x0.inflateGetHeader(this.strm,this.header),Q.dictionary){if(typeof Q.dictionary==="string")Q.dictionary=b1.string2buf(Q.dictionary);else if(L7.call(Q.dictionary)==="[object ArrayBuffer]")Q.dictionary=new Uint8Array(Q.dictionary);if(Q.raw){if(J=x0.inflateSetDictionary(this.strm,Q.dictionary),J!==h1)throw new Error(d0[J])}}},H6=function(W,Q){const J=new c1(Q);if(J.push(W),J.err)throw J.msg||d0[J.err];return J.result},AQ=function(W,Q){return Q=Q||{},Q.raw=!0,H6(W,Q)};/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */var YJ=0,_5=1,qJ=2,UJ=3,PJ=258,U6=29,u1=256,T1=u1+1+U6,X1=30,P6=19,c5=2*T1+1,m0=15,h8=16,KJ=7,K6=256,d5=16,l5=17,i5=18,t8=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]),P8=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]),FJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),r5=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),zJ=512,O0=new Array((T1+2)*2);U1(O0);var S1=new Array(X1*2);U1(S1);var g1=new Array(zJ);U1(g1);var E1=new Array(PJ-UJ+1);U1(E1);var F6=new Array(U6);U1(F6);var K8=new Array(X1);U1(K8);var n5,o5,a5,s5=(W)=>{return W<256?g1[W]:g1[256+(W>>>7)]},y1=(W,Q)=>{W.pending_buf[W.pending++]=Q&255,W.pending_buf[W.pending++]=Q>>>8&255},P0=(W,Q,J)=>{if(W.bi_valid>h8-J)W.bi_buf|=Q<<W.bi_valid&65535,y1(W,W.bi_buf),W.bi_buf=Q>>h8-W.bi_valid,W.bi_valid+=J-h8;else W.bi_buf|=Q<<W.bi_valid&65535,W.bi_valid+=J},B0=(W,Q,J)=>{P0(W,J[Q*2],J[Q*2+1])},e5=(W,Q)=>{let J=0;do J|=W&1,W>>>=1,J<<=1;while(--Q>0);return J>>>1},ZJ=(W)=>{if(W.bi_valid===16)y1(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},HJ=(W,Q)=>{const{dyn_tree:J,max_code:V}=Q,G=Q.stat_desc.static_tree,X=Q.stat_desc.has_stree,Y=Q.stat_desc.extra_bits,q=Q.stat_desc.extra_base,F=Q.stat_desc.max_length;let U,K,$,P,z,C,S=0;for(P=0;P<=m0;P++)W.bl_count[P]=0;J[W.heap[W.heap_max]*2+1]=0;for(U=W.heap_max+1;U<c5;U++){if(K=W.heap[U],P=J[J[K*2+1]*2+1]+1,P>F)P=F,S++;if(J[K*2+1]=P,K>V)continue;if(W.bl_count[P]++,z=0,K>=q)z=Y[K-q];if(C=J[K*2],W.opt_len+=C*(P+z),X)W.static_len+=C*(G[K*2+1]+z)}if(S===0)return;do{P=F-1;while(W.bl_count[P]===0)P--;W.bl_count[P]--,W.bl_count[P+1]+=2,W.bl_count[F]--,S-=2}while(S>0);for(P=F;P!==0;P--){K=W.bl_count[P];while(K!==0){if($=W.heap[--U],$>V)continue;if(J[$*2+1]!==P)W.opt_len+=(P-J[$*2+1])*J[$*2],J[$*2+1]=P;K--}}},t5=(W,Q,J)=>{const V=new Array(m0+1);let G=0,X,Y;for(X=1;X<=m0;X++)G=G+J[X-1]<<1,V[X]=G;for(Y=0;Y<=Q;Y++){let q=W[Y*2+1];if(q===0)continue;W[Y*2]=e5(V[q]++,q)}},kJ=()=>{let W,Q,J,V,G;const X=new Array(m0+1);J=0;for(V=0;V<U6-1;V++){F6[V]=J;for(W=0;W<1<<t8[V];W++)E1[J++]=V}E1[J-1]=V,G=0;for(V=0;V<16;V++){K8[V]=G;for(W=0;W<1<<P8[V];W++)g1[G++]=V}G>>=7;for(;V<X1;V++){K8[V]=G<<7;for(W=0;W<1<<P8[V]-7;W++)g1[256+G++]=V}for(Q=0;Q<=m0;Q++)X[Q]=0;W=0;while(W<=143)O0[W*2+1]=8,W++,X[8]++;while(W<=255)O0[W*2+1]=9,W++,X[9]++;while(W<=279)O0[W*2+1]=7,W++,X[7]++;while(W<=287)O0[W*2+1]=8,W++,X[8]++;t5(O0,T1+1,X);for(W=0;W<X1;W++)S1[W*2+1]=5,S1[W*2]=e5(W,5);n5=new u8(O0,t8,u1+1,T1,m0),o5=new u8(S1,P8,0,X1,m0),a5=new u8(new Array(0),FJ,0,P6,KJ)},W7=(W)=>{let Q;for(Q=0;Q<T1;Q++)W.dyn_ltree[Q*2]=0;for(Q=0;Q<X1;Q++)W.dyn_dtree[Q*2]=0;for(Q=0;Q<P6;Q++)W.bl_tree[Q*2]=0;W.dyn_ltree[K6*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},J7=(W)=>{if(W.bi_valid>8)y1(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},G5=(W,Q,J,V)=>{const G=Q*2,X=J*2;return W[G]<W[X]||W[G]===W[X]&&V[Q]<=V[J]},_8=(W,Q,J)=>{const V=W.heap[J];let G=J<<1;while(G<=W.heap_len){if(G<W.heap_len&&G5(Q,W.heap[G+1],W.heap[G],W.depth))G++;if(G5(Q,V,W.heap[G],W.depth))break;W.heap[J]=W.heap[G],J=G,G<<=1}W.heap[J]=V},X5=(W,Q,J)=>{let V,G,X=0,Y,q;if(W.sym_next!==0)do if(V=W.pending_buf[W.sym_buf+X++]&255,V+=(W.pending_buf[W.sym_buf+X++]&255)<<8,G=W.pending_buf[W.sym_buf+X++],V===0)B0(W,G,Q);else{if(Y=E1[G],B0(W,Y+u1+1,Q),q=t8[Y],q!==0)G-=F6[Y],P0(W,G,q);if(V--,Y=s5(V),B0(W,Y,J),q=P8[Y],q!==0)V-=K8[Y],P0(W,V,q)}while(X<W.sym_next);B0(W,K6,Q)},W6=(W,Q)=>{const J=Q.dyn_tree,V=Q.stat_desc.static_tree,G=Q.stat_desc.has_stree,X=Q.stat_desc.elems;let Y,q,F=-1,U;W.heap_len=0,W.heap_max=c5;for(Y=0;Y<X;Y++)if(J[Y*2]!==0)W.heap[++W.heap_len]=F=Y,W.depth[Y]=0;else J[Y*2+1]=0;while(W.heap_len<2)if(U=W.heap[++W.heap_len]=F<2?++F:0,J[U*2]=1,W.depth[U]=0,W.opt_len--,G)W.static_len-=V[U*2+1];Q.max_code=F;for(Y=W.heap_len>>1;Y>=1;Y--)_8(W,J,Y);U=X;do Y=W.heap[1],W.heap[1]=W.heap[W.heap_len--],_8(W,J,1),q=W.heap[1],W.heap[--W.heap_max]=Y,W.heap[--W.heap_max]=q,J[U*2]=J[Y*2]+J[q*2],W.depth[U]=(W.depth[Y]>=W.depth[q]?W.depth[Y]:W.depth[q])+1,J[Y*2+1]=J[q*2+1]=U,W.heap[1]=U++,_8(W,J,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],HJ(W,Q),t5(J,F,W.bl_count)},Y5=(W,Q,J)=>{let V,G=-1,X,Y=Q[1],q=0,F=7,U=4;if(Y===0)F=138,U=3;Q[(J+1)*2+1]=65535;for(V=0;V<=J;V++){if(X=Y,Y=Q[(V+1)*2+1],++q<F&&X===Y)continue;else if(q<U)W.bl_tree[X*2]+=q;else if(X!==0){if(X!==G)W.bl_tree[X*2]++;W.bl_tree[d5*2]++}else if(q<=10)W.bl_tree[l5*2]++;else W.bl_tree[i5*2]++;if(q=0,G=X,Y===0)F=138,U=3;else if(X===Y)F=6,U=3;else F=7,U=4}},q5=(W,Q,J)=>{let V,G=-1,X,Y=Q[1],q=0,F=7,U=4;if(Y===0)F=138,U=3;for(V=0;V<=J;V++){if(X=Y,Y=Q[(V+1)*2+1],++q<F&&X===Y)continue;else if(q<U)do B0(W,X,W.bl_tree);while(--q!==0);else if(X!==0){if(X!==G)B0(W,X,W.bl_tree),q--;B0(W,d5,W.bl_tree),P0(W,q-3,2)}else if(q<=10)B0(W,l5,W.bl_tree),P0(W,q-3,3);else B0(W,i5,W.bl_tree),P0(W,q-11,7);if(q=0,G=X,Y===0)F=138,U=3;else if(X===Y)F=6,U=3;else F=7,U=4}},$J=(W)=>{let Q;Y5(W,W.dyn_ltree,W.l_desc.max_code),Y5(W,W.dyn_dtree,W.d_desc.max_code),W6(W,W.bl_desc);for(Q=P6-1;Q>=3;Q--)if(W.bl_tree[r5[Q]*2+1]!==0)break;return W.opt_len+=3*(Q+1)+5+5+4,Q},CJ=(W,Q,J,V)=>{let G;P0(W,Q-257,5),P0(W,J-1,5),P0(W,V-4,4);for(G=0;G<V;G++)P0(W,W.bl_tree[r5[G]*2+1],3);q5(W,W.dyn_ltree,Q-1),q5(W,W.dyn_dtree,J-1)},jJ=(W)=>{let Q=4093624447,J;for(J=0;J<=31;J++,Q>>>=1)if(Q&1&&W.dyn_ltree[J*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(J=32;J<u1;J++)if(W.dyn_ltree[J*2]!==0)return 1;return 0},U5=!1,BJ=(W)=>{if(!U5)kJ(),U5=!0;W.l_desc=new m8(W.dyn_ltree,n5),W.d_desc=new m8(W.dyn_dtree,o5),W.bl_desc=new m8(W.bl_tree,a5),W.bi_buf=0,W.bi_valid=0,W7(W)},Q7=(W,Q,J,V)=>{if(P0(W,(YJ<<1)+(V?1:0),3),J7(W),y1(W,J),y1(W,~J),J)W.pending_buf.set(W.window.subarray(Q,Q+J),W.pending);W.pending+=J},RJ=(W)=>{P0(W,_5<<1,3),B0(W,K6,O0),ZJ(W)},MJ=(W,Q,J,V)=>{let G,X,Y=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=jJ(W);if(W6(W,W.l_desc),W6(W,W.d_desc),Y=$J(W),G=W.opt_len+3+7>>>3,X=W.static_len+3+7>>>3,X<=G)G=X}else G=X=J+5;if(J+4<=G&&Q!==-1)Q7(W,Q,J,V);else if(W.strategy===4||X===G)P0(W,(_5<<1)+(V?1:0),3),X5(W,O0,S1);else P0(W,(qJ<<1)+(V?1:0),3),CJ(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Y+1),X5(W,W.dyn_ltree,W.dyn_dtree);if(W7(W),V)J7(W)},LJ=(W,Q,J)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=Q,W.pending_buf[W.sym_buf+W.sym_next++]=Q>>8,W.pending_buf[W.sym_buf+W.sym_next++]=J,Q===0)W.dyn_ltree[J*2]++;else W.matches++,Q--,W.dyn_ltree[(E1[J]+u1+1)*2]++,W.dyn_dtree[s5(Q)*2]++;return W.sym_next===W.sym_end},IJ=BJ,DJ=Q7,OJ=MJ,xJ=LJ,wJ=RJ,NJ={_tr_init:IJ,_tr_stored_block:DJ,_tr_flush_block:OJ,_tr_tally:xJ,_tr_align:wJ},SJ=(W,Q,J,V)=>{let G=W&65535|0,X=W>>>16&65535|0,Y=0;while(J!==0){Y=J>2000?2000:J,J-=Y;do G=G+Q[V++]|0,X=X+G|0;while(--Y);G%=65521,X%=65521}return G|X<<16|0},f1=SJ,vJ=()=>{let W,Q=[];for(var J=0;J<256;J++){W=J;for(var V=0;V<8;V++)W=W&1?3988292384^W>>>1:W>>>1;Q[J]=W}return Q},AJ=new Uint32Array(vJ()),TJ=(W,Q,J,V)=>{const G=AJ,X=V+J;W^=-1;for(let Y=V;Y<X;Y++)W=W>>>8^G[(W^Q[Y])&255];return W^-1},G0=TJ,d0={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"},r0={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:gJ,_tr_stored_block:J6,_tr_flush_block:EJ,_tr_tally:y0,_tr_align:yJ}=NJ,{Z_NO_FLUSH:f0,Z_PARTIAL_FLUSH:fJ,Z_FULL_FLUSH:pJ,Z_FINISH:H0,Z_BLOCK:P5,Z_OK:X0,Z_STREAM_END:K5,Z_STREAM_ERROR:R0,Z_DATA_ERROR:bJ,Z_BUF_ERROR:c8,Z_DEFAULT_COMPRESSION:hJ,Z_FILTERED:uJ,Z_HUFFMAN_ONLY:G8,Z_RLE:mJ,Z_FIXED:_J,Z_DEFAULT_STRATEGY:cJ,Z_UNKNOWN:dJ,Z_DEFLATED:Z8}=r0,lJ=9,iJ=15,rJ=8,nJ=29,oJ=256,Q6=oJ+1+nJ,aJ=30,sJ=19,eJ=2*Q6+1,tJ=15,a=3,E0=258,M0=E0+a+1,W9=32,Y1=42,z6=57,V6=69,G6=73,X6=91,Y6=103,_0=113,w1=666,q0=1,P1=2,l0=3,K1=4,J9=3,c0=(W,Q)=>{return W.msg=d0[Q],Q},F5=(W)=>{return W*2-(W>4?9:0)},g0=(W)=>{let Q=W.length;while(--Q>=0)W[Q]=0},Q9=(W)=>{let Q,J,V,G=W.w_size;Q=W.hash_size,V=Q;do J=W.head[--V],W.head[V]=J>=G?J-G:0;while(--Q);Q=G,V=Q;do J=W.prev[--V],W.prev[V]=J>=G?J-G:0;while(--Q)},V9=(W,Q,J)=>(Q<<W.hash_shift^J)&W.hash_mask,p0=V9,F0=(W)=>{const Q=W.state;let J=Q.pending;if(J>W.avail_out)J=W.avail_out;if(J===0)return;if(W.output.set(Q.pending_buf.subarray(Q.pending_out,Q.pending_out+J),W.next_out),W.next_out+=J,Q.pending_out+=J,W.total_out+=J,W.avail_out-=J,Q.pending-=J,Q.pending===0)Q.pending_out=0},z0=(W,Q)=>{EJ(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,Q),W.block_start=W.strstart,F0(W.strm)},s=(W,Q)=>{W.pending_buf[W.pending++]=Q},x1=(W,Q)=>{W.pending_buf[W.pending++]=Q>>>8&255,W.pending_buf[W.pending++]=Q&255},q6=(W,Q,J,V)=>{let G=W.avail_in;if(G>V)G=V;if(G===0)return 0;if(W.avail_in-=G,Q.set(W.input.subarray(W.next_in,W.next_in+G),J),W.state.wrap===1)W.adler=f1(W.adler,Q,G,J);else if(W.state.wrap===2)W.adler=G0(W.adler,Q,G,J);return W.next_in+=G,W.total_in+=G,G},V7=(W,Q)=>{let{max_chain_length:J,strstart:V}=W,G,X,Y=W.prev_length,q=W.nice_match;const F=W.strstart>W.w_size-M0?W.strstart-(W.w_size-M0):0,U=W.window,K=W.w_mask,$=W.prev,P=W.strstart+E0;let z=U[V+Y-1],C=U[V+Y];if(W.prev_length>=W.good_match)J>>=2;if(q>W.lookahead)q=W.lookahead;do{if(G=Q,U[G+Y]!==C||U[G+Y-1]!==z||U[G]!==U[V]||U[++G]!==U[V+1])continue;V+=2,G++;do;while(U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&U[++V]===U[++G]&&V<P);if(X=E0-(P-V),V=P-E0,X>Y){if(W.match_start=Q,Y=X,X>=q)break;z=U[V+Y-1],C=U[V+Y]}}while((Q=$[Q&K])>F&&--J!==0);if(Y<=W.lookahead)return Y;return W.lookahead},q1=(W)=>{const Q=W.w_size;let J,V,G;do{if(V=W.window_size-W.lookahead-W.strstart,W.strstart>=Q+(Q-M0)){if(W.window.set(W.window.subarray(Q,Q+Q-V),0),W.match_start-=Q,W.strstart-=Q,W.block_start-=Q,W.insert>W.strstart)W.insert=W.strstart;Q9(W),V+=Q}if(W.strm.avail_in===0)break;if(J=q6(W.strm,W.window,W.strstart+W.lookahead,V),W.lookahead+=J,W.lookahead+W.insert>=a){G=W.strstart-W.insert,W.ins_h=W.window[G],W.ins_h=p0(W,W.ins_h,W.window[G+1]);while(W.insert)if(W.ins_h=p0(W,W.ins_h,W.window[G+a-1]),W.prev[G&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=G,G++,W.insert--,W.lookahead+W.insert<a)break}}while(W.lookahead<M0&&W.strm.avail_in!==0)},G7=(W,Q)=>{let J=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,V,G,X,Y=0,q=W.strm.avail_in;do{if(V=65535,X=W.bi_valid+42>>3,W.strm.avail_out<X)break;if(X=W.strm.avail_out-X,G=W.strstart-W.block_start,V>G+W.strm.avail_in)V=G+W.strm.avail_in;if(V>X)V=X;if(V<J&&(V===0&&Q!==H0||Q===f0||V!==G+W.strm.avail_in))break;if(Y=Q===H0&&V===G+W.strm.avail_in?1:0,J6(W,0,0,Y),W.pending_buf[W.pending-4]=V,W.pending_buf[W.pending-3]=V>>8,W.pending_buf[W.pending-2]=~V,W.pending_buf[W.pending-1]=~V>>8,F0(W.strm),G){if(G>V)G=V;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+G),W.strm.next_out),W.strm.next_out+=G,W.strm.avail_out-=G,W.strm.total_out+=G,W.block_start+=G,V-=G}if(V)q6(W.strm,W.strm.output,W.strm.next_out,V),W.strm.next_out+=V,W.strm.avail_out-=V,W.strm.total_out+=V}while(Y===0);if(q-=W.strm.avail_in,q){if(q>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=q){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-q,W.strm.next_in),W.strstart),W.strstart+=q,W.insert+=q>W.w_size-W.insert?W.w_size-W.insert:q}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Y)return K1;if(Q!==f0&&Q!==H0&&W.strm.avail_in===0&&W.strstart===W.block_start)return P1;if(X=W.window_size-W.strstart,W.strm.avail_in>X&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(X+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(X>W.strm.avail_in)X=W.strm.avail_in;if(X)q6(W.strm,W.window,W.strstart,X),W.strstart+=X,W.insert+=X>W.w_size-W.insert?W.w_size-W.insert:X;if(W.high_water<W.strstart)W.high_water=W.strstart;if(X=W.bi_valid+42>>3,X=W.pending_buf_size-X>65535?65535:W.pending_buf_size-X,J=X>W.w_size?W.w_size:X,G=W.strstart-W.block_start,G>=J||(G||Q===H0)&&Q!==f0&&W.strm.avail_in===0&&G<=X)V=G>X?X:G,Y=Q===H0&&W.strm.avail_in===0&&V===G?1:0,J6(W,W.block_start,V,Y),W.block_start+=V,F0(W.strm);return Y?l0:q0},d8=(W,Q)=>{let J,V;for(;;){if(W.lookahead<M0){if(q1(W),W.lookahead<M0&&Q===f0)return q0;if(W.lookahead===0)break}if(J=0,W.lookahead>=a)W.ins_h=p0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(J!==0&&W.strstart-J<=W.w_size-M0)W.match_length=V7(W,J);if(W.match_length>=a)if(V=y0(W,W.strstart-W.match_start,W.match_length-a),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=a){W.match_length--;do W.strstart++,W.ins_h=p0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=p0(W,W.ins_h,W.window[W.strstart+1]);else V=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(V){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=W.strstart<a-1?W.strstart:a-1,Q===H0){if(z0(W,!0),W.strm.avail_out===0)return l0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},V1=(W,Q)=>{let J,V,G;for(;;){if(W.lookahead<M0){if(q1(W),W.lookahead<M0&&Q===f0)return q0;if(W.lookahead===0)break}if(J=0,W.lookahead>=a)W.ins_h=p0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=a-1,J!==0&&W.prev_length<W.max_lazy_match&&W.strstart-J<=W.w_size-M0){if(W.match_length=V7(W,J),W.match_length<=5&&(W.strategy===uJ||W.match_length===a&&W.strstart-W.match_start>4096))W.match_length=a-1}if(W.prev_length>=a&&W.match_length<=W.prev_length){G=W.strstart+W.lookahead-a,V=y0(W,W.strstart-1-W.prev_match,W.prev_length-a),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=G)W.ins_h=p0(W,W.ins_h,W.window[W.strstart+a-1]),J=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=a-1,W.strstart++,V){if(z0(W,!1),W.strm.avail_out===0)return q0}}else if(W.match_available){if(V=y0(W,0,W.window[W.strstart-1]),V)z0(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return q0}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)V=y0(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<a-1?W.strstart:a-1,Q===H0){if(z0(W,!0),W.strm.avail_out===0)return l0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},G9=(W,Q)=>{let J,V,G,X;const Y=W.window;for(;;){if(W.lookahead<=E0){if(q1(W),W.lookahead<=E0&&Q===f0)return q0;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=a&&W.strstart>0){if(G=W.strstart-1,V=Y[G],V===Y[++G]&&V===Y[++G]&&V===Y[++G]){X=W.strstart+E0;do;while(V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&V===Y[++G]&&G<X);if(W.match_length=E0-(X-G),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=a)J=y0(W,1,W.match_length-a),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else J=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(J){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=0,Q===H0){if(z0(W,!0),W.strm.avail_out===0)return l0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},X9=(W,Q)=>{let J;for(;;){if(W.lookahead===0){if(q1(W),W.lookahead===0){if(Q===f0)return q0;break}}if(W.match_length=0,J=y0(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,J){if(z0(W,!1),W.strm.avail_out===0)return q0}}if(W.insert=0,Q===H0){if(z0(W,!0),W.strm.avail_out===0)return l0;return K1}if(W.sym_next){if(z0(W,!1),W.strm.avail_out===0)return q0}return P1},N1=[new j0(0,0,0,0,G7),new j0(4,4,8,4,d8),new j0(4,5,16,8,d8),new j0(4,6,32,32,d8),new j0(4,4,16,16,V1),new j0(8,16,32,32,V1),new j0(8,16,128,128,V1),new j0(8,32,128,256,V1),new j0(32,128,258,1024,V1),new j0(32,258,258,4096,V1)],Y9=(W)=>{W.window_size=2*W.w_size,g0(W.head),W.max_lazy_match=N1[W.level].max_lazy,W.good_match=N1[W.level].good_length,W.nice_match=N1[W.level].nice_length,W.max_chain_length=N1[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=a-1,W.match_available=0,W.ins_h=0},m1=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.status!==Y1&&Q.status!==z6&&Q.status!==V6&&Q.status!==G6&&Q.status!==X6&&Q.status!==Y6&&Q.status!==_0&&Q.status!==w1)return 1;return 0},X7=(W)=>{if(m1(W))return c0(W,R0);W.total_in=W.total_out=0,W.data_type=dJ;const Q=W.state;if(Q.pending=0,Q.pending_out=0,Q.wrap<0)Q.wrap=-Q.wrap;return Q.status=Q.wrap===2?z6:Q.wrap?Y1:_0,W.adler=Q.wrap===2?0:1,Q.last_flush=-2,gJ(Q),X0},Y7=(W)=>{const Q=X7(W);if(Q===X0)Y9(W.state);return Q},U9=(W,Q)=>{if(m1(W)||W.state.wrap!==2)return R0;return W.state.gzhead=Q,X0},q7=(W,Q,J,V,G,X)=>{if(!W)return R0;let Y=1;if(Q===hJ)Q=6;if(V<0)Y=0,V=-V;else if(V>15)Y=2,V-=16;if(G<1||G>lJ||J!==Z8||V<8||V>15||Q<0||Q>9||X<0||X>_J||V===8&&Y!==1)return c0(W,R0);if(V===8)V=9;const q=new q9;return W.state=q,q.strm=W,q.status=Y1,q.wrap=Y,q.gzhead=null,q.w_bits=V,q.w_size=1<<q.w_bits,q.w_mask=q.w_size-1,q.hash_bits=G+7,q.hash_size=1<<q.hash_bits,q.hash_mask=q.hash_size-1,q.hash_shift=~~((q.hash_bits+a-1)/a),q.window=new Uint8Array(q.w_size*2),q.head=new Uint16Array(q.hash_size),q.prev=new Uint16Array(q.w_size),q.lit_bufsize=1<<G+6,q.pending_buf_size=q.lit_bufsize*4,q.pending_buf=new Uint8Array(q.pending_buf_size),q.sym_buf=q.lit_bufsize,q.sym_end=(q.lit_bufsize-1)*3,q.level=Q,q.strategy=X,q.method=J,Y7(W)},P9=(W,Q)=>{return q7(W,Q,Z8,iJ,rJ,cJ)},K9=(W,Q)=>{if(m1(W)||Q>P5||Q<0)return W?c0(W,R0):R0;const J=W.state;if(!W.output||W.avail_in!==0&&!W.input||J.status===w1&&Q!==H0)return c0(W,W.avail_out===0?c8:R0);const V=J.last_flush;if(J.last_flush=Q,J.pending!==0){if(F0(W),W.avail_out===0)return J.last_flush=-1,X0}else if(W.avail_in===0&&F5(Q)<=F5(V)&&Q!==H0)return c0(W,c8);if(J.status===w1&&W.avail_in!==0)return c0(W,c8);if(J.status===Y1&&J.wrap===0)J.status=_0;if(J.status===Y1){let G=Z8+(J.w_bits-8<<4)<<8,X=-1;if(J.strategy>=G8||J.level<2)X=0;else if(J.level<6)X=1;else if(J.level===6)X=2;else X=3;if(G|=X<<6,J.strstart!==0)G|=W9;if(G+=31-G%31,x1(J,G),J.strstart!==0)x1(J,W.adler>>>16),x1(J,W.adler&65535);if(W.adler=1,J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}if(J.status===z6)if(W.adler=0,s(J,31),s(J,139),s(J,8),!J.gzhead){if(s(J,0),s(J,0),s(J,0),s(J,0),s(J,0),s(J,J.level===9?2:J.strategy>=G8||J.level<2?4:0),s(J,J9),J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}else{if(s(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(!J.gzhead.extra?0:4)+(!J.gzhead.name?0:8)+(!J.gzhead.comment?0:16)),s(J,J.gzhead.time&255),s(J,J.gzhead.time>>8&255),s(J,J.gzhead.time>>16&255),s(J,J.gzhead.time>>24&255),s(J,J.level===9?2:J.strategy>=G8||J.level<2?4:0),s(J,J.gzhead.os&255),J.gzhead.extra&&J.gzhead.extra.length)s(J,J.gzhead.extra.length&255),s(J,J.gzhead.extra.length>>8&255);if(J.gzhead.hcrc)W.adler=G0(W.adler,J.pending_buf,J.pending,0);J.gzindex=0,J.status=V6}if(J.status===V6){if(J.gzhead.extra){let G=J.pending,X=(J.gzhead.extra.length&65535)-J.gzindex;while(J.pending+X>J.pending_buf_size){let q=J.pending_buf_size-J.pending;if(J.pending_buf.set(J.gzhead.extra.subarray(J.gzindex,J.gzindex+q),J.pending),J.pending=J.pending_buf_size,J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G);if(J.gzindex+=q,F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0,X-=q}let Y=new Uint8Array(J.gzhead.extra);if(J.pending_buf.set(Y.subarray(J.gzindex,J.gzindex+X),J.pending),J.pending+=X,J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=G6}if(J.status===G6){if(J.gzhead.name){let G=J.pending,X;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G);if(F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0}if(J.gzindex<J.gzhead.name.length)X=J.gzhead.name.charCodeAt(J.gzindex++)&255;else X=0;s(J,X)}while(X!==0);if(J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G);J.gzindex=0}J.status=X6}if(J.status===X6){if(J.gzhead.comment){let G=J.pending,X;do{if(J.pending===J.pending_buf_size){if(J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G);if(F0(W),J.pending!==0)return J.last_flush=-1,X0;G=0}if(J.gzindex<J.gzhead.comment.length)X=J.gzhead.comment.charCodeAt(J.gzindex++)&255;else X=0;s(J,X)}while(X!==0);if(J.gzhead.hcrc&&J.pending>G)W.adler=G0(W.adler,J.pending_buf,J.pending-G,G)}J.status=Y6}if(J.status===Y6){if(J.gzhead.hcrc){if(J.pending+2>J.pending_buf_size){if(F0(W),J.pending!==0)return J.last_flush=-1,X0}s(J,W.adler&255),s(J,W.adler>>8&255),W.adler=0}if(J.status=_0,F0(W),J.pending!==0)return J.last_flush=-1,X0}if(W.avail_in!==0||J.lookahead!==0||Q!==f0&&J.status!==w1){let G=J.level===0?G7(J,Q):J.strategy===G8?X9(J,Q):J.strategy===mJ?G9(J,Q):N1[J.level].func(J,Q);if(G===l0||G===K1)J.status=w1;if(G===q0||G===l0){if(W.avail_out===0)J.last_flush=-1;return X0}if(G===P1){if(Q===fJ)yJ(J);else if(Q!==P5){if(J6(J,0,0,!1),Q===pJ){if(g0(J.head),J.lookahead===0)J.strstart=0,J.block_start=0,J.insert=0}}if(F0(W),W.avail_out===0)return J.last_flush=-1,X0}}if(Q!==H0)return X0;if(J.wrap<=0)return K5;if(J.wrap===2)s(J,W.adler&255),s(J,W.adler>>8&255),s(J,W.adler>>16&255),s(J,W.adler>>24&255),s(J,W.total_in&255),s(J,W.total_in>>8&255),s(J,W.total_in>>16&255),s(J,W.total_in>>24&255);else x1(J,W.adler>>>16),x1(J,W.adler&65535);if(F0(W),J.wrap>0)J.wrap=-J.wrap;return J.pending!==0?X0:K5},F9=(W)=>{if(m1(W))return R0;const Q=W.state.status;return W.state=null,Q===_0?c0(W,bJ):X0},z9=(W,Q)=>{let J=Q.length;if(m1(W))return R0;const V=W.state,G=V.wrap;if(G===2||G===1&&V.status!==Y1||V.lookahead)return R0;if(G===1)W.adler=f1(W.adler,Q,J,0);if(V.wrap=0,J>=V.w_size){if(G===0)g0(V.head),V.strstart=0,V.block_start=0,V.insert=0;let F=new Uint8Array(V.w_size);F.set(Q.subarray(J-V.w_size,J),0),Q=F,J=V.w_size}const{avail_in:X,next_in:Y,input:q}=W;W.avail_in=J,W.next_in=0,W.input=Q,q1(V);while(V.lookahead>=a){let F=V.strstart,U=V.lookahead-(a-1);do V.ins_h=p0(V,V.ins_h,V.window[F+a-1]),V.prev[F&V.w_mask]=V.head[V.ins_h],V.head[V.ins_h]=F,F++;while(--U);V.strstart=F,V.lookahead=a-1,q1(V)}return V.strstart+=V.lookahead,V.block_start=V.strstart,V.insert=V.lookahead,V.lookahead=0,V.match_length=V.prev_length=a-1,V.match_available=0,W.next_in=Y,W.input=q,W.avail_in=X,V.wrap=G,X0},Z9=P9,H9=q7,k9=Y7,$9=X7,C9=U9,j9=K9,B9=F9,R9=z9,M9="pako deflate (from Nodeca project)",v1={deflateInit:Z9,deflateInit2:H9,deflateReset:k9,deflateResetKeep:$9,deflateSetHeader:C9,deflate:j9,deflateEnd:B9,deflateSetDictionary:R9,deflateInfo:M9},L9=(W,Q)=>{return Object.prototype.hasOwnProperty.call(W,Q)},I9=function(W){const Q=Array.prototype.slice.call(arguments,1);while(Q.length){const J=Q.shift();if(!J)continue;if(typeof J!=="object")throw new TypeError(J+"must be non-object");for(let V in J)if(L9(J,V))W[V]=J[V]}return W},D9=(W)=>{let Q=0;for(let V=0,G=W.length;V<G;V++)Q+=W[V].length;const J=new Uint8Array(Q);for(let V=0,G=0,X=W.length;V<X;V++){let Y=W[V];J.set(Y,G),G+=Y.length}return J},H8={assign:I9,flattenChunks:D9},U7=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){U7=!1}var p1=new Uint8Array(256);for(let W=0;W<256;W++)p1[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;p1[254]=p1[254]=1;var O9=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return(new TextEncoder()).encode(W);let Q,J,V,G,X,Y=W.length,q=0;for(G=0;G<Y;G++){if(J=W.charCodeAt(G),(J&64512)===55296&&G+1<Y){if(V=W.charCodeAt(G+1),(V&64512)===56320)J=65536+(J-55296<<10)+(V-56320),G++}q+=J<128?1:J<2048?2:J<65536?3:4}Q=new Uint8Array(q);for(X=0,G=0;X<q;G++){if(J=W.charCodeAt(G),(J&64512)===55296&&G+1<Y){if(V=W.charCodeAt(G+1),(V&64512)===56320)J=65536+(J-55296<<10)+(V-56320),G++}if(J<128)Q[X++]=J;else if(J<2048)Q[X++]=192|J>>>6,Q[X++]=128|J&63;else if(J<65536)Q[X++]=224|J>>>12,Q[X++]=128|J>>>6&63,Q[X++]=128|J&63;else Q[X++]=240|J>>>18,Q[X++]=128|J>>>12&63,Q[X++]=128|J>>>6&63,Q[X++]=128|J&63}return Q},x9=(W,Q)=>{if(Q<65534){if(W.subarray&&U7)return String.fromCharCode.apply(null,W.length===Q?W:W.subarray(0,Q))}let J="";for(let V=0;V<Q;V++)J+=String.fromCharCode(W[V]);return J},w9=(W,Q)=>{const J=Q||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return(new TextDecoder()).decode(W.subarray(0,Q));let V,G;const X=new Array(J*2);for(G=0,V=0;V<J;){let Y=W[V++];if(Y<128){X[G++]=Y;continue}let q=p1[Y];if(q>4){X[G++]=65533,V+=q-1;continue}Y&=q===2?31:q===3?15:7;while(q>1&&V<J)Y=Y<<6|W[V++]&63,q--;if(q>1){X[G++]=65533;continue}if(Y<65536)X[G++]=Y;else Y-=65536,X[G++]=55296|Y>>10&1023,X[G++]=56320|Y&1023}return x9(X,G)},N9=(W,Q)=>{if(Q=Q||W.length,Q>W.length)Q=W.length;let J=Q-1;while(J>=0&&(W[J]&192)===128)J--;if(J<0)return Q;if(J===0)return Q;return J+p1[W[J]]>Q?J:Q},b1={string2buf:O9,buf2string:w9,utf8border:N9},P7=S9,K7=Object.prototype.toString,{Z_NO_FLUSH:v9,Z_SYNC_FLUSH:A9,Z_FULL_FLUSH:T9,Z_FINISH:g9,Z_OK:F8,Z_STREAM_END:E9,Z_DEFAULT_COMPRESSION:y9,Z_DEFAULT_STRATEGY:f9,Z_DEFLATED:p9}=r0;_1.prototype.push=function(W,Q){const J=this.strm,V=this.options.chunkSize;let G,X;if(this.ended)return!1;if(Q===~~Q)X=Q;else X=Q===!0?g9:v9;if(typeof W==="string")J.input=b1.string2buf(W);else if(K7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(V),J.next_out=0,J.avail_out=V;if((X===A9||X===T9)&&J.avail_out<=6){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(G=v1.deflate(J,X),G===E9){if(J.next_out>0)this.onData(J.output.subarray(0,J.next_out));return G=v1.deflateEnd(this.strm),this.onEnd(G),this.ended=!0,G===F8}if(J.avail_out===0){this.onData(J.output);continue}if(X>0&&J.next_out>0){this.onData(J.output.subarray(0,J.next_out)),J.avail_out=0;continue}if(J.avail_in===0)break}return!0};_1.prototype.onData=function(W){this.chunks.push(W)};_1.prototype.onEnd=function(W){if(W===F8)this.result=H8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var u9=_1,m9=Z6,_9=b9,c9=h9,d9=r0,l9={Deflate:u9,deflate:m9,deflateRaw:_9,gzip:c9,constants:d9},X8=16209,i9=16191,r9=function W(Q,J){let V,G,X,Y,q,F,U,K,$,P,z,C,S,T,f,p,m,w,c,i,D,M,N,Z;const H=Q.state;V=Q.next_in,N=Q.input,G=V+(Q.avail_in-5),X=Q.next_out,Z=Q.output,Y=X-(J-Q.avail_out),q=X+(Q.avail_out-257),F=H.dmax,U=H.wsize,K=H.whave,$=H.wnext,P=H.window,z=H.hold,C=H.bits,S=H.lencode,T=H.distcode,f=(1<<H.lenbits)-1,p=(1<<H.distbits)-1;W:do{if(C<15)z+=N[V++]<<C,C+=8,z+=N[V++]<<C,C+=8;m=S[z&f];J:for(;;){if(w=m>>>24,z>>>=w,C-=w,w=m>>>16&255,w===0)Z[X++]=m&65535;else if(w&16){if(c=m&65535,w&=15,w){if(C<w)z+=N[V++]<<C,C+=8;c+=z&(1<<w)-1,z>>>=w,C-=w}if(C<15)z+=N[V++]<<C,C+=8,z+=N[V++]<<C,C+=8;m=T[z&p];Q:for(;;){if(w=m>>>24,z>>>=w,C-=w,w=m>>>16&255,w&16){if(i=m&65535,w&=15,C<w){if(z+=N[V++]<<C,C+=8,C<w)z+=N[V++]<<C,C+=8}if(i+=z&(1<<w)-1,i>F){Q.msg="invalid distance too far back",H.mode=X8;break W}if(z>>>=w,C-=w,w=X-Y,i>w){if(w=i-w,w>K){if(H.sane){Q.msg="invalid distance too far back",H.mode=X8;break W}}if(D=0,M=P,$===0){if(D+=U-w,w<c){c-=w;do Z[X++]=P[D++];while(--w);D=X-i,M=Z}}else if($<w){if(D+=U+$-w,w-=$,w<c){c-=w;do Z[X++]=P[D++];while(--w);if(D=0,$<c){w=$,c-=w;do Z[X++]=P[D++];while(--w);D=X-i,M=Z}}}else if(D+=$-w,w<c){c-=w;do Z[X++]=P[D++];while(--w);D=X-i,M=Z}while(c>2)Z[X++]=M[D++],Z[X++]=M[D++],Z[X++]=M[D++],c-=3;if(c){if(Z[X++]=M[D++],c>1)Z[X++]=M[D++]}}else{D=X-i;do Z[X++]=Z[D++],Z[X++]=Z[D++],Z[X++]=Z[D++],c-=3;while(c>2);if(c){if(Z[X++]=Z[D++],c>1)Z[X++]=Z[D++]}}}else if((w&64)===0){m=T[(m&65535)+(z&(1<<w)-1)];continue Q}else{Q.msg="invalid distance code",H.mode=X8;break W}break}}else if((w&64)===0){m=S[(m&65535)+(z&(1<<w)-1)];continue J}else if(w&32){H.mode=i9;break W}else{Q.msg="invalid literal/length code",H.mode=X8;break W}break}}while(V<G&&X<q);c=C>>3,V-=c,C-=c<<3,z&=(1<<C)-1,Q.next_in=V,Q.next_out=X,Q.avail_in=V<G?5+(G-V):5-(V-G),Q.avail_out=X<q?257+(q-X):257-(X-q),H.hold=z,H.bits=C;return},G1=15,z5=852,Z5=592,H5=0,l8=1,k5=2,n9=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]),o9=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]),a9=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]),s9=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]),e9=(W,Q,J,V,G,X,Y,q)=>{const F=q.bits;let U=0,K=0,$=0,P=0,z=0,C=0,S=0,T=0,f=0,p=0,m,w,c,i,D,M=null,N;const Z=new Uint16Array(G1+1),H=new Uint16Array(G1+1);let R=null,k,j,O;for(U=0;U<=G1;U++)Z[U]=0;for(K=0;K<V;K++)Z[Q[J+K]]++;z=F;for(P=G1;P>=1;P--)if(Z[P]!==0)break;if(z>P)z=P;if(P===0)return G[X++]=1<<24|64<<16|0,G[X++]=1<<24|64<<16|0,q.bits=1,0;for($=1;$<P;$++)if(Z[$]!==0)break;if(z<$)z=$;T=1;for(U=1;U<=G1;U++)if(T<<=1,T-=Z[U],T<0)return-1;if(T>0&&(W===H5||P!==1))return-1;H[1]=0;for(U=1;U<G1;U++)H[U+1]=H[U]+Z[U];for(K=0;K<V;K++)if(Q[J+K]!==0)Y[H[Q[J+K]]++]=K;if(W===H5)M=R=Y,N=20;else if(W===l8)M=n9,R=o9,N=257;else M=a9,R=s9,N=0;if(p=0,K=0,U=$,D=X,C=z,S=0,c=-1,f=1<<z,i=f-1,W===l8&&f>z5||W===k5&&f>Z5)return 1;for(;;){if(k=U-S,Y[K]+1<N)j=0,O=Y[K];else if(Y[K]>=N)j=R[Y[K]-N],O=M[Y[K]-N];else j=96,O=0;m=1<<U-S,w=1<<C,$=w;do w-=m,G[D+(p>>S)+w]=k<<24|j<<16|O|0;while(w!==0);m=1<<U-1;while(p&m)m>>=1;if(m!==0)p&=m-1,p+=m;else p=0;if(K++,--Z[U]===0){if(U===P)break;U=Q[J+Y[K]]}if(U>z&&(p&i)!==c){if(S===0)S=z;D+=$,C=U-S,T=1<<C;while(C+S<P){if(T-=Z[C+S],T<=0)break;C++,T<<=1}if(f+=1<<C,W===l8&&f>z5||W===k5&&f>Z5)return 1;c=p&i,G[c]=z<<24|C<<16|D-X|0}}if(p!==0)G[D+p]=U-S<<24|64<<16|0;return q.bits=z,0},A1=e9,t9=0,F7=1,z7=2,{Z_FINISH:$5,Z_BLOCK:WQ,Z_TREES:Y8,Z_OK:i0,Z_STREAM_END:JQ,Z_NEED_DICT:QQ,Z_STREAM_ERROR:k0,Z_DATA_ERROR:Z7,Z_MEM_ERROR:H7,Z_BUF_ERROR:VQ,Z_DEFLATED:C5}=r0,k8=16180,j5=16181,B5=16182,R5=16183,M5=16184,L5=16185,I5=16186,D5=16187,O5=16188,x5=16189,z8=16190,D0=16191,i8=16192,w5=16193,r8=16194,N5=16195,S5=16196,v5=16197,A5=16198,q8=16199,U8=16200,T5=16201,g5=16202,E5=16203,y5=16204,f5=16205,n8=16206,p5=16207,b5=16208,t=16209,k7=16210,$7=16211,GQ=852,XQ=592,YQ=15,qQ=YQ,h5=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)},n0=(W)=>{if(!W)return 1;const Q=W.state;if(!Q||Q.strm!==W||Q.mode<k8||Q.mode>$7)return 1;return 0},C7=(W)=>{if(n0(W))return k0;const Q=W.state;if(W.total_in=W.total_out=Q.total=0,W.msg="",Q.wrap)W.adler=Q.wrap&1;return Q.mode=k8,Q.last=0,Q.havedict=0,Q.flags=-1,Q.dmax=32768,Q.head=null,Q.hold=0,Q.bits=0,Q.lencode=Q.lendyn=new Int32Array(GQ),Q.distcode=Q.distdyn=new Int32Array(XQ),Q.sane=1,Q.back=-1,i0},j7=(W)=>{if(n0(W))return k0;const Q=W.state;return Q.wsize=0,Q.whave=0,Q.wnext=0,C7(W)},B7=(W,Q)=>{let J;if(n0(W))return k0;const V=W.state;if(Q<0)J=0,Q=-Q;else if(J=(Q>>4)+5,Q<48)Q&=15;if(Q&&(Q<8||Q>15))return k0;if(V.window!==null&&V.wbits!==Q)V.window=null;return V.wrap=J,V.wbits=Q,j7(W)},R7=(W,Q)=>{if(!W)return k0;const J=new UQ;W.state=J,J.strm=W,J.window=null,J.mode=k8;const V=B7(W,Q);if(V!==i0)W.state=null;return V},PQ=(W)=>{return R7(W,qQ)},u5=!0,o8,a8,KQ=(W)=>{if(u5){o8=new Int32Array(512),a8=new Int32Array(32);let Q=0;while(Q<144)W.lens[Q++]=8;while(Q<256)W.lens[Q++]=9;while(Q<280)W.lens[Q++]=7;while(Q<288)W.lens[Q++]=8;A1(F7,W.lens,0,288,o8,0,W.work,{bits:9}),Q=0;while(Q<32)W.lens[Q++]=5;A1(z7,W.lens,0,32,a8,0,W.work,{bits:5}),u5=!1}W.lencode=o8,W.lenbits=9,W.distcode=a8,W.distbits=5},M7=(W,Q,J,V)=>{let G;const X=W.state;if(X.window===null)X.wsize=1<<X.wbits,X.wnext=0,X.whave=0,X.window=new Uint8Array(X.wsize);if(V>=X.wsize)X.window.set(Q.subarray(J-X.wsize,J),0),X.wnext=0,X.whave=X.wsize;else{if(G=X.wsize-X.wnext,G>V)G=V;if(X.window.set(Q.subarray(J-V,J-V+G),X.wnext),V-=G,V)X.window.set(Q.subarray(J-V,J),0),X.wnext=V,X.whave=X.wsize;else{if(X.wnext+=G,X.wnext===X.wsize)X.wnext=0;if(X.whave<X.wsize)X.whave+=G}}return 0},FQ=(W,Q)=>{let J,V,G,X,Y,q,F,U,K,$,P,z,C,S,T=0,f,p,m,w,c,i,D,M;const N=new Uint8Array(4);let Z,H;const R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(n0(W)||!W.output||!W.input&&W.avail_in!==0)return k0;if(J=W.state,J.mode===D0)J.mode=i8;Y=W.next_out,G=W.output,F=W.avail_out,X=W.next_in,V=W.input,q=W.avail_in,U=J.hold,K=J.bits,$=q,P=F,M=i0;W:for(;;)switch(J.mode){case k8:if(J.wrap===0){J.mode=i8;break}while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&2&&U===35615){if(J.wbits===0)J.wbits=15;J.check=0,N[0]=U&255,N[1]=U>>>8&255,J.check=G0(J.check,N,2,0),U=0,K=0,J.mode=j5;break}if(J.head)J.head.done=!1;if(!(J.wrap&1)||(((U&255)<<8)+(U>>8))%31){W.msg="incorrect header check",J.mode=t;break}if((U&15)!==C5){W.msg="unknown compression method",J.mode=t;break}if(U>>>=4,K-=4,D=(U&15)+8,J.wbits===0)J.wbits=D;if(D>15||D>J.wbits){W.msg="invalid window size",J.mode=t;break}J.dmax=1<<J.wbits,J.flags=0,W.adler=J.check=1,J.mode=U&512?x5:D0,U=0,K=0;break;case j5:while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.flags=U,(J.flags&255)!==C5){W.msg="unknown compression method",J.mode=t;break}if(J.flags&57344){W.msg="unknown header flags set",J.mode=t;break}if(J.head)J.head.text=U>>8&1;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=G0(J.check,N,2,0);U=0,K=0,J.mode=B5;case B5:while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.head)J.head.time=U;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,N[2]=U>>>16&255,N[3]=U>>>24&255,J.check=G0(J.check,N,4,0);U=0,K=0,J.mode=R5;case R5:while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.head)J.head.xflags=U&255,J.head.os=U>>8;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=G0(J.check,N,2,0);U=0,K=0,J.mode=M5;case M5:if(J.flags&1024){while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.length=U,J.head)J.head.extra_len=U;if(J.flags&512&&J.wrap&4)N[0]=U&255,N[1]=U>>>8&255,J.check=G0(J.check,N,2,0);U=0,K=0}else if(J.head)J.head.extra=null;J.mode=L5;case L5:if(J.flags&1024){if(z=J.length,z>q)z=q;if(z){if(J.head){if(D=J.head.extra_len-J.length,!J.head.extra)J.head.extra=new Uint8Array(J.head.extra_len);J.head.extra.set(V.subarray(X,X+z),D)}if(J.flags&512&&J.wrap&4)J.check=G0(J.check,V,z,X);q-=z,X+=z,J.length-=z}if(J.length)break W}J.length=0,J.mode=I5;case I5:if(J.flags&2048){if(q===0)break W;z=0;do if(D=V[X+z++],J.head&&D&&J.length<65536)J.head.name+=String.fromCharCode(D);while(D&&z<q);if(J.flags&512&&J.wrap&4)J.check=G0(J.check,V,z,X);if(q-=z,X+=z,D)break W}else if(J.head)J.head.name=null;J.length=0,J.mode=D5;case D5:if(J.flags&4096){if(q===0)break W;z=0;do if(D=V[X+z++],J.head&&D&&J.length<65536)J.head.comment+=String.fromCharCode(D);while(D&&z<q);if(J.flags&512&&J.wrap&4)J.check=G0(J.check,V,z,X);if(q-=z,X+=z,D)break W}else if(J.head)J.head.comment=null;J.mode=O5;case O5:if(J.flags&512){while(K<16){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&4&&U!==(J.check&65535)){W.msg="header crc mismatch",J.mode=t;break}U=0,K=0}if(J.head)J.head.hcrc=J.flags>>9&1,J.head.done=!0;W.adler=J.check=0,J.mode=D0;break;case x5:while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}W.adler=J.check=h5(U),U=0,K=0,J.mode=z8;case z8:if(J.havedict===0)return W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,QQ;W.adler=J.check=1,J.mode=D0;case D0:if(Q===WQ||Q===Y8)break W;case i8:if(J.last){U>>>=K&7,K-=K&7,J.mode=n8;break}while(K<3){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}switch(J.last=U&1,U>>>=1,K-=1,U&3){case 0:J.mode=w5;break;case 1:if(KQ(J),J.mode=q8,Q===Y8){U>>>=2,K-=2;break W}break;case 2:J.mode=S5;break;case 3:W.msg="invalid block type",J.mode=t}U>>>=2,K-=2;break;case w5:U>>>=K&7,K-=K&7;while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if((U&65535)!==(U>>>16^65535)){W.msg="invalid stored block lengths",J.mode=t;break}if(J.length=U&65535,U=0,K=0,J.mode=r8,Q===Y8)break W;case r8:J.mode=N5;case N5:if(z=J.length,z){if(z>q)z=q;if(z>F)z=F;if(z===0)break W;G.set(V.subarray(X,X+z),Y),q-=z,X+=z,F-=z,Y+=z,J.length-=z;break}J.mode=D0;break;case S5:while(K<14){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.nlen=(U&31)+257,U>>>=5,K-=5,J.ndist=(U&31)+1,U>>>=5,K-=5,J.ncode=(U&15)+4,U>>>=4,K-=4,J.nlen>286||J.ndist>30){W.msg="too many length or distance symbols",J.mode=t;break}J.have=0,J.mode=v5;case v5:while(J.have<J.ncode){while(K<3){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.lens[R[J.have++]]=U&7,U>>>=3,K-=3}while(J.have<19)J.lens[R[J.have++]]=0;if(J.lencode=J.lendyn,J.lenbits=7,Z={bits:J.lenbits},M=A1(t9,J.lens,0,19,J.lencode,0,J.work,Z),J.lenbits=Z.bits,M){W.msg="invalid code lengths set",J.mode=t;break}J.have=0,J.mode=A5;case A5:while(J.have<J.nlen+J.ndist){for(;;){if(T=J.lencode[U&(1<<J.lenbits)-1],f=T>>>24,p=T>>>16&255,m=T&65535,f<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(m<16)U>>>=f,K-=f,J.lens[J.have++]=m;else{if(m===16){H=f+2;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(U>>>=f,K-=f,J.have===0){W.msg="invalid bit length repeat",J.mode=t;break}D=J.lens[J.have-1],z=3+(U&3),U>>>=2,K-=2}else if(m===17){H=f+3;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=f,K-=f,D=0,z=3+(U&7),U>>>=3,K-=3}else{H=f+7;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=f,K-=f,D=0,z=11+(U&127),U>>>=7,K-=7}if(J.have+z>J.nlen+J.ndist){W.msg="invalid bit length repeat",J.mode=t;break}while(z--)J.lens[J.have++]=D}}if(J.mode===t)break;if(J.lens[256]===0){W.msg="invalid code -- missing end-of-block",J.mode=t;break}if(J.lenbits=9,Z={bits:J.lenbits},M=A1(F7,J.lens,0,J.nlen,J.lencode,0,J.work,Z),J.lenbits=Z.bits,M){W.msg="invalid literal/lengths set",J.mode=t;break}if(J.distbits=6,J.distcode=J.distdyn,Z={bits:J.distbits},M=A1(z7,J.lens,J.nlen,J.ndist,J.distcode,0,J.work,Z),J.distbits=Z.bits,M){W.msg="invalid distances set",J.mode=t;break}if(J.mode=q8,Q===Y8)break W;case q8:J.mode=U8;case U8:if(q>=6&&F>=258){if(W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,r9(W,P),Y=W.next_out,G=W.output,F=W.avail_out,X=W.next_in,V=W.input,q=W.avail_in,U=J.hold,K=J.bits,J.mode===D0)J.back=-1;break}J.back=0;for(;;){if(T=J.lencode[U&(1<<J.lenbits)-1],f=T>>>24,p=T>>>16&255,m=T&65535,f<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(p&&(p&240)===0){w=f,c=p,i=m;for(;;){if(T=J.lencode[i+((U&(1<<w+c)-1)>>w)],f=T>>>24,p=T>>>16&255,m=T&65535,w+f<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=w,K-=w,J.back+=w}if(U>>>=f,K-=f,J.back+=f,J.length=m,p===0){J.mode=f5;break}if(p&32){J.back=-1,J.mode=D0;break}if(p&64){W.msg="invalid literal/length code",J.mode=t;break}J.extra=p&15,J.mode=T5;case T5:if(J.extra){H=J.extra;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.length+=U&(1<<J.extra)-1,U>>>=J.extra,K-=J.extra,J.back+=J.extra}J.was=J.length,J.mode=g5;case g5:for(;;){if(T=J.distcode[U&(1<<J.distbits)-1],f=T>>>24,p=T>>>16&255,m=T&65535,f<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if((p&240)===0){w=f,c=p,i=m;for(;;){if(T=J.distcode[i+((U&(1<<w+c)-1)>>w)],f=T>>>24,p=T>>>16&255,m=T&65535,w+f<=K)break;if(q===0)break W;q--,U+=V[X++]<<K,K+=8}U>>>=w,K-=w,J.back+=w}if(U>>>=f,K-=f,J.back+=f,p&64){W.msg="invalid distance code",J.mode=t;break}J.offset=m,J.extra=p&15,J.mode=E5;case E5:if(J.extra){H=J.extra;while(K<H){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}J.offset+=U&(1<<J.extra)-1,U>>>=J.extra,K-=J.extra,J.back+=J.extra}if(J.offset>J.dmax){W.msg="invalid distance too far back",J.mode=t;break}J.mode=y5;case y5:if(F===0)break W;if(z=P-F,J.offset>z){if(z=J.offset-z,z>J.whave){if(J.sane){W.msg="invalid distance too far back",J.mode=t;break}}if(z>J.wnext)z-=J.wnext,C=J.wsize-z;else C=J.wnext-z;if(z>J.length)z=J.length;S=J.window}else S=G,C=Y-J.offset,z=J.length;if(z>F)z=F;F-=z,J.length-=z;do G[Y++]=S[C++];while(--z);if(J.length===0)J.mode=U8;break;case f5:if(F===0)break W;G[Y++]=J.length,F--,J.mode=U8;break;case n8:if(J.wrap){while(K<32){if(q===0)break W;q--,U|=V[X++]<<K,K+=8}if(P-=F,W.total_out+=P,J.total+=P,J.wrap&4&&P)W.adler=J.check=J.flags?G0(J.check,G,P,Y-P):f1(J.check,G,P,Y-P);if(P=F,J.wrap&4&&(J.flags?U:h5(U))!==J.check){W.msg="incorrect data check",J.mode=t;break}U=0,K=0}J.mode=p5;case p5:if(J.wrap&&J.flags){while(K<32){if(q===0)break W;q--,U+=V[X++]<<K,K+=8}if(J.wrap&4&&U!==(J.total&4294967295)){W.msg="incorrect length check",J.mode=t;break}U=0,K=0}J.mode=b5;case b5:M=JQ;break W;case t:M=Z7;break W;case k7:return H7;case $7:default:return k0}if(W.next_out=Y,W.avail_out=F,W.next_in=X,W.avail_in=q,J.hold=U,J.bits=K,J.wsize||P!==W.avail_out&&J.mode<t&&(J.mode<n8||Q!==$5)){if(M7(W,W.output,W.next_out,P-W.avail_out));}if($-=W.avail_in,P-=W.avail_out,W.total_in+=$,W.total_out+=P,J.total+=P,J.wrap&4&&P)W.adler=J.check=J.flags?G0(J.check,G,P,W.next_out-P):f1(J.check,G,P,W.next_out-P);if(W.data_type=J.bits+(J.last?64:0)+(J.mode===D0?128:0)+(J.mode===q8||J.mode===r8?256:0),($===0&&P===0||Q===$5)&&M===i0)M=VQ;return M},zQ=(W)=>{if(n0(W))return k0;let Q=W.state;if(Q.window)Q.window=null;return W.state=null,i0},ZQ=(W,Q)=>{if(n0(W))return k0;const J=W.state;if((J.wrap&2)===0)return k0;return J.head=Q,Q.done=!1,i0},HQ=(W,Q)=>{const J=Q.length;let V,G,X;if(n0(W))return k0;if(V=W.state,V.wrap!==0&&V.mode!==z8)return k0;if(V.mode===z8){if(G=1,G=f1(G,Q,J,0),G!==V.check)return Z7}if(X=M7(W,Q,J,J),X)return V.mode=k7,H7;return V.havedict=1,i0},kQ=j7,$Q=B7,CQ=C7,jQ=PQ,BQ=R7,RQ=FQ,MQ=zQ,LQ=ZQ,IQ=HQ,DQ="pako inflate (from Nodeca project)",x0={inflateReset:kQ,inflateReset2:$Q,inflateResetKeep:CQ,inflateInit:jQ,inflateInit2:BQ,inflate:RQ,inflateEnd:MQ,inflateGetHeader:LQ,inflateSetDictionary:IQ,inflateInfo:DQ},xQ=OQ,L7=Object.prototype.toString,{Z_NO_FLUSH:wQ,Z_FINISH:NQ,Z_OK:h1,Z_STREAM_END:s8,Z_NEED_DICT:e8,Z_STREAM_ERROR:SQ,Z_DATA_ERROR:m5,Z_MEM_ERROR:vQ}=r0;c1.prototype.push=function(W,Q){const J=this.strm,V=this.options.chunkSize,G=this.options.dictionary;let X,Y,q;if(this.ended)return!1;if(Q===~~Q)Y=Q;else Y=Q===!0?NQ:wQ;if(L7.call(W)==="[object ArrayBuffer]")J.input=new Uint8Array(W);else J.input=W;J.next_in=0,J.avail_in=J.input.length;for(;;){if(J.avail_out===0)J.output=new Uint8Array(V),J.next_out=0,J.avail_out=V;if(X=x0.inflate(J,Y),X===e8&&G){if(X=x0.inflateSetDictionary(J,G),X===h1)X=x0.inflate(J,Y);else if(X===m5)X=e8}while(J.avail_in>0&&X===s8&&J.state.wrap>0&&W[J.next_in]!==0)x0.inflateReset(J),X=x0.inflate(J,Y);switch(X){case SQ:case m5:case e8:case vQ:return this.onEnd(X),this.ended=!0,!1}if(q=J.avail_out,J.next_out){if(J.avail_out===0||X===s8)if(this.options.to==="string"){let F=b1.utf8border(J.output,J.next_out),U=J.next_out-F,K=b1.buf2string(J.output,F);if(J.next_out=U,J.avail_out=V-U,U)J.output.set(J.output.subarray(F,F+U),0);this.onData(K)}else this.onData(J.output.length===J.next_out?J.output:J.output.subarray(0,J.next_out))}if(X===h1&&q===0)continue;if(X===s8)return X=x0.inflateEnd(this.strm),this.onEnd(X),this.ended=!0,!0;if(J.avail_in===0)break}return!0};c1.prototype.onData=function(W){this.chunks.push(W)};c1.prototype.onEnd=function(W){if(W===h1)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=H8.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};var TQ=c1,gQ=H6,EQ=AQ,yQ=H6,fQ=r0,pQ={Inflate:TQ,inflate:gQ,inflateRaw:EQ,ungzip:yQ,constants:fQ},{Deflate:bQ,deflate:hQ,deflateRaw:uQ,gzip:mQ}=l9,{Inflate:_Q,inflate:cQ,inflateRaw:dQ,ungzip:lQ}=pQ,iQ=bQ,rQ=hQ,nQ=uQ,oQ=mQ,aQ=_Q,sQ=cQ,eQ=dQ,tQ=lQ,WV=r0,d1={Deflate:iQ,deflate:rQ,deflateRaw:nQ,gzip:oQ,Inflate:aQ,inflate:sQ,inflateRaw:eQ,ungzip:tQ,constants:WV};var A8=function(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"},D6=function(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)},W1=function(W,...Q){if(!A8(W))throw Error("Uint8Array expected");if(Q.length>0&&!Q.includes(W.length))throw Error("Uint8Array expected of length "+Q+", got length="+W.length)},l7=function(W){if(typeof W!="function"||typeof W.create!="function")throw Error("Hash should be wrapped by utils.createHasher");D6(W.outputLen),D6(W.blockLen)},L8=function(W,Q=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(Q&&W.finished)throw Error("Hash#digest() has already been called")},I8=function(...W){for(let Q=0;Q<W.length;Q++)W[Q].fill(0)},k6=function(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)},L0=function(W,Q){return W<<32-Q|W>>>Q},$1=function(W){if(W1(W),i7)return W.toHex();let Q="";for(let J=0;J<W.length;J++)Q+=JV[W[J]];return Q},x7=function(W){return W>=I7&&W<=QV?W-I7:W>=D7&&W<=VV?W-(D7-10):W>=O7&&W<=GV?W-(O7-10):void 0},D8=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);if(i7)return Uint8Array.fromHex(W);const Q=W.length,J=Q/2;if(Q%2)throw Error("hex string expected, got unpadded hex of length "+Q);const V=new Uint8Array(J);for(let G=0,X=0;G<J;G++,X+=2){const Y=x7(W.charCodeAt(X)),q=x7(W.charCodeAt(X+1));if(Y===void 0||q===void 0){const F=W[X]+W[X+1];throw Error('hex string expected, got non-hex character "'+F+'" at index '+X)}V[G]=16*Y+q}return V},r7=function(W){if(typeof W!="string")throw Error("string expected");return new Uint8Array((new TextEncoder()).encode(W))},g6=function(W){return typeof W=="string"&&(W=r7(W)),W1(W),W},I0=function(...W){let Q=0;for(let V=0;V<W.length;V++){const G=W[V];W1(G),Q+=G.length}const J=new Uint8Array(Q);for(let V=0,G=0;V<W.length;V++){const X=W[V];J.set(X,G),G+=X.length}return J},XV=function(W){const Q=(V)=>W().update(g6(V)).digest(),J=W();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>W(),Q},O8=function(W=32){if(F1&&typeof F1.getRandomValues=="function")return F1.getRandomValues(new Uint8Array(W));if(F1&&typeof F1.randomBytes=="function")return Uint8Array.from(F1.randomBytes(W));throw Error("crypto.getRandomValues must be defined")},YV=function(W,Q,J){return W&Q^W&J^Q&J},x8=function(W,Q=""){if(typeof W!="boolean")throw Error((Q&&`"${Q}"`)+"expected boolean, got type="+typeof W);return W},o0=function(W,Q,J=""){const V=A8(W),G=W?.length,X=Q!==void 0;if(!V||X&&G!==Q)throw Error((J&&`"${J}" `)+"expected Uint8Array"+(X?" of length "+Q:"")+", got "+(V?"length="+G:"type="+typeof W));return W},$8=function(W){const Q=W.toString(16);return 1&Q.length?"0"+Q:Q},s7=function(W){if(typeof W!="string")throw Error("hex string expected, got "+typeof W);return W===""?f6:BigInt("0x"+W)},B1=function(W){return s7($1(W))},e7=function(W){return W1(W),s7($1(Uint8Array.from(W).reverse()))},T8=function(W,Q){return D8(W.toString(16).padStart(2*Q,"0"))},t7=function(W,Q){return T8(W,Q).reverse()},Q0=function(W,Q,J){let V;if(typeof Q=="string")try{V=D8(Q)}catch(X){throw Error(W+" must be hex string or Uint8Array, cause: "+X)}else{if(!A8(Q))throw Error(W+" must be hex string or Uint8Array");V=Uint8Array.from(Q)}const G=V.length;if(typeof J=="number"&&G!==J)throw Error(W+" of length "+J+" expected, got "+G);return V},w6=function(W,Q,J){return $6(W)&&$6(Q)&&$6(J)&&Q<=W&&W<J},WW=function(W){let Q;for(Q=0;W>f6;W>>=x6,Q+=1);return Q},p6=function(W,Q,J={}){if(!W||typeof W!="object")throw Error("expected valid options object");function V(G,X,Y){const q=W[G];if(Y&&q===void 0)return;const F=typeof q;if(F!==X||q===null)throw Error(`param "${G}" is invalid: expected ${X}, got ${F}`)}Object.entries(Q).forEach(([G,X])=>V(G,X,!1)),Object.entries(J).forEach(([G,X])=>V(G,X,!0))},w7=function(W){const Q=new WeakMap;return(J,...V)=>{const G=Q.get(J);if(G!==void 0)return G;const X=W(J,...V);return Q.set(J,X),X}},C0=function(W,Q){const J=W%Q;return J>=K0?J:Q+J},$0=function(W,Q,J){let V=W;for(;Q-- >K0;)V*=V,V%=J;return V},S7=function(W,Q){if(W===K0)throw Error("invert: expected non-zero number");if(Q<=K0)throw Error("invert: expected positive modulus, got "+Q);let J=C0(W,Q),V=Q,G=K0,X=U0;for(;J!==K0;){const Y=V%J,q=G-X*(V/J);V=J,J=Y,G=X,X=q}if(V!==U0)throw Error("invert: does not exist");return C0(G,Q)},b6=function(W,Q,J){if(!W.eql(W.sqr(Q),J))throw Error("Cannot find square root")},XW=function(W,Q){const J=(W.ORDER+U0)/QW,V=W.pow(Q,J);return b6(W,V,Q),V},KV=function(W,Q){const J=(W.ORDER-VW)/GW,V=W.mul(Q,s0),G=W.pow(V,J),X=W.mul(Q,G),Y=W.mul(W.mul(X,s0),G),q=W.mul(X,W.sub(Y,W.ONE));return b6(W,q,Q),q},v7=function(W){if(W<JW)throw Error("sqrt is not defined for small field");let Q=W-U0,J=0;for(;Q%s0===K0;)Q/=s0,J++;let V=s0;const G=a1(W);for(;A7(G,V)===1;)if(V++>1000)throw Error("Cannot find square root: probably non-prime P");if(J===1)return XW;let X=G.pow(V,Q);const Y=(Q+U0)/s0;return function(q,F){if(q.is0(F))return F;if(A7(q,F)!==1)throw Error("Cannot find square root");let U=J,K=q.mul(q.ONE,X),$=q.pow(F,Q),P=q.pow(F,Y);for(;!q.eql($,q.ONE);){if(q.is0($))return q.ZERO;let z=1,C=q.sqr($);for(;!q.eql(C,q.ONE);)if(z++,C=q.sqr(C),z===U)throw Error("Cannot find square root");const S=U0<<BigInt(U-z-1),T=q.pow(K,S);U=z,K=q.sqr(T),$=q.mul($,K),P=q.mul(P,T)}return P}},FV=function(W){return W%QW===JW?XW:W%GW===VW?KV:W%N7===PV?function(Q){const J=a1(Q),V=v7(Q),G=V(J,J.neg(J.ONE)),X=V(J,G),Y=V(J,J.neg(G)),q=(Q+UV)/N7;return(F,U)=>{let K=F.pow(U,q),$=F.mul(K,G);const P=F.mul(K,X),z=F.mul(K,Y),C=F.eql(F.sqr($),U),S=F.eql(F.sqr(P),U);K=F.cmov(K,$,C),$=F.cmov(z,P,S);const T=F.eql(F.sqr($),U),f=F.cmov(K,$,T);return b6(F,f,U),f}}(W):v7(W)},YW=function(W,Q,J=!1){const V=Array(Q.length).fill(J?W.ZERO:void 0),G=Q.reduce((Y,q,F)=>W.is0(q)?Y:(V[F]=Y,W.mul(Y,q)),W.ONE),X=W.inv(G);return Q.reduceRight((Y,q,F)=>W.is0(q)?Y:(V[F]=W.mul(Y,V[F]),W.mul(Y,q)),X),V},A7=function(W,Q){const J=(W.ORDER-U0)/s0,V=W.pow(Q,J),G=W.eql(V,W.ONE),X=W.eql(V,W.ZERO),Y=W.eql(V,W.neg(W.ONE));if(!G&&!X&&!Y)throw Error("invalid Legendre symbol result");return G?1:X?0:-1},qW=function(W,Q){Q!==void 0&&D6(Q);const J=Q!==void 0?Q:W.toString(2).length;return{nBitLength:J,nByteLength:Math.ceil(J/8)}},a1=function(W,Q,J=!1,V={}){if(W<=K0)throw Error("invalid field: expected ORDER > 0, got "+W);let G,X,Y,q=!1;if(typeof Q=="object"&&Q!=null){if(V.sqrt||J)throw Error("cannot specify opts in two arguments");const P=Q;P.BITS&&(G=P.BITS),P.sqrt&&(X=P.sqrt),typeof P.isLE=="boolean"&&(J=P.isLE),typeof P.modFromBytes=="boolean"&&(q=P.modFromBytes),Y=P.allowedLengths}else typeof Q=="number"&&(G=Q),V.sqrt&&(X=V.sqrt);const{nBitLength:F,nByteLength:U}=qW(W,G);if(U>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let K;const $=Object.freeze({ORDER:W,isLE:J,BITS:F,BYTES:U,MASK:o1(F),ZERO:K0,ONE:U0,allowedLengths:Y,create(P){return C0(P,W)},isValid(P){if(typeof P!="bigint")throw Error("invalid field element: expected bigint, got "+typeof P);return K0<=P&&P<W},is0(P){return P===K0},isValidNot0(P){return!$.is0(P)&&$.isValid(P)},isOdd(P){return(P&U0)===U0},neg(P){return C0(-P,W)},eql(P,z){return P===z},sqr(P){return C0(P*P,W)},add(P,z){return C0(P+z,W)},sub(P,z){return C0(P-z,W)},mul(P,z){return C0(P*z,W)},pow(P,z){return function(C,S,T){if(T<K0)throw Error("invalid exponent, negatives unsupported");if(T===K0)return C.ONE;if(T===U0)return S;let f=C.ONE,p=S;for(;T>K0;)T&U0&&(f=C.mul(f,p)),p=C.sqr(p),T>>=U0;return f}($,P,z)},div(P,z){return C0(P*S7(z,W),W)},sqrN(P){return P*P},addN(P,z){return P+z},subN(P,z){return P-z},mulN(P,z){return P*z},inv(P){return S7(P,W)},sqrt:X||((P)=>(K||(K=FV(W)),K($,P))),toBytes(P){return J?t7(P,U):T8(P,U)},fromBytes(P,z=!0){if(Y){if(!Y.includes(P.length)||P.length>U)throw Error("Field.fromBytes: expected "+Y+" bytes, got "+P.length);const S=new Uint8Array(U);S.set(P,J?0:S.length-P.length),P=S}if(P.length!==U)throw Error("Field.fromBytes: expected "+U+" bytes, got "+P.length);let C=J?e7(P):B1(P);if(q&&(C=C0(C,W)),!z&&!$.isValid(C))throw Error("invalid field element: outside of range 0..ORDER");return C},invertBatch(P){return YW($,P)},cmov(P,z,C){return C?z:P}});return Object.freeze($)},UW=function(W){if(typeof W!="bigint")throw Error("field order must be bigint");const Q=W.toString(2).length;return Math.ceil(Q/8)},PW=function(W){const Q=UW(W);return Q+Math.ceil(Q/2)},KW=function(W,Q,J=!1){const V=W.length,G=UW(Q),X=PW(Q);if(V<16||V<X||V>1024)throw Error("expected "+X+"-1024 bytes of input, got "+V);const Y=C0(J?e7(W):B1(W),Q-U0)+U0;return J?t7(Y,G):T8(Y,G)},w8=function(W,Q){const J=Q.negate();return W?J:Q},C6=function(W,Q){const J=YW(W.Fp,Q.map((V)=>V.Z));return Q.map((V,G)=>W.fromAffine(V.toAffine(J[G])))},FW=function(W,Q){if(!Number.isSafeInteger(W)||W<=0||W>Q)throw Error("invalid window size, expected [1.."+Q+"], got W="+W)},j6=function(W,Q){FW(W,Q);const J=2**W;return{windows:Math.ceil(Q/W)+1,windowSize:2**(W-1),mask:o1(W),maxNumber:J,shiftBy:BigInt(W)}},T7=function(W,Q,J){const{windowSize:V,mask:G,maxNumber:X,shiftBy:Y}=J;let q=Number(W&G),F=W>>Y;q>V&&(q-=X,F+=e0);const U=Q*V;return{nextN:F,offset:U+Math.abs(q)-1,isZero:q===0,isNeg:q<0,isNegF:Q%2!=0,offsetF:U}},R6=function(W){return zW.get(W)||1},g7=function(W){if(W!==C1)throw Error("invalid wNAF")},ZV=function(W,Q,J,V){(function(P,z){if(!Array.isArray(P))throw Error("array expected");P.forEach((C,S)=>{if(!(C instanceof z))throw Error("invalid point at index "+S)})})(J,W),function(P,z){if(!Array.isArray(P))throw Error("array of scalars expected");P.forEach((C,S)=>{if(!z.isValid(C))throw Error("invalid scalar at index "+S)})}(V,Q);const G=J.length,X=V.length;if(G!==X)throw Error("arrays of points and scalars must have equal length");const Y=W.ZERO,q=WW(BigInt(G));let F=1;q>12?F=q-3:q>4?F=q-2:q>0&&(F=2);const U=o1(F),K=Array(Number(U)+1).fill(Y);let $=Y;for(let P=Math.floor((Q.BITS-1)/F)*F;P>=0;P-=F){K.fill(Y);for(let C=0;C<X;C++){const S=V[C],T=Number(S>>BigInt(P)&U);K[T]=K[T].add(J[C])}let z=Y;for(let C=K.length-1,S=Y;C>0;C--)S=S.add(K[C]),z=z.add(S);if($=$.add(z),P!==0)for(let C=0;C<F;C++)$=$.double()}return $},E7=function(W,Q,J){if(Q){if(Q.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return function(V){p6(V,zV.reduce((G,X)=>(G[X]="function",G),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(Q),Q}return a1(W,{isLE:J})},N6=function(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W},M6=function(W,Q){const J={};for(let V of Object.keys(Q))J[V]=W[V]===void 0?Q[V]:W[V];return x8(J.lowS,"lowS"),x8(J.prehash,"prehash"),J.format!==void 0&&N6(J.format),J},a0=function(W,Q){const{BYTES:J}=W;let V;if(typeof Q=="bigint")V=Q;else{let G=Q0("private key",Q);try{V=W.fromBytes(G)}catch(X){throw Error(`invalid private key: expected ui8a of size ${J}, got ${typeof Q}`)}}if(!W.isValidNot0(V))throw Error("invalid private key: out of range [1..N-1]");return V},kV=function(W,Q={}){const J=function(Z,H,R={},k){if(k===void 0&&(k=Z==="edwards"),!H||typeof H!="object")throw Error(`expected valid ${Z} CURVE object`);for(let x of["p","n","h"]){const B=H[x];if(!(typeof B=="bigint"&&B>C1))throw Error(`CURVE.${x} must be positive bigint`)}const j=E7(H.p,R.Fp,k),O=E7(H.n,R.Fn,k),L=["Gx","Gy","a","b"];for(let x of L)if(!j.isValid(H[x]))throw Error(`CURVE.${x} must be valid field element of CURVE.Fp`);return{CURVE:H=Object.freeze(Object.assign({},H)),Fp:j,Fn:O}}("weierstrass",W,Q),{Fp:V,Fn:G}=J;let X=J.CURVE;const{h:Y,n:q}=X;p6(Q,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:F}=Q;if(F&&(!V.is0(X.a)||typeof F.beta!="bigint"||!Array.isArray(F.basises)))throw Error('invalid endo: expected "beta": bigint and "basises": array');const U=$W(V,G);function K(){if(!V.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}const $=Q.toBytes||function(Z,H,R){const{x:k,y:j}=H.toAffine(),O=V.toBytes(k);if(x8(R,"isCompressed"),R)return K(),I0(kW(!V.isOdd(j)),O);return I0(Uint8Array.of(4),O,V.toBytes(j))},P=Q.fromBytes||function(Z){o0(Z,void 0,"Point");const{publicKey:H,publicKeyUncompressed:R}=U,k=Z.length,j=Z[0],O=Z.subarray(1);if(k!==H||j!==2&&j!==3){if(k===R&&j===4){const L=V.BYTES,x=V.fromBytes(O.subarray(0,L)),B=V.fromBytes(O.subarray(L,2*L));if(!C(x,B))throw Error("bad point: is not on curve");return{x,y:B}}throw Error(`bad point: got length ${k}, expected compressed=${H} or uncompressed=${R}`)}{const L=V.fromBytes(O);if(!V.isValid(L))throw Error("bad point: is not on curve, wrong x");const x=z(L);let B;try{B=V.sqrt(x)}catch(v){const b=v instanceof Error?": "+v.message:"";throw Error("bad point: is not on curve, sqrt error"+b)}return K(),!(1&~j)!==V.isOdd(B)&&(B=V.neg(B)),{x:L,y:B}}};function z(Z){const H=V.sqr(Z),R=V.mul(H,Z);return V.add(V.add(R,V.mul(Z,X.a)),X.b)}function C(Z,H){const R=V.sqr(H),k=z(Z);return V.eql(R,k)}if(!C(X.Gx,X.Gy))throw Error("bad curve params: generator point");const S=V.mul(V.pow(X.a,C8),HV),T=V.mul(V.sqr(X.b),BigInt(27));if(V.is0(V.add(S,T)))throw Error("bad curve params: a or b");function f(Z,H,R=!1){if(!V.isValid(H)||R&&V.is0(H))throw Error("bad point coordinate "+Z);return H}function p(Z){if(!(Z instanceof D))throw Error("ProjectivePoint expected")}function m(Z){if(!F||!F.basises)throw Error("no endo");return function(H,R,k){const[[j,O],[L,x]]=R,B=y7(x*H,k),v=y7(-O*H,k);let b=H-B*j-v*L,A=-B*O-v*x;const h=b<S0,d=A<S0;h&&(b=-b),d&&(A=-A);const r=o1(Math.ceil(WW(k)/2))+H1;if(b<S0||b>=r||A<S0||A>=r)throw Error("splitScalar (endomorphism): failed, k="+H);return{k1neg:h,k1:b,k2neg:d,k2:A}}(Z,F.basises,G.ORDER)}const w=w7((Z,H)=>{const{X:R,Y:k,Z:j}=Z;if(V.eql(j,V.ONE))return{x:R,y:k};const O=Z.is0();H==null&&(H=O?V.ONE:V.inv(j));const L=V.mul(R,H),x=V.mul(k,H),B=V.mul(j,H);if(O)return{x:V.ZERO,y:V.ZERO};if(!V.eql(B,V.ONE))throw Error("invZ was invalid");return{x:L,y:x}}),c=w7((Z)=>{if(Z.is0()){if(Q.allowInfinityPoint&&!V.is0(Z.Y))return;throw Error("bad point: ZERO")}const{x:H,y:R}=Z.toAffine();if(!V.isValid(H)||!V.isValid(R))throw Error("bad point: x or y not field elements");if(!C(H,R))throw Error("bad point: equation left != right");if(!Z.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function i(Z,H,R,k,j){return R=new D(V.mul(R.X,Z),R.Y,R.Z),H=w8(k,H),R=w8(j,R),H.add(R)}class D{constructor(Z,H,R){this.X=f("x",Z),this.Y=f("y",H,!0),this.Z=f("z",R),Object.freeze(this)}static CURVE(){return X}static fromAffine(Z){const{x:H,y:R}=Z||{};if(!Z||!V.isValid(H)||!V.isValid(R))throw Error("invalid affine point");if(Z instanceof D)throw Error("projective point not allowed");return V.is0(H)&&V.is0(R)?D.ZERO:new D(H,R,V.ONE)}static fromBytes(Z){const H=D.fromAffine(P(o0(Z,void 0,"point")));return H.assertValidity(),H}static fromHex(Z){return D.fromBytes(Q0("pointHex",Z))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(Z=8,H=!0){return N.createCache(this,Z),H||this.multiply(C8),this}assertValidity(){c(this)}hasEvenY(){const{y:Z}=this.toAffine();if(!V.isOdd)throw Error("Field doesn't support isOdd");return!V.isOdd(Z)}equals(Z){p(Z);const{X:H,Y:R,Z:k}=this,{X:j,Y:O,Z:L}=Z,x=V.eql(V.mul(H,L),V.mul(j,k)),B=V.eql(V.mul(R,L),V.mul(O,k));return x&&B}negate(){return new D(this.X,V.neg(this.Y),this.Z)}double(){const{a:Z,b:H}=X,R=V.mul(H,C8),{X:k,Y:j,Z:O}=this;let{ZERO:L,ZERO:x,ZERO:B}=V,v=V.mul(k,k),b=V.mul(j,j),A=V.mul(O,O),h=V.mul(k,j);return h=V.add(h,h),B=V.mul(k,O),B=V.add(B,B),L=V.mul(Z,B),x=V.mul(R,A),x=V.add(L,x),L=V.sub(b,x),x=V.add(b,x),x=V.mul(L,x),L=V.mul(h,L),B=V.mul(R,B),A=V.mul(Z,A),h=V.sub(v,A),h=V.mul(Z,h),h=V.add(h,B),B=V.add(v,v),v=V.add(B,v),v=V.add(v,A),v=V.mul(v,h),x=V.add(x,v),A=V.mul(j,O),A=V.add(A,A),v=V.mul(A,h),L=V.sub(L,v),B=V.mul(A,b),B=V.add(B,B),B=V.add(B,B),new D(L,x,B)}add(Z){p(Z);const{X:H,Y:R,Z:k}=this,{X:j,Y:O,Z:L}=Z;let{ZERO:x,ZERO:B,ZERO:v}=V;const b=X.a,A=V.mul(X.b,C8);let h=V.mul(H,j),d=V.mul(R,O),r=V.mul(k,L),I=V.add(H,R),g=V.add(j,O);I=V.mul(I,g),g=V.add(h,d),I=V.sub(I,g),g=V.add(H,k);let y=V.add(j,L);return g=V.mul(g,y),y=V.add(h,r),g=V.sub(g,y),y=V.add(R,k),x=V.add(O,L),y=V.mul(y,x),x=V.add(d,r),y=V.sub(y,x),v=V.mul(b,g),x=V.mul(A,r),v=V.add(x,v),x=V.sub(d,v),v=V.add(d,v),B=V.mul(x,v),d=V.add(h,h),d=V.add(d,h),r=V.mul(b,r),g=V.mul(A,g),d=V.add(d,r),r=V.sub(h,r),r=V.mul(b,r),g=V.add(g,r),h=V.mul(d,g),B=V.add(B,h),h=V.mul(y,g),x=V.mul(I,x),x=V.sub(x,h),h=V.mul(I,d),v=V.mul(y,v),v=V.add(v,h),new D(x,B,v)}subtract(Z){return this.add(Z.negate())}is0(){return this.equals(D.ZERO)}multiply(Z){const{endo:H}=Q;if(!G.isValidNot0(Z))throw Error("invalid scalar: out of range");let R,k;const j=(O)=>N.cached(this,O,(L)=>C6(D,L));if(H){const{k1neg:O,k1:L,k2neg:x,k2:B}=m(Z),{p:v,f:b}=j(L),{p:A,f:h}=j(B);k=b.add(h),R=i(H.beta,v,A,O,x)}else{const{p:O,f:L}=j(Z);R=O,k=L}return C6(D,[R,k])[0]}multiplyUnsafe(Z){const{endo:H}=Q,R=this;if(!G.isValid(Z))throw Error("invalid scalar: out of range");if(Z===S0||R.is0())return D.ZERO;if(Z===H1)return R;if(N.hasCache(this))return this.multiply(Z);if(H){const{k1neg:k,k1:j,k2neg:O,k2:L}=m(Z),{p1:x,p2:B}=function(v,b,A,h){let d=b,r=v.ZERO,I=v.ZERO;for(;A>C1||h>C1;)A&e0&&(r=r.add(d)),h&e0&&(I=I.add(d)),d=d.double(),A>>=e0,h>>=e0;return{p1:r,p2:I}}(D,R,j,L);return i(H.beta,x,B,k,O)}return N.unsafe(R,Z)}multiplyAndAddUnsafe(Z,H,R){const k=this.multiplyUnsafe(H).add(Z.multiplyUnsafe(R));return k.is0()?void 0:k}toAffine(Z){return w(this,Z)}isTorsionFree(){const{isTorsionFree:Z}=Q;return Y===H1||(Z?Z(D,this):N.unsafe(this,q).is0())}clearCofactor(){const{clearCofactor:Z}=Q;return Y===H1?this:Z?Z(D,this):this.multiplyUnsafe(Y)}isSmallOrder(){return this.multiplyUnsafe(Y).is0()}toBytes(Z=!0){return x8(Z,"isCompressed"),this.assertValidity(),$(D,this,Z)}toHex(Z=!0){return $1(this.toBytes(Z))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(Z=!0){return this.toBytes(Z)}_setWindowSize(Z){this.precompute(Z)}static normalizeZ(Z){return C6(D,Z)}static msm(Z,H){return ZV(D,G,Z,H)}static fromPrivateKey(Z){return D.BASE.multiply(a0(G,Z))}}D.BASE=new D(X.Gx,X.Gy,V.ONE),D.ZERO=new D(V.ZERO,V.ONE,V.ZERO),D.Fp=V,D.Fn=G;const M=G.BITS,N=new ZW(D,Q.endo?Math.ceil(M/2):M);return D.BASE.precompute(8),D},kW=function(W){return Uint8Array.of(W?2:3)},$W=function(W,Q){return{secretKey:Q.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*Q.BYTES}},$V=function(W,Q,J={}){l7(Q),p6(J,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const V=J.randomBytes||O8,G=J.hmac||((M,...N)=>a7(Q,M,I0(...N))),{Fp:X,Fn:Y}=W,{ORDER:q,BITS:F}=Y,{keygen:U,getPublicKey:K,getSharedSecret:$,utils:P,lengths:z}=function(M,N={}){const{Fn:Z}=M,H=N.randomBytes||O8,R=Object.assign($W(M.Fp,Z),{seed:PW(Z.ORDER)});function k(B){try{return!!a0(Z,B)}catch(v){return!1}}function j(B=H(R.seed)){return KW(o0(B,R.seed,"seed"),Z.ORDER)}function O(B,v=!0){return M.BASE.multiply(a0(Z,B)).toBytes(v)}function L(B){if(typeof B=="bigint")return!1;if(B instanceof M)return!0;const{secretKey:v,publicKey:b,publicKeyUncompressed:A}=R;if(Z.allowedLengths||v===b)return;const h=Q0("key",B).length;return h===b||h===A}return Object.freeze({getPublicKey:O,getSharedSecret(B,v,b=!0){if(L(B)===!0)throw Error("first arg must be private key");if(L(v)===!1)throw Error("second arg must be public key");const A=a0(Z,B);return M.fromHex(v).multiply(A).toBytes(b)},keygen(B){const v=j(B);return{secretKey:v,publicKey:O(v)}},Point:M,utils:{isValidSecretKey:k,isValidPublicKey(B,v){const{publicKey:b,publicKeyUncompressed:A}=R;try{const h=B.length;return!(v===!0&&h!==b||v===!1&&h!==A||!M.fromBytes(B))}catch(h){return!1}},randomSecretKey:j,isValidPrivateKey:k,randomPrivateKey:j,normPrivateKeyToScalar:(B)=>a0(Z,B),precompute(B=8,v=M.BASE){return v.precompute(B,!1)}},lengths:R})}(W,J),C={prehash:!1,lowS:typeof J.lowS=="boolean"&&J.lowS,format:void 0,extraEntropy:!1},S="compact";function T(M){return M>q>>H1}function f(M,N){if(!Y.isValidNot0(N))throw Error(`invalid signature ${M}: out of range 1..Point.Fn.ORDER`);return N}class p{constructor(M,N,Z){this.r=f("r",M),this.s=f("s",N),Z!=null&&(this.recovery=Z),Object.freeze(this)}static fromBytes(M,N=S){let Z;if(function(j,O){N6(O);const L=z.signature;o0(j,O==="compact"?L:O==="recovered"?L+1:void 0,O+" signature")}(M,N),N==="der"){const{r:j,s:O}=N0.toSig(o0(M));return new p(j,O)}N==="recovered"&&(Z=M[0],N="compact",M=M.subarray(1));const H=Y.BYTES,R=M.subarray(0,H),k=M.subarray(H,2*H);return new p(Y.fromBytes(R),Y.fromBytes(k),Z)}static fromHex(M,N){return this.fromBytes(D8(M),N)}addRecoveryBit(M){return new p(this.r,this.s,M)}recoverPublicKey(M){const N=X.ORDER,{r:Z,s:H,recovery:R}=this;if(R==null||![0,1,2,3].includes(R))throw Error("recovery id invalid");if(q*HW<N&&R>1)throw Error("recovery id is ambiguous for h>1 curve");const k=R===2||R===3?Z+q:Z;if(!X.isValid(k))throw Error("recovery id 2 or 3 invalid");const j=X.toBytes(k),O=W.fromBytes(I0(kW(!(1&R)),j)),L=Y.inv(k),x=w(Q0("msgHash",M)),B=Y.create(-x*L),v=Y.create(H*L),b=W.BASE.multiplyUnsafe(B).add(O.multiplyUnsafe(v));if(b.is0())throw Error("point at infinify");return b.assertValidity(),b}hasHighS(){return T(this.s)}toBytes(M=S){if(N6(M),M==="der")return D8(N0.hexFromSig(this));const N=Y.toBytes(this.r),Z=Y.toBytes(this.s);if(M==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return I0(Uint8Array.of(this.recovery),N,Z)}return I0(N,Z)}toHex(M){return $1(this.toBytes(M))}assertValidity(){}static fromCompact(M){return p.fromBytes(Q0("sig",M),"compact")}static fromDER(M){return p.fromBytes(Q0("sig",M),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Y.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return $1(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return $1(this.toBytes("compact"))}}const m=J.bits2int||function(M){if(M.length>8192)throw Error("input is too large");const N=B1(M),Z=8*M.length-F;return Z>0?N>>BigInt(Z):N},w=J.bits2int_modN||function(M){return Y.create(m(M))},c=o1(F);function i(M){return function(N,Z,H,R){if(!w6(Z,H,R))throw Error("expected valid "+N+": "+H+" <= n < "+R+", got "+Z)}("num < 2^"+F,M,S0,c),Y.toBytes(M)}function D(M,N){return o0(M,void 0,"message"),N?o0(Q(M),void 0,"prehashed message"):M}return Object.freeze({keygen:U,getPublicKey:K,getSharedSecret:$,utils:P,lengths:z,Point:W,sign(M,N,Z={}){M=Q0("message",M);const{seed:H,k2sig:R}=function(k,j,O){if(["recovered","canonical"].some((r)=>(r in O)))throw Error("sign() legacy options not supported");const{lowS:L,prehash:x,extraEntropy:B}=M6(O,C);k=D(k,x);const v=w(k),b=a0(Y,j),A=[i(b),i(v)];if(B!=null&&B!==!1){const r=B===!0?V(z.secretKey):B;A.push(Q0("extraEntropy",r))}const h=I0(...A),d=v;return{seed:h,k2sig(r){const I=m(r);if(!Y.isValidNot0(I))return;const g=Y.inv(I),y=W.BASE.multiply(I).toAffine(),o=Y.create(y.x);if(o===S0)return;const E=Y.create(g*Y.create(d+o*b));if(E===S0)return;let _=(y.x===o?0:2)|Number(y.y&H1),u=E;return L&&T(E)&&(u=Y.neg(E),_^=1),new p(o,u,_)}}}(M,N,Z);return function(k,j,O){if(typeof k!="number"||k<2)throw Error("hashLen must be a number");if(typeof j!="number"||j<2)throw Error("qByteLen must be a number");if(typeof O!="function")throw Error("hmacFn must be a function");const L=(I)=>new Uint8Array(I),x=(I)=>Uint8Array.of(I);let B=L(k),v=L(k),b=0;const A=()=>{B.fill(1),v.fill(0),b=0},h=(...I)=>O(v,B,...I),d=(I=L(0))=>{v=h(x(0),I),B=h(),I.length!==0&&(v=h(x(1),I),B=h())},r=()=>{if(b++>=1000)throw Error("drbg: tried 1000 values");let I=0;const g=[];for(;I<j;){B=h();const y=B.slice();g.push(y),I+=B.length}return I0(...g)};return(I,g)=>{let y;for(A(),d(I);!(y=g(r()));)d();return A(),y}}(Q.outputLen,Y.BYTES,G)(H,R)},verify(M,N,Z,H={}){const{lowS:R,prehash:k,format:j}=M6(H,C);if(Z=Q0("publicKey",Z),N=D(Q0("message",N),k),("strict"in H))throw Error("options.strict was renamed to lowS");const O=j===void 0?function(L){let x;const B=typeof L=="string"||A8(L),v=!B&&L!==null&&typeof L=="object"&&typeof L.r=="bigint"&&typeof L.s=="bigint";if(!B&&!v)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(v)x=new p(L.r,L.s);else if(B){try{x=p.fromBytes(Q0("sig",L),"der")}catch(b){if(!(b instanceof N0.Err))throw b}if(!x)try{x=p.fromBytes(Q0("sig",L),"compact")}catch(b){return!1}}return x||!1}(M):p.fromBytes(Q0("sig",M),j);if(O===!1)return!1;try{const L=W.fromBytes(Z);if(R&&O.hasHighS())return!1;const{r:x,s:B}=O,v=w(N),b=Y.inv(B),A=Y.create(v*b),h=Y.create(x*b),d=W.BASE.multiplyUnsafe(A).add(L.multiplyUnsafe(h));if(d.is0())return!1;return Y.create(d.x)===x}catch(L){return!1}},recoverPublicKey(M,N,Z={}){const{prehash:H}=M6(Z,C);return N=D(N,H),p.fromBytes(M,"recovered").recoverPublicKey(N).toBytes()},Signature:p,hash:Q})},CV=function(W){const{CURVE:Q,curveOpts:J}=function(G){const X={a:G.a,b:G.b,p:G.Fp.ORDER,n:G.n,h:G.h,Gx:G.Gx,Gy:G.Gy},Y=G.Fp;let q=G.allowedPrivateKeyLengths?Array.from(new Set(G.allowedPrivateKeyLengths.map((F)=>Math.ceil(F/2)))):void 0;return{CURVE:X,curveOpts:{Fp:Y,Fn:a1(X.n,{BITS:G.nBitLength,allowedLengths:q,modFromBytes:G.wrapPrivateKey}),allowInfinityPoint:G.allowInfinityPoint,endo:G.endo,isTorsionFree:G.isTorsionFree,clearCofactor:G.clearCofactor,fromBytes:G.fromBytes,toBytes:G.toBytes}}}(W),V={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:Q,curveOpts:J,hash:W.hash,ecdsaOpts:V}},jV=function(W){const{CURVE:Q,curveOpts:J,hash:V,ecdsaOpts:G}=CV(W);return function(X,Y){const q=Y.Point;return Object.assign({},Y,{ProjectivePoint:q,CURVE:Object.assign({},X,qW(q.Fn.ORDER,q.Fn.BITS))})}(W,$V(kV(Q,J),V,G))},S8=function(W,...Q){let J=p7[W];if(J===void 0){const V=O6(r7(W));J=I0(V,V),p7[W]=J}return O6(I0(J,...Q))},v6=function(W){const{Fn:Q,BASE:J}=R1,V=a0(Q,W),G=J.multiply(V);return{scalar:u6(G.y)?V:Q.neg(V),bytes:h6(G)}},jW=function(W){const Q=N8;if(!Q.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");const J=Q.create(W*W),V=Q.create(J*W+BigInt(7));let G=Q.sqrt(V);u6(G)||(G=Q.neg(G));const X=R1.fromAffine({x:W,y:G});return X.assertValidity(),X},BW=function(...W){return R1.Fn.create(n1(S8("BIP0340/challenge",...W)))},b7=function(W){return v6(W).bytes},MV=function(W,Q,J=O8(32)){const{Fn:V}=R1,G=Q0("message",W),{bytes:X,scalar:Y}=v6(Q),q=Q0("auxRand",J,32),F=V.toBytes(Y^n1(S8("BIP0340/aux",q))),U=S8("BIP0340/nonce",F,X,G),{bytes:K,scalar:$}=v6(U),P=BW(K,X,G),z=new Uint8Array(64);if(z.set(K,0),z.set(V.toBytes(V.create($+P*Y)),32),!RW(z,G,X))throw Error("sign: Invalid signature produced");return z},RW=function(W,Q,J){const{Fn:V,BASE:G}=R1,X=Q0("signature",W,64),Y=Q0("message",Q),q=Q0("publicKey",J,32);try{const F=jW(n1(q)),U=n1(X.subarray(0,32));if(!w6(U,f7,j1.p))return!1;const K=n1(X.subarray(32,64));if(!w6(K,f7,j1.n))return!1;const $=BW(V.toBytes(U),h6(F),Y),P=G.multiplyUnsafe(K).add(F.multiplyUnsafe(V.neg($))),{x:z,y:C}=P.toAffine();return!(P.is0()||!u6(C)||z!==U)}catch(F){return!1}},F1=typeof globalThis=="object"&&("crypto"in globalThis)?globalThis.crypto:void 0,i7=(()=>typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function")(),JV=Array.from({length:256},(W,Q)=>Q.toString(16).padStart(2,"0")),I7=48,QV=57,D7=65,VV=70,O7=97,GV=102;class E6{}class n7 extends E6{constructor(W,Q,J,V){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=Q,this.padOffset=J,this.isLE=V,this.buffer=new Uint8Array(W),this.view=k6(this.buffer)}update(W){L8(this),W1(W=g6(W));const{view:Q,buffer:J,blockLen:V}=this,G=W.length;for(let X=0;X<G;){const Y=Math.min(V-this.pos,G-X);if(Y!==V)J.set(W.subarray(X,X+Y),this.pos),this.pos+=Y,X+=Y,this.pos===V&&(this.process(Q,0),this.pos=0);else{const q=k6(W);for(;V<=G-X;X+=V)this.process(q,X)}}return this.length+=W.length,this.roundClean(),this}digestInto(W){L8(this),function(K,$){W1(K);const P=$.outputLen;if(K.length<P)throw Error("digestInto() expects output buffer of length at least "+P)}(W,this),this.finished=!0;const{buffer:Q,view:J,blockLen:V,isLE:G}=this;let{pos:X}=this;Q[X++]=128,I8(this.buffer.subarray(X)),this.padOffset>V-X&&(this.process(J,0),X=0);for(let K=X;K<V;K++)Q[K]=0;(function(K,$,P,z){if(typeof K.setBigUint64=="function")return K.setBigUint64($,P,z);const C=BigInt(32),S=BigInt(4294967295),T=Number(P>>C&S),f=Number(P&S),p=z?4:0,m=z?0:4;K.setUint32($+p,T,z),K.setUint32($+m,f,z)})(J,V-8,BigInt(8*this.length),G),this.process(J,0);const Y=k6(W),q=this.outputLen;if(q%4)throw Error("_sha2: outputLen should be aligned to 32bit");const F=q/4,U=this.get();if(F>U.length)throw Error("_sha2: outputLen bigger than state");for(let K=0;K<F;K++)Y.setUint32(4*K,U[K],G)}digest(){const{buffer:W,outputLen:Q}=this;this.digestInto(W);const J=W.slice(0,Q);return this.destroy(),J}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());const{blockLen:Q,buffer:J,length:V,finished:G,destroyed:X,pos:Y}=this;return W.destroyed=X,W.finished=G,W.length=V,W.pos=Y,V%Q&&W.buffer.set(J),W}clone(){return this._cloneInto()}}var b0=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),qV=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),h0=new Uint32Array(64);class o7 extends n7{constructor(W=32){super(64,W,8,!1),this.A=0|b0[0],this.B=0|b0[1],this.C=0|b0[2],this.D=0|b0[3],this.E=0|b0[4],this.F=0|b0[5],this.G=0|b0[6],this.H=0|b0[7]}get(){const{A:W,B:Q,C:J,D:V,E:G,F:X,G:Y,H:q}=this;return[W,Q,J,V,G,X,Y,q]}set(W,Q,J,V,G,X,Y,q){this.A=0|W,this.B=0|Q,this.C=0|J,this.D=0|V,this.E=0|G,this.F=0|X,this.G=0|Y,this.H=0|q}process(W,Q){for(let $=0;$<16;$++,Q+=4)h0[$]=W.getUint32(Q,!1);for(let $=16;$<64;$++){const P=h0[$-15],z=h0[$-2],C=L0(P,7)^L0(P,18)^P>>>3,S=L0(z,17)^L0(z,19)^z>>>10;h0[$]=S+h0[$-7]+C+h0[$-16]|0}let{A:J,B:V,C:G,D:X,E:Y,F:q,G:F,H:U}=this;for(let $=0;$<64;$++){const P=U+(L0(Y,6)^L0(Y,11)^L0(Y,25))+((K=Y)&q^~K&F)+qV[$]+h0[$]|0,z=(L0(J,2)^L0(J,13)^L0(J,22))+YV(J,V,G)|0;U=F,F=q,q=Y,Y=X+P|0,X=G,G=V,V=J,J=P+z|0}var K;J=J+this.A|0,V=V+this.B|0,G=G+this.C|0,X=X+this.D|0,Y=Y+this.E|0,q=q+this.F|0,F=F+this.G|0,U=U+this.H|0,this.set(J,V,G,X,Y,q,F,U)}roundClean(){I8(h0)}destroy(){this.set(0,0,0,0,0,0,0,0),I8(this.buffer)}}var O6=XV(()=>new o7);class y6 extends E6{constructor(W,Q){super(),this.finished=!1,this.destroyed=!1,l7(W);const J=g6(Q);if(this.iHash=W.create(),typeof this.iHash.update!="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const V=this.blockLen,G=new Uint8Array(V);G.set(J.length>V?W.create().update(J).digest():J);for(let X=0;X<G.length;X++)G[X]^=54;this.iHash.update(G),this.oHash=W.create();for(let X=0;X<G.length;X++)G[X]^=106;this.oHash.update(G),I8(G)}update(W){return L8(this),this.iHash.update(W),this}digestInto(W){L8(this),W1(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){const W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));const{oHash:Q,iHash:J,finished:V,destroyed:G,blockLen:X,outputLen:Y}=this;return W.finished=V,W.destroyed=G,W.blockLen=X,W.outputLen=Y,W.oHash=Q._cloneInto(W.oHash),W.iHash=J._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var a7=(W,Q,J)=>new y6(W,Q).update(J).digest();a7.create=(W,Q)=>new y6(W,Q);var f6=BigInt(0),x6=BigInt(1),$6=(W)=>typeof W=="bigint"&&f6<=W,o1=(W)=>(x6<<BigInt(W))-x6,K0=BigInt(0),U0=BigInt(1),s0=BigInt(2),JW=BigInt(3),QW=BigInt(4),VW=BigInt(5),UV=BigInt(7),GW=BigInt(8),PV=BigInt(9),N7=BigInt(16),zV=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"],C1=BigInt(0),e0=BigInt(1),B6=new WeakMap,zW=new WeakMap;class ZW{constructor(W,Q){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=Q}_unsafeLadder(W,Q,J=this.ZERO){let V=W;for(;Q>C1;)Q&e0&&(J=J.add(V)),V=V.double(),Q>>=e0;return J}precomputeWindow(W,Q){const{windows:J,windowSize:V}=j6(Q,this.bits),G=[];let X=W,Y=X;for(let q=0;q<J;q++){Y=X,G.push(Y);for(let F=1;F<V;F++)Y=Y.add(X),G.push(Y);X=Y.double()}return G}wNAF(W,Q,J){if(!this.Fn.isValid(J))throw Error("invalid scalar");let V=this.ZERO,G=this.BASE;const X=j6(W,this.bits);for(let Y=0;Y<X.windows;Y++){const{nextN:q,offset:F,isZero:U,isNeg:K,isNegF:$,offsetF:P}=T7(J,Y,X);J=q,U?G=G.add(w8($,Q[P])):V=V.add(w8(K,Q[F]))}return g7(J),{p:V,f:G}}wNAFUnsafe(W,Q,J,V=this.ZERO){const G=j6(W,this.bits);for(let X=0;X<G.windows&&J!==C1;X++){const{nextN:Y,offset:q,isZero:F,isNeg:U}=T7(J,X,G);if(J=Y,!F){const K=Q[q];V=V.add(U?K.negate():K)}}return g7(J),V}getPrecomputes(W,Q,J){let V=B6.get(Q);return V||(V=this.precomputeWindow(Q,W),W!==1&&(typeof J=="function"&&(V=J(V)),B6.set(Q,V))),V}cached(W,Q,J){const V=R6(W);return this.wNAF(V,this.getPrecomputes(V,W,J),Q)}unsafe(W,Q,J,V){const G=R6(W);return G===1?this._unsafeLadder(W,Q,V):this.wNAFUnsafe(G,this.getPrecomputes(G,W,J),Q,V)}createCache(W,Q){FW(Q,this.bits),zW.set(W,Q),B6.delete(W)}hasCache(W){return R6(W)!==1}}var y7=(W,Q)=>(W+(W>=0?Q:-Q)/HW)/Q,N0={Err:class extends Error{constructor(W=""){super(W)}},_tlv:{encode(W,Q){const{Err:J}=N0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(1&Q.length)throw new J("tlv.encode: unpadded data");const V=Q.length/2,G=$8(V);if(G.length/2&128)throw new J("tlv.encode: long form length too big");const X=V>127?$8(G.length/2|128):"";return $8(W)+X+G+Q},decode(W,Q){const{Err:J}=N0;let V=0;if(W<0||W>256)throw new J("tlv.encode: wrong tag");if(Q.length<2||Q[V++]!==W)throw new J("tlv.decode: wrong tlv");const G=Q[V++];let X=0;if(128&G){const q=127&G;if(!q)throw new J("tlv.decode(long): indefinite length not supported");if(q>4)throw new J("tlv.decode(long): byte length is too big");const F=Q.subarray(V,V+q);if(F.length!==q)throw new J("tlv.decode: length bytes not complete");if(F[0]===0)throw new J("tlv.decode(long): zero leftmost byte");for(let U of F)X=X<<8|U;if(V+=q,X<128)throw new J("tlv.decode(long): not minimal encoding")}else X=G;const Y=Q.subarray(V,V+X);if(Y.length!==X)throw new J("tlv.decode: wrong value length");return{v:Y,l:Q.subarray(V+X)}}},_int:{encode(W){const{Err:Q}=N0;if(W<S0)throw new Q("integer: negative integers are not allowed");let J=$8(W);if(8&Number.parseInt(J[0],16)&&(J="00"+J),1&J.length)throw new Q("unexpected DER parsing assertion: unpadded hex");return J},decode(W){const{Err:Q}=N0;if(128&W[0])throw new Q("invalid signature integer: negative");if(W[0]===0&&!(128&W[1]))throw new Q("invalid signature integer: unnecessary leading zero");return B1(W)}},toSig(W){const{Err:Q,_int:J,_tlv:V}=N0,G=Q0("signature",W),{v:X,l:Y}=V.decode(48,G);if(Y.length)throw new Q("invalid signature: left bytes after parsing");const{v:q,l:F}=V.decode(2,X),{v:U,l:K}=V.decode(2,F);if(K.length)throw new Q("invalid signature: left bytes after parsing");return{r:J.decode(q),s:J.decode(U)}},hexFromSig(W){const{_tlv:Q,_int:J}=N0,V=Q.encode(2,J.encode(W.r))+Q.encode(2,J.encode(W.s));return Q.encode(48,V)}},S0=BigInt(0),H1=BigInt(1),HW=BigInt(2),C8=BigInt(3),HV=BigInt(4),j1={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},BV={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},RV=BigInt(0),f7=BigInt(1),S6=BigInt(2),N8=a1(j1.p,{sqrt(W){const Q=j1.p,J=BigInt(3),V=BigInt(6),G=BigInt(11),X=BigInt(22),Y=BigInt(23),q=BigInt(44),F=BigInt(88),U=W*W*W%Q,K=U*U*W%Q,$=$0(K,J,Q)*K%Q,P=$0($,J,Q)*K%Q,z=$0(P,S6,Q)*U%Q,C=$0(z,G,Q)*z%Q,S=$0(C,X,Q)*C%Q,T=$0(S,q,Q)*S%Q,f=$0(T,F,Q)*T%Q,p=$0(f,q,Q)*S%Q,m=$0(p,J,Q)*K%Q,w=$0(m,Y,Q)*C%Q,c=$0(w,V,Q)*U%Q,i=$0(c,S6,Q);if(!N8.eql(N8.sqr(i),W))throw Error("Cannot find square root");return i}}),CW=function(W,Q){const J=(V)=>jV({...W,hash:V});return{...J(Q),create:J}}({...j1,Fp:N8,lowS:!0,endo:BV},O6),p7={},h6=(W)=>W.toBytes(!0).slice(1),R1=(()=>CW.Point)(),u6=(W)=>W%S6===RV,n1=B1,m6=(()=>{const W=(Q=O8(48))=>KW(Q,j1.n);return CW.utils.randomSecretKey,{keygen(Q){const J=W(Q);return{secretKey:J,publicKey:b7(J)}},getPublicKey:b7,sign:MV,verify:RW,Point:R1,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:S8,lift_x:jW,pointToBytes:h6,numberToBytesBE:T8,bytesToNumberBE:B1,mod:C0},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),LV=new TextEncoder,IV=new TextDecoder,t0=(W)=>LV.encode(W),r1=(W)=>IV.decode(W),A6=(W)=>Array.from(W,(Q)=>Q.toString(16).padStart(2,"0")).join(""),v0=JSON.stringify,v8=JSON.parse,MW=(W,Q=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((J,V)=>J+V.charCodeAt(0),0)%Q,_6="AES-GCM",DV={},j8=(W)=>DV[W]??=crypto.subtle.digest("SHA-1",t0(W)).then((Q)=>{const J=new Uint8Array(Q);let V="";for(let G of J)V+=G.toString(36);return V}),OV=async(W,Q)=>{const J=crypto.getRandomValues(new Uint8Array(12)),V=await W,G=await crypto.subtle.encrypt({name:_6,iv:J},V,t0(Q));return`${J.join(",")}\$${((X)=>{const Y=new Uint8Array(X);let q="";for(let F=0;F<Y.length;F+=32768)q+=String.fromCharCode(...Y.subarray(F,F+32768));return btoa(q)})(G)}`},xV=async(W,Q)=>{const[J,V]=Q.split("$");if(!J||!V)throw Error("Invalid encrypted payload format");const G=Uint8Array.from(J.split(","),Number),X=await W,Y=await crypto.subtle.decrypt({name:_6,iv:G},X,(q=V,Uint8Array.from(atob(q),(F)=>F.charCodeAt(0)).buffer));var q;return r1(Y)},Z0="GenosRTC",c6=(W,Q)=>Array.from({length:W},Q),wV="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",T6=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(Q)=>wV[Q%62]).join(""),z1=T6(20),k1=Promise.all.bind(Promise),NV=typeof window!="undefined",{entries:SV,fromEntries:LW}=Object,vV=()=>{},w0=(W)=>Error(`${Z0}: ${W}`),B8=(...W)=>W.join("@"),h7="icegatheringstatechange",u7="offer",AV=[...c6(3,(W,Q)=>`stun:stun${Q||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),L6=(W,{rtcConfig:Q,rtcPolyfill:J,turnConfig:V})=>{const G=new(J||RTCPeerConnection)({iceServers:[...AV,...V||[]],...Q}),X={};let Y,q=!1,F=!1;const U=(P)=>Object.assign(P,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage(z){return X.data?.(z.data)},onopen(){return X.connect?.()},onclose(){return X.close?.()},onerror(z){return!z?.error?.message?.includes("User-Initiated Abort")&&X.error?.(z)}}),K=()=>Promise.race([new Promise((P)=>{const z=()=>{G.iceGatheringState==="complete"&&(G.removeEventListener(h7,z),P())};G.addEventListener(h7,z),z()}),new Promise((P)=>setTimeout(P,5000))]).then(()=>({type:G.localDescription.type,sdp:G.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));W?U(Y=G.createDataChannel("data")):G.ondatachannel=({channel:P})=>U(Y=P),G.onnegotiationneeded=async()=>{try{q=!0,await G.setLocalDescription(),X.signal?.(await K())}catch(P){X.error?.(P)}finally{q=!1}},G.onconnectionstatechange=()=>{["disconnected","failed","closed"].includes(G.connectionState)&&X.close?.()},G.ontrack=(P)=>{X.track?.(P.track,P.streams[0]),X.stream?.(P.streams[0])},G.onremovestream=(P)=>X.stream?.(P.stream),W&&!G.canTrickleIceCandidates&&G.onnegotiationneeded();const $=()=>G.getSenders();return{created:Date.now(),connection:G,get channel(){return Y},get isDead(){return G.connectionState==="closed"},async signal(P){if(Y?.readyState!=="open"||P.sdp?.includes("a=rtpmap"))try{if(P.type===u7){if(q||G.signalingState!=="stable"&&!F){if(W)return;await k1([G.setLocalDescription({type:"rollback"}),G.setRemoteDescription(P)])}else await G.setRemoteDescription(P);await G.setLocalDescription();const z=await K();return X.signal?.(z),z}if(P.type==="answer"){F=!0;try{await G.setRemoteDescription(P)}finally{F=!1}}}catch(z){X.error?.(z)}},sendData(P){return Y.send(P)},destroy(){Y?.close(),G.close(),q=F=!1},setHandlers(P){return Object.assign(X,P)},offerPromise:W?new Promise((P)=>X.signal=(z)=>z.type===u7&&P(z)):Promise.resolve(),addStream(P){return P.getTracks().forEach((z)=>G.addTrack(z,P))},removeStream(P){return $().filter((z)=>P.getTracks().includes(z.track)).forEach((z)=>G.removeTrack(z))},addTrack(P,z){return G.addTrack(P,z)},removeTrack(P){const z=$().find((C)=>C.track===P);z&&G.removeTrack(z)},replaceTrack(P,z){return $().find((C)=>C.track===P)?.replaceTrack(z)}}},TV=Object.getPrototypeOf(Uint8Array),l1=16369,R8=255,I6="bufferedamountlow",Z1=(W)=>"@_"+W,gV=(W,Q,J)=>{const V=new Map,G=new Map,X=new Map,Y={},q={},F={},U={},K=new Map,$=(k,...j)=>K.get(k)?.forEach((O)=>O(...j)),P=(k,j)=>{const O=k?Array.isArray(k)?k:[k]:V.keys();return Array.from(O,(L)=>{const x=V.get(L);return x?j(L,x):(console.warn(`${Z0}: no peer with id ${L}`),null)}).filter(Boolean)},z=(k)=>{V.has(k)&&(V.delete(k),delete Y[k],delete q[k],delete F[k],delete U[k],$("peer:leave",k),Q(k))},C=(k)=>new Promise((j,O)=>{let L=setTimeout(()=>{k.removeEventListener(I6,x),O(Error(Z0+": bufferLow timeout"))},5000);function x(){clearTimeout(L),k.removeEventListener(I6,x),j()}k.addEventListener(I6,x)}),S=(k)=>{if(X.has(k))return X.get(k);if(!k)throw w0("action type is required");const j=t0(k);if(j.byteLength>12)throw w0(`"${k}" exceeds 12 bytes`);const O=new Uint8Array(12).map((b,A)=>j[A]||0);let L=0;const x=new Map([["message",new Set],["progress",new Set]]),B=async(b,A,h,d)=>{if(h&&typeof h!="object")throw w0("meta must be object");if(b===void 0)throw w0("data cannot be undefined");const r=b instanceof Blob,I=r||b instanceof ArrayBuffer||b instanceof TV,g=typeof b!="string";if(h&&!I)throw w0("meta only allowed with binary");const y=I?new Uint8Array(r?await b.arrayBuffer():b):t0(g?v0(b):b),o=h?t0(v0(h)):null,E=Math.ceil(y.byteLength/l1)+(h?1:0)||1;if(E>100)throw w0("Message too large, exceeds max chunks 100");const _=c6(E,(u,l)=>{const n=l===E-1,e=h&&l===0,W0=e?o:y.subarray(h?(l-1)*l1:l*l1,h?l*l1:(l+1)*l1),V0=new Uint8Array(15+W0.byteLength);return V0.set(O),V0.set([L],12),V0.set([n|e<<1|I<<2|g<<3],13),V0.set([Math.round((l+1)/E*R8)],14),V0.set(W0,15),V0});return L=L+1&R8,k1(P(A,async(u,l)=>{const{channel:n}=l;for(let e=0;e<E;e++){let W0=0;for(;n.bufferedAmount>n.bufferedAmountLowThreshold;){if(W0++>3)throw w0(`${Z0}: send buffer full, max retries reached for peer ${u}`);try{await C(n)}catch(V0){console.warn(V0.message),await new Promise((A0)=>setTimeout(A0,200))}}if(!V.has(u))break;l.sendData(_[e]),d?.(_[e][14]/R8,u,h)}}))};G.set(k,{listeners:x,send:B});const v={send:B,on(b,A){return x.get(b)?.add(A)},off(b,A){return x.get(b)?.delete(A)}};return X.set(k,v),v},T=async()=>{try{await H(""),await new Promise((k)=>setTimeout(k,99))}catch(k){console.warn(Z0+": error sending leave",k)}for(let[k,j]of V){try{j.destroy()}catch{}V.delete(k)}J()},{send:f,on:p}=S(Z1("ping")),{send:m,on:w}=S(Z1("pong")),{send:c,on:i}=S(Z1("signal")),{send:D,on:M}=S(Z1("stream")),{send:N,on:Z}=S(Z1("track")),{send:H,on:R}=S(Z1("leave"));return W((k,j)=>{V.has(j)||(V.set(j,k),k.setHandlers({data(O){return((L,x)=>{try{const B=new Uint8Array(x),v=r1(B.subarray(0,12)).replace(/\0/g,"");if(!G.has(v))return console.warn(`${Z0}: unregistered type (${v})`);const[b]=B.subarray(12,13),[A]=B.subarray(13,14),[h]=B.subarray(14,15),d=B.subarray(15),r=!!(1&A),I=!!(2&A),g=!!(4&A),y=!!(8&A),o=G.get(v),E=(Y[L]||={})[v]||={};if(E[b]?.chunks?.length>100)return void console.warn(`${Z0}: peer ${L} sent too many chunks for nonce ${b}, ignoring.`);const _=E[b]||={chunks:[]};if(I)try{_.meta=v8(r1(d))}catch{return void console.warn(`${Z0}: failed to parse meta from peer ${L} for type ${v}`)}else _.chunks.push(d);if(o.listeners.get("progress").forEach((n)=>{try{n(h/R8,L,_.meta)}catch(e){console.error(e)}}),!r)return;const u=new Uint8Array(_.chunks.reduce((n,e)=>n+e.byteLength,0));let l;if(_.chunks.reduce((n,e)=>(u.set(e,n),n+e.byteLength),0),delete E[b],g)l=u;else if(y)try{l=v8(r1(u))}catch{return void console.warn(`${Z0}: failed to parse JSON message data from peer ${L} for type ${v}`)}else l=r1(u);o.listeners.get("message").forEach((n)=>{try{n(l,L,_.meta)}catch(e){console.error(e)}})}catch(B){console.error(`${Z0}: error handling data from peer ${L}:`,B)}})(j,O)},stream(O){$("stream:add",O,j,F[j]),delete F[j]},track(O,L){$("track:add",O,L,j,U[j]),delete U[j]},signal(O){return c(O,j)},close(){return z(j)},error(O){console.error(`${Z0}: peer error for ${j}`,O),z(j)}}),$("peer:join",j))}),p("message",(k,j)=>m("",j)),w("message",(k,j)=>{q[j]?.(),delete q[j]}),i("message",(k,j)=>V.get(j)?.signal(k)),M("message",(k,j)=>F[j]=k),Z("message",(k,j)=>U[j]=k),R("message",(k,j)=>z(j)),NV&&addEventListener("beforeunload",T),{on(k,j){K.has(k)||K.set(k,new Set),K.get(k).add(j)},off(k,j){return K.get(k)?.delete(j)},channel:S,leave:T,async ping(k){if(!k)throw w0("ping() requires target peer ID");const j=Date.now();return f("",k),await new Promise((O)=>q[k]=O),Date.now()-j},getPeers(){return LW(Array.from(V,([k,j])=>[k,j.connection]))},addStream(k,j,O){return P(j,async(L,x)=>{O&&await D(O,L),x.addStream(k)})},removeStream(k,j){return P(j,(O,L)=>L.removeStream(k))},addTrack(k,j,O,L){return P(O,async(x,B)=>{L&&await N(L,x),B.addTrack(k,j)})},removeTrack(k,j){return P(j,(O,L)=>L.removeTrack(k))},replaceTrack(k,j,O,L){return P(O,async(x,B)=>{L&&await N(L,x),B.replaceTrack(k,j)})}}},M8={},IW={};if(typeof window!="undefined"){const W=()=>{console.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(IW).forEach((Q)=>{Q.socket&&Q.socket.readyState!==WebSocket.OPEN&&Q.socket.readyState!==WebSocket.CONNECTING&&Q.forceReconnect()})};window.addEventListener("online",()=>{console.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{console.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&W()})}var EV=(W,Q,J,V)=>(W.relayUrls??(V?((G,X)=>{const Y=[...G];let q=Y.length;const F=()=>{const U=1e4*Math.sin(X++);return U-Math.floor(U)};for(;q;){const U=Math.floor(F()*q--);[Y[q],Y[U]]=[Y[U],Y[q]]}return Y})(Q,MW(W.appId)):Q)).slice(0,W.relayUrls?.length??W.relayRedundancy??J),DW={},OW="EVENT",xW=m6.utils.randomSecretKey(),yV=A6(m6.getPublicKey(xW)),d6={},i1={},fV={},wW=()=>Math.floor(Date.now()/1000),NW=(W)=>fV[W]??=MW(W,1e4)+20000,m7=async(W,Q)=>{const J={kind:NW(W),content:Q,pubkey:yV,created_at:wW(),tags:[["x",W]]},V=new Uint8Array(await crypto.subtle.digest("SHA-256",t0(v0([0,J.pubkey,J.created_at,J.kind,J.tags,J.content])))),G=m6.sign(V,xW);return v0([OW,{...J,id:A6(V),sig:A6(G)}])},_7=(W,Q)=>(d6[W]=Q,v0(["REQ",W,{kinds:[NW(Q)],since:wW(),"#x":[Q]}])),c7=(W)=>(delete d6[W],v0(["CLOSE",W])),l6=(({init:W,subscribe:Q,announce:J})=>{const V={};let G,X,Y=!1;return(q,F,U)=>{const{appId:K}=q;if(V[K]?.[F])return V[K][F];if(!q||!F||!K&&!q.firebaseApp)throw w0(q?F?"appId missing":"roomId required":"config required");let $=vV;if(!Y){const Z=W(q);X=c6(20,()=>L6(!0,q)),G=Array.isArray(Z)?Z:[Z];const H=setInterval(()=>{X=X.filter((R)=>{const k=Date.now()-R.created<57333;return k||R.destroy(),k})},57333);V.offerCleanupTimer||=H,Y=!0}const P={},z={},C=B8(Z0,K,F),S=j8(C),T=j8(B8(C,z1)),f=(async(Z,H,R)=>{const k=await crypto.subtle.digest("SHA-256",t0(`${Z}:${H}:${R}`));return crypto.subtle.importKey("raw",k,{name:_6},!1,["encrypt","decrypt"])})(q.password||"",K,F),p=(Z)=>async(H)=>({type:H.type,sdp:await Z(f,H.sdp)}),m=p(xV),w=p(OV),c=(Z,H)=>{z[H]!==Z&&(z[H]?.destroy(),z[H]=Z,$(Z,H),P[H]?.forEach((R)=>R!==Z&&R.destroy()),delete P[H])},i=(Z,H)=>{z[H]===Z&&delete z[H]},D=k1(G.map(async(Z,H)=>{return Q(await Z,await S,await T,(R=H,async(k,j,O)=>{const[L,x]=await k1([S,T]);if(k!==L&&k!==x)return;const{peerId:B,offer:v,answer:b}=typeof j=="string"?v8(j):j;if(B!==z1&&!z[B])if(v){if(P[B]?.[R]&&z1>B)return;const A=L6(!1,q);A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}});try{const h=await m(v);if(A.isDead)return;const[d,r]=await k1([j8(B8(C,B)),A.signal(h).then(w)]);O(d,v0({peerId:z1,answer:r}))}catch{U?.({error:"decryption failed (offer)",appId:K,peerId:B,roomId:F})}}else if(b){const A=P[B]?.[R];if(!A||A.isDead)return;A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}});try{A.signal(await m(b))}catch{U?.({error:"decryption failed (answer)",appId:K,peerId:B,roomId:F})}}else{if(P[B]?.[R])return;const A=X.pop()||L6(!0,q),[h,{offer:d}]=await k1([j8(B8(C,B)),A.offerPromise.then(w).then((r)=>({offer:r}))]);P[B]||=[],P[B][R]=A,A.setHandlers({connect(){return c(A,B)},close(){return i(A,B)}}),O(h,v0({peerId:z1,offer:d,peer:A}))}}));var R})),M=[];D.then((Z)=>{G.forEach((H,R)=>{const k=async()=>{const j=await J(await H,await S,await T);M[R]=setTimeout(k,typeof j=="number"?j:5333)};k()}),V[K][F].onCleanup=()=>{delete V[K][F],M.forEach(clearTimeout),Z.forEach((H)=>H()),Object.keys(V).length===0&&(clearInterval(V.offerCleanupTimer),delete V.offerCleanupTimer)}}),V[K]||={};const N=gV((Z)=>$=Z,(Z)=>delete z[Z],()=>N.onCleanup?.());return V[K][F]=N}})({init(W){return EV(W,pV,5,!0).map((Q)=>{const J=((V,G)=>{const X={};let Y=null;const q=()=>{Y&&(clearTimeout(Y),Y=null);const F=new WebSocket(V);F.onclose=()=>{M8[V]??=3333,Y=setTimeout(q,M8[V]),M8[V]*=2},F.onmessage=(U)=>G(U.data),X.socket=F,X.url=F.url,X.ready=new Promise((U)=>{F.onopen=()=>{M8[V]=3333,U(X)}}),X.send=(U)=>{F.readyState===1&&F.send(U)}};return X.forceReconnect=q,q(),IW[V]=X,X})(Q,(V)=>{const[G,X,Y,q]=v8(V);if(G===OW)i1[X]?.(d6[X],Y.content);else{const F=`${Z0}: relay failure from ${J.url} - `;G==="NOTICE"?console.warn(F+X):G!=="OK"||Y||console.warn(F+q)}});return DW[Q]=J,J.ready})},subscribe(W,Q,J,V){const G=T6(64),X=T6(64);return i1[G]=i1[X]=(Y,q)=>V(Y,q,async(F,U)=>W.send(await m7(F,U))),W.send(_7(G,Q)),W.send(_7(X,J)),()=>{W.send(c7(G)),W.send(c7(X)),delete i1[G],delete i1[X]}},async announce(W,Q){return W.send(await m7(Q,v0({peerId:z1})))}}),xG=(d7=DW,()=>LW(SV(d7).map(([W,Q])=>[W,Q.socket]))),d7,pV=["black.nostrcity.club","eu.purplerelay.com","ftp.halifax.rwth-aachen.de/nostr","nostr.cool110.xyz","nostr.data.haus","nostr.mom","nostr.oxtr.dev","nostr.sathoarder.com","nostr.vulpem.com","playground.nostrcheck.me/relay","relay.agorist.space","relay.binaryrobot.com","relay.fountain.fm","relay.mostro.network","relay.nostraddress.com","relay.nostrdice.com","relay.nostromo.social","relay.oldenburg.cool","relay.snort.social","relay.verified-nostr.com","sendit.nosflare.com","yabu.me/v2","relay.damus.io"].map((W)=>"wss://"+W);function SW(W,Q,J){let V=Q.timestamp;if(V?.physical>Date.now()+7200000)V={physical:Date.now()+7200000,logical:V.logical};if(!W?.timestamp)return{resolved:!0,value:Q.value,timestamp:V};if(J.compare(V,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:Q.value,timestamp:V}}function vW(W,Q=50){const J=`gdb_oplog_${W}`;let V=[];function G(){try{const Y=localStorage.getItem(J);V=Y?JSON.parse(Y):[]}catch(Y){console.error("\u274C GDB: Failed to load oplog from localStorage:",Y),V=[]}}function X(){try{localStorage.setItem(J,JSON.stringify(V))}catch(Y){console.error("\u274C GDB: Failed to save oplog to localStorage:",Y)}}return G(),{add(Y){if(V.push(Y),V.length>Q)V.shift();X()},getDelta(Y,q){if(!Y)return[...V];return V.filter((F)=>q(F.timestamp,Y)>0)},getOldest(){return V[0]},clear(){V=[],localStorage.removeItem(J)}}}var bV=()=>{const W=new Map,Q=async()=>{try{const F=await navigator.storage.getDirectory(),K=await(await F.getFileHandle("~opfs-sync-test",{create:!0})).createSyncAccessHandle?.();return await K?.close(),await F.removeEntry("~opfs-sync-test"),!!K}catch{return!1}};let J="idb";const V=(async()=>{if(await Q())J="sync";else try{const F=await navigator.storage.getDirectory(),K=await(await F.getFileHandle("~opfs-async-test",{create:!0})).createWritable?.();if(await K?.close(),await F.removeEntry("~opfs-async-test"),K)J="async";else J="idb"}catch{J="idb"}})(),G=async(F,U)=>{if(!W.has(F))W.set(F,[]);const K=W.get(F),$=K[K.length-1]||Promise.resolve();let P;const z=new Promise((C)=>P=C);K.push(z);try{return await $,await U()}finally{if(K.shift(),P(),K.length===0)W.delete(F)}},X=(()=>{let F;const U=async()=>{if(!F)F=new Promise((K,$)=>{const P=indexedDB.open("opfs-fallback-db",1);P.onupgradeneeded=()=>P.result.createObjectStore("files"),P.onsuccess=()=>K(P.result),P.onerror=()=>$(P.error)});return F};return{getDB:U,get:async(K)=>{const $=await U();return new Promise((P,z)=>{const S=$.transaction("files","readonly").objectStore("files").get(K);S.onsuccess=()=>P(S.result||new Uint8Array),S.onerror=()=>z(S.error)})},set:async(K,$)=>{const P=await U();return new Promise((z,C)=>{const T=P.transaction("files","readwrite").objectStore("files").put($,K);T.onsuccess=()=>z(),T.onerror=()=>C(T.error)})}}})(),Y=async(F)=>{await V;try{if(J==="idb"){const z=await X.get(F);return{type:"loaded",name:F,data:z}}const K=await(await navigator.storage.getDirectory()).getFileHandle(F);if(J==="sync"){let z;try{z=await K.createSyncAccessHandle();const C=z.getSize(),S=new Uint8Array(C),T=z.read(S,{at:0});return{type:"loaded",name:F,data:S.slice(0,T)}}finally{z?.close()}}const $=await K.getFile(),P=new Uint8Array(await $.arrayBuffer());return{type:"loaded",name:F,data:P}}catch(U){const K=U.name==="NotFoundError"?"File not found":U.message||"Error reading file";return{type:"error",name:F,message:K}}},q=async(F,U)=>{if(await V,!(U instanceof Uint8Array))return{type:"error",name:F,message:"Content must be a Uint8Array"};return G(F,async()=>{try{if(J==="idb")return await X.set(F,U),{type:"saved",name:F};const $=await(await navigator.storage.getDirectory()).getFileHandle(F,{create:!0});if(J==="sync"){let P;try{P=await $.createSyncAccessHandle(),P.truncate(0),P.write(U,{at:0}),P.flush()}finally{P?.close()}}else{let P;try{P=await $.createWritable(),await P.write(U)}finally{await P?.close()}}return{type:"saved",name:F}}catch(K){return{type:"error",name:F,message:K.message||"Error saving file"}}})};self.onmessage=async({data:F})=>{const{type:U,name:K,content:$}=F;await V;const P={load:()=>Y(K),save:()=>q(K,$)};try{const z=P[U],C=z?await z():{type:"error",message:`Unrecognized action type: ${U}`};self.postMessage(C)}catch(z){console.error("\u274C Worker unexpected error:",z),self.postMessage({type:"error",name:K,message:z.message||"Unexpected worker error"})}}},AW=bV;var M1={$eq:(W,Q)=>W===Q,$ne:(W,Q)=>W!==Q,$gt:(W,Q)=>W>Q,$gte:(W,Q)=>W>=Q,$lt:(W,Q)=>W<Q,$lte:(W,Q)=>W<=Q,$in:(W,Q)=>Array.isArray(Q)&&(Array.isArray(W)?W.some((J)=>Q.includes(J)):Q.includes(W)),$between:(W,[Q,J])=>W>=Q&&W<=J,$exists:(W,Q)=>Q?W!==void 0:W===void 0,$text:{global:(W,Q)=>{const J=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=J(Q);return Object.values(W).some((G)=>typeof G==="object"?null.fieldSearch(G,V):J(G).includes(V))},field:(W,Q)=>{const J=(G)=>String(G).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),V=J(Q);return Array.isArray(W)?W.some((G)=>J(G).includes(V)):J(W).includes(V)}},$like:(W,Q)=>typeof W==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}\$`,"i").test(W),$regex:(W,Q)=>typeof W==="string"&&new RegExp(Q.$regex||Q,"i").test(W),$and:(W,Q,J)=>Q.every((V)=>J.createFilter(V,J.allNodes)(W)),$or:(W,Q,J)=>Q.some((V)=>J.createFilter(V,J.allNodes)(W)),$not:(W,Q,J)=>!J.createFilter(Q,J.allNodes)(W),$edge:(W,Q,J)=>{if(!W.edges?.length||typeof Q!=="object"||Q===null)return!1;const V=J.createFilter(Q,J.allNodes),G=[...W.edges],X=new Set(G).add(W.id),Y=[];while(G.length){const q=G.shift(),F=J.allNodes[q];if(!F)continue;if(V(F))Y.push(F);F.edges?.forEach((U)=>!X.has(U)&&X.add(U)&&G.push(U))}if(Y.length)W._edgeResult=Y;return Y.length>0}},i6=(W,Q)=>Q.split(".").reduce((J,V)=>J&&typeof J==="object"&&(V in J)?J[V]:void 0,W),g8=(W,Q)=>{if(Object.keys(W).length===0)return()=>!0;return(J)=>Object.entries(W).every(([V,G])=>{if(V.startsWith("$"))return M1[V](J,G,{createFilter:g8,allNodes:Q});const X=i6(J.value,V);if(typeof G!=="object"||G===null)return M1.$eq(X,G);return Object.entries(G).every(([Y,q])=>{if(Y==="$text")return M1.$text.field(X,q);if(Y==="$between"&&q.every((F)=>F instanceof Date))return M1.$between(new Date(X),q);return M1[Y]?.(X,q,{createFilter:g8,allNodes:Q})??!1})})},r6=(W,Q)=>{const{$edge:J,...V}=Q.query||{},G=g8(V,W),X=Object.values(W).filter(G);let q=[...J?(()=>{const F=g8({$edge:J},W);X.forEach((K)=>F(K));const U=new Map;return X.forEach((K)=>{if(K._edgeResult)K._edgeResult.forEach(($)=>U.set($.id,$)),delete K._edgeResult}),Array.from(U.values())})():X];if(Q.field){const F=Q.order==="asc"?1:-1;q.sort((U,K)=>{const $=i6(U.value,Q.field),P=i6(K.value,Q.field);if(typeof $==="string"&&typeof P==="string")return $.localeCompare(P)*F;return(($??0)-(P??0))*F})}if(Q.$after){const F=q.findIndex((U)=>U.id===Q.$after);q=F>=0?q.slice(F+1):[]}if(Q.$before){const F=q.findIndex((U)=>U.id===Q.$before);q=F>=0?q.slice(0,F):[]}if(Q.$limit)q=q.slice(0,Q.$limit);return q};function TW(){let W=Date.now(),Q=0;return{now(){const J=Date.now();return W=Math.max(W,J),Q++,{physical:W,logical:Q}},update(J){if(!J||typeof J.physical!=="number"||typeof J.logical!=="number"){console.warn("\u26A0\uFE0F HybridClock.update received an invalid remote timestamp.",J);return}W=Math.max(W,J.physical),Q=Math.max(Q,J.logical)+1},compare(J,V){if(!J&&!V)return 0;if(!J)return-1;if(!V)return 1;if(J.physical>V.physical)return 1;if(J.physical<V.physical)return-1;if(J.logical>V.logical)return 1;if(J.logical<V.logical)return-1;return 0}}}var gW=function(W,Q){return W.length===Q.length&&W.every((J,V)=>J===Q[V])};async function mV(){if(console.info(navigator?.storage?.getDirectory?"\u2705 OPFS is enabled.":"\uD83D\uDEAB OPFS is not available."),navigator?.storage?.getDirectory)await navigator.storage.getDirectory()}var _V=function(){const W={nodes:{}};return{get nodes(){return W.nodes},set nodes(J){W.nodes=J||{}},upsert(J,V,G){const X=W.nodes[J];W.nodes[J]={id:J,value:V&&typeof V==="object"?hV(V):V,edges:X?.edges?[...X.edges]:[],timestamp:G}},get(J){return W.nodes[J]||null},link(J,V,G){const X=W.nodes[J],Y=W.nodes[V];if(X&&Y&&!X.edges.includes(V))W.nodes[J]={...X,edges:[...X.edges,V],timestamp:G}},getAllNodes(){return Object.values(W.nodes)},serialize(){return d1.deflate(I1(W.nodes))},deserialize(J){W.nodes=V8(d1.inflate(new Uint8Array(J)))}}};async function yW(W,Q={}){const{password:J,sm:V=!1,ii:G=!1,rx:X=!1,ai:Y=!1,geo:q=!1,relayUrls:F=null,turnConfig:U=null,saveDelay:K=200,oplogSize:$=20}=Q,P=_V(),z=TW(),C=vW(W,$),S=[];let T=null,f=[],p=null,m=null,w=null,c=null;const i=[],D={};Object.defineProperties(D,{hybridClock:{get:()=>z},graph:{get:()=>P},syncChannel:{get:()=>m},ready:{get:()=>Promise.resolve(!0)}});async function M(I,g){const y=new URL(`./${I}.min.js`,import.meta.url).href,o=`https://cdn.jsdelivr.net/npm/genosdb@latest/dist/${I}.min.js`;try{const E=await import(y).catch(()=>{return console.warn(`\u26A0\uFE0F ${I} not found locally, loading from CDN...`),import(o)}),_=g&&typeof g==="object"?g:{},u=typeof E.init==="function"?E.init(D,E,_):null;if(u)Object.assign(D,u);return E}catch(E){throw console.error(`\u274C Initialization of ${I} failed:`,E),E}}function N(){const I=localStorage.getItem(`${W}_time`);T=I?JSON.parse(I):null}function Z(I){T=I,localStorage.setItem(`${W}_time`,JSON.stringify(I))}function H(){try{const I=URL.createObjectURL(new Blob([`(${AW.toString()})()`],{type:"application/javascript"}));p=new Worker(I),URL.revokeObjectURL(I),p.addEventListener("message",({data:g})=>{console.info(`\uD83D\uDCBE ${g.name} ${g.type}`)}),console.info("\u2699\uFE0F Worker initialized successfully.")}catch({message:I}){console.error("\u274C Failed to initialize worker:",I)}}function R(){const I={...P.nodes};f.forEach((g)=>g(I))}const k=uV(()=>R()),j=EW(async()=>{const I=i.splice(0,i.length);if(!I.length)return!1;return await m.send(I),!0},16);async function O(){return crypto.randomUUID()}async function L(){try{const g=await((y)=>new Promise((o,E)=>{const _=async({data:u})=>{if(u.type==="loaded"&&u.name===y)p.removeEventListener("message",_),o(new Uint8Array(u.data));else if(u.type==="error")p.removeEventListener("message",_),E(new Error(u.message||"Unknown error"))};p.addEventListener("message",_),p.postMessage({type:"load",name:y})}))(`${W}_graph.msgpack`).catch(()=>new Uint8Array);g.byteLength>0?P.deserialize(g):console.warn("\u26A0\uFE0F The file '_graph.msgpack' is empty or could not be loaded."),console.info(`\u2705 Graph loaded: [ ${P.getAllNodes().length} nodes ]`)}catch({message:I}){console.error("\u274C Error loading the graph:",I)}}async function x(){try{const I=P.serialize();return await((y,o)=>new Promise((E,_)=>{const u=({data:l})=>{if(l.type==="saved"&&l.name===y)p.removeEventListener("message",u),E();else if(l.type==="error")p.removeEventListener("message",u),_(new Error(l.message||"Save error"))};p.addEventListener("message",u),p.postMessage({type:"save",name:y,content:o})}))(`${W}_graph.msgpack`,I),w.postMessage("update"),!0}catch({message:I}){throw console.error("\u274C Save error:",I),new Error("Save failed")}}const B=EW(()=>x(),K);async function v(I){try{console.info("\uD83D\uDD04 Applying full graph from remote..."),P.nodes={...I.nodes},await x()}catch({message:g}){console.error(`\u274C Error applying the full graph: ${g}`)}}async function b(I){let g=!1,y=null;const o={upsert:(E)=>{const _=P.get(E.id),u=SW(_,E,z);if(u.resolved){if(P.upsert(E.id,u.value,u.timestamp),z.update(u.timestamp),C.add({type:"upsert",id:E.id,timestamp:u.timestamp}),g=!0,!y||z.compare(u.timestamp,y)>0)y=u.timestamp}},remove:(E)=>{const _=P.get(E.id);if(_&&z.compare(_.timestamp,E.timestamp)<0){if(delete P.nodes[E.id],z.update(E.timestamp),C.add({type:"remove",id:E.id,timestamp:E.timestamp}),g=!0,!y||z.compare(E.timestamp,y)>0)y=E.timestamp}},link:(E)=>{const _=P.get(E.sourceId),u=P.get(E.targetId);if(_&&u&&z.compare(_.timestamp,E.timestamp)<0){if(P.link(E.sourceId,E.targetId,E.timestamp),z.update(E.timestamp),C.add({type:"link",sourceId:E.sourceId,targetId:E.targetId,timestamp:E.timestamp}),g=!0,!y||z.compare(E.timestamp,y)>0)y=E.timestamp}},sync:async(E)=>{const _=E.timestamp;if(_===null){console.info("\uD83D\uDCEC [SYNC REQUEST] from new peer (no timestamp). Sending full graph."),await m.send([{type:"syncReceive",graph:P}]);return}console.info("\uD83D\uDCEC [SYNC REQUEST] since:",new Date(_.physical).toLocaleString());const u=C.getOldest();if(u&&z.compare(_,u.timestamp)<0){console.info("\uD83D\uDCA5 [FALLBACK TRIGGERED] Peer is too far behind. Sending FULL graph state."),await m.send([{type:"syncReceive",graph:P}]);return}const l=C.getDelta(_,z.compare);if(l.length>0){const n=l.map((W0)=>{if(W0.type==="upsert"){const V0=P.get(W0.id);return{...W0,value:V0?V0.value:null}}return W0}),e=d1.deflate(I1(n));console.info(`\uD83D\uDE80 [DELTA SYNC SENDING] Found ${l.length} new operations to send.`),await m.send([{type:"deltaSync",operations:e}])}else console.info("\u2705 [ALREADY SYNCED] Peer is up-to-date. Nothing to send.")},deltaSync:(E)=>{const _=E.operations.byteLength,u=V8(d1.inflate(E.operations)),l=I1(u).byteLength;console.info(`\uD83D\uDEF0\uFE0F [DELTA SYNC RECEIVED] Applying ${u.length} operations from a peer.`),console.info(` Compressed: ${_} bytes, Decompressed: ${l} bytes.`);for(let n of u)o[n.type]?.(n)},syncReceive:async(E)=>{if(console.info("\uD83D\uDCE6 [FULL SYNC RECEIVED] Overwriting local state with full graph from a peer."),E.graph&&E.graph.nodes){await v(E.graph),C.clear(),console.info("\uD83D\uDD12 Oplog has been cleared due to full sync."),g=!0;let _=null;for(let u in E.graph.nodes){const l=E.graph.nodes[u];if(l.timestamp&&(!_||z.compare(l.timestamp,_)>0))_=l.timestamp}if(_)console.info("\uD83D\uDCC8 [GLOBAL TIMESTAMP] Updated from full sync."),y=_,z.update(_)}else console.error("\u274C Full sync failed: received graph data is invalid.",E.graph)}};for(let E of I)if(o[E.type])await o[E.type](E);else console.warn(`\uD83E\uDD37\u200D\u2640\uFE0F [UNKNOWN MESSAGE TYPE] Received unhandled message type: "${E.type}"`);if(y){if(!T||z.compare(y,T)>0)console.info(`\uD83D\uDCC8 [GLOBAL TIMESTAMP] Advanced from ${T?.logical} to ${y.logical}.`),Z(y)}if(g)console.info("\uD83D\uDCBE [STATE CHANGED] Saving state and emitting update."),await x(),R()}Object.assign(D,{use(I){if(typeof I==="function")S.push(I)},async put(I,g){const y=z.now();Z(y),g??=await O(),P.upsert(g,I,y),C.add({type:"upsert",id:g,timestamp:y}),B();try{i.push({type:"upsert",id:g,value:I,timestamp:y}),j().catch(()=>{})}finally{k()}return g},async link(I,g){const y=z.now();if(!P.nodes[I]||!P.nodes[g]){console.warn(`\u26A0\uFE0F One or both nodes (${I}, ${g}) do not exist.`);return}P.link(I,g,y),C.add({type:"link",sourceId:I,targetId:g,timestamp:y}),B(),Z(y);try{i.push({type:"link",sourceId:I,targetId:g,timestamp:y}),j().catch(()=>{})}finally{k()}},async remove(I){const g=z.now(),y=P.get(I);if(!y)return console.warn(`\u26A0\uFE0F Node with ID '${I}' not found.`);delete P.nodes[I],C.add({type:"remove",id:I,timestamp:g}),Object.values(P.nodes).forEach((o)=>o.edges=o.edges.filter((E)=>E!==I)),B(),Z(g);try{i.push({type:"remove",id:I,value:y.value,timestamp:g}),j().catch(()=>{})}finally{k()}},async get(I,g=null){if(typeof I!=="string")return{result:null};const y=P.get(I);if(!y){if(g)g(null);return{result:null}}const o=(u)=>{if(!u)return null;const l=u.value!==null&&typeof u.value==="object"?{...u.value}:u.value;return{...u,value:l}};if(!g)return{result:o(y)};let E=y.timestamp;g(o(y));const _=(u)=>{const l=u[I];if(l){if(z.compare(l.timestamp,E)>0)E=l.timestamp,g(o(l))}else g(null),f.splice(f.indexOf(_),1)};return f.push(_),{result:o(y),unsubscribe:()=>{const u=f.indexOf(_);if(u>-1)f.splice(u,1)}}},async map(...I){let y={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},o=null,E=!1;I.forEach((n)=>typeof n==="function"?o=n:n&&typeof n==="object"&&(E||=("realtime"in n),Object.assign(y,n))),o&&!E&&(y.realtime=!0);let _=r6(P.nodes,y),u=null;const l=(n)=>{const e=new Map(_.map((J0)=>[J0.id,J0])),W0=new Map(n.map((J0)=>[J0.id,J0])),V0=[],A0=[],n6=[];for(let[J0,T0]of W0){const s1=e.get(J0);if(!s1)V0.push(T0);else if((T0.timestamp?.physical||0)!==(s1.timestamp?.physical||0)||(T0.timestamp?.logical||0)!==(s1.timestamp?.logical||0)||!gW(T0.edges||[],s1.edges||[]))A0.push(T0)}for(let[J0]of e)if(!W0.has(J0))n6.push(e.get(J0));const E8=(J0,T0)=>o({id:J0.id,value:T0==="removed"?null:J0.value,edges:J0.edges||[],timestamp:J0.timestamp||null,action:T0});V0.forEach((J0)=>E8(J0,"added")),n6.forEach((J0)=>E8(J0,"removed")),A0.forEach((J0)=>E8(J0,"updated"))};if(o){if(_.forEach((n)=>{o({id:n.id,value:n.value,edges:n.edges,timestamp:n.timestamp,action:"initial"})}),y.realtime){const n=(e)=>{const W0=e.timestamp?.physical||0,V0=e.timestamp?.logical||0,A0=(e.edges||[]).join(",");return`${e.id}:${W0}:${V0}:${A0}`};u=(e)=>{const W0=r6(e,y);if(W0.length!==_.length)l(W0),_=W0;else{const V0=W0.map(n),A0=_.map(n);if(!gW(V0,A0))l(W0),_=W0}},f.push(u)}}return{results:_,...y.realtime&&o&&u&&{unsubscribe:()=>{const n=f.indexOf(u);n>-1&&f.splice(n,1)}}}},async clear(){P.nodes={};try{await(await navigator.storage.getDirectory()).removeEntry(`${W}_graph.msgpack`)}catch({message:I}){console.warn(`\u26A0\uFE0F Error deleting _graph.msgpack: ${I}`)}R(),console.info("\u2705 All data has been deleted.")}}),H(),N(),await mV(),await L();const A=[];if(V)A.push(M("sm",V));if(Y)A.push(M("AIQuery",Y));if(X)A.push(M("radixindex",X));if(G)A.push(M("invertedindex",G));if(q)A.push(M("geo",q));await Promise.all(A);const h=`graph-sync-room-${W}`,d={appId:"1234",...J&&{password:J}};if(F)d.relayUrls=F;if(U)d.turnConfig=U;const r=l6(d,h);return m=r.channel("syncGraph"),c=l6(d,`app-sync-${W}`),D.room=c,r.on("peer:join",async(I)=>{console.info("\u26A1 New peer connected:",I),m.send([{type:"sync",timestamp:T}])}),r.on("peer:leave",(I)=>{console.info("\u26A1 Peer disconnected:",I)}),m.on("message",async(I)=>{let g=I;for(let y of S)try{if(g=await y(g),!g||g.length===0)return}catch(o){console.error("\u274C GDB: Middleware error, discarding message.",o);return}await b(g)}),w=new BroadcastChannel(`graphdb_sync_${W}`),w.onmessage=async(I)=>{if(I.data==="update")console.info("\uD83D\uDD04 Update received from another tab..."),await L(),N(),k()},console.info(`\u2705 GenosDB [ ${W} ] instance is ready.`),D}var hV=(W)=>{if(W===null||typeof W!=="object")return W;if(typeof structuredClone==="function")return structuredClone(W);return JSON.parse(JSON.stringify(W))},EW=(W,Q=16)=>{let J=null,V=null;return(...G)=>{if(!V)V={},V.promise=new Promise((Y,q)=>(V.resolve=Y,V.reject=q));if(J)("cancelIdleCallback"in window?cancelIdleCallback:clearTimeout)(J);const X=async()=>{J=null;try{V.resolve(await W(...G))}catch(Y){V.reject(Y)}finally{V=null}};return J=("requestIdleCallback"in window)?requestIdleCallback(X,{timeout:Q}):setTimeout(X,Q),V.promise}},uV=(W)=>{let Q=null;return()=>{if(Q!==null)return;Q=requestAnimationFrame(()=>{Q=null,W()})}};var dG=yW;class cV{constructor(){throw new Error("\u26A0\uFE0F WARNING: `new GDB()` is deprecated and will be removed. "+"Migrate to async factory function `const db = await gdb(...)`.\nMigration Guide: https://github.com/estebanrfp/gdb/wiki/Migration-Guide\nWiki: https://github.com/estebanrfp/gdb/wiki")}}export{dG as gdb,cV as GDB};
|