genosdb 0.19.0 → 0.21.0
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 +6 -2
- package/dist/gdb.min.js +1 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/genosrtc.min.js +1 -1
- package/dist/genosrtc.min.js.gz +0 -0
- package/dist/genossrv.min.js +256 -0
- package/dist/genossrv.min.js.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/package.json +3 -2
- package/dist/genosrtc-cells.min.js +0 -2
- package/dist/genosrtc-cells.min.js.gz +0 -0
- package/dist/ii.min.js +0 -2
- package/dist/ii.min.js.gz +0 -0
- package/dist/rx.min.js +0 -2
- package/dist/rx.min.js.gz +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
3
|
+
var E_=Object.create;var{getPrototypeOf:$_,defineProperty:UN,getOwnPropertyNames:F_}=Object;var S_=Object.prototype.hasOwnProperty;function x_(W){return this[W]}var k_,__,_1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var V=G?k_??=new WeakMap:__??=new WeakMap,Z=V.get(W);if(Z)return Z}X=W!=null?E_($_(W)):{};let Q=G||!W||!W.__esModule?UN(X,"default",{value:W,enumerable:!0}):X;for(let J of F_(W))if(!S_.call(Q,J))UN(Q,J,{get:x_.bind(W,J),enumerable:!0});if(Y)V.set(W,Q);return Q};var Y1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var y_=(W)=>W;function v_(W,G){this[W]=y_.bind(null,G)}var qN=(W,G)=>{for(var X in G)UN(W,X,{get:G[X],enumerable:!0,configurable:!0,set:v_.bind(G,X)})};var E8=import.meta.require;var rT=Y1(($e,iT)=>{var AX=1000,HX=AX*60,NX=HX*60,EW=NX*24,Bh=EW*7,Eh=EW*365.25;iT.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return $h(W);else if(X==="number"&&isFinite(W))return G.long?Sh(W):Fh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function $h(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*Eh;case"weeks":case"week":case"w":return X*Bh;case"days":case"day":case"d":return X*EW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*NX;case"minutes":case"minute":case"mins":case"min":case"m":return X*HX;case"seconds":case"second":case"secs":case"sec":case"s":return X*AX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function Fh(W){var G=Math.abs(W);if(G>=EW)return Math.round(W/EW)+"d";if(G>=NX)return Math.round(W/NX)+"h";if(G>=HX)return Math.round(W/HX)+"m";if(G>=AX)return Math.round(W/AX)+"s";return W+"ms"}function Sh(W){var G=Math.abs(W);if(G>=EW)return RU(W,G,EW,"day");if(G>=NX)return RU(W,G,NX,"hour");if(G>=HX)return RU(W,G,HX,"minute");if(G>=AX)return RU(W,G,AX,"second");return W+" ms"}function RU(W,G,X,Y){var V=G>=X*1.5;return Math.round(W/X)+" "+Y+(V?"s":"")}});var RI=Y1((Fe,aT)=>{function xh(W){X.debug=X,X.default=X,X.coerce=U,X.disable=Q,X.enable=V,X.enabled=J,X.humanize=rT(),X.destroy=q,Object.keys(W).forEach((A)=>{X[A]=W[A]}),X.names=[],X.skips=[],X.formatters={};function G(A){let N=0;for(let H=0;H<A.length;H++)N=(N<<5)-N+A.charCodeAt(H),N|=0;return X.colors[Math.abs(N)%X.colors.length]}X.selectColor=G;function X(A){let N,H=null,z,w;function C(...D){if(!C.enabled)return;let x=C,h=Number(new Date),p=h-(N||h);if(x.diff=p,x.prev=N,x.curr=h,N=h,D[0]=X.coerce(D[0]),typeof D[0]!=="string")D.unshift("%O");let v=0;D[0]=D[0].replace(/%([a-zA-Z%])/g,(c,l)=>{if(c==="%%")return"%";v++;let G0=X.formatters[l];if(typeof G0==="function"){let b=D[v];c=G0.call(x,b),D.splice(v,1),v--}return c}),X.formatArgs.call(x,D),(x.log||X.log).apply(x,D)}if(C.namespace=A,C.useColors=X.useColors(),C.color=X.selectColor(A),C.extend=Y,C.destroy=X.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(z!==X.namespaces)z=X.namespaces,w=X.enabled(A);return w},set:(D)=>{H=D}}),typeof X.init==="function")X.init(C);return C}function Y(A,N){let H=X(this.namespace+(typeof N>"u"?":":N)+A);return H.log=this.log,H}function V(A){X.save(A),X.namespaces=A,X.names=[],X.skips=[];let N=(typeof A==="string"?A:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of N)if(H[0]==="-")X.skips.push(H.slice(1));else X.names.push(H)}function Z(A,N){let H=0,z=0,w=-1,C=0;while(H<A.length)if(z<N.length&&(N[z]===A[H]||N[z]==="*"))if(N[z]==="*")w=z,C=H,z++;else H++,z++;else if(w!==-1)z=w+1,C++,H=C;else return!1;while(z<N.length&&N[z]==="*")z++;return z===N.length}function Q(){let A=[...X.names,...X.skips.map((N)=>"-"+N)].join(",");return X.enable(""),A}function J(A){for(let N of X.skips)if(Z(A,N))return!1;for(let N of X.names)if(Z(A,N))return!0;return!1}function U(A){if(A instanceof Error)return A.stack||A.message;return A}function q(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}aT.exports=xh});var tT=Y1((sT,BU)=>{sT.formatArgs=_h;sT.save=yh;sT.load=vh;sT.useColors=kh;sT.storage=gh();sT.destroy=(()=>{let W=!1;return()=>{if(!W)W=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();sT.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function kh(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let W;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(W=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(W[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function _h(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+BU.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(V)=>{if(V==="%%")return;if(X++,V==="%c")Y=X}),W.splice(Y,0,G)}sT.log=console.debug||console.log||(()=>{});function yh(W){try{if(W)sT.storage.setItem("debug",W);else sT.storage.removeItem("debug")}catch(G){}}function vh(){let W;try{W=sT.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function gh(){try{return localStorage}catch(W){}}BU.exports=RI()(sT);var{formatters:uh}=BU.exports;uh.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var XM=Y1((WM,$U)=>{var dh=E8("tty"),EU=E8("util");WM.init=th;WM.log=rh;WM.formatArgs=nh;WM.save=ah;WM.load=sh;WM.useColors=oh;WM.destroy=EU.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");WM.colors=[6,2,3,4,5,1];try{let W=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(W&&(W.stderr||W).level>=2)WM.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(W){}WM.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(V,Z)=>{return Z.toUpperCase()}),Y=process.env[G];if(/^(yes|on|true|enabled)$/i.test(Y))Y=!0;else if(/^(no|off|false|disabled)$/i.test(Y))Y=!1;else if(Y==="null")Y=null;else Y=Number(Y);return W[X]=Y,W},{});function oh(){return"colors"in WM.inspectOpts?Boolean(WM.inspectOpts.colors):dh.isatty(process.stderr.fd)}function nh(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,V="\x1B[3"+(Y<8?Y:"8;5;"+Y),Z=` ${V};1m${G} \x1B[0m`;W[0]=Z+W[0].split(`
|
|
4
|
+
`).join(`
|
|
5
|
+
`+Z),W.push(V+"m+"+$U.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=ih()+G+" "+W[0]}function ih(){if(WM.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function rh(...W){return process.stderr.write(EU.formatWithOptions(WM.inspectOpts,...W)+`
|
|
6
|
+
`)}function ah(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function sh(){return process.env.DEBUG}function th(W){W.inspectOpts={};let G=Object.keys(WM.inspectOpts);for(let X=0;X<G.length;X++)W.inspectOpts[G[X]]=WM.inspectOpts[G[X]]}$U.exports=RI()(WM);var{formatters:eT}=$U.exports;eT.o=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts).split(`
|
|
7
|
+
`).map((G)=>G.trim()).join(" ")};eT.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YM=Y1((ke,LI)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)LI.exports=tT();else LI.exports=XM()});var FU=Y1((ZM)=>{Object.defineProperty(ZM,"__esModule",{value:!0});var Qb=E8("net");function Jb(W){switch(Qb.isIP(W)){case 4:return Buffer.from(W.split(".").map((V)=>parseInt(V,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let V=0;V<G.length;V++){if(G[V]===""){if(V+1<G.length&&G[V+1]!=="")Y=16-(G.length-V-1)*2;continue}X.writeUInt16BE(parseInt(G[V],16),Y),Y+=2}return X;default:return null}}ZM.bytesFromIP=Jb;function Ub(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,V=-1,Z=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>Z)Z=Y,V=X}else X=-1,Y=0;G.push(J.toString(16))}if(Z>0){let Q="",J=G.slice(V+Z);if(G.length=V,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}ZM.bytesToIP=Ub;var A6=Object.create(null),VM=/^[0-9.]+$/;function qb(W){if(VM.test(W)&&A6[W]!=="")return W;return A6[W]==null?"":A6[W]}ZM.getOID=qb;function Ab(W){if(!VM.test(W)&&A6[W]!=="")return W;return A6[W]==null?W:A6[W]}ZM.getOIDName=Ab;function N0(W,G){A6[W]=G,A6[G]=W}N0("1.2.840.113549.1.1.1","rsaEncryption");N0("1.2.840.113549.1.1.4","md5WithRsaEncryption");N0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");N0("1.2.840.113549.1.1.8","mgf1");N0("1.2.840.113549.1.1.10","RSASSA-PSS");N0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");N0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");N0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");N0("1.2.840.10045.2.1","ecEncryption");N0("1.2.840.10045.4.1","ecdsaWithSha1");N0("1.2.840.10045.4.3.2","ecdsaWithSha256");N0("1.2.840.10045.4.3.3","ecdsaWithSha384");N0("1.2.840.10045.4.3.4","ecdsaWithSha512");N0("1.2.840.10040.4.3","dsaWithSha1");N0("2.16.840.1.101.3.4.3.2","dsaWithSha256");N0("1.3.14.3.2.7","desCBC");N0("1.3.14.3.2.26","sha1");N0("2.16.840.1.101.3.4.2.1","sha256");N0("2.16.840.1.101.3.4.2.2","sha384");N0("2.16.840.1.101.3.4.2.3","sha512");N0("1.2.840.113549.2.5","md5");N0("1.3.101.110","X25519");N0("1.3.101.111","X448");N0("1.3.101.112","Ed25519");N0("1.3.101.113","Ed448");N0("1.2.840.113549.1.7.1","data");N0("1.2.840.113549.1.7.2","signedData");N0("1.2.840.113549.1.7.3","envelopedData");N0("1.2.840.113549.1.7.4","signedAndEnvelopedData");N0("1.2.840.113549.1.7.5","digestedData");N0("1.2.840.113549.1.7.6","encryptedData");N0("1.2.840.113549.1.9.1","emailAddress");N0("1.2.840.113549.1.9.2","unstructuredName");N0("1.2.840.113549.1.9.3","contentType");N0("1.2.840.113549.1.9.4","messageDigest");N0("1.2.840.113549.1.9.5","signingTime");N0("1.2.840.113549.1.9.6","counterSignature");N0("1.2.840.113549.1.9.7","challengePassword");N0("1.2.840.113549.1.9.8","unstructuredAddress");N0("1.2.840.113549.1.9.14","extensionRequest");N0("1.2.840.113549.1.9.20","friendlyName");N0("1.2.840.113549.1.9.21","localKeyId");N0("1.2.840.113549.1.9.22.1","x509Certificate");N0("1.2.840.113549.1.12.10.1.1","keyBag");N0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");N0("1.2.840.113549.1.12.10.1.3","certBag");N0("1.2.840.113549.1.12.10.1.4","crlBag");N0("1.2.840.113549.1.12.10.1.5","secretBag");N0("1.2.840.113549.1.12.10.1.6","safeContentsBag");N0("1.2.840.113549.1.5.13","pkcs5PBES2");N0("1.2.840.113549.1.5.12","pkcs5PBKDF2");N0("1.2.840.113549.2.7","hmacWithSha1");N0("1.2.840.113549.2.9","hmacWithSha256");N0("1.2.840.113549.2.10","hmacWithSha384");N0("1.2.840.113549.2.11","hmacWithSha512");N0("1.2.840.113549.3.7","3desCBC");N0("2.16.840.1.101.3.4.1.2","aesCBC128");N0("2.16.840.1.101.3.4.1.42","aesCBC256");N0("2.5.4.3","commonName");N0("2.5.4.5","serialName");N0("2.5.4.6","countryName");N0("2.5.4.7","localityName");N0("2.5.4.8","stateOrProvinceName");N0("2.5.4.10","organizationName");N0("2.5.4.11","organizationalUnitName");N0("2.5.4.15","businessCategory");N0("2.16.840.1.113730.1.1","nsCertType");N0("2.5.29.2","keyAttributes");N0("2.5.29.4","keyUsageRestriction");N0("2.5.29.6","subtreesConstraint");N0("2.5.29.9","subjectDirectoryAttributes");N0("2.5.29.14","subjectKeyIdentifier");N0("2.5.29.15","keyUsage");N0("2.5.29.16","privateKeyUsagePeriod");N0("2.5.29.17","subjectAltName");N0("2.5.29.18","issuerAltName");N0("2.5.29.19","basicConstraints");N0("2.5.29.20","cRLNumber");N0("2.5.29.21","cRLReason");N0("2.5.29.22","expirationDate");N0("2.5.29.23","instructionCode");N0("2.5.29.24","invalidityDate");N0("2.5.29.27","deltaCRLIndicator");N0("2.5.29.28","issuingDistributionPoint");N0("2.5.29.29","certificateIssuer");N0("2.5.29.30","nameConstraints");N0("2.5.29.31","cRLDistributionPoints");N0("2.5.29.32","certificatePolicies");N0("2.5.29.33","policyMappings");N0("2.5.29.35","authorityKeyIdentifier");N0("2.5.29.36","policyConstraints");N0("2.5.29.37","extKeyUsage");N0("2.5.29.46","freshestCRL");N0("2.5.29.54","inhibitAnyPolicy");N0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");N0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");N0("1.3.6.1.4.1.11129.2.4.2","timestampList");N0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");N0("1.3.6.1.5.5.7.3.1","serverAuth");N0("1.3.6.1.5.5.7.3.2","clientAuth");N0("1.3.6.1.5.5.7.3.3","codeSigning");N0("1.3.6.1.5.5.7.3.4","emailProtection");N0("1.3.6.1.5.5.7.3.8","timeStamping");N0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");N0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Y1((ye,SU)=>{(function(W){var G=function(O){var P,T=new Float64Array(16);if(O)for(P=0;P<O.length;P++)T[P]=O[P];return T},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),V=new Uint8Array(32);V[0]=9;var Z=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),q=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),A=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),N=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function z(O,P,T,I){O[P]=T>>24&255,O[P+1]=T>>16&255,O[P+2]=T>>8&255,O[P+3]=T&255,O[P+4]=I>>24&255,O[P+5]=I>>16&255,O[P+6]=I>>8&255,O[P+7]=I&255}function w(O,P,T,I,E){var a,e=0;for(a=0;a<E;a++)e|=O[P+a]^T[I+a];return(1&e-1>>>8)-1}function C(O,P,T,I){return w(O,P,T,I,16)}function D(O,P,T,I){return w(O,P,T,I,32)}function x(O,P,T,I){var E=I[0]&255|(I[1]&255)<<8|(I[2]&255)<<16|(I[3]&255)<<24,a=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,e=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,A0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,D0=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,n0=I[4]&255|(I[5]&255)<<8|(I[6]&255)<<16|(I[7]&255)<<24,g0=P[0]&255|(P[1]&255)<<8|(P[2]&255)<<16|(P[3]&255)<<24,f1=P[4]&255|(P[5]&255)<<8|(P[6]&255)<<16|(P[7]&255)<<24,m0=P[8]&255|(P[9]&255)<<8|(P[10]&255)<<16|(P[11]&255)<<24,U1=P[12]&255|(P[13]&255)<<8|(P[14]&255)<<16|(P[15]&255)<<24,q1=I[8]&255|(I[9]&255)<<8|(I[10]&255)<<16|(I[11]&255)<<24,M1=T[16]&255|(T[17]&255)<<8|(T[18]&255)<<16|(T[19]&255)<<24,K1=T[20]&255|(T[21]&255)<<8|(T[22]&255)<<16|(T[23]&255)<<24,A1=T[24]&255|(T[25]&255)<<8|(T[26]&255)<<16|(T[27]&255)<<24,I1=T[28]&255|(T[29]&255)<<8|(T[30]&255)<<16|(T[31]&255)<<24,H1=I[12]&255|(I[13]&255)<<8|(I[14]&255)<<16|(I[15]&255)<<24,p0=E,a0=a,h0=e,d0=A0,o0=D0,_0=n0,V0=g0,Z0=f1,z0=m0,U0=U1,H0=q1,O0=M1,J1=K1,P1=A1,L1=I1,R1=H1,y;for(var E1=0;E1<20;E1+=2)y=p0+J1|0,o0^=y<<7|y>>>25,y=o0+p0|0,z0^=y<<9|y>>>23,y=z0+o0|0,J1^=y<<13|y>>>19,y=J1+z0|0,p0^=y<<18|y>>>14,y=_0+a0|0,U0^=y<<7|y>>>25,y=U0+_0|0,P1^=y<<9|y>>>23,y=P1+U0|0,a0^=y<<13|y>>>19,y=a0+P1|0,_0^=y<<18|y>>>14,y=H0+V0|0,L1^=y<<7|y>>>25,y=L1+H0|0,h0^=y<<9|y>>>23,y=h0+L1|0,V0^=y<<13|y>>>19,y=V0+h0|0,H0^=y<<18|y>>>14,y=R1+O0|0,d0^=y<<7|y>>>25,y=d0+R1|0,Z0^=y<<9|y>>>23,y=Z0+d0|0,O0^=y<<13|y>>>19,y=O0+Z0|0,R1^=y<<18|y>>>14,y=p0+d0|0,a0^=y<<7|y>>>25,y=a0+p0|0,h0^=y<<9|y>>>23,y=h0+a0|0,d0^=y<<13|y>>>19,y=d0+h0|0,p0^=y<<18|y>>>14,y=_0+o0|0,V0^=y<<7|y>>>25,y=V0+_0|0,Z0^=y<<9|y>>>23,y=Z0+V0|0,o0^=y<<13|y>>>19,y=o0+Z0|0,_0^=y<<18|y>>>14,y=H0+U0|0,O0^=y<<7|y>>>25,y=O0+H0|0,z0^=y<<9|y>>>23,y=z0+O0|0,U0^=y<<13|y>>>19,y=U0+z0|0,H0^=y<<18|y>>>14,y=R1+L1|0,J1^=y<<7|y>>>25,y=J1+R1|0,P1^=y<<9|y>>>23,y=P1+J1|0,L1^=y<<13|y>>>19,y=L1+P1|0,R1^=y<<18|y>>>14;p0=p0+E|0,a0=a0+a|0,h0=h0+e|0,d0=d0+A0|0,o0=o0+D0|0,_0=_0+n0|0,V0=V0+g0|0,Z0=Z0+f1|0,z0=z0+m0|0,U0=U0+U1|0,H0=H0+q1|0,O0=O0+M1|0,J1=J1+K1|0,P1=P1+A1|0,L1=L1+I1|0,R1=R1+H1|0,O[0]=p0>>>0&255,O[1]=p0>>>8&255,O[2]=p0>>>16&255,O[3]=p0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=h0>>>0&255,O[9]=h0>>>8&255,O[10]=h0>>>16&255,O[11]=h0>>>24&255,O[12]=d0>>>0&255,O[13]=d0>>>8&255,O[14]=d0>>>16&255,O[15]=d0>>>24&255,O[16]=o0>>>0&255,O[17]=o0>>>8&255,O[18]=o0>>>16&255,O[19]=o0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=V0>>>0&255,O[25]=V0>>>8&255,O[26]=V0>>>16&255,O[27]=V0>>>24&255,O[28]=Z0>>>0&255,O[29]=Z0>>>8&255,O[30]=Z0>>>16&255,O[31]=Z0>>>24&255,O[32]=z0>>>0&255,O[33]=z0>>>8&255,O[34]=z0>>>16&255,O[35]=z0>>>24&255,O[36]=U0>>>0&255,O[37]=U0>>>8&255,O[38]=U0>>>16&255,O[39]=U0>>>24&255,O[40]=H0>>>0&255,O[41]=H0>>>8&255,O[42]=H0>>>16&255,O[43]=H0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=P1>>>0&255,O[53]=P1>>>8&255,O[54]=P1>>>16&255,O[55]=P1>>>24&255,O[56]=L1>>>0&255,O[57]=L1>>>8&255,O[58]=L1>>>16&255,O[59]=L1>>>24&255,O[60]=R1>>>0&255,O[61]=R1>>>8&255,O[62]=R1>>>16&255,O[63]=R1>>>24&255}function h(O,P,T,I){var E=I[0]&255|(I[1]&255)<<8|(I[2]&255)<<16|(I[3]&255)<<24,a=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,e=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,A0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,D0=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,n0=I[4]&255|(I[5]&255)<<8|(I[6]&255)<<16|(I[7]&255)<<24,g0=P[0]&255|(P[1]&255)<<8|(P[2]&255)<<16|(P[3]&255)<<24,f1=P[4]&255|(P[5]&255)<<8|(P[6]&255)<<16|(P[7]&255)<<24,m0=P[8]&255|(P[9]&255)<<8|(P[10]&255)<<16|(P[11]&255)<<24,U1=P[12]&255|(P[13]&255)<<8|(P[14]&255)<<16|(P[15]&255)<<24,q1=I[8]&255|(I[9]&255)<<8|(I[10]&255)<<16|(I[11]&255)<<24,M1=T[16]&255|(T[17]&255)<<8|(T[18]&255)<<16|(T[19]&255)<<24,K1=T[20]&255|(T[21]&255)<<8|(T[22]&255)<<16|(T[23]&255)<<24,A1=T[24]&255|(T[25]&255)<<8|(T[26]&255)<<16|(T[27]&255)<<24,I1=T[28]&255|(T[29]&255)<<8|(T[30]&255)<<16|(T[31]&255)<<24,H1=I[12]&255|(I[13]&255)<<8|(I[14]&255)<<16|(I[15]&255)<<24,p0=E,a0=a,h0=e,d0=A0,o0=D0,_0=n0,V0=g0,Z0=f1,z0=m0,U0=U1,H0=q1,O0=M1,J1=K1,P1=A1,L1=I1,R1=H1,y;for(var E1=0;E1<20;E1+=2)y=p0+J1|0,o0^=y<<7|y>>>25,y=o0+p0|0,z0^=y<<9|y>>>23,y=z0+o0|0,J1^=y<<13|y>>>19,y=J1+z0|0,p0^=y<<18|y>>>14,y=_0+a0|0,U0^=y<<7|y>>>25,y=U0+_0|0,P1^=y<<9|y>>>23,y=P1+U0|0,a0^=y<<13|y>>>19,y=a0+P1|0,_0^=y<<18|y>>>14,y=H0+V0|0,L1^=y<<7|y>>>25,y=L1+H0|0,h0^=y<<9|y>>>23,y=h0+L1|0,V0^=y<<13|y>>>19,y=V0+h0|0,H0^=y<<18|y>>>14,y=R1+O0|0,d0^=y<<7|y>>>25,y=d0+R1|0,Z0^=y<<9|y>>>23,y=Z0+d0|0,O0^=y<<13|y>>>19,y=O0+Z0|0,R1^=y<<18|y>>>14,y=p0+d0|0,a0^=y<<7|y>>>25,y=a0+p0|0,h0^=y<<9|y>>>23,y=h0+a0|0,d0^=y<<13|y>>>19,y=d0+h0|0,p0^=y<<18|y>>>14,y=_0+o0|0,V0^=y<<7|y>>>25,y=V0+_0|0,Z0^=y<<9|y>>>23,y=Z0+V0|0,o0^=y<<13|y>>>19,y=o0+Z0|0,_0^=y<<18|y>>>14,y=H0+U0|0,O0^=y<<7|y>>>25,y=O0+H0|0,z0^=y<<9|y>>>23,y=z0+O0|0,U0^=y<<13|y>>>19,y=U0+z0|0,H0^=y<<18|y>>>14,y=R1+L1|0,J1^=y<<7|y>>>25,y=J1+R1|0,P1^=y<<9|y>>>23,y=P1+J1|0,L1^=y<<13|y>>>19,y=L1+P1|0,R1^=y<<18|y>>>14;O[0]=p0>>>0&255,O[1]=p0>>>8&255,O[2]=p0>>>16&255,O[3]=p0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=H0>>>0&255,O[9]=H0>>>8&255,O[10]=H0>>>16&255,O[11]=H0>>>24&255,O[12]=R1>>>0&255,O[13]=R1>>>8&255,O[14]=R1>>>16&255,O[15]=R1>>>24&255,O[16]=V0>>>0&255,O[17]=V0>>>8&255,O[18]=V0>>>16&255,O[19]=V0>>>24&255,O[20]=Z0>>>0&255,O[21]=Z0>>>8&255,O[22]=Z0>>>16&255,O[23]=Z0>>>24&255,O[24]=z0>>>0&255,O[25]=z0>>>8&255,O[26]=z0>>>16&255,O[27]=z0>>>24&255,O[28]=U0>>>0&255,O[29]=U0>>>8&255,O[30]=U0>>>16&255,O[31]=U0>>>24&255}function p(O,P,T,I){x(O,P,T,I)}function v(O,P,T,I){h(O,P,T,I)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,P,T,I,E,a,e){var A0=new Uint8Array(16),D0=new Uint8Array(64),n0,g0;for(g0=0;g0<16;g0++)A0[g0]=0;for(g0=0;g0<8;g0++)A0[g0]=a[g0];while(E>=64){p(D0,A0,e,n);for(g0=0;g0<64;g0++)O[P+g0]=T[I+g0]^D0[g0];n0=1;for(g0=8;g0<16;g0++)n0=n0+(A0[g0]&255)|0,A0[g0]=n0&255,n0>>>=8;E-=64,P+=64,I+=64}if(E>0){p(D0,A0,e,n);for(g0=0;g0<E;g0++)O[P+g0]=T[I+g0]^D0[g0]}return 0}function l(O,P,T,I,E){var a=new Uint8Array(16),e=new Uint8Array(64),A0,D0;for(D0=0;D0<16;D0++)a[D0]=0;for(D0=0;D0<8;D0++)a[D0]=I[D0];while(T>=64){p(e,a,E,n);for(D0=0;D0<64;D0++)O[P+D0]=e[D0];A0=1;for(D0=8;D0<16;D0++)A0=A0+(a[D0]&255)|0,a[D0]=A0&255,A0>>>=8;T-=64,P+=64}if(T>0){p(e,a,E,n);for(D0=0;D0<T;D0++)O[P+D0]=e[D0]}return 0}function G0(O,P,T,I,E){var a=new Uint8Array(32);v(a,I,E,n);var e=new Uint8Array(8);for(var A0=0;A0<8;A0++)e[A0]=I[A0+16];return l(O,P,T,e,a)}function b(O,P,T,I,E,a,e){var A0=new Uint8Array(32);v(A0,a,e,n);var D0=new Uint8Array(8);for(var n0=0;n0<8;n0++)D0[n0]=a[n0+16];return c(O,P,T,I,E,D0,A0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var P,T,I,E,a,e,A0,D0;P=O[0]&255|(O[1]&255)<<8,this.r[0]=P&8191,T=O[2]&255|(O[3]&255)<<8,this.r[1]=(P>>>13|T<<3)&8191,I=O[4]&255|(O[5]&255)<<8,this.r[2]=(T>>>10|I<<6)&7939,E=O[6]&255|(O[7]&255)<<8,this.r[3]=(I>>>7|E<<9)&8191,a=O[8]&255|(O[9]&255)<<8,this.r[4]=(E>>>4|a<<12)&255,this.r[5]=a>>>1&8190,e=O[10]&255|(O[11]&255)<<8,this.r[6]=(a>>>14|e<<2)&8191,A0=O[12]&255|(O[13]&255)<<8,this.r[7]=(e>>>11|A0<<5)&8065,D0=O[14]&255|(O[15]&255)<<8,this.r[8]=(A0>>>8|D0<<8)&8191,this.r[9]=D0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,P,T){var I=this.fin?0:2048,E,a,e,A0,D0,n0,g0,f1,m0,U1,q1,M1,K1,A1,I1,H1,p0,a0,h0,d0=this.h[0],o0=this.h[1],_0=this.h[2],V0=this.h[3],Z0=this.h[4],z0=this.h[5],U0=this.h[6],H0=this.h[7],O0=this.h[8],J1=this.h[9],P1=this.r[0],L1=this.r[1],R1=this.r[2],y=this.r[3],E1=this.r[4],c1=this.r[5],p1=this.r[6],B1=this.r[7],h1=this.r[8],b1=this.r[9];while(T>=16)E=O[P+0]&255|(O[P+1]&255)<<8,d0+=E&8191,a=O[P+2]&255|(O[P+3]&255)<<8,o0+=(E>>>13|a<<3)&8191,e=O[P+4]&255|(O[P+5]&255)<<8,_0+=(a>>>10|e<<6)&8191,A0=O[P+6]&255|(O[P+7]&255)<<8,V0+=(e>>>7|A0<<9)&8191,D0=O[P+8]&255|(O[P+9]&255)<<8,Z0+=(A0>>>4|D0<<12)&8191,z0+=D0>>>1&8191,n0=O[P+10]&255|(O[P+11]&255)<<8,U0+=(D0>>>14|n0<<2)&8191,g0=O[P+12]&255|(O[P+13]&255)<<8,H0+=(n0>>>11|g0<<5)&8191,f1=O[P+14]&255|(O[P+15]&255)<<8,O0+=(g0>>>8|f1<<8)&8191,J1+=f1>>>5|I,m0=0,U1=m0,U1+=d0*P1,U1+=o0*(5*b1),U1+=_0*(5*h1),U1+=V0*(5*B1),U1+=Z0*(5*p1),m0=U1>>>13,U1&=8191,U1+=z0*(5*c1),U1+=U0*(5*E1),U1+=H0*(5*y),U1+=O0*(5*R1),U1+=J1*(5*L1),m0+=U1>>>13,U1&=8191,q1=m0,q1+=d0*L1,q1+=o0*P1,q1+=_0*(5*b1),q1+=V0*(5*h1),q1+=Z0*(5*B1),m0=q1>>>13,q1&=8191,q1+=z0*(5*p1),q1+=U0*(5*c1),q1+=H0*(5*E1),q1+=O0*(5*y),q1+=J1*(5*R1),m0+=q1>>>13,q1&=8191,M1=m0,M1+=d0*R1,M1+=o0*L1,M1+=_0*P1,M1+=V0*(5*b1),M1+=Z0*(5*h1),m0=M1>>>13,M1&=8191,M1+=z0*(5*B1),M1+=U0*(5*p1),M1+=H0*(5*c1),M1+=O0*(5*E1),M1+=J1*(5*y),m0+=M1>>>13,M1&=8191,K1=m0,K1+=d0*y,K1+=o0*R1,K1+=_0*L1,K1+=V0*P1,K1+=Z0*(5*b1),m0=K1>>>13,K1&=8191,K1+=z0*(5*h1),K1+=U0*(5*B1),K1+=H0*(5*p1),K1+=O0*(5*c1),K1+=J1*(5*E1),m0+=K1>>>13,K1&=8191,A1=m0,A1+=d0*E1,A1+=o0*y,A1+=_0*R1,A1+=V0*L1,A1+=Z0*P1,m0=A1>>>13,A1&=8191,A1+=z0*(5*b1),A1+=U0*(5*h1),A1+=H0*(5*B1),A1+=O0*(5*p1),A1+=J1*(5*c1),m0+=A1>>>13,A1&=8191,I1=m0,I1+=d0*c1,I1+=o0*E1,I1+=_0*y,I1+=V0*R1,I1+=Z0*L1,m0=I1>>>13,I1&=8191,I1+=z0*P1,I1+=U0*(5*b1),I1+=H0*(5*h1),I1+=O0*(5*B1),I1+=J1*(5*p1),m0+=I1>>>13,I1&=8191,H1=m0,H1+=d0*p1,H1+=o0*c1,H1+=_0*E1,H1+=V0*y,H1+=Z0*R1,m0=H1>>>13,H1&=8191,H1+=z0*L1,H1+=U0*P1,H1+=H0*(5*b1),H1+=O0*(5*h1),H1+=J1*(5*B1),m0+=H1>>>13,H1&=8191,p0=m0,p0+=d0*B1,p0+=o0*p1,p0+=_0*c1,p0+=V0*E1,p0+=Z0*y,m0=p0>>>13,p0&=8191,p0+=z0*R1,p0+=U0*L1,p0+=H0*P1,p0+=O0*(5*b1),p0+=J1*(5*h1),m0+=p0>>>13,p0&=8191,a0=m0,a0+=d0*h1,a0+=o0*B1,a0+=_0*p1,a0+=V0*c1,a0+=Z0*E1,m0=a0>>>13,a0&=8191,a0+=z0*y,a0+=U0*R1,a0+=H0*L1,a0+=O0*P1,a0+=J1*(5*b1),m0+=a0>>>13,a0&=8191,h0=m0,h0+=d0*b1,h0+=o0*h1,h0+=_0*B1,h0+=V0*p1,h0+=Z0*c1,m0=h0>>>13,h0&=8191,h0+=z0*E1,h0+=U0*y,h0+=H0*R1,h0+=O0*L1,h0+=J1*P1,m0+=h0>>>13,h0&=8191,m0=(m0<<2)+m0|0,m0=m0+U1|0,U1=m0&8191,m0=m0>>>13,q1+=m0,d0=U1,o0=q1,_0=M1,V0=K1,Z0=A1,z0=I1,U0=H1,H0=p0,O0=a0,J1=h0,P+=16,T-=16;this.h[0]=d0,this.h[1]=o0,this.h[2]=_0,this.h[3]=V0,this.h[4]=Z0,this.h[5]=z0,this.h[6]=U0,this.h[7]=H0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,P){var T=new Uint16Array(10),I,E,a,e;if(this.leftover){e=this.leftover,this.buffer[e++]=1;for(;e<16;e++)this.buffer[e]=0;this.fin=1,this.blocks(this.buffer,0,16)}I=this.h[1]>>>13,this.h[1]&=8191;for(e=2;e<10;e++)this.h[e]+=I,I=this.h[e]>>>13,this.h[e]&=8191;this.h[0]+=I*5,I=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=I,I=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=I,T[0]=this.h[0]+5,I=T[0]>>>13,T[0]&=8191;for(e=1;e<10;e++)T[e]=this.h[e]+I,I=T[e]>>>13,T[e]&=8191;T[9]-=8192,E=(I^1)-1;for(e=0;e<10;e++)T[e]&=E;E=~E;for(e=0;e<10;e++)this.h[e]=this.h[e]&E|T[e];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,a=this.h[0]+this.pad[0],this.h[0]=a&65535;for(e=1;e<8;e++)a=(this.h[e]+this.pad[e]|0)+(a>>>16)|0,this.h[e]=a&65535;O[P+0]=this.h[0]>>>0&255,O[P+1]=this.h[0]>>>8&255,O[P+2]=this.h[1]>>>0&255,O[P+3]=this.h[1]>>>8&255,O[P+4]=this.h[2]>>>0&255,O[P+5]=this.h[2]>>>8&255,O[P+6]=this.h[3]>>>0&255,O[P+7]=this.h[3]>>>8&255,O[P+8]=this.h[4]>>>0&255,O[P+9]=this.h[4]>>>8&255,O[P+10]=this.h[5]>>>0&255,O[P+11]=this.h[5]>>>8&255,O[P+12]=this.h[6]>>>0&255,O[P+13]=this.h[6]>>>8&255,O[P+14]=this.h[7]>>>0&255,O[P+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,P,T){var I,E;if(this.leftover){if(E=16-this.leftover,E>T)E=T;for(I=0;I<E;I++)this.buffer[this.leftover+I]=O[P+I];if(T-=E,P+=E,this.leftover+=E,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(T>=16)E=T-T%16,this.blocks(O,P,E),P+=E,T-=E;if(T){for(I=0;I<T;I++)this.buffer[this.leftover+I]=O[P+I];this.leftover+=T}};function J0(O,P,T,I,E,a){var e=new Y0(a);return e.update(T,I,E),e.finish(O,P),0}function k(O,P,T,I,E,a){var e=new Uint8Array(16);return J0(e,0,T,I,E,a),C(O,P,e,0)}function o(O,P,T,I,E){var a;if(T<32)return-1;b(O,0,P,0,T,I,E),J0(O,16,O,32,T-32,O);for(a=0;a<16;a++)O[a]=0;return 0}function B(O,P,T,I,E){var a,e=new Uint8Array(32);if(T<32)return-1;if(G0(e,0,32,I,E),k(P,16,P,32,T-32,e)!==0)return-1;b(O,0,P,0,T,I,E);for(a=0;a<32;a++)O[a]=0;return 0}function R(O,P){var T;for(T=0;T<16;T++)O[T]=P[T]|0}function L(O){var P,T,I=1;for(P=0;P<16;P++)T=O[P]+I+65535,I=Math.floor(T/65536),O[P]=T-I*65536;O[0]+=I-1+37*(I-1)}function _(O,P,T){var I,E=~(T-1);for(var a=0;a<16;a++)I=E&(O[a]^P[a]),O[a]^=I,P[a]^=I}function f(O,P){var T,I,E,a=G(),e=G();for(T=0;T<16;T++)e[T]=P[T];L(e),L(e),L(e);for(I=0;I<2;I++){a[0]=e[0]-65517;for(T=1;T<15;T++)a[T]=e[T]-65535-(a[T-1]>>16&1),a[T-1]&=65535;a[15]=e[15]-32767-(a[14]>>16&1),E=a[15]>>16&1,a[14]&=65535,_(e,a,1-E)}for(T=0;T<16;T++)O[2*T]=e[T]&255,O[2*T+1]=e[T]>>8}function M(O,P){var T=new Uint8Array(32),I=new Uint8Array(32);return f(T,O),f(I,P),D(T,0,I,0)}function $(O){var P=new Uint8Array(32);return f(P,O),P[0]&1}function g(O,P){var T;for(T=0;T<16;T++)O[T]=P[2*T]+(P[2*T+1]<<8);O[15]&=32767}function u(O,P,T){for(var I=0;I<16;I++)O[I]=P[I]+T[I]}function m(O,P,T){for(var I=0;I<16;I++)O[I]=P[I]-T[I]}function i(O,P,T){var I,E,a=0,e=0,A0=0,D0=0,n0=0,g0=0,f1=0,m0=0,U1=0,q1=0,M1=0,K1=0,A1=0,I1=0,H1=0,p0=0,a0=0,h0=0,d0=0,o0=0,_0=0,V0=0,Z0=0,z0=0,U0=0,H0=0,O0=0,J1=0,P1=0,L1=0,R1=0,y=T[0],E1=T[1],c1=T[2],p1=T[3],B1=T[4],h1=T[5],b1=T[6],B8=T[7],s1=T[8],O8=T[9],K8=T[10],C8=T[11],y8=T[12],J9=T[13],U9=T[14],q9=T[15];I=P[0],a+=I*y,e+=I*E1,A0+=I*c1,D0+=I*p1,n0+=I*B1,g0+=I*h1,f1+=I*b1,m0+=I*B8,U1+=I*s1,q1+=I*O8,M1+=I*K8,K1+=I*C8,A1+=I*y8,I1+=I*J9,H1+=I*U9,p0+=I*q9,I=P[1],e+=I*y,A0+=I*E1,D0+=I*c1,n0+=I*p1,g0+=I*B1,f1+=I*h1,m0+=I*b1,U1+=I*B8,q1+=I*s1,M1+=I*O8,K1+=I*K8,A1+=I*C8,I1+=I*y8,H1+=I*J9,p0+=I*U9,a0+=I*q9,I=P[2],A0+=I*y,D0+=I*E1,n0+=I*c1,g0+=I*p1,f1+=I*B1,m0+=I*h1,U1+=I*b1,q1+=I*B8,M1+=I*s1,K1+=I*O8,A1+=I*K8,I1+=I*C8,H1+=I*y8,p0+=I*J9,a0+=I*U9,h0+=I*q9,I=P[3],D0+=I*y,n0+=I*E1,g0+=I*c1,f1+=I*p1,m0+=I*B1,U1+=I*h1,q1+=I*b1,M1+=I*B8,K1+=I*s1,A1+=I*O8,I1+=I*K8,H1+=I*C8,p0+=I*y8,a0+=I*J9,h0+=I*U9,d0+=I*q9,I=P[4],n0+=I*y,g0+=I*E1,f1+=I*c1,m0+=I*p1,U1+=I*B1,q1+=I*h1,M1+=I*b1,K1+=I*B8,A1+=I*s1,I1+=I*O8,H1+=I*K8,p0+=I*C8,a0+=I*y8,h0+=I*J9,d0+=I*U9,o0+=I*q9,I=P[5],g0+=I*y,f1+=I*E1,m0+=I*c1,U1+=I*p1,q1+=I*B1,M1+=I*h1,K1+=I*b1,A1+=I*B8,I1+=I*s1,H1+=I*O8,p0+=I*K8,a0+=I*C8,h0+=I*y8,d0+=I*J9,o0+=I*U9,_0+=I*q9,I=P[6],f1+=I*y,m0+=I*E1,U1+=I*c1,q1+=I*p1,M1+=I*B1,K1+=I*h1,A1+=I*b1,I1+=I*B8,H1+=I*s1,p0+=I*O8,a0+=I*K8,h0+=I*C8,d0+=I*y8,o0+=I*J9,_0+=I*U9,V0+=I*q9,I=P[7],m0+=I*y,U1+=I*E1,q1+=I*c1,M1+=I*p1,K1+=I*B1,A1+=I*h1,I1+=I*b1,H1+=I*B8,p0+=I*s1,a0+=I*O8,h0+=I*K8,d0+=I*C8,o0+=I*y8,_0+=I*J9,V0+=I*U9,Z0+=I*q9,I=P[8],U1+=I*y,q1+=I*E1,M1+=I*c1,K1+=I*p1,A1+=I*B1,I1+=I*h1,H1+=I*b1,p0+=I*B8,a0+=I*s1,h0+=I*O8,d0+=I*K8,o0+=I*C8,_0+=I*y8,V0+=I*J9,Z0+=I*U9,z0+=I*q9,I=P[9],q1+=I*y,M1+=I*E1,K1+=I*c1,A1+=I*p1,I1+=I*B1,H1+=I*h1,p0+=I*b1,a0+=I*B8,h0+=I*s1,d0+=I*O8,o0+=I*K8,_0+=I*C8,V0+=I*y8,Z0+=I*J9,z0+=I*U9,U0+=I*q9,I=P[10],M1+=I*y,K1+=I*E1,A1+=I*c1,I1+=I*p1,H1+=I*B1,p0+=I*h1,a0+=I*b1,h0+=I*B8,d0+=I*s1,o0+=I*O8,_0+=I*K8,V0+=I*C8,Z0+=I*y8,z0+=I*J9,U0+=I*U9,H0+=I*q9,I=P[11],K1+=I*y,A1+=I*E1,I1+=I*c1,H1+=I*p1,p0+=I*B1,a0+=I*h1,h0+=I*b1,d0+=I*B8,o0+=I*s1,_0+=I*O8,V0+=I*K8,Z0+=I*C8,z0+=I*y8,U0+=I*J9,H0+=I*U9,O0+=I*q9,I=P[12],A1+=I*y,I1+=I*E1,H1+=I*c1,p0+=I*p1,a0+=I*B1,h0+=I*h1,d0+=I*b1,o0+=I*B8,_0+=I*s1,V0+=I*O8,Z0+=I*K8,z0+=I*C8,U0+=I*y8,H0+=I*J9,O0+=I*U9,J1+=I*q9,I=P[13],I1+=I*y,H1+=I*E1,p0+=I*c1,a0+=I*p1,h0+=I*B1,d0+=I*h1,o0+=I*b1,_0+=I*B8,V0+=I*s1,Z0+=I*O8,z0+=I*K8,U0+=I*C8,H0+=I*y8,O0+=I*J9,J1+=I*U9,P1+=I*q9,I=P[14],H1+=I*y,p0+=I*E1,a0+=I*c1,h0+=I*p1,d0+=I*B1,o0+=I*h1,_0+=I*b1,V0+=I*B8,Z0+=I*s1,z0+=I*O8,U0+=I*K8,H0+=I*C8,O0+=I*y8,J1+=I*J9,P1+=I*U9,L1+=I*q9,I=P[15],p0+=I*y,a0+=I*E1,h0+=I*c1,d0+=I*p1,o0+=I*B1,_0+=I*h1,V0+=I*b1,Z0+=I*B8,z0+=I*s1,U0+=I*O8,H0+=I*K8,O0+=I*C8,J1+=I*y8,P1+=I*J9,L1+=I*U9,R1+=I*q9,a+=38*a0,e+=38*h0,A0+=38*d0,D0+=38*o0,n0+=38*_0,g0+=38*V0,f1+=38*Z0,m0+=38*z0,U1+=38*U0,q1+=38*H0,M1+=38*O0,K1+=38*J1,A1+=38*P1,I1+=38*L1,H1+=38*R1,E=1,I=a+E+65535,E=Math.floor(I/65536),a=I-E*65536,I=e+E+65535,E=Math.floor(I/65536),e=I-E*65536,I=A0+E+65535,E=Math.floor(I/65536),A0=I-E*65536,I=D0+E+65535,E=Math.floor(I/65536),D0=I-E*65536,I=n0+E+65535,E=Math.floor(I/65536),n0=I-E*65536,I=g0+E+65535,E=Math.floor(I/65536),g0=I-E*65536,I=f1+E+65535,E=Math.floor(I/65536),f1=I-E*65536,I=m0+E+65535,E=Math.floor(I/65536),m0=I-E*65536,I=U1+E+65535,E=Math.floor(I/65536),U1=I-E*65536,I=q1+E+65535,E=Math.floor(I/65536),q1=I-E*65536,I=M1+E+65535,E=Math.floor(I/65536),M1=I-E*65536,I=K1+E+65535,E=Math.floor(I/65536),K1=I-E*65536,I=A1+E+65535,E=Math.floor(I/65536),A1=I-E*65536,I=I1+E+65535,E=Math.floor(I/65536),I1=I-E*65536,I=H1+E+65535,E=Math.floor(I/65536),H1=I-E*65536,I=p0+E+65535,E=Math.floor(I/65536),p0=I-E*65536,a+=E-1+37*(E-1),E=1,I=a+E+65535,E=Math.floor(I/65536),a=I-E*65536,I=e+E+65535,E=Math.floor(I/65536),e=I-E*65536,I=A0+E+65535,E=Math.floor(I/65536),A0=I-E*65536,I=D0+E+65535,E=Math.floor(I/65536),D0=I-E*65536,I=n0+E+65535,E=Math.floor(I/65536),n0=I-E*65536,I=g0+E+65535,E=Math.floor(I/65536),g0=I-E*65536,I=f1+E+65535,E=Math.floor(I/65536),f1=I-E*65536,I=m0+E+65535,E=Math.floor(I/65536),m0=I-E*65536,I=U1+E+65535,E=Math.floor(I/65536),U1=I-E*65536,I=q1+E+65535,E=Math.floor(I/65536),q1=I-E*65536,I=M1+E+65535,E=Math.floor(I/65536),M1=I-E*65536,I=K1+E+65535,E=Math.floor(I/65536),K1=I-E*65536,I=A1+E+65535,E=Math.floor(I/65536),A1=I-E*65536,I=I1+E+65535,E=Math.floor(I/65536),I1=I-E*65536,I=H1+E+65535,E=Math.floor(I/65536),H1=I-E*65536,I=p0+E+65535,E=Math.floor(I/65536),p0=I-E*65536,a+=E-1+37*(E-1),O[0]=a,O[1]=e,O[2]=A0,O[3]=D0,O[4]=n0,O[5]=g0,O[6]=f1,O[7]=m0,O[8]=U1,O[9]=q1,O[10]=M1,O[11]=K1,O[12]=A1,O[13]=I1,O[14]=H1,O[15]=p0}function Q0(O,P){i(O,P,P)}function I0(O,P){var T=G(),I;for(I=0;I<16;I++)T[I]=P[I];for(I=253;I>=0;I--)if(Q0(T,T),I!==2&&I!==4)i(T,T,P);for(I=0;I<16;I++)O[I]=T[I]}function E0(O,P){var T=G(),I;for(I=0;I<16;I++)T[I]=P[I];for(I=250;I>=0;I--)if(Q0(T,T),I!==1)i(T,T,P);for(I=0;I<16;I++)O[I]=T[I]}function x0(O,P,T){var I=new Uint8Array(32),E=new Float64Array(80),a,e,A0=G(),D0=G(),n0=G(),g0=G(),f1=G(),m0=G();for(e=0;e<31;e++)I[e]=P[e];I[31]=P[31]&127|64,I[0]&=248,g(E,T);for(e=0;e<16;e++)D0[e]=E[e],g0[e]=A0[e]=n0[e]=0;A0[0]=g0[0]=1;for(e=254;e>=0;--e)a=I[e>>>3]>>>(e&7)&1,_(A0,D0,a),_(n0,g0,a),u(f1,A0,n0),m(A0,A0,n0),u(n0,D0,g0),m(D0,D0,g0),Q0(g0,f1),Q0(m0,A0),i(A0,n0,A0),i(n0,D0,f1),u(f1,A0,n0),m(A0,A0,n0),Q0(D0,A0),m(n0,g0,m0),i(A0,n0,J),u(A0,A0,g0),i(n0,n0,A0),i(A0,g0,m0),i(g0,D0,E),Q0(D0,f1),_(A0,D0,a),_(n0,g0,a);for(e=0;e<16;e++)E[e+16]=A0[e],E[e+32]=n0[e],E[e+48]=D0[e],E[e+64]=g0[e];var U1=E.subarray(32),q1=E.subarray(16);return I0(U1,U1),i(q1,q1,U1),f(O,q1),0}function L0(O,P){return x0(O,P,V)}function Q1(O,P){return X(P,32),L0(O,P)}function k1(O,P,T){var I=new Uint8Array(32);return x0(I,T,P),v(O,Y,I,n)}var q0=o,B0=B;function v0(O,P,T,I,E,a){var e=new Uint8Array(32);return k1(e,E,a),q0(O,P,T,I,e)}function T1(O,P,T,I,E,a){var e=new Uint8Array(32);return k1(e,E,a),B0(O,P,T,I,e)}var J8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function w1(O,P,T,I){var E=new Int32Array(16),a=new Int32Array(16),e,A0,D0,n0,g0,f1,m0,U1,q1,M1,K1,A1,I1,H1,p0,a0,h0,d0,o0,_0,V0,Z0,z0,U0,H0,O0,J1=O[0],P1=O[1],L1=O[2],R1=O[3],y=O[4],E1=O[5],c1=O[6],p1=O[7],B1=P[0],h1=P[1],b1=P[2],B8=P[3],s1=P[4],O8=P[5],K8=P[6],C8=P[7],y8=0;while(I>=128){for(o0=0;o0<16;o0++)_0=8*o0+y8,E[o0]=T[_0+0]<<24|T[_0+1]<<16|T[_0+2]<<8|T[_0+3],a[o0]=T[_0+4]<<24|T[_0+5]<<16|T[_0+6]<<8|T[_0+7];for(o0=0;o0<80;o0++)if(e=J1,A0=P1,D0=L1,n0=R1,g0=y,f1=E1,m0=c1,U1=p1,q1=B1,M1=h1,K1=b1,A1=B8,I1=s1,H1=O8,p0=K8,a0=C8,V0=p1,Z0=C8,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=(y>>>14|s1<<18)^(y>>>18|s1<<14)^(s1>>>9|y<<23),Z0=(s1>>>14|y<<18)^(s1>>>18|y<<14)^(y>>>9|s1<<23),z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,V0=y&E1^~y&c1,Z0=s1&O8^~s1&K8,z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,V0=J8[o0*2],Z0=J8[o0*2+1],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,V0=E[o0%16],Z0=a[o0%16],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,h0=H0&65535|O0<<16,d0=z0&65535|U0<<16,V0=h0,Z0=d0,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=(J1>>>28|B1<<4)^(B1>>>2|J1<<30)^(B1>>>7|J1<<25),Z0=(B1>>>28|J1<<4)^(J1>>>2|B1<<30)^(J1>>>7|B1<<25),z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,V0=J1&P1^J1&L1^P1&L1,Z0=B1&h1^B1&b1^h1&b1,z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,U1=H0&65535|O0<<16,a0=z0&65535|U0<<16,V0=n0,Z0=A1,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=h0,Z0=d0,z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,n0=H0&65535|O0<<16,A1=z0&65535|U0<<16,P1=e,L1=A0,R1=D0,y=n0,E1=g0,c1=f1,p1=m0,J1=U1,h1=q1,b1=M1,B8=K1,s1=A1,O8=I1,K8=H1,C8=p0,B1=a0,o0%16===15)for(_0=0;_0<16;_0++)V0=E[_0],Z0=a[_0],z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=E[(_0+9)%16],Z0=a[(_0+9)%16],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,h0=E[(_0+1)%16],d0=a[(_0+1)%16],V0=(h0>>>1|d0<<31)^(h0>>>8|d0<<24)^h0>>>7,Z0=(d0>>>1|h0<<31)^(d0>>>8|h0<<24)^(d0>>>7|h0<<25),z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,h0=E[(_0+14)%16],d0=a[(_0+14)%16],V0=(h0>>>19|d0<<13)^(d0>>>29|h0<<3)^h0>>>6,Z0=(d0>>>19|h0<<13)^(h0>>>29|d0<<3)^(d0>>>6|h0<<26),z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,E[_0]=H0&65535|O0<<16,a[_0]=z0&65535|U0<<16;V0=J1,Z0=B1,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[0],Z0=P[0],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[0]=J1=H0&65535|O0<<16,P[0]=B1=z0&65535|U0<<16,V0=P1,Z0=h1,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[1],Z0=P[1],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[1]=P1=H0&65535|O0<<16,P[1]=h1=z0&65535|U0<<16,V0=L1,Z0=b1,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[2],Z0=P[2],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[2]=L1=H0&65535|O0<<16,P[2]=b1=z0&65535|U0<<16,V0=R1,Z0=B8,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[3],Z0=P[3],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[3]=R1=H0&65535|O0<<16,P[3]=B8=z0&65535|U0<<16,V0=y,Z0=s1,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[4],Z0=P[4],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[4]=y=H0&65535|O0<<16,P[4]=s1=z0&65535|U0<<16,V0=E1,Z0=O8,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[5],Z0=P[5],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[5]=E1=H0&65535|O0<<16,P[5]=O8=z0&65535|U0<<16,V0=c1,Z0=K8,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[6],Z0=P[6],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[6]=c1=H0&65535|O0<<16,P[6]=K8=z0&65535|U0<<16,V0=p1,Z0=C8,z0=Z0&65535,U0=Z0>>>16,H0=V0&65535,O0=V0>>>16,V0=O[7],Z0=P[7],z0+=Z0&65535,U0+=Z0>>>16,H0+=V0&65535,O0+=V0>>>16,U0+=z0>>>16,H0+=U0>>>16,O0+=H0>>>16,O[7]=p1=H0&65535|O0<<16,P[7]=C8=z0&65535|U0<<16,y8+=128,I-=128}return I}function $0(O,P,T){var I=new Int32Array(8),E=new Int32Array(8),a=new Uint8Array(256),e,A0=T;I[0]=1779033703,I[1]=3144134277,I[2]=1013904242,I[3]=2773480762,I[4]=1359893119,I[5]=2600822924,I[6]=528734635,I[7]=1541459225,E[0]=4089235720,E[1]=2227873595,E[2]=4271175723,E[3]=1595750129,E[4]=2917565137,E[5]=725511199,E[6]=4215389547,E[7]=327033209,w1(I,E,P,T),T%=128;for(e=0;e<T;e++)a[e]=P[A0-T+e];a[T]=128,T=256-128*(T<112?1:0),a[T-9]=0,z(a,T-8,A0/536870912|0,A0<<3),w1(I,E,a,T);for(e=0;e<8;e++)z(O,8*e,I[e],E[e]);return 0}function c0(O,P){var T=G(),I=G(),E=G(),a=G(),e=G(),A0=G(),D0=G(),n0=G(),g0=G();m(T,O[1],O[0]),m(g0,P[1],P[0]),i(T,T,g0),u(I,O[0],O[1]),u(g0,P[0],P[1]),i(I,I,g0),i(E,O[3],P[3]),i(E,E,q),i(a,O[2],P[2]),u(a,a,a),m(e,I,T),m(A0,a,E),u(D0,a,E),u(n0,I,T),i(O[0],e,A0),i(O[1],n0,D0),i(O[2],D0,A0),i(O[3],e,n0)}function j1(O,P,T){var I;for(I=0;I<4;I++)_(O[I],P[I],T)}function y1(O,P){var T=G(),I=G(),E=G();I0(E,P[2]),i(T,P[0],E),i(I,P[1],E),f(O,I),O[31]^=$(T)<<7}function E9(O,P,T){var I,E;R(O[0],Z),R(O[1],Q),R(O[2],Q),R(O[3],Z);for(E=255;E>=0;--E)I=T[E/8|0]>>(E&7)&1,j1(O,P,I),c0(P,O),c0(O,O),j1(O,P,I)}function i8(O,P){var T=[G(),G(),G(),G()];R(T[0],A),R(T[1],N),R(T[2],Q),i(T[3],A,N),E9(O,T,P)}function j8(O,P,T){var I=new Uint8Array(64),E=[G(),G(),G(),G()],a;if(!T)X(P,32);$0(I,P,32),I[0]&=248,I[31]&=127,I[31]|=64,i8(E,I),y1(O,E);for(a=0;a<32;a++)P[a+32]=O[a];return 0}var A8=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Z9(O,P){var T,I,E,a;for(I=63;I>=32;--I){T=0;for(E=I-32,a=I-12;E<a;++E)P[E]+=T-16*P[I]*A8[E-(I-32)],T=Math.floor((P[E]+128)/256),P[E]-=T*256;P[E]+=T,P[I]=0}T=0;for(E=0;E<32;E++)P[E]+=T-(P[31]>>4)*A8[E],T=P[E]>>8,P[E]&=255;for(E=0;E<32;E++)P[E]-=T*A8[E];for(I=0;I<32;I++)P[I+1]+=P[I]>>8,O[I]=P[I]&255}function X6(O){var P=new Float64Array(64),T;for(T=0;T<64;T++)P[T]=O[T];for(T=0;T<64;T++)O[T]=0;Z9(O,P)}function qW(O,P,T,I){var E=new Uint8Array(64),a=new Uint8Array(64),e=new Uint8Array(64),A0,D0,n0=new Float64Array(64),g0=[G(),G(),G(),G()];$0(E,I,32),E[0]&=248,E[31]&=127,E[31]|=64;var f1=T+64;for(A0=0;A0<T;A0++)O[64+A0]=P[A0];for(A0=0;A0<32;A0++)O[32+A0]=E[32+A0];$0(e,O.subarray(32),T+32),X6(e),i8(g0,e),y1(O,g0);for(A0=32;A0<64;A0++)O[A0]=I[A0];$0(a,O,T+64),X6(a);for(A0=0;A0<64;A0++)n0[A0]=0;for(A0=0;A0<32;A0++)n0[A0]=e[A0];for(A0=0;A0<32;A0++)for(D0=0;D0<32;D0++)n0[A0+D0]+=a[A0]*E[D0];return Z9(O.subarray(32),n0),f1}function QV(O,P){var T=G(),I=G(),E=G(),a=G(),e=G(),A0=G(),D0=G();if(R(O[2],Q),g(O[1],P),Q0(E,O[1]),i(a,E,U),m(E,E,O[2]),u(a,O[2],a),Q0(e,a),Q0(A0,e),i(D0,A0,e),i(T,D0,E),i(T,T,a),E0(T,T),i(T,T,E),i(T,T,a),i(T,T,a),i(O[0],T,a),Q0(I,O[0]),i(I,I,a),M(I,E))i(O[0],O[0],H);if(Q0(I,O[0]),i(I,I,a),M(I,E))return-1;if($(O[0])===P[31]>>7)m(O[0],Z,O[0]);return i(O[3],O[0],O[1]),0}function n7(O,P,T,I){var E,a=new Uint8Array(32),e=new Uint8Array(64),A0=[G(),G(),G(),G()],D0=[G(),G(),G(),G()];if(T<64)return-1;if(QV(D0,I))return-1;for(E=0;E<T;E++)O[E]=P[E];for(E=0;E<32;E++)O[E+32]=I[E];if($0(e,O,T),X6(e),E9(A0,D0,e),i8(D0,P.subarray(32)),c0(A0,D0),y1(a,A0),T-=64,D(P,0,a,0)){for(E=0;E<T;E++)O[E]=0;return-1}for(E=0;E<T;E++)O[E]=P[E+64];return T}var r=32,F=24,d=32,X0=16,w0=32,e0=32,O1=32,r0=32,K0=32,F0=F,u0=d,k0=X0,Z1=64,X1=32,F1=64,o1=32,Z7=64;W.lowlevel={crypto_core_hsalsa20:v,crypto_stream_xor:b,crypto_stream:G0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:l,crypto_onetimeauth:J0,crypto_onetimeauth_verify:k,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:x0,crypto_scalarmult_base:L0,crypto_box_beforenm:k1,crypto_box_afternm:q0,crypto_box:v0,crypto_box_open:T1,crypto_box_keypair:Q1,crypto_hash:$0,crypto_sign:qW,crypto_sign_keypair:j8,crypto_sign_open:n7,crypto_secretbox_KEYBYTES:r,crypto_secretbox_NONCEBYTES:F,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:O1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:u0,crypto_box_BOXZEROBYTES:k0,crypto_sign_BYTES:Z1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:F1,crypto_sign_SEEDBYTES:o1,crypto_hash_BYTES:Z7,gf:G,D:U,L:A8,pack25519:f,unpack25519:g,M:i,A:u,S:Q0,Z:m,pow2523:E0,add:c0,set25519:R,modL:Z9,scalarmult:E9,scalarbase:i8};function AW(O,P){if(O.length!==r)throw Error("bad key size");if(P.length!==F)throw Error("bad nonce size")}function JV(O,P){if(O.length!==O1)throw Error("bad public key size");if(P.length!==r0)throw Error("bad secret key size")}function Q9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function kJ(O){for(var P=0;P<O.length;P++)O[P]=0}W.randomBytes=function(O){var P=new Uint8Array(O);return X(P,O),P},W.secretbox=function(O,P,T){Q9(O,P,T),AW(T,P);var I=new Uint8Array(d+O.length),E=new Uint8Array(I.length);for(var a=0;a<O.length;a++)I[a+d]=O[a];return o(E,I,I.length,P,T),E.subarray(X0)},W.secretbox.open=function(O,P,T){Q9(O,P,T),AW(T,P);var I=new Uint8Array(X0+O.length),E=new Uint8Array(I.length);for(var a=0;a<O.length;a++)I[a+X0]=O[a];if(I.length<32)return null;if(B(E,I,I.length,P,T)!==0)return null;return E.subarray(d)},W.secretbox.keyLength=r,W.secretbox.nonceLength=F,W.secretbox.overheadLength=X0,W.scalarMult=function(O,P){if(Q9(O,P),O.length!==e0)throw Error("bad n size");if(P.length!==w0)throw Error("bad p size");var T=new Uint8Array(w0);return x0(T,O,P),T},W.scalarMult.base=function(O){if(Q9(O),O.length!==e0)throw Error("bad n size");var P=new Uint8Array(w0);return L0(P,O),P},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,P,T,I){var E=W.box.before(T,I);return W.secretbox(O,P,E)},W.box.before=function(O,P){Q9(O,P),JV(O,P);var T=new Uint8Array(K0);return k1(T,O,P),T},W.box.after=W.secretbox,W.box.open=function(O,P,T,I){var E=W.box.before(T,I);return W.secretbox.open(O,P,E)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(O1),P=new Uint8Array(r0);return Q1(O,P),{publicKey:O,secretKey:P}},W.box.keyPair.fromSecretKey=function(O){if(Q9(O),O.length!==r0)throw Error("bad secret key size");var P=new Uint8Array(O1);return L0(P,O),{publicKey:P,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=O1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,P){if(Q9(O,P),P.length!==F1)throw Error("bad secret key size");var T=new Uint8Array(Z1+O.length);return qW(T,O,O.length,P),T},W.sign.open=function(O,P){if(Q9(O,P),P.length!==X1)throw Error("bad public key size");var T=new Uint8Array(O.length),I=n7(T,O,O.length,P);if(I<0)return null;var E=new Uint8Array(I);for(var a=0;a<E.length;a++)E[a]=T[a];return E},W.sign.detached=function(O,P){var T=W.sign(O,P),I=new Uint8Array(Z1);for(var E=0;E<I.length;E++)I[E]=T[E];return I},W.sign.detached.verify=function(O,P,T){if(Q9(O,P,T),P.length!==Z1)throw Error("bad signature size");if(T.length!==X1)throw Error("bad public key size");var I=new Uint8Array(Z1+O.length),E=new Uint8Array(Z1+O.length),a;for(a=0;a<Z1;a++)I[a]=P[a];for(a=0;a<O.length;a++)I[a+Z1]=O[a];return n7(E,I,I.length,T)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),P=new Uint8Array(F1);return j8(O,P),{publicKey:O,secretKey:P}},W.sign.keyPair.fromSecretKey=function(O){if(Q9(O),O.length!==F1)throw Error("bad secret key size");var P=new Uint8Array(X1);for(var T=0;T<P.length;T++)P[T]=O[32+T];return{publicKey:P,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(Q9(O),O.length!==o1)throw Error("bad seed size");var P=new Uint8Array(X1),T=new Uint8Array(F1);for(var I=0;I<32;I++)T[I]=O[I];return j8(P,T,!0),{publicKey:P,secretKey:T}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=F1,W.sign.seedLength=o1,W.sign.signatureLength=Z1,W.hash=function(O){Q9(O);var P=new Uint8Array(Z7);return $0(P,O,O.length),P},W.hash.hashLength=Z7,W.verify=function(O,P){if(Q9(O,P),O.length===0||P.length===0)return!1;if(O.length!==P.length)return!1;return w(O,0,P,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var P=65536;W.setPRNG(function(T,I){var E,a=new Uint8Array(I);for(E=0;E<I;E+=P)O.getRandomValues(a.subarray(E,E+Math.min(I-E,P)));for(E=0;E<I;E++)T[E]=a[E];kJ(a)})}else if(O=E8("crypto"),O&&O.randomBytes)W.setPRNG(function(T,I){var E,a=O.randomBytes(I);for(E=0;E<I;E++)T[E]=a[E];kJ(a)})}()})(typeof SU<"u"&&ye?ye:self.nacl=self.nacl||{})});var BI=Y1((JM)=>{Object.defineProperty(JM,"__esModule",{value:!0});class QM{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JM.BufferVisitor=QM});var HM=Y1((AM)=>{Object.defineProperty(AM,"__esModule",{value:!0});var UM=E8("util"),qM=64,$I="-----BEGIN ",FI="-----END ",bV="-----",EI="Proc-Type";class SI{static parse(W){let G=[],X=W.toString("utf8").split(`
|
|
8
|
+
`).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(X.length>0)G.push(jb(X));if(G.length===0)throw Error("PEM: no block");return G}constructor(W,G){this.type=W,this.body=G,this.headers=Object.create(null)}get procType(){return this.getHeader(EI)}getHeader(W){let G=this.headers[W];return G==null?"":G}setHeader(W,G){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||G==="")throw Error("pem: invalid header key or value");this.headers[W]=G}toString(){let W=$I+this.type+bV+`
|
|
9
|
+
`,G=Object.keys(this.headers);if(G.length>0){let V=this.procType;if(V!=="")W+=`${EI}: ${V}
|
|
10
|
+
`;G.sort();for(let Z of G)if(Z!==EI)W+=`${Z}: ${this.headers[Z]}
|
|
11
|
+
`;W+=`
|
|
12
|
+
`}let X=this.body.toString("base64"),Y=0;while(Y<X.length)W+=X.slice(Y,Y+qM)+`
|
|
13
|
+
`,Y+=qM;return W+=FI+this.type+bV+`
|
|
14
|
+
`,W}toBuffer(){return Buffer.from(this.toString(),"utf8")}valueOf(){return this.body}toJSON(){return{type:this.type,body:this.body,headers:this.headers}}[UM.inspect.custom](W,G){return`<${this.constructor.name} ${UM.inspect(this.toJSON(),G)}>`}}AM.PEM=SI;function jb(W){let G=W.shift();if(G==null||!G.startsWith($I)||!G.endsWith(bV))throw Error("pem: invalid BEGIN line");let X=G.slice($I.length,G.length-bV.length);if(X==="")throw Error("pem: invalid type");let Y=[];G=W.shift();while(G!=null&&G.includes(": ")){let Q=G.split(": ");if(Q.length!==2||Q[0]===""||Q[1]==="")throw Error("pem: invalid Header line");Y.push(Q),G=W.shift()}let V="";while(G!=null&&!G.startsWith(FI))V+=G,G=W.shift();if(G==null||G!==`${FI}${X}${bV}`)throw Error("pem: invalid END line");let Z=new SI(X,Buffer.from(V,"base64"));if(V===""||Z.body.toString("base64")!==V)throw Error("pem: invalid base64 body");for(let Q of Y)Z.setHeader(Q[0],Q[1]);return Z}});var jM=Y1((wM)=>{Object.defineProperty(wM,"__esModule",{value:!0});var NM=E8("util"),kU=BI(),D8;(function(W){W[W.UNIVERSAL=0]="UNIVERSAL",W[W.APPLICATION=64]="APPLICATION",W[W.CONTEXT_SPECIFIC=128]="CONTEXT_SPECIFIC",W[W.PRIVATE=192]="PRIVATE"})(D8=wM.Class||(wM.Class={}));var S1;(function(W){W[W.NONE=0]="NONE",W[W.BOOLEAN=1]="BOOLEAN",W[W.INTEGER=2]="INTEGER",W[W.BITSTRING=3]="BITSTRING",W[W.OCTETSTRING=4]="OCTETSTRING",W[W.NULL=5]="NULL",W[W.OID=6]="OID",W[W.ENUMERATED=10]="ENUMERATED",W[W.UTF8=12]="UTF8",W[W.SEQUENCE=16]="SEQUENCE",W[W.SET=17]="SET",W[W.NUMERICSTRING=18]="NUMERICSTRING",W[W.PRINTABLESTRING=19]="PRINTABLESTRING",W[W.T61STRING=20]="T61STRING",W[W.IA5STRING=22]="IA5STRING",W[W.UTCTIME=23]="UTCTIME",W[W.GENERALIZEDTIME=24]="GENERALIZEDTIME",W[W.GENERALSTRING=27]="GENERALSTRING"})(S1=wM.Tag||(wM.Tag={}));class _U{constructor(W,G){this.buf=W,this.bitLen=G}at(W){if(W<0||W>=this.bitLen||!Number.isInteger(W))return 0;let G=Math.floor(W/8),X=7-W%8;return this.buf[G]>>X&1}rightAlign(){let W=8-this.bitLen%8;if(W===8||this.buf.length===0)return this.buf;let G=Buffer.alloc(this.buf.length);G[0]=this.buf[0]>>W;for(let X=1;X<this.buf.length;X++)G[X]=this.buf[X-1]<<8-W,G[X]|=this.buf[X]>>W;return G}}wM.BitString=_U;class z1{static Bool(W){let G=new z1(D8.UNIVERSAL,S1.BOOLEAN,Buffer.from([W?255:0]));return G._value=W,G}static parseBool(W){if(!(W instanceof Buffer)||W.length!==1)throw Error("ASN1 syntax error: invalid boolean");switch(W[0]){case 0:return!1;case 255:return!0;default:throw Error("ASN1 syntax error: invalid boolean")}}static Integer(W){if(W instanceof Buffer){let Y=new z1(D8.UNIVERSAL,S1.INTEGER,W);return Y._value=W.toString("hex"),Y}if(!Number.isSafeInteger(W))throw Error("ASN1 syntax error: invalid integer");let G;if(W>=-128&&W<128)G=Buffer.alloc(1),G.writeInt8(W,0);else if(W>=-32768&&W<32768)G=Buffer.alloc(2),G.writeIntBE(W,0,2);else if(W>=-8388608&&W<8388608)G=Buffer.alloc(3),G.writeIntBE(W,0,3);else if(W>=-2147483648&&W<2147483648)G=Buffer.alloc(4),G.writeIntBE(W,0,4);else if(W>=-549755813888&&W<549755813888)G=Buffer.alloc(5),G.writeIntBE(W,0,5);else if(W>=-140737488355328&&W<140737488355328)G=Buffer.alloc(6),G.writeIntBE(W,0,6);else throw Error("ASN1 syntax error: invalid Integer");let X=new z1(D8.UNIVERSAL,S1.INTEGER,G);return X._value=W,X}static parseInteger(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Integer");if(W.length>6)return W.toString("hex");return W.readIntBE(0,W.length)}static parseIntegerNum(W){let G=z1.parseInteger(W);if(typeof G!=="number")throw Error("ASN1 syntax error: invalid Integer number");return G}static parseIntegerStr(W){let G=z1.parseInteger(W);if(typeof G==="number")return G.toString(16);return G}static BitString(W){if(W instanceof Buffer)W=new _U(W,W.length*8);let G=W.buf.length*8-W.bitLen,X=Buffer.alloc(W.buf.length+1);return X.writeInt8(G,0),W.buf.copy(X,1),new z1(D8.UNIVERSAL,S1.BITSTRING,X)}static parseBitString(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid BitString");let G=W[0];if(G>7||W.length===1&&G>0||(W[W.length-1]&(1<<W[0])-1)!==0)throw Error("ASN1 syntax error: invalid padding bits in BIT STRING");return new _U(W.slice(1),(W.length-1)*8-G)}static Null(){let W=new z1(D8.UNIVERSAL,S1.NULL,Buffer.alloc(0));return W._value=null,W}static parseNull(W){if(!(W instanceof Buffer)||W.length!==0)throw Error("ASN1 syntax error: invalid null");return null}static OID(W){let G=W.split(".");if(G.length===0)throw Error("ASN1 syntax error: invalid Object Identifier");let X=[];X.push(40*g8(G[0])+g8(G[1]));let Y=[];for(let Z=2;Z<G.length;++Z){let Q=g8(G[Z]);Y.length=0,Y.push(Q&127);while(Q>127)Q=Q>>>7,Y.unshift(Q&127|128);X.push(...Y)}let V=new z1(D8.UNIVERSAL,S1.OID,Buffer.from(X));return V._value=W,V}static parseOID(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid OID");let G=Math.floor(W[0]/40)+"."+W[0]%40,X=0;for(let Y=1;Y<W.length;Y++)if(W[Y]>=128)X+=W[Y]&127,X=X<<7;else G+="."+(X+W[Y]),X=0;return G}static UTF8(W){let G=new z1(D8.UNIVERSAL,S1.UTF8,Buffer.from(W,"utf8"));return G._value=W,G}static parseUTF8(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static NumericString(W){if(!IM(W))throw Error("ASN1 syntax error: invalid NumericString");let G=new z1(D8.UNIVERSAL,S1.NUMERICSTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseNumericString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");let G=W.toString("utf8");if(!IM(G))throw Error("ASN1 syntax error: invalid NumericString");return G}static PrintableString(W){let G=new z1(D8.UNIVERSAL,S1.PRINTABLESTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parsePrintableString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static IA5String(W){if(!zM(W))throw Error("ASN1 syntax error: invalid IA5String");let G=new z1(D8.UNIVERSAL,S1.IA5STRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseIA5String(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");let G=W.toString("utf8");if(!zM(G))throw Error("ASN1 syntax error: invalid IA5String");return G}static T61String(W){let G=new z1(D8.UNIVERSAL,S1.T61STRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseT61String(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static GeneralString(W){let G=new z1(D8.UNIVERSAL,S1.GENERALSTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseGeneralString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static UTCTime(W){let G="",X=[];X.push((""+W.getUTCFullYear()).substr(2)),X.push(""+(W.getUTCMonth()+1)),X.push(""+W.getUTCDate()),X.push(""+W.getUTCHours()),X.push(""+W.getUTCMinutes()),X.push(""+W.getUTCSeconds());for(let V of X){if(V.length<2)G+="0";G+=V}G+="Z";let Y=new z1(D8.UNIVERSAL,S1.UTCTIME,Buffer.from(G,"utf8"));return Y._value=W,Y}static parseUTCTime(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid UTC Time");let G=W.toString("utf8"),X=new Date,Y=g8(G.substr(0,2));Y=Y>=50?1900+Y:2000+Y;let V=g8(G.substr(2,2))-1,Z=g8(G.substr(4,2)),Q=g8(G.substr(6,2)),J=g8(G.substr(8,2)),U=0,q=0,A="";if(G.length>11){if(q=10,A=G.charAt(q),A!=="+"&&A!=="-")U=g8(G.substr(10,2)),q+=2}if(X.setUTCFullYear(Y,V,Z),X.setUTCHours(Q,J,U,0),q>0){if(A=G.charAt(q),A==="+"||A==="-"){let N=g8(G.substr(q+1,2)),H=g8(G.substr(q+4,2)),z=N*60+H;if(z*=60000,A==="+")X.setTime(+X-z);else X.setTime(+X+z)}}return X}static GeneralizedTime(W){let G="",X=[];X.push(""+W.getUTCFullYear()),X.push(""+(W.getUTCMonth()+1)),X.push(""+W.getUTCDate()),X.push(""+W.getUTCHours()),X.push(""+W.getUTCMinutes()),X.push(""+W.getUTCSeconds());for(let V of X){if(V.length<2)G+="0";G+=V}G+="Z";let Y=new z1(D8.UNIVERSAL,S1.GENERALIZEDTIME,Buffer.from(G,"utf8"));return Y._value=W,Y}static parseGeneralizedTime(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Generalized Time");let G=W.toString("utf8"),X=new Date,Y=g8(G.substr(0,4)),V=g8(G.substr(4,2))-1,Z=g8(G.substr(6,2)),Q=g8(G.substr(8,2)),J=g8(G.substr(10,2)),U=g8(G.substr(12,2)),q=0,A=0,N=!1;if(G.charAt(G.length-1)==="Z")N=!0;let H=G.length-5,z=G.charAt(H);if(z==="+"||z==="-"){let w=g8(G.substr(H+1,2)),C=g8(G.substr(H+4,2));if(A=w*60+C,A*=60000,z==="+")A*=-1;N=!0}if(G.charAt(14)===".")q=parseFloat(G.substr(14))*1000;if(N)X.setUTCFullYear(Y,V,Z),X.setUTCHours(Q,J,U,q),X.setTime(+X+A);else X.setFullYear(Y,V,Z),X.setHours(Q,J,U,q);return X}static parseTime(W,G){switch(W){case S1.UTCTIME:return z1.parseUTCTime(G);case S1.GENERALIZEDTIME:return z1.parseGeneralizedTime(G);default:throw Error("Invalid ASN1 time tag")}}static Set(W){let G=new z1(D8.UNIVERSAL,S1.SET,Buffer.concat(W.map((X)=>X.toDER())));return G._value=W,G}static Seq(W){let G=new z1(D8.UNIVERSAL,S1.SEQUENCE,Buffer.concat(W.map((X)=>X.toDER())));return G._value=W,G}static Spec(W,G,X=!0){let Y=Array.isArray(G)?Buffer.concat(G.map((Z)=>Z.toDER())):G.toDER();if(Array.isArray(G))X=!0;let V=new z1(D8.CONTEXT_SPECIFIC,W,Y,X);return V._value=G,V}static fromDER(W,G=!1){return z1._fromDER(new kU.BufferVisitor(W),G)}static parseDER(W,G,X){let Y=z1._fromDER(new kU.BufferVisitor(W),!1);if(Y.class!==G&&Y.tag!==X)throw Error(`invalid ASN.1 DER for class ${G} and tag ${X}`);return Y}static parseDERWithTemplate(W,G){let X=z1._fromDER(new kU.BufferVisitor(W),!0),Y={},V=X.validate(G,Y);if(V!=null)throw V.data=X,V;return Y}static _parseCompound(W,G){let X=[],Y=W.length,V=new kU.BufferVisitor(W),Z=0;while(Z<Y){let Q=V.end;X.push(z1._fromDER(V,G)),Z+=V.end-Q}return X}static _fromDER(W,G){if(!(W.buf instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Generalized Time");W.mustWalk(1,"Too few bytes to read ASN.1 tag.");let X=W.start,Y=W.buf[X],V=Y&192,Z=Y&31,Q=Db(W);if(W.mustHas(Q),Q!==0&&Z===S1.NULL)throw Error("invalid value length or NULL tag.");W.mustWalk(Q);let J=(Y&32)===32,U=new z1(V,Z,W.buf.slice(W.start,W.end),J);if(J&&G)U._value=z1._parseCompound(U.bytes,G);return U._der=W.buf.slice(X,W.end),U}constructor(W,G,X,Y=!1){this.class=W,this.tag=G,this.bytes=X,this.isCompound=Y||G===S1.SEQUENCE||G===S1.SET,this._value=void 0,this._der=null}get value(){if(this._value===void 0)this._value=this.valueOf();return this._value}get DER(){if(this._der==null)this._der=this.toDER();return this._der}mustCompound(W="asn1 object value is not compound"){if(!this.isCompound||!Array.isArray(this.value)){let G=Error(W);throw G.data=this.toJSON(),G}return this.value}equals(W){if(!(W instanceof z1))return!1;if(this.class!==W.class||this.tag!==W.tag||this.isCompound!==W.isCompound)return!1;if(!this.bytes.equals(W.bytes))return!1;return!0}toDER(){let W=this.class|this.tag;if(this.isCompound)W|=32;let G=Tb(this.bytes.length),X=Buffer.allocUnsafe(2+G+this.bytes.length);if(X.writeInt8(W,0),G===0)X.writeUInt8(this.bytes.length,1),this.bytes.copy(X,2);else X.writeUInt8(G|128,1),X.writeUIntBE(this.bytes.length,2,G),this.bytes.copy(X,2+G);return X}valueOf(){if(this.isCompound)return z1._parseCompound(this.bytes,!1);if(this.class!==D8.UNIVERSAL)return this.bytes;switch(this.tag){case S1.BOOLEAN:return z1.parseBool(this.bytes);case S1.INTEGER:return z1.parseInteger(this.bytes);case S1.BITSTRING:return z1.parseBitString(this.bytes);case S1.NULL:return z1.parseNull(this.bytes);case S1.OID:return z1.parseOID(this.bytes);case S1.UTF8:return z1.parseUTF8(this.bytes);case S1.NUMERICSTRING:return z1.parseNumericString(this.bytes);case S1.PRINTABLESTRING:return z1.parsePrintableString(this.bytes);case S1.T61STRING:return z1.parseT61String(this.bytes);case S1.IA5STRING:return z1.parseIA5String(this.bytes);case S1.GENERALSTRING:return z1.parseGeneralString(this.bytes);case S1.UTCTIME:return z1.parseUTCTime(this.bytes);case S1.GENERALIZEDTIME:return z1.parseGeneralizedTime(this.bytes);default:return this.bytes}}validate(W,G={}){if(this.class!==W.class)return Error(`ASN.1 object validate failure for ${W.name} : error class ${D8[this.class]}`);if(!(Array.isArray(W.tag)?W.tag:[W.tag]).includes(this.tag))return Error(`ASN.1 object validate failure for ${W.name}: error tag ${S1[this.tag]}`);if(W.capture!=null)G[W.capture]=this;if(Array.isArray(W.value)){let Y=this.mustCompound(`${W.name} need compound ASN1 value`);for(let V=0,Z=0;V<W.value.length;V++)if(Y[Z]!=null){let Q=Y[Z].validate(W.value[V],G);if(Q==null)Z++;else if(W.value[V].optional!==!0)return Q}else if(W.value[V].optional!==!0)return Error(`ASN.1 object validate failure for ${W.value[V].name}: not exists`)}else if(W.value!=null){let Y=this.tag===S1.BITSTRING?this.bytes.slice(1):this.bytes;return z1.fromDER(Y).validate(W.value,G)}return null}toJSON(){let W=this.value;if(Array.isArray(W))W=W.map((G)=>G.toJSON());return{class:D8[this.class],tag:this.class===D8.UNIVERSAL?S1[this.tag]:this.tag,value:W}}[NM.inspect.custom](W,G){if(G.depth<=2)G.depth=10;return`<${this.constructor.name} ${NM.inspect(this.toJSON(),G)}>`}}wM.ASN1=z1;function Db(W){W.mustWalk(1,"Too few bytes to read ASN.1 value length.");let G=W.buf[W.start];if((G&128)===0)return G;let X=G&127;return W.mustWalk(X,"Too few bytes to read ASN.1 value length."),W.buf.readUIntBE(W.start,X)}function Tb(W){if(W<=127)return 0;else if(W<=255)return 1;else if(W<=65535)return 2;else if(W<=16777215)return 3;else if(W<=4294967295)return 4;else if(W<=1099511627775)return 5;else if(W<=281474976710655)return 6;else throw Error("invalid value length")}function IM(W){for(let G of W){let X=G.charCodeAt(0);if(X!==32&&(X<48||X>57))return!1}return!0}function zM(W){for(let G of W)if(G.charCodeAt(0)>=128)return!1;return!0}function g8(W,G=10){let X=parseInt(W,G);if(Number.isNaN(X))throw Error(`Invalid numeric string "${W}" in radix ${G}.`);return X}});var xI=Y1((OM)=>{Object.defineProperty(OM,"__esModule",{value:!0});var Rb=BI();OM.BufferVisitor=Rb.BufferVisitor;var Lb=HM();OM.PEM=Lb.PEM;var yU=jM();OM.ASN1=yU.ASN1;OM.Class=yU.Class;OM.Tag=yU.Tag;OM.BitString=yU.BitString});var vI=Y1((KM)=>{Object.defineProperty(KM,"__esModule",{value:!0});var N6=E8("util"),mV=E8("crypto"),kI=xU(),M0=xI(),H9=FU();KM.publicKeyValidator={name:"PublicKeyInfo",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,capture:"publicKeyInfo",value:[{name:"PublicKeyInfo.AlgorithmIdentifier",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,value:[{name:"PublicKeyAlgorithmIdentifier.algorithm",class:M0.Class.UNIVERSAL,tag:M0.Tag.OID,capture:"publicKeyOID"}]},{name:"PublicKeyInfo.PublicKey",class:M0.Class.UNIVERSAL,tag:M0.Tag.BITSTRING,capture:"publicKey"}]};KM.privateKeyValidator={name:"PrivateKeyInfo",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,capture:"privateKeyInfo",value:[{name:"PrivateKeyInfo.Version",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.AlgorithmIdentifier",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,value:[{name:"PrivateKeyAlgorithmIdentifier.algorithm",class:M0.Class.UNIVERSAL,tag:M0.Tag.OID,capture:"privateKeyOID"}]},{name:"PrivateKeyInfo.PrivateKey",class:M0.Class.UNIVERSAL,tag:M0.Tag.OCTETSTRING,capture:"privateKey"}]};var kb={name:"RSAPublicKey",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,value:[{name:"RSAPublicKey.modulus",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"publicKeyExponent"}]},_b={name:"RSAPrivateKey",class:M0.Class.UNIVERSAL,tag:M0.Tag.SEQUENCE,value:[{name:"RSAPrivateKey.version",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",class:M0.Class.UNIVERSAL,tag:M0.Tag.INTEGER,capture:"privateKeyCoefficient"}]},yb=[H9.getOID("X25519"),H9.getOID("X448"),H9.getOID("Ed25519"),H9.getOID("Ed448")];class N7{constructor(W){let G={},X=W.validate(KM.publicKeyValidator,G);if(X!=null)throw Error("Cannot read X.509 public key: "+X.message);this.oid=M0.ASN1.parseOID(G.publicKeyOID.bytes),this.algo=H9.getOIDName(this.oid),this._pkcs8=W,this._keyRaw=M0.ASN1.parseBitString(G.publicKey.bytes).buf,this._finalKey=this._keyRaw,this._finalPEM=""}static fromPEM(W){let G=M0.PEM.parse(W)[0];if(G.procType.includes("ENCRYPTED"))throw Error("Could not convert public key from PEM, PEM is encrypted.");let X=M0.ASN1.fromDER(G.body,!0);switch(G.type){case"PUBLIC KEY":return new N7(X);case"RSA PUBLIC KEY":let Y=M0.ASN1.Seq([M0.ASN1.Seq([M0.ASN1.OID(H9.getOID("rsaEncryption")),M0.ASN1.Null()]),M0.ASN1.BitString(X.DER)]);return new N7(Y);default:throw Error("Could not convert public key from PEM, recommend PKCS#8 PEM")}}static addVerifier(W,G){if(W=H9.getOID(W),W==="")throw Error(`Invalid object identifier: ${W}`);if(N7._verifiers[W]!=null)throw Error(`Verifier ${W} exists`);N7._verifiers[W]=G}get keyRaw(){return this._finalKey}verify(W,G,X){let Y=N7._verifiers[this.oid];if(Y!=null){let Z=mV.createHash(X).update(W).digest();return Y.call(this,Z,G)}let V=mV.createVerify(X);return V.update(W),V.verify(this.toPEM(),G)}getFingerprint(W,G="PublicKey"){let X;switch(G){case"PublicKeyInfo":X=this._pkcs8.DER;break;case"PublicKey":X=this._keyRaw;break;default:throw Error(`Unknown fingerprint type "${G}".`)}let Y=mV.createHash(W);return Y.update(X),Y.digest()}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){if(this._finalPEM==="")this._finalPEM=new M0.PEM("PUBLIC KEY",this._pkcs8.DER).toString();return this._finalPEM}toJSON(){return{oid:this.oid,algo:this.algo,publicKey:this._keyRaw}}[N6.inspect.custom](W,G){return`<${this.constructor.name} ${N6.inspect(this.toJSON(),G)}>`}}N7._verifiers=Object.create(null);KM.PublicKey=N7;class I7{constructor(W){let G=Object.create(null),X=W.validate(KM.privateKeyValidator,G);if(X!=null)throw Error("Cannot read X.509 private key: "+X.message);if(this.version=M0.ASN1.parseIntegerNum(G.privateKeyVersion.bytes)+1,this.oid=M0.ASN1.parseOID(G.privateKeyOID.bytes),this.algo=H9.getOIDName(this.oid),this._pkcs8=W,this._keyRaw=G.privateKey.bytes,this._publicKeyRaw=null,this._finalKey=this._keyRaw,this._finalPEM="",yb.includes(this.oid)){if(this._finalKey=this._keyRaw=M0.ASN1.parseDER(this._keyRaw,M0.Class.UNIVERSAL,M0.Tag.OCTETSTRING).bytes,this.oid==="1.3.101.112"){let Y=kI.sign.keyPair.fromSeed(this._keyRaw);this._publicKeyRaw=Buffer.from(Y.publicKey),this._finalKey=Buffer.from(Y.secretKey)}else if(this.version===2){for(let Y of W.mustCompound())if(Y.class===M0.Class.CONTEXT_SPECIFIC&&Y.tag===1)this._publicKeyRaw=M0.ASN1.parseBitString(Y.bytes).buf,this._finalKey=Buffer.concat([this._keyRaw,this._publicKeyRaw])}}}static fromPEM(W){let G=M0.PEM.parse(W)[0];if(G.procType.includes("ENCRYPTED"))throw Error("Could not convert private key from PEM, PEM is encrypted.");let X=M0.ASN1.fromDER(G.body,!0);switch(G.type){case"PRIVATE KEY":return new I7(X);case"RSA PRIVATE KEY":return X=M0.ASN1.Seq([X.value[0],M0.ASN1.Seq([M0.ASN1.OID(H9.getOID("rsaEncryption")),M0.ASN1.Null()]),new M0.ASN1(M0.Class.UNIVERSAL,M0.Tag.OCTETSTRING,X.DER)]),new I7(X);default:throw Error("Could not convert private key from PEM, recommend PKCS#8 PEM")}}static addSigner(W,G){if(W=H9.getOID(W),W==="")throw Error(`Invalid object identifier: ${W}`);if(I7._signers[W]!=null)throw Error(`Signer ${W} exists`);I7._signers[W]=G}get keyRaw(){return this._finalKey}get publicKeyRaw(){return this._publicKeyRaw}sign(W,G){let X=I7._signers[this.oid];if(X!=null){let V=mV.createHash(G).update(W).digest();return X.call(this,V)}let Y=mV.createSign(G);return Y.update(W),Y.sign(this.toPEM())}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){if(this._finalPEM==="")this._finalPEM=new M0.PEM("PRIVATE KEY",this._pkcs8.DER).toString();return this._finalPEM}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,privateKey:this._keyRaw,publicKey:this._publicKeyRaw}}[N6.inspect.custom](W,G){return`<${this.constructor.name} ${N6.inspect(this.toJSON(),G)}>`}}I7._signers=Object.create(null);KM.PrivateKey=I7;class _I extends N7{static fromPublicKey(W){return new _I(W.toASN1())}constructor(W){super(W);if(H9.getOID(this.oid)!==H9.getOID("rsaEncryption"))throw Error(`Invalid RSA public key, unknown OID: ${this.oid}`);let G=Object.create(null);this._pkcs1=M0.ASN1.fromDER(this._keyRaw,!0);let X=this._pkcs1.validate(kb,G);if(X!=null)throw Error("Cannot read RSA public key: "+X.message);this.modulus=M0.ASN1.parseIntegerStr(G.publicKeyModulus.bytes),this.exponent=M0.ASN1.parseIntegerNum(G.publicKeyExponent.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){if(this._finalPEM==="")this._finalPEM=new M0.PEM("RSA PUBLIC KEY",this._keyRaw).toString();return this._finalPEM}toPublicKeyPEM(){return new M0.PEM("PUBLIC KEY",this._pkcs8.DER).toString()}toJSON(){return{oid:this.oid,algo:this.algo,modulus:H6(this.modulus),exponent:this.exponent}}[N6.inspect.custom](W,G){return`<${this.constructor.name} ${N6.inspect(this.toJSON(),G)}>`}}KM.RSAPublicKey=_I;class yI extends I7{static fromPrivateKey(W){return new yI(W.toASN1())}constructor(W){super(W);if(H9.getOID(this.oid)!==H9.getOID("rsaEncryption"))throw Error(`Invalid RSA private key, unknown OID: ${this.oid}`);let G=Object.create(null);this._pkcs1=M0.ASN1.fromDER(this._keyRaw,!0);let X=this._pkcs1.validate(_b,G);if(X!=null)throw Error("Cannot read RSA private key: "+X.message);this.publicExponent=M0.ASN1.parseIntegerNum(G.privateKeyPublicExponent.bytes),this.privateExponent=M0.ASN1.parseIntegerStr(G.privateKeyPrivateExponent.bytes),this.modulus=M0.ASN1.parseIntegerStr(G.privateKeyModulus.bytes),this.prime1=M0.ASN1.parseIntegerStr(G.privateKeyPrime1.bytes),this.prime2=M0.ASN1.parseIntegerStr(G.privateKeyPrime2.bytes),this.exponent1=M0.ASN1.parseIntegerStr(G.privateKeyExponent1.bytes),this.exponent2=M0.ASN1.parseIntegerStr(G.privateKeyExponent2.bytes),this.coefficient=M0.ASN1.parseIntegerStr(G.privateKeyCoefficient.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){if(this._finalPEM==="")this._finalPEM=new M0.PEM("RSA PRIVATE KEY",this._keyRaw).toString();return this._finalPEM}toPrivateKeyPEM(){return new M0.PEM("PRIVATE KEY",this._pkcs8.DER).toString()}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,publicExponent:this.publicExponent,privateExponent:H6(this.privateExponent),modulus:H6(this.modulus),prime1:H6(this.prime1),prime2:H6(this.prime2),exponent1:H6(this.exponent1),exponent2:H6(this.exponent2),coefficient:H6(this.coefficient)}}[N6.inspect.custom](W,G){return`<${this.constructor.name} ${N6.inspect(this.toJSON(),G)}>`}}KM.RSAPrivateKey=yI;function H6(W){return W.length%8!==0&&W.startsWith("00")?W.slice(2):W}N7.addVerifier(H9.getOID("Ed25519"),function(W,G){return kI.sign.detached.verify(W,G,this.keyRaw)});I7.addSigner(H9.getOID("Ed25519"),function(W){let G=this.keyRaw;if(G.length!==64)throw Error("Invalid signing key.");return Buffer.from(kI.sign.detached(W,G))})});var EM=Y1((BM)=>{Object.defineProperty(BM,"__esModule",{value:!0});var TM=E8("util"),bb=E8("crypto"),j0=xI(),N9=FU(),LM=vI(),u8=Object.create(null);u8.CN=N9.getOID("commonName");u8.commonName="CN";u8.C=N9.getOID("countryName");u8.countryName="C";u8.L=N9.getOID("localityName");u8.localityName="L";u8.ST=N9.getOID("stateOrProvinceName");u8.stateOrProvinceName="ST";u8.O=N9.getOID("organizationName");u8.organizationName="O";u8.OU=N9.getOID("organizationalUnitName");u8.organizationalUnitName="OU";u8.E=N9.getOID("emailAddress");u8.emailAddress="E";function mb(W){return u8[W]==null?"":u8[W]}var fb={name:"Certificate",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.NONE,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",class:j0.Class.UNIVERSAL,tag:j0.Tag.INTEGER,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",class:j0.Class.UNIVERSAL,tag:j0.Tag.INTEGER,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.signature.algorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID,capture:"certinfoSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,optional:!0,capture:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"certIssuer"},{name:"Certificate.TBSCertificate.validity",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.validity.notBefore",class:j0.Class.UNIVERSAL,tag:[j0.Tag.UTCTIME,j0.Tag.GENERALIZEDTIME],capture:"certValidityNotBefore"},{name:"Certificate.TBSCertificate.validity.notAfter",class:j0.Class.UNIVERSAL,tag:[j0.Tag.UTCTIME,j0.Tag.GENERALIZEDTIME],capture:"certValidityNotAfter"}]},{name:"Certificate.TBSCertificate.subject",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"certSubject"},LM.publicKeyValidator,{name:"Certificate.TBSCertificate.issuerUniqueID",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.BOOLEAN,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.INTEGER,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.BITSTRING,capture:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.signatureAlgorithm.algorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID,capture:"certSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,optional:!0,capture:"certSignatureParams"}]},{name:"Certificate.signatureValue",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certSignature"}]};class vU{constructor(){this.attributes=[],this.uniqueId=null}get commonName(){return this.getFieldValue("commonName")}get organizationName(){return this.getFieldValue("organizationName")}get organizationalUnitName(){return this.getFieldValue("organizationalUnitName")}get countryName(){return this.getFieldValue("countryName")}get localityName(){return this.getFieldValue("localityName")}get serialName(){return this.getFieldValue("serialName")}getHash(){let W=bb.createHash("sha1");for(let G of this.attributes)W.update(G.oid),W.update(G.value);return W.digest()}getField(W){for(let G of this.attributes)if(W===G.oid||W===G.name||W===G.shortName)return G;return null}addField(W){PM([W]),this.attributes.push(W)}setAttrs(W){PM(W),this.attributes=W}toJSON(){let W={};for(let G of this.attributes){let X=G.shortName;if(typeof X==="string"&&X!=="")W[X]=G.value}return W.uniqueId=this.uniqueId,W.attributes=this.attributes,W}getFieldValue(W){let G=this.getField(W);if(G!=null)return G.value;return""}}BM.DistinguishedName=vU;class gU{static fromPEMs(W){let G=[],X=j0.PEM.parse(W);for(let Y of X){if(Y.type!=="CERTIFICATE"&&Y.type!=="X509 CERTIFICATE"&&Y.type!=="TRUSTED CERTIFICATE")throw Error("Could not convert certificate from PEM: invalid type");if(Y.procType.includes("ENCRYPTED"))throw Error("Could not convert certificate from PEM: PEM is encrypted.");let V=j0.ASN1.fromDER(Y.body);G.push(new gU(V))}if(G.length===0)throw Error("No Certificate");return G}static fromPEM(W){return gU.fromPEMs(W)[0]}constructor(W){let G=Object.create(null),X=W.validate(fb,G);if(X!=null)throw Error("Cannot read X.509 certificate: "+X.message);if(this.raw=W.DER,this.version=G.certVersion==null?0:j0.ASN1.parseIntegerNum(G.certVersion.bytes)+1,this.serialNumber=j0.ASN1.parseIntegerStr(G.certSerialNumber.bytes),this.signatureOID=j0.ASN1.parseOID(G.certSignatureOID.bytes),this.signatureAlgorithm=N9.getOIDName(this.signatureOID),this.infoSignatureOID=j0.ASN1.parseOID(G.certinfoSignatureOID.bytes),this.signature=j0.ASN1.parseBitString(G.certSignature.bytes).buf,this.validFrom=j0.ASN1.parseTime(G.certValidityNotBefore.tag,G.certValidityNotBefore.bytes),this.validTo=j0.ASN1.parseTime(G.certValidityNotAfter.tag,G.certValidityNotAfter.bytes),this.issuer=new vU,this.issuer.setAttrs(RM(G.certIssuer)),G.certIssuerUniqueId!=null)this.issuer.uniqueId=j0.ASN1.parseBitString(G.certIssuerUniqueId.bytes);if(this.subject=new vU,this.subject.setAttrs(RM(G.certSubject)),G.certSubjectUniqueId!=null)this.subject.uniqueId=j0.ASN1.parseBitString(G.certSubjectUniqueId.bytes);if(this.extensions=[],this.subjectKeyIdentifier="",this.authorityKeyIdentifier="",this.ocspServer="",this.issuingCertificateURL="",this.isCA=!1,this.maxPathLen=-1,this.basicConstraintsValid=!1,this.keyUsage=0,this.dnsNames=[],this.emailAddresses=[],this.ipAddresses=[],this.uris=[],G.certExtensions!=null){this.extensions=cb(G.certExtensions);for(let Y of this.extensions){if(typeof Y.subjectKeyIdentifier==="string")this.subjectKeyIdentifier=Y.subjectKeyIdentifier;if(typeof Y.authorityKeyIdentifier==="string")this.authorityKeyIdentifier=Y.authorityKeyIdentifier;if(typeof Y.authorityInfoAccessOcsp==="string")this.ocspServer=Y.authorityInfoAccessOcsp;if(typeof Y.authorityInfoAccessIssuers==="string")this.issuingCertificateURL=Y.authorityInfoAccessIssuers;if(typeof Y.basicConstraintsValid==="boolean")this.isCA=Y.isCA,this.maxPathLen=Y.maxPathLen,this.basicConstraintsValid=Y.basicConstraintsValid;if(typeof Y.keyUsage==="number")this.keyUsage=Y.keyUsage;if(Array.isArray(Y.altNames))for(let V of Y.altNames){if(V.dnsName!=null)this.dnsNames.push(V.dnsName);if(V.email!=null)this.emailAddresses.push(V.email);if(V.ip!=null)this.ipAddresses.push(V.ip);if(V.uri!=null)this.uris.push(V.uri)}}}this.publicKey=new LM.PublicKey(G.publicKeyInfo),this.publicKeyRaw=this.publicKey.toDER(),this.tbsCertificate=G.tbsCertificate}getExtension(W,G=""){for(let X of this.extensions)if(W===X.oid||W===X.name)return G===""?X:X[G];return null}checkSignature(W){if(this.version===3&&!this.basicConstraintsValid||this.basicConstraintsValid&&!this.isCA)return Error("The parent constraint violation error");if(this.getExtension("keyUsage","keyCertSign")!==!0)return Error("The parent constraint violation error");if(!W.isIssuer(this))return Error("The parent certificate did not issue the given child certificate");let G=Wm(W.signatureOID);if(G==="")return Error("Unknown child signature OID.");if(this.publicKey.verify(W.tbsCertificate.DER,W.signature,G)===!1)return Error("Child signature not matched");return null}isIssuer(W){return this.issuer.getHash().equals(W.subject.getHash())}verifySubjectKeyIdentifier(){return this.publicKey.getFingerprint("sha1","PublicKey").toString("hex")===this.subjectKeyIdentifier}toJSON(){let W={};for(let G of Object.keys(this))W[G]=Gm(this[G]);return delete W.tbsCertificate,W}[TM.inspect.custom](W,G){if(G.depth<=2)G.depth=10;return`<${this.constructor.name} ${TM.inspect(this.toJSON(),G)}>`}}BM.Certificate=gU;function cb(W){let G=[];for(let X of W.mustCompound())for(let Y of X.mustCompound())G.push(pb(Y));return G}function pb(W){let G={};if(G.oid=j0.ASN1.parseOID(W.value[0].bytes),G.critical=!1,W.value[1].tag===j0.Tag.BOOLEAN)G.critical=j0.ASN1.parseBool(W.value[1].bytes),G.value=W.value[2].bytes;else G.value=W.value[1].bytes;switch(G.name=N9.getOIDName(G.oid),G.name){case"keyUsage":lb(G);break;case"basicConstraints":db(G);break;case"extKeyUsage":ob(G);break;case"nsCertType":nb(G);break;case"subjectAltName":MM(G);break;case"issuerAltName":MM(G);break;case"subjectKeyIdentifier":rb(G);break;case"authorityKeyIdentifier":sb(G);break;case"authorityInfoAccess":eb(G);break}return G}function lb(W){let G=j0.ASN1.parseBitString(j0.ASN1.fromDER(W.value).bytes),X=0,Y=0;W.keyUsage=0;for(let V=0;V<9;V++)if(G.at(V)!==0)W.keyUsage|=1<<V;if(G.buf.length>0)X=G.buf[0],Y=G.buf.length>1?G.buf[1]:0;W.digitalSignature=(X&128)===128,W.nonRepudiation=(X&64)===64,W.keyEncipherment=(X&32)===32,W.dataEncipherment=(X&16)===16,W.keyAgreement=(X&8)===8,W.keyCertSign=(X&4)===4,W.cRLSign=(X&2)===2,W.encipherOnly=(X&1)===1,W.decipherOnly=(Y&128)===128}function db(W){let X=j0.ASN1.fromDER(W.value).mustCompound();if(X.length>0&&X[0].tag===j0.Tag.BOOLEAN)W.isCA=j0.ASN1.parseBool(X[0].bytes);else W.isCA=!1;let Y=null;if(X.length>0&&X[0].tag===j0.Tag.INTEGER)Y=X[0].bytes;else if(X.length>1)Y=X[1].bytes;if(Y!==null)W.maxPathLen=j0.ASN1.parseInteger(Y);else W.maxPathLen=-1;W.basicConstraintsValid=!0}function ob(W){let X=j0.ASN1.fromDER(W.value).mustCompound();for(let Y of X)W[N9.getOIDName(j0.ASN1.parseOID(Y.bytes))]=!0}function nb(W){let G=j0.ASN1.parseBitString(j0.ASN1.fromDER(W.value).bytes),X=0;if(G.buf.length>0)X=G.buf[0];W.client=(X&128)===128,W.server=(X&64)===64,W.email=(X&32)===32,W.objsign=(X&16)===16,W.reserved=(X&8)===8,W.sslCA=(X&4)===4,W.emailCA=(X&2)===2,W.objCA=(X&1)===1}function MM(W){W.altNames=[];let X=j0.ASN1.fromDER(W.value).mustCompound();for(let Y of X){let V={tag:Y.tag,value:Y.bytes};switch(W.altNames.push(V),Y.tag){case 1:V.email=Y.bytes.toString();break;case 2:V.dnsName=Y.bytes.toString();break;case 6:V.uri=Y.bytes.toString();break;case 7:V.ip=N9.bytesToIP(Y.bytes);break;case 8:V.oid=j0.ASN1.parseOID(Y.bytes);break;default:}}}var ib={name:"subjectKeyIdentifier",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,capture:"subjectKeyIdentifier"};function rb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,ib);W.subjectKeyIdentifier=G.subjectKeyIdentifier.bytes.toString("hex")}var ab={name:"authorityKeyIdentifier",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"authorityKeyIdentifier.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.NONE,capture:"authorityKeyIdentifier"}]};function sb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,ab);W.authorityKeyIdentifier=G.authorityKeyIdentifier.bytes.toString("hex")}var tb={name:"authorityInfoAccess",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp.oid",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessOcsp.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.OID,capture:"authorityInfoAccessOcsp"}]},{name:"authorityInfoAccess.authorityInfoAccessIssuers",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessIssuers.oid",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessIssuers.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.OID,capture:"authorityInfoAccessIssuers"}]}]};function eb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,tb);if(G.authorityInfoAccessOcsp!=null)W.authorityInfoAccessOcsp=G.authorityInfoAccessOcsp.bytes.toString();if(G.authorityInfoAccessIssuers!=null)W.authorityInfoAccessIssuers=G.authorityInfoAccessIssuers.bytes.toString()}function PM(W){for(let G of W){if(G.name==null||G.name===""){if(G.oid!=null)G.name=N9.getOIDName(G.oid);if(G.name===""&&G.shortName!=null)G.name=N9.getOIDName(u8[G.shortName])}if(G.oid==null||G.oid==="")if(G.name!=="")G.oid=N9.getOID(G.name);else throw Error("Attribute oid not specified.");if(G.shortName==null||G.shortName==="")G.shortName=u8[G.name]==null?"":u8[G.name];if(G.value==null)throw Error("Attribute value not specified.")}}function Wm(W){switch(N9.getOIDName(W)){case"sha1WithRsaEncryption":return"sha1";case"md5WithRsaEncryption":return"md5";case"sha256WithRsaEncryption":return"sha256";case"sha384WithRsaEncryption":return"sha384";case"sha512WithRsaEncryption":return"sha512";case"RSASSA-PSS":return"sha256";case"ecdsaWithSha1":return"sha1";case"ecdsaWithSha256":return"sha256";case"ecdsaWithSha384":return"sha384";case"ecdsaWithSha512":return"sha512";case"dsaWithSha1":return"sha1";case"dsaWithSha256":return"sha256";default:return""}}function RM(W){let G=[];for(let X of W.mustCompound())for(let Y of X.mustCompound()){let V=Y.mustCompound(),Z={};Z.oid=j0.ASN1.parseOID(V[0].bytes),Z.value=V[1].value,Z.valueTag=V[1].tag,Z.name=N9.getOIDName(Z.oid),Z.shortName=mb(Z.name),G.push(Z)}return G}function Gm(W){if(W!=null&&!(W instanceof Buffer)&&typeof W.toJSON==="function")return W.toJSON();return W}});var gI=Y1((FM)=>{Object.defineProperty(FM,"__esModule",{value:!0});var uU=FU();FM.bytesFromIP=uU.bytesFromIP;FM.bytesToIP=uU.bytesToIP;FM.getOID=uU.getOID;FM.getOIDName=uU.getOIDName;var hU=vI();FM.PublicKey=hU.PublicKey;FM.PrivateKey=hU.PrivateKey;FM.RSAPublicKey=hU.RSAPublicKey;FM.RSAPrivateKey=hU.RSAPrivateKey;var $M=EM();FM.Certificate=$M.Certificate;FM.DistinguishedName=$M.DistinguishedName});var xM=Y1(()=>{/*! *****************************************************************************
|
|
15
|
+
Copyright (C) Microsoft. All rights reserved.
|
|
16
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
17
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
18
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
|
|
20
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
21
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
22
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
23
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
24
|
+
|
|
25
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
26
|
+
and limitations under the License.
|
|
27
|
+
***************************************************************************** */var SM;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=V(W);if(typeof X.Reflect<"u")Y=V(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function V(U,q){return function(A,N){if(Object.defineProperty(U,A,{configurable:!0,writable:!0,value:N}),q)q(A,N)}}function Z(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return Z()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,V=typeof Symbol==="function",Z=V&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=V&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,q=!J&&!U,A={create:J?function(){return n7(Object.create(null))}:U?function(){return n7({__proto__:null})}:function(){return n7({})},has:q?function(r,F){return Y.call(r,F)}:function(r,F){return F in r},get:q?function(r,F){return Y.call(r,F)?r[F]:void 0}:function(r,F){return r[F]}},N=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:X6(),z=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:qW(),w=typeof WeakMap==="function"?WeakMap:QV(),C=V?Symbol.for("@reflect-metadata:registry"):void 0,D=i8(),x=j8(D);function h(r,F,d,X0){if(!u(d)){if(!k1(r))throw TypeError();if(!Q0(F))throw TypeError();if(!Q0(X0)&&!u(X0)&&!m(X0))throw TypeError();if(m(X0))X0=void 0;return d=Q1(d),o(r,F,d,X0)}else{if(!k1(r))throw TypeError();if(!B0(F))throw TypeError();return k(r,F)}}G("decorate",h);function p(r,F){function d(X0,w0){if(!Q0(X0))throw TypeError();if(!u(w0)&&!v0(w0))throw TypeError();f(r,F,X0,w0)}return d}G("metadata",p);function v(r,F,d,X0){if(!Q0(d))throw TypeError();if(!u(X0))X0=Q1(X0);return f(r,F,d,X0)}G("defineMetadata",v);function n(r,F,d){if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);return B(r,F,d)}G("hasMetadata",n);function c(r,F,d){if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);return R(r,F,d)}G("hasOwnMetadata",c);function l(r,F,d){if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);return L(r,F,d)}G("getMetadata",l);function G0(r,F,d){if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);return _(r,F,d)}G("getOwnMetadata",G0);function b(r,F){if(!Q0(r))throw TypeError();if(!u(F))F=Q1(F);return M(r,F)}G("getMetadataKeys",b);function Y0(r,F){if(!Q0(r))throw TypeError();if(!u(F))F=Q1(F);return $(r,F)}G("getOwnMetadataKeys",Y0);function J0(r,F,d){if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);if(!Q0(F))throw TypeError();if(!u(d))d=Q1(d);var X0=Z9(F,d,!1);if(u(X0))return!1;return X0.OrdinaryDeleteMetadata(r,F,d)}G("deleteMetadata",J0);function k(r,F){for(var d=r.length-1;d>=0;--d){var X0=r[d],w0=X0(F);if(!u(w0)&&!m(w0)){if(!B0(w0))throw TypeError();F=w0}}return F}function o(r,F,d,X0){for(var w0=r.length-1;w0>=0;--w0){var e0=r[w0],O1=e0(F,d,X0);if(!u(O1)&&!m(O1)){if(!Q0(O1))throw TypeError();X0=O1}}return X0}function B(r,F,d){var X0=R(r,F,d);if(X0)return!0;var w0=y1(F);if(!m(w0))return B(r,w0,d);return!1}function R(r,F,d){var X0=Z9(F,d,!1);if(u(X0))return!1;return x0(X0.OrdinaryHasOwnMetadata(r,F,d))}function L(r,F,d){var X0=R(r,F,d);if(X0)return _(r,F,d);var w0=y1(F);if(!m(w0))return L(r,w0,d);return}function _(r,F,d){var X0=Z9(F,d,!1);if(u(X0))return;return X0.OrdinaryGetOwnMetadata(r,F,d)}function f(r,F,d,X0){var w0=Z9(d,X0,!0);w0.OrdinaryDefineOwnMetadata(r,F,d,X0)}function M(r,F){var d=$(r,F),X0=y1(r);if(X0===null)return d;var w0=M(X0,F);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new z,O1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],u0=e0.has(F0);if(!u0)e0.add(F0),O1.push(F0)}for(var k0=0,Z1=w0;k0<Z1.length;k0++){var F0=Z1[k0],u0=e0.has(F0);if(!u0)e0.add(F0),O1.push(F0)}return O1}function $(r,F){var d=Z9(r,F,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(r,F)}function g(r){if(r===null)return 1;switch(typeof r){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return r===null?1:6;default:return 6}}function u(r){return r===void 0}function m(r){return r===null}function i(r){return typeof r==="symbol"}function Q0(r){return typeof r==="object"?r!==null:typeof r==="function"}function I0(r,F){switch(g(r)){case 0:return r;case 1:return r;case 2:return r;case 3:return r;case 4:return r;case 5:return r}var d=F===3?"string":F===5?"number":"default",X0=J8(r,Z);if(X0!==void 0){var w0=X0.call(r,d);if(Q0(w0))throw TypeError();return w0}return E0(r,d==="default"?"number":d)}function E0(r,F){if(F==="string"){var d=r.toString;if(q0(d)){var X0=d.call(r);if(!Q0(X0))return X0}var w0=r.valueOf;if(q0(w0)){var X0=w0.call(r);if(!Q0(X0))return X0}}else{var w0=r.valueOf;if(q0(w0)){var X0=w0.call(r);if(!Q0(X0))return X0}var e0=r.toString;if(q0(e0)){var X0=e0.call(r);if(!Q0(X0))return X0}}throw TypeError()}function x0(r){return!!r}function L0(r){return""+r}function Q1(r){var F=I0(r,3);if(i(F))return F;return L0(F)}function k1(r){return Array.isArray?Array.isArray(r):r instanceof Object?r instanceof Array:Object.prototype.toString.call(r)==="[object Array]"}function q0(r){return typeof r==="function"}function B0(r){return typeof r==="function"}function v0(r){switch(g(r)){case 3:return!0;case 4:return!0;default:return!1}}function T1(r,F){return r===F||r!==r&&F!==F}function J8(r,F){var d=r[F];if(d===void 0||d===null)return;if(!q0(d))throw TypeError();return d}function w1(r){var F=J8(r,Q);if(!q0(F))throw TypeError();var d=F.call(r);if(!Q0(d))throw TypeError();return d}function $0(r){return r.value}function c0(r){var F=r.next();return F.done?!1:F}function j1(r){var F=r.return;if(F)F.call(r)}function y1(r){var F=Object.getPrototypeOf(r);if(typeof r!=="function"||r===N)return F;if(F!==N)return F;var d=r.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return F;var w0=X0.constructor;if(typeof w0!=="function")return F;if(w0===r)return F;return w0}function E9(){var r;if(!u(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")r=A8(X.Reflect);var F,d,X0,w0=new w,e0={registerProvider:O1,getProvider:K0,setProvider:u0};return e0;function O1(k0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case r===k0:break;case u(F):F=k0;break;case F===k0:break;case u(d):d=k0;break;case d===k0:break;default:if(X0===void 0)X0=new z;X0.add(k0);break}}function r0(k0,Z1){if(!u(F)){if(F.isProviderFor(k0,Z1))return F;if(!u(d)){if(d.isProviderFor(k0,Z1))return F;if(!u(X0)){var X1=w1(X0);while(!0){var F1=c0(X1);if(!F1)return;var o1=$0(F1);if(o1.isProviderFor(k0,Z1))return j1(X1),o1}}}}if(!u(r)&&r.isProviderFor(k0,Z1))return r;return}function K0(k0,Z1){var X1=w0.get(k0),F1;if(!u(X1))F1=X1.get(Z1);if(!u(F1))return F1;if(F1=r0(k0,Z1),!u(F1)){if(u(X1))X1=new H,w0.set(k0,X1);X1.set(Z1,F1)}return F1}function F0(k0){if(u(k0))throw TypeError();return F===k0||d===k0||!u(X0)&&X0.has(k0)}function u0(k0,Z1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var F1=K0(k0,Z1);if(F1!==X1){if(!u(F1))return!1;var o1=w0.get(k0);if(u(o1))o1=new H,w0.set(k0,o1);o1.set(Z1,X1)}return!0}}function i8(){var r;if(!u(C)&&Q0(X.Reflect)&&Object.isExtensible(X.Reflect))r=X.Reflect[C];if(u(r))r=E9();if(!u(C)&&Q0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:r});return r}function j8(r){var F=new w,d={isProviderFor:function(F0,u0){var k0=F.get(F0);if(u(k0))return!1;return k0.has(u0)},OrdinaryDefineOwnMetadata:O1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,u0,k0){var Z1=F.get(F0),X1=!1;if(u(Z1)){if(!k0)return;Z1=new H,F.set(F0,Z1),X1=!0}var F1=Z1.get(u0);if(u(F1)){if(!k0)return;if(F1=new H,Z1.set(u0,F1),!r.setProvider(F0,u0,d)){if(Z1.delete(u0),X1)F.delete(F0);throw Error("Wrong provider for target.")}}return F1}function w0(F0,u0,k0){var Z1=X0(u0,k0,!1);if(u(Z1))return!1;return x0(Z1.has(F0))}function e0(F0,u0,k0){var Z1=X0(u0,k0,!1);if(u(Z1))return;return Z1.get(F0)}function O1(F0,u0,k0,Z1){var X1=X0(k0,Z1,!0);X1.set(F0,u0)}function r0(F0,u0){var k0=[],Z1=X0(F0,u0,!1);if(u(Z1))return k0;var X1=Z1.keys(),F1=w1(X1),o1=0;while(!0){var Z7=c0(F1);if(!Z7)return k0.length=o1,k0;var AW=$0(Z7);try{k0[o1]=AW}catch(JV){try{j1(F1)}finally{throw JV}}o1++}}function K0(F0,u0,k0){var Z1=X0(u0,k0,!1);if(u(Z1))return!1;if(!Z1.delete(F0))return!1;if(Z1.size===0){var X1=F.get(u0);if(!u(X1)){if(X1.delete(k0),X1.size===0)F.delete(X1)}}return!0}}function A8(r){var{defineMetadata:F,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=r,O1=new w,r0={isProviderFor:function(K0,F0){var u0=O1.get(K0);if(!u(u0)&&u0.has(F0))return!0;if(w0(K0,F0).length){if(u(u0))u0=new z,O1.set(K0,u0);return u0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:F,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function Z9(r,F,d){var X0=D.getProvider(r,F);if(!u(X0))return X0;if(d){if(D.setProvider(r,F,x))return x;throw Error("Illegal state.")}return}function X6(){var r={},F=[],d=function(){function r0(K0,F0,u0){this._index=0,this._keys=K0,this._values=F0,this._selector=u0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=F,this._values=F;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=F,this._values=F;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=r,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var u0=this._find(K0,!0);return this._values[u0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var u0=this._keys.length;for(var k0=F0+1;k0<u0;k0++)this._keys[k0-1]=this._keys[k0],this._values[k0-1]=this._values[k0];if(this._keys.length--,this._values.length--,T1(K0,this._cacheKey))this._cacheKey=r,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=r,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,O1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!T1(this._cacheKey,K0)){this._cacheIndex=-1;for(var u0=0;u0<this._keys.length;u0++)if(T1(this._keys[u0],K0)){this._cacheIndex=u0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function O1(r0,K0){return[r0,K0]}}function qW(){var r=function(){function F(){this._map=new H}return Object.defineProperty(F.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),F.prototype.has=function(d){return this._map.has(d)},F.prototype.add=function(d){return this._map.set(d,d),this},F.prototype.delete=function(d){return this._map.delete(d)},F.prototype.clear=function(){this._map.clear()},F.prototype.keys=function(){return this._map.keys()},F.prototype.values=function(){return this._map.keys()},F.prototype.entries=function(){return this._map.entries()},F.prototype["@@iterator"]=function(){return this.keys()},F.prototype[Q]=function(){return this.keys()},F}();return r}function QV(){var r=16,F=A.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var u0=w0(F0,!1);return u0!==void 0?A.has(u0,this._key):!1},K0.prototype.get=function(F0){var u0=w0(F0,!1);return u0!==void 0?A.get(u0,this._key):void 0},K0.prototype.set=function(F0,u0){var k0=w0(F0,!0);return k0[this._key]=u0,this},K0.prototype.delete=function(F0){var u0=w0(F0,!1);return u0!==void 0?delete u0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(A.has(F,K0));return F[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:A.create()})}return K0[d]}function e0(K0,F0){for(var u0=0;u0<F0;++u0)K0[u0]=Math.random()*255|0;return K0}function O1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=O1(r);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var u0=0;u0<r;++u0){var k0=K0[u0];if(u0===4||u0===6||u0===8)F0+="-";if(k0<16)F0+="0";F0+=k0.toString(16).toLowerCase()}return F0}}function n7(r){return r.__=void 0,delete r.__,r}})})(SM||(SM={}))});var XR=Y1((w10,Vq)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,Xq,Hz,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,Yq,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof Vq==="object"&&typeof w10==="object")W(X(G,X(w10)));else W(X(G));function X(Y,V){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(Z,Q){return Y[Z]=V?V(Z,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Z,Q){Z.__proto__=Q}||function(Z,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))Z[J]=Q[J]};$P=function(Z,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(Z,Q);function J(){this.constructor=Z}Z.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(Z){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var q in Q)if(Object.prototype.hasOwnProperty.call(Q,q))Z[q]=Q[q]}return Z},SP=function(Z,Q){var J={};for(var U in Z)if(Object.prototype.hasOwnProperty.call(Z,U)&&Q.indexOf(U)<0)J[U]=Z[U];if(Z!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var q=0,U=Object.getOwnPropertySymbols(Z);q<U.length;q++)if(Q.indexOf(U[q])<0&&Object.prototype.propertyIsEnumerable.call(Z,U[q]))J[U[q]]=Z[U[q]]}return J},xP=function(Z,Q,J,U){var q=arguments.length,A=q<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,N;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")A=Reflect.decorate(Z,Q,J,U);else for(var H=Z.length-1;H>=0;H--)if(N=Z[H])A=(q<3?N(A):q>3?N(Q,J,A):N(Q,J))||A;return q>3&&A&&Object.defineProperty(Q,J,A),A},kP=function(Z,Q){return function(J,U){Q(J,U,Z)}},_P=function(Z,Q,J,U,q,A){function N(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,z=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&Z?U.static?Z:Z.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var p={};for(var v in U)p[v]=v==="access"?{}:U[v];for(var v in U.access)p.access[v]=U.access[v];p.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");A.push(N(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[z],p);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=N(n.get))C.get=D;if(D=N(n.set))C.set=D;if(D=N(n.init))q.unshift(D)}else if(D=N(n))if(H==="field")q.unshift(D);else C[z]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(Z,Q,J){var U=arguments.length>2;for(var q=0;q<Q.length;q++)J=U?Q[q].call(Z,J):Q[q].call(Z);return U?J:void 0},vP=function(Z){return typeof Z==="symbol"?Z:"".concat(Z)},gP=function(Z,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(Z,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(Z,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(Z,Q)},hP=function(Z,Q,J,U){function q(A){return A instanceof J?A:new J(function(N){N(A)})}return new(J||(J=Promise))(function(A,N){function H(C){try{w(U.next(C))}catch(D){N(D)}}function z(C){try{w(U.throw(C))}catch(D){N(D)}}function w(C){C.done?A(C.value):q(C.value).then(H,z)}w((U=U.apply(Z,Q||[])).next())})},bP=function(Z,Q){var J={label:0,sent:function(){if(A[0]&1)throw A[1];return A[1]},trys:[],ops:[]},U,q,A,N=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return N.next=H(0),N.throw=H(1),N.return=H(2),typeof Symbol==="function"&&(N[Symbol.iterator]=function(){return this}),N;function H(w){return function(C){return z([w,C])}}function z(w){if(U)throw TypeError("Generator is already executing.");while(N&&(N=0,w[0]&&(J=0)),J)try{if(U=1,q&&(A=w[0]&2?q.return:w[0]?q.throw||((A=q.return)&&A.call(q),0):q.next)&&!(A=A.call(q,w[1])).done)return A;if(q=0,A)w=[w[0]&2,A.value];switch(w[0]){case 0:case 1:A=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,q=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((A=J.trys,!(A=A.length>0&&A[A.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!A||w[1]>A[0]&&w[1]<A[3])){J.label=w[1];break}if(w[0]===6&&J.label<A[1]){J.label=A[1],A=w;break}if(A&&J.label<A[2]){J.label=A[2],J.ops.push(w);break}if(A[2])J.ops.pop();J.trys.pop();continue}w=Q.call(Z,J)}catch(C){w=[6,C],q=0}finally{U=A=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(Z,Q){for(var J in Z)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))Yq(Q,Z,J)},Yq=Object.create?function(Z,Q,J,U){if(U===void 0)U=J;var q=Object.getOwnPropertyDescriptor(Q,J);if(!q||("get"in q?!Q.__esModule:q.writable||q.configurable))q={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(Z,U,q)}:function(Z,Q,J,U){if(U===void 0)U=J;Z[U]=Q[J]},Xq=function(Z){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&Z[Q],U=0;if(J)return J.call(Z);if(Z&&typeof Z.length==="number")return{next:function(){if(Z&&U>=Z.length)Z=void 0;return{value:Z&&Z[U++],done:!Z}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},Hz=function(Z,Q){var J=typeof Symbol==="function"&&Z[Symbol.iterator];if(!J)return Z;var U=J.call(Z),q,A=[],N;try{while((Q===void 0||Q-- >0)&&!(q=U.next()).done)A.push(q.value)}catch(H){N={error:H}}finally{try{if(q&&!q.done&&(J=U.return))J.call(U)}finally{if(N)throw N.error}}return A},fP=function(){for(var Z=[],Q=0;Q<arguments.length;Q++)Z=Z.concat(Hz(arguments[Q]));return Z},cP=function(){for(var Z=0,Q=0,J=arguments.length;Q<J;Q++)Z+=arguments[Q].length;for(var U=Array(Z),q=0,Q=0;Q<J;Q++)for(var A=arguments[Q],N=0,H=A.length;N<H;N++,q++)U[q]=A[N];return U},pP=function(Z,Q,J){if(J||arguments.length===2){for(var U=0,q=Q.length,A;U<q;U++)if(A||!(U in Q)){if(!A)A=Array.prototype.slice.call(Q,0,U);A[U]=Q[U]}}return Z.concat(A||Array.prototype.slice.call(Q))},FX=function(Z){return this instanceof FX?(this.v=Z,this):new FX(Z)},lP=function(Z,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(Z,Q||[]),q,A=[];return q=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",N),q[Symbol.asyncIterator]=function(){return this},q;function N(h){return function(p){return Promise.resolve(p).then(h,D)}}function H(h,p){if(U[h]){if(q[h]=function(v){return new Promise(function(n,c){A.push([h,v,n,c])>1||z(h,v)})},p)q[h]=p(q[h])}}function z(h,p){try{w(U[h](p))}catch(v){x(A[0][3],v)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(A[0][2],h)}function C(h){z("next",h)}function D(h){z("throw",h)}function x(h,p){if(h(p),A.shift(),A.length)z(A[0][0],A[0][1])}},dP=function(Z){var Q,J;return Q={},U("next"),U("throw",function(q){throw q}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(q,A){Q[q]=Z[q]?function(N){return(J=!J)?{value:FX(Z[q](N)),done:!1}:A?A(N):N}:A}},oP=function(Z){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=Z[Symbol.asyncIterator],J;return Q?Q.call(Z):(Z=typeof Xq==="function"?Xq(Z):Z[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(A){J[A]=Z[A]&&function(N){return new Promise(function(H,z){N=Z[A](N),q(H,z,N.done,N.value)})}}function q(A,N,H,z){Promise.resolve(z).then(function(w){A({value:w,done:H})},N)}},nP=function(Z,Q){if(Object.defineProperty)Object.defineProperty(Z,"raw",{value:Q});else Z.raw=Q;return Z};var X=Object.create?function(Z,Q){Object.defineProperty(Z,"default",{enumerable:!0,value:Q})}:function(Z,Q){Z.default=Q},Y=function(Z){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(Z)};iP=function(Z){if(Z&&Z.__esModule)return Z;var Q={};if(Z!=null){for(var J=Y(Z),U=0;U<J.length;U++)if(J[U]!=="default")Yq(Q,Z,J[U])}return X(Q,Z),Q},rP=function(Z){return Z&&Z.__esModule?Z:{default:Z}},aP=function(Z,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?Z!==Q||!U:!Q.has(Z))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(Z):U?U.value:Q.get(Z)},sP=function(Z,Q,J,U,q){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!q)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?Z!==Q||!q:!Q.has(Z))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?q.call(Z,J):q?q.value=J:Q.set(Z,J),J},tP=function(Z,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof Z==="function"?Q===Z:Z.has(Q)},eP=function(Z,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,q;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)q=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(q)U=function(){try{q.call(this)}catch(A){return Promise.reject(A)}};Z.stack.push({value:Q,dispose:U,async:J})}else if(J)Z.stack.push({async:!0});return Q};var V=typeof SuppressedError==="function"?SuppressedError:function(Z,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=Z,U.suppressed=Q,U};WR=function(Z){function Q(A){Z.error=Z.hasError?new V(A,Z.error,"An error was suppressed during disposal."):A,Z.hasError=!0}var J,U=0;function q(){while(J=Z.stack.pop())try{if(!J.async&&U===1)return U=0,Z.stack.push(J),Promise.resolve().then(q);if(J.dispose){var A=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(A).then(q,function(N){return Q(N),q()})}else U|=1}catch(N){Q(N)}if(U===1)return Z.hasError?Promise.reject(Z.error):Promise.resolve();if(Z.hasError)throw Z.error}return q()},GR=function(Z,Q){if(typeof Z==="string"&&/^\.\.?\//.test(Z))return Z.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,q,A,N){return U?Q?".jsx":".js":q&&(!A||!N)?J:q+A+"."+N.toLowerCase()+"js"});return Z},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",Yq),W("__values",Xq),W("__read",Hz),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var IL=Y1(($V0,fq)=>{/*! *****************************************************************************
|
|
28
|
+
Copyright (c) Microsoft Corporation.
|
|
29
|
+
|
|
30
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
31
|
+
purpose with or without fee is hereby granted.
|
|
32
|
+
|
|
33
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
34
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
35
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
36
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
37
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
38
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
39
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
40
|
+
***************************************************************************** */var nR,iR,rR,aR,sR,tR,eR,WL,GL,mq,jw,XL,YL,GY,VL,ZL,QL,JL,UL,qL,AL,HL,NL;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof fq==="object"&&typeof $V0==="object")W(X(G,X($V0)));else W(X(G));function X(Y,V){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(Z,Q){return Y[Z]=V?V(Z,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(X,Y){X.__proto__=Y}||function(X,Y){for(var V in Y)if(Y.hasOwnProperty(V))X[V]=Y[V]};nR=function(X,Y){G(X,Y);function V(){this.constructor=X}X.prototype=Y===null?Object.create(Y):(V.prototype=Y.prototype,new V)},iR=Object.assign||function(X){for(var Y,V=1,Z=arguments.length;V<Z;V++){Y=arguments[V];for(var Q in Y)if(Object.prototype.hasOwnProperty.call(Y,Q))X[Q]=Y[Q]}return X},rR=function(X,Y){var V={};for(var Z in X)if(Object.prototype.hasOwnProperty.call(X,Z)&&Y.indexOf(Z)<0)V[Z]=X[Z];if(X!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var Q=0,Z=Object.getOwnPropertySymbols(X);Q<Z.length;Q++)if(Y.indexOf(Z[Q])<0&&Object.prototype.propertyIsEnumerable.call(X,Z[Q]))V[Z[Q]]=X[Z[Q]]}return V},aR=function(X,Y,V,Z){var Q=arguments.length,J=Q<3?Y:Z===null?Z=Object.getOwnPropertyDescriptor(Y,V):Z,U;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")J=Reflect.decorate(X,Y,V,Z);else for(var q=X.length-1;q>=0;q--)if(U=X[q])J=(Q<3?U(J):Q>3?U(Y,V,J):U(Y,V))||J;return Q>3&&J&&Object.defineProperty(Y,V,J),J},sR=function(X,Y){return function(V,Z){Y(V,Z,X)}},tR=function(X,Y){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(X,Y)},eR=function(X,Y,V,Z){function Q(J){return J instanceof V?J:new V(function(U){U(J)})}return new(V||(V=Promise))(function(J,U){function q(H){try{N(Z.next(H))}catch(z){U(z)}}function A(H){try{N(Z.throw(H))}catch(z){U(z)}}function N(H){H.done?J(H.value):Q(H.value).then(q,A)}N((Z=Z.apply(X,Y||[])).next())})},WL=function(X,Y){var V={label:0,sent:function(){if(J[0]&1)throw J[1];return J[1]},trys:[],ops:[]},Z,Q,J,U;return U={next:q(0),throw:q(1),return:q(2)},typeof Symbol==="function"&&(U[Symbol.iterator]=function(){return this}),U;function q(N){return function(H){return A([N,H])}}function A(N){if(Z)throw TypeError("Generator is already executing.");while(V)try{if(Z=1,Q&&(J=N[0]&2?Q.return:N[0]?Q.throw||((J=Q.return)&&J.call(Q),0):Q.next)&&!(J=J.call(Q,N[1])).done)return J;if(Q=0,J)N=[N[0]&2,J.value];switch(N[0]){case 0:case 1:J=N;break;case 4:return V.label++,{value:N[1],done:!1};case 5:V.label++,Q=N[1],N=[0];continue;case 7:N=V.ops.pop(),V.trys.pop();continue;default:if((J=V.trys,!(J=J.length>0&&J[J.length-1]))&&(N[0]===6||N[0]===2)){V=0;continue}if(N[0]===3&&(!J||N[1]>J[0]&&N[1]<J[3])){V.label=N[1];break}if(N[0]===6&&V.label<J[1]){V.label=J[1],J=N;break}if(J&&V.label<J[2]){V.label=J[2],V.ops.push(N);break}if(J[2])V.ops.pop();V.trys.pop();continue}N=Y.call(X,V)}catch(H){N=[6,H],Q=0}finally{Z=J=0}if(N[0]&5)throw N[1];return{value:N[0]?N[1]:void 0,done:!0}}},NL=function(X,Y,V,Z){if(Z===void 0)Z=V;X[Z]=Y[V]},GL=function(X,Y){for(var V in X)if(V!=="default"&&!Y.hasOwnProperty(V))Y[V]=X[V]},mq=function(X){var Y=typeof Symbol==="function"&&Symbol.iterator,V=Y&&X[Y],Z=0;if(V)return V.call(X);if(X&&typeof X.length==="number")return{next:function(){if(X&&Z>=X.length)X=void 0;return{value:X&&X[Z++],done:!X}}};throw TypeError(Y?"Object is not iterable.":"Symbol.iterator is not defined.")},jw=function(X,Y){var V=typeof Symbol==="function"&&X[Symbol.iterator];if(!V)return X;var Z=V.call(X),Q,J=[],U;try{while((Y===void 0||Y-- >0)&&!(Q=Z.next()).done)J.push(Q.value)}catch(q){U={error:q}}finally{try{if(Q&&!Q.done&&(V=Z.return))V.call(Z)}finally{if(U)throw U.error}}return J},XL=function(){for(var X=[],Y=0;Y<arguments.length;Y++)X=X.concat(jw(arguments[Y]));return X},YL=function(){for(var X=0,Y=0,V=arguments.length;Y<V;Y++)X+=arguments[Y].length;for(var Z=Array(X),Q=0,Y=0;Y<V;Y++)for(var J=arguments[Y],U=0,q=J.length;U<q;U++,Q++)Z[Q]=J[U];return Z},GY=function(X){return this instanceof GY?(this.v=X,this):new GY(X)},VL=function(X,Y,V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Z=V.apply(X,Y||[]),Q,J=[];return Q={},U("next"),U("throw"),U("return"),Q[Symbol.asyncIterator]=function(){return this},Q;function U(w){if(Z[w])Q[w]=function(C){return new Promise(function(D,x){J.push([w,C,D,x])>1||q(w,C)})}}function q(w,C){try{A(Z[w](C))}catch(D){z(J[0][3],D)}}function A(w){w.value instanceof GY?Promise.resolve(w.value.v).then(N,H):z(J[0][2],w)}function N(w){q("next",w)}function H(w){q("throw",w)}function z(w,C){if(w(C),J.shift(),J.length)q(J[0][0],J[0][1])}},ZL=function(X){var Y,V;return Y={},Z("next"),Z("throw",function(Q){throw Q}),Z("return"),Y[Symbol.iterator]=function(){return this},Y;function Z(Q,J){Y[Q]=X[Q]?function(U){return(V=!V)?{value:GY(X[Q](U)),done:Q==="return"}:J?J(U):U}:J}},QL=function(X){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Y=X[Symbol.asyncIterator],V;return Y?Y.call(X):(X=typeof mq==="function"?mq(X):X[Symbol.iterator](),V={},Z("next"),Z("throw"),Z("return"),V[Symbol.asyncIterator]=function(){return this},V);function Z(J){V[J]=X[J]&&function(U){return new Promise(function(q,A){U=X[J](U),Q(q,A,U.done,U.value)})}}function Q(J,U,q,A){Promise.resolve(A).then(function(N){J({value:N,done:q})},U)}},JL=function(X,Y){if(Object.defineProperty)Object.defineProperty(X,"raw",{value:Y});else X.raw=Y;return X},UL=function(X){if(X&&X.__esModule)return X;var Y={};if(X!=null){for(var V in X)if(Object.hasOwnProperty.call(X,V))Y[V]=X[V]}return Y.default=X,Y},qL=function(X){return X&&X.__esModule?X:{default:X}},AL=function(X,Y){if(!Y.has(X))throw TypeError("attempted to get private field on non-instance");return Y.get(X)},HL=function(X,Y,V){if(!Y.has(X))throw TypeError("attempted to set private field on non-instance");return Y.set(X,V),V},W("__extends",nR),W("__assign",iR),W("__rest",rR),W("__decorate",aR),W("__param",sR),W("__metadata",tR),W("__awaiter",eR),W("__generator",WL),W("__exportStar",GL),W("__createBinding",NL),W("__values",mq),W("__read",jw),W("__spread",XL),W("__spreadArrays",YL),W("__await",GY),W("__asyncGenerator",VL),W("__asyncDelegator",ZL),W("__asyncValues",QL),W("__makeTemplateObject",JL),W("__importStar",UL),W("__importDefault",qL),W("__classPrivateFieldGet",AL),W("__classPrivateFieldSet",HL)})});var u3=Y1((Dq0,g3)=>{function Cc(W){return/^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(W)}g3.exports=Cc});var IQ=Y1((Tq0,o3)=>{var h3=E8("util"),c3=u3(),b3=/[\{\[]/,m3=/[\}\]]/,f3=["do","if","in","for","let","new","try","var","case","else","enum","eval","null","this","true","void","with","await","break","catch","class","const","false","super","throw","while","yield","delete","export","import","public","return","static","switch","typeof","default","extends","finally","package","private","continue","debugger","function","arguments","interface","protected","implements","instanceof","NaN","undefined"],p3={};for(NQ=0;NQ<f3.length;NQ++)p3[f3[NQ]]=!0;var NQ,Dc=function(W){return c3(W)&&!p3.hasOwnProperty(W)},l3={s:function(W){return""+W},d:function(W){return""+Number(W)},o:function(W){return JSON.stringify(W)}},d3=function(){var W=[],G=0,X={},Y=function(Q){var J="";while(J.length<G*2)J+=" ";W.push(J+Q)},V=function(Q){if(m3.test(Q.trim()[0])&&b3.test(Q[Q.length-1])){G--,Y(Q),G++;return}if(b3.test(Q[Q.length-1])){Y(Q),G++;return}if(m3.test(Q.trim()[0])){G--,Y(Q);return}Y(Q)},Z=function(Q){if(!Q)return Z;if(arguments.length===1&&Q.indexOf(`
|
|
41
|
+
`)>-1){var J=Q.trim().split(`
|
|
42
|
+
`);for(var U=0;U<J.length;U++)V(J[U].trim())}else V(h3.format.apply(h3,arguments));return Z};if(Z.scope={},Z.formats=l3,Z.sym=function(Q){if(!Q||!Dc(Q))Q="tmp";if(!X[Q])X[Q]=0;return Q+(X[Q]++||"")},Z.property=function(Q,J){if(arguments.length===1)J=Q,Q="";if(J=J+"",c3(J))return Q?Q+"."+J:J;return Q?Q+"["+JSON.stringify(J)+"]":JSON.stringify(J)},Z.toString=function(){return W.join(`
|
|
43
|
+
`)},Z.toFunction=function(Q){if(!Q)Q={};var J="return ("+Z.toString()+")";Object.keys(Z.scope).forEach(function(A){if(!Q[A])Q[A]=Z.scope[A]});var U=Object.keys(Q).map(function(A){return A}),q=U.map(function(A){return Q[A]});return Function.apply(null,U.concat(J)).apply(null,q)},arguments.length)Z.apply(null,arguments);return Z};d3.formats=l3;o3.exports=d3});var i3=Y1((Mq0,n3)=>{class wj{constructor(){this.next=null,this.buffer=null}}n3.exports=class W{constructor(){this.head=null,this.tail=null,this.length=0,this.count=0}push(G){let X=new wj;if(X.buffer=G,this.length>0)this.tail.next=X;else this.head=X;this.tail=X,this.length+=G.length,this.count+=1}unshift(G){let X=new wj;if(X.buffer=G,X.next=this.head,this.isEmpty())this.tail=X;this.head=X,this.length+=G.length,this.count+=1}shift(){if(this.isEmpty())return null;let G=this.head.buffer;if(this.head===this.tail)this.head=null,this.tail=null;else this.head=this.head.next;return this.length-=G.length,this.length=Math.max(this.length,0),this.count-=1,G}get first(){if(this.isEmpty())return null;return this.head.buffer}get last(){if(this.isEmpty())return null;return this.tail.buffer}isEmpty(){return this.length===0}clear(){this.head=null,this.tail=null,this.length=0,this.count=0}slice(G,X){if(G<0||G>=this.length)return new W;if(X<0||X>this.length||X<G)return new W;let Y=new W,V=this.head,Z=G,Q=X;while(V){if(V.buffer.length>Z){if(Z===0&&V.buffer.length<=Q)Y.push(V.buffer);else if(V.buffer.length>=Q)Y.push(V.buffer.slice(Z,Q));else Y.push(V.buffer.slice(Z));break}Z-=V.buffer.length,Q-=V.buffer.length,V=V.next}if(V.buffer.length<Q)while(V){if(V.buffer.length===Q){Y.push(V.buffer);break}else if(V.buffer.length>Q){Y.push(V.buffer.slice(0,Q));break}else if(Z<0&&V.buffer.length<Q)Y.push(V.buffer);Z-=V.buffer.length,Q-=V.buffer.length,V=V.next}return Y}}});var t3=Y1((Pq0,s3)=>{var WA=IQ(),Tc=i3();class JG{constructor(){this.queue=new Tc,this.offset=0}get length(){return this.queue.length-this.offset}append(W){if(Buffer.isBuffer(W)){if(this.offset>0){let G=this.queue.shift();this.queue.unshift(G.slice(this.offset)),this.offset=0}this.queue.push(W)}else if(Array.isArray(W))for(let G=0;G<W.length;G+=1)this.append(W[G]);else if(W instanceof JG){if(this.offset>0){let X=this.queue.shift();this.queue.unshift(X.slice(this.offset)),this.offset=0}if(W.offset>0){let X=W.queue.shift();W.queue.unshift(X.slice(W.offset)),W.offset=0}let G=W.queue.head;while(G)this.queue.push(G.buffer),G=G.next}}get(W){let G=W;while(G>=this.length)G-=this.length;while(G<0)G+=this.length;let X=this.queue.head,{offset:Y}=this;while(X){if(X.buffer.length-Y>G)return X.buffer[G+Y];G-=X.buffer.length-Y,Y=0,X=X.next}}slice(W,G){if(typeof W!=="number")W=0;if(typeof G!=="number")G=this.length;while(W<0)W+=this.length;while(G<0)G+=this.length;if(G=Math.min(G,this.length),W>=this.length||G===0)return Buffer.alloc(0);let X=W;W=Math.min(X,G),G=Math.max(X,G);let Y=this.queue.slice(W+this.offset,G+this.offset);if(Y.count===1)return Y.first;let V=Y.head,Z=Buffer.allocUnsafe(Y.length),Q=0;for(let J=0;J<Y.count;J+=1)Z.set(V.buffer,Q),Q+=V.buffer.length,V=V.next;return Z}toString(W,G,X){return this.slice(G,X).toString(W)}consume(W){let G=W;while(this.length>0){let X=this.queue.first.length-this.offset;if(G>=X)this.queue.shift(),G-=X,this.offset=0;else{this.offset+=G;break}}}indexOf(W,G=0){if(!Number.isInteger(W))throw TypeError("Invalid argument 1");if(W<0||W>255)throw Error("Invalid argument 1");if(!Number.isInteger(G))G=0;while(G>=this.length)G-=this.length;while(G<0)G+=this.length;let X=this.queue.head,Y=0,V=()=>{Y+=X.buffer.length,X=X.next};while(X){let Z=0;if(X===this.queue.head)Z+=this.offset;if(G>=X.buffer.length-Z){G-=X.buffer.length-Z,V();continue}if(G<X.buffer.length)Z+=G;let Q=X.buffer.indexOf(W,Z);if(Q>-1)return Q+Y-this.offset;if(V(),Z>this.offset)G=0}return-1}}var r3={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(r3).forEach((W)=>{let G=WA();G(`
|
|
44
|
+
function bufferlist_${W}(offset = 0) {
|
|
45
|
+
const start = offset + this.offset;
|
|
46
|
+
const head = this.queue.first;
|
|
47
|
+
const size = ${G.formats.d(r3[W])};
|
|
48
|
+
const isFirtsChunkEnough = head.length - start >= size;
|
|
49
|
+
|
|
50
|
+
return isFirtsChunkEnough
|
|
51
|
+
? head.${W}(start)
|
|
52
|
+
: this.slice(offset, offset + size).${W}(0)
|
|
53
|
+
}
|
|
54
|
+
`),JG.prototype[W]=G.toFunction()});var Mc=["readIntBE","readIntLE","readUIntBE","readUIntLE"];Mc.forEach((W)=>{let G=WA();G(`
|
|
55
|
+
function bufferlist_${W}(size, offset = 0) {
|
|
56
|
+
const start = offset + this.offset;
|
|
57
|
+
const head = this.queue.first;
|
|
58
|
+
const isFirtsChunkEnough = head.length - start >= size;
|
|
59
|
+
|
|
60
|
+
return isFirtsChunkEnough
|
|
61
|
+
? head.${W}(start, size)
|
|
62
|
+
: this.slice(offset, offset + size).${W}(0, size)
|
|
63
|
+
}
|
|
64
|
+
`),JG.prototype[W]=G.toFunction()});var a3={writeDoubleBE:8,writeDoubleLE:8,writeFloatBE:4,writeFloatLE:4,writeInt32BE:4,writeInt32LE:4,writeUInt32BE:4,writeUInt32LE:4,writeInt16BE:2,writeInt16LE:2,writeUInt16BE:2,writeUInt16LE:2,writeInt8:1,writeUInt8:1};Object.keys(a3).forEach((W)=>{let G=WA();G(`
|
|
65
|
+
function bufferlist_${W}(value) {
|
|
66
|
+
const size = ${G.formats.d(a3[W])};
|
|
67
|
+
const buf = Buffer.allocUnsafe(size);
|
|
68
|
+
buf.${W}(value, 0);
|
|
69
|
+
this.append(buf);
|
|
70
|
+
}
|
|
71
|
+
`),JG.prototype[W]=G.toFunction()});var Pc=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];Pc.forEach((W)=>{let G=WA();G(`
|
|
72
|
+
function bufferlist_${W}(value, size) {
|
|
73
|
+
const buf = Buffer.allocUnsafe(size);
|
|
74
|
+
buf.${W}(value, 0, size);
|
|
75
|
+
this.append(buf);
|
|
76
|
+
}
|
|
77
|
+
`),JG.prototype[W]=G.toFunction()});s3.exports=JG});var HY=Y1((Rq0,e3)=>{e3.exports=class extends Error{constructor(G,X){let Y=`requested ${G} bytes but only ${X} available`;super(Y);this.name="NotEnoughDataError"}}});var zQ=Y1((Lq0,XB)=>{var{Transform:Rc}=E8("stream"),GA=IQ(),Lc=t3(),Bc=HY(),WB=Symbol("buffer");class NY extends Rc{constructor(W={}){super(W);this[WB]=new Lc}get buffer(){return this[WB]}get length(){return this.buffer.length}append(W){this.buffer.append(W)}get(W){return this.buffer.get(W)}slice(W,G){return this.buffer.slice(W,G)}consume(W){this.buffer.consume(W)}toString(W,G,X){return this.buffer.toString(W,G,X)}indexOf(W,G=0){return this.buffer.indexOf(W,G)}readBuffer(W){jj(W,this.length);let G=this.slice(0,W);return this.consume(W),G}writeBuffer(W){this.append(W)}}var GB={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1},Ec=["readIntBE","readIntLE","readUIntBE","readUIntLE"];Object.keys(GB).forEach((W)=>{let G=GA();G(`
|
|
78
|
+
function binary_${W}() {
|
|
79
|
+
const bytes = ${G.formats.d(GB[W])};
|
|
80
|
+
assertSize(bytes, this.length);
|
|
81
|
+
|
|
82
|
+
const res = this.buffer.${W}(0);
|
|
83
|
+
this.consume(bytes);
|
|
84
|
+
|
|
85
|
+
return res;
|
|
86
|
+
}
|
|
87
|
+
`),NY.prototype[W]=G.toFunction({assertSize:jj})});Ec.forEach((W)=>{let G=GA();G(`
|
|
88
|
+
function binary_${W}(size) {
|
|
89
|
+
assertSize(size, this.length);
|
|
90
|
+
|
|
91
|
+
const res = this.buffer.${W}(size, 0);
|
|
92
|
+
this.consume(size);
|
|
93
|
+
return res;
|
|
94
|
+
}
|
|
95
|
+
`),NY.prototype[W]=G.toFunction({assertSize:jj})});var $c=["writeDoubleBE","writeDoubleLE","writeFloatBE","writeFloatLE","writeInt32BE","writeInt32LE","writeUInt32BE","writeUInt32LE","writeInt16BE","writeInt16LE","writeUInt16BE","writeUInt16LE","writeInt8","writeUInt8"];$c.forEach((W)=>{let G=GA();G(`
|
|
96
|
+
function binary_${W}(value) {
|
|
97
|
+
this.buffer.${W}(value);
|
|
98
|
+
}
|
|
99
|
+
`),NY.prototype[W]=G.toFunction()});var Fc=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];Fc.forEach((W)=>{let G=GA();G(`
|
|
100
|
+
function binary_${W}(value, size) {
|
|
101
|
+
this.buffer.${W}(value, size);
|
|
102
|
+
}
|
|
103
|
+
`),NY.prototype[W]=G.toFunction()});function jj(W,G){if(W>G)throw new Bc(W,G)}XB.exports=NY});var VB=Y1((Bq0,YB)=>{/*!
|
|
104
|
+
* isobject <https://github.com/jonschlinkert/isobject>
|
|
105
|
+
*
|
|
106
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
107
|
+
* Released under the MIT License.
|
|
108
|
+
*/YB.exports=function(G){return G!=null&&typeof G==="object"&&Array.isArray(G)===!1}});var JB=Y1((Eq0,QB)=>{/*!
|
|
109
|
+
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
|
110
|
+
*
|
|
111
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
112
|
+
* Released under the MIT License.
|
|
113
|
+
*/var Sc=VB();function ZB(W){return Sc(W)===!0&&Object.prototype.toString.call(W)==="[object Object]"}QB.exports=function(G){var X,Y;if(ZB(G)===!1)return!1;if(X=G.constructor,typeof X!=="function")return!1;if(Y=X.prototype,ZB(Y)===!1)return!1;if(Y.hasOwnProperty("isPrototypeOf")===!1)return!1;return!0}});var E7=Y1(($q0,UB)=>{var xc=JB();UB.exports={isType:kc,isUserType:xc,isFunction:wQ,isDecodeType:_c,isEncodeType:yc};function kc(W){return Oj(W)&&wQ(W.encode)&&wQ(W.decode)}function wQ(W){return typeof W==="function"}function Oj(W){return typeof W==="object"&&W!==null}function _c(W){return Oj(W)&&wQ(W.decode)}function yc(W){return Oj(W)&&wQ(W.encode)}});var _6=Y1((Fq0,qB)=>{var vc=Symbol("skip"),gc=Symbol("bytes");qB.exports={skip:vc,bytes:gc}});var y6=Y1((Sq0,HB)=>{var AB=_6();HB.exports=class W{constructor(){this[AB.bytes]=0,this.node=void 0,this.current=void 0}get bytes(){return this[AB.bytes]}static clone(G){let X=new W;if(G instanceof W)X.node=G.node,X.current=G.current;return X}static clean(G){if(G instanceof W)G.node=void 0,G.current=void 0}}});var IY=Y1((xq0,jB)=>{var{isType:uc,isUserType:hc,isDecodeType:bc}=E7(),mc=zQ(),Kj=_6(),NB=y6();jB.exports={decode:IB,decodeCommon:zB};function IB(W,G){let X=W;if(Buffer.isBuffer(W))X=new mc,X.append(W);let Y=new NB,V=zB(X,G,Y);return IB.bytes=Y.bytes,NB.clean(Y),V}function zB(W,G,X){if(uc(G)){let Y=G.decode.call(X,W);return X[Kj.bytes]+=G.decode.bytes,Y}return wB(W,G,X)}function wB(W,G,X){fc(G);let Y=Object.create(null);if(X.node===void 0)X.node=Y,X.current=Y;else X.current=Y;let V=Object.keys(G);for(let Z=0;Z<V.length;Z+=1){let Q=V[Z],J=G[Q];if(!bc(J)){Y[Q]=wB(W,J,X),X.current=Y;continue}let U=J.decode.call(X,W);if(X[Kj.bytes]+=J.decode.bytes,J[Kj.skip]===!0)continue;Y[Q]=U}return Y}function fc(W){if(!hc(W))throw TypeError("Argument #2 should be a plain object.")}});var jQ=Y1((kq0,MB)=>{var{isUserType:cc,isEncodeType:pc,isType:lc}=E7(),KB=_6(),OB=y6(),Cj=zQ();MB.exports={encode:CB,encodeCommon:DB};function CB(W,G,X){let Y=new OB;if(G instanceof Cj){let V=X;X=G,G=V}if(!(X instanceof Cj))X=new Cj;return DB(W,X,G,Y),CB.bytes=Y.bytes,OB.clean(Y),X}function DB(W,G,X,Y){if(lc(X))X.encode.call(Y,W,G),Y[KB.bytes]+=X.encode.bytes;else TB(W,G,X,Y)}function TB(W,G,X,Y){if(dc(X),Y.node===void 0)Y.node=W,Y.current=W;else Y.current=W;let V=Object.keys(X);for(let Z=0;Z<V.length;Z+=1){let Q=V[Z],J=X[Q],U=W[Q];if(!pc(J)){TB(U,G,J,Y),Y.current=W;continue}J.encode.call(Y,U,G),Y[KB.bytes]+=J.encode.bytes}}function dc(W){if(!cc(W))throw TypeError("Argument `schema` should be a plain object.")}});var OQ=Y1((_q0,$B)=>{var{isUserType:oc,isType:RB}=E7(),PB=y6(),LB=_6();$B.exports={encodingLength:nc,encodingLengthCommon:BB};function nc(W,G){let X=new PB;return BB(W,G,X),PB.clean(X),X.bytes}function BB(W,G,X){if(RB(G))X[LB.bytes]+=G.encodingLength.call(X,W);else EB(W,G,X)}function EB(W,G,X){if(!oc(G))throw TypeError("Argument `schema` should be a plain object.");if(X.node===void 0)X.node=W,X.current=W;else X.current=W;let Y=Object.keys(G);for(let V=0;V<Y.length;V+=1){let Z=Y[V],Q=G[Z],J=W[Z];if(!RB(Q)){EB(J,Q,X),X.current=W;continue}X[LB.bytes]+=Q.encodingLength.call(X,J)}}});var gB=Y1((yq0,vB)=>{var{decodeCommon:yB}=IY(),{encodeCommon:ic}=jQ(),{encodingLengthCommon:FB}=OQ(),{isType:SB,isUserType:rc,isFunction:ac}=E7(),v6=y6();vB.exports=sc;function sc(W,G,X="count"){if(!SB(W)&&!rc(W))throw TypeError("Argument #1 should be a valid type.");let Y=X==="bytes",V=typeof G==="number",Z=SB(G),Q=ac(G);if(!V&&!Z&&!Q)throw TypeError("Unknown type of argument #1.");return{encode:J,decode:U,encodingLength:q};function J(A,N){xB(A);let H=v6.clone(this);J.bytes=0;let z=0;if(Z)z=A.length;else if(V)z=G;else if(Q)z=G(H),kB(z);if(!Y)_B(z,A.length);if(Y){let w=v6.clone(H);for(let C of A)FB(C,W,w);if(Z)z=w.bytes;_B(w.bytes,z),v6.clean(w)}if(Z)G.encode.call(H,z,N),J.bytes+=G.encode.bytes;A.forEach((w)=>{ic(w,N,W,H)}),J.bytes+=H.bytes,v6.clean(H)}function U(A){let N=0;U.bytes=0;let H=v6.clone(this);if(V)N=G;else if(Z)N=G.decode.call(H,A),U.bytes+=G.decode.bytes;else if(Q)N=G(H);kB(N);let z;if(Y)z=tc(W,N,A,H);else z=ec(W,N,A,H);return U.bytes+=H.bytes,v6.clean(H),z}function q(A){xB(A);let N=v6.clone(this),H=0;if(V&&Y)return G;if(Z&&!Y)H=G.encodingLength(A.length);for(let z of A)FB(z,W,N);if(v6.clean(N),H+=N.bytes,Z&&Y)H+=G.encodingLength(H);return H}}function xB(W){if(!Array.isArray(W))throw TypeError("Argument #1 should be an Array.")}function kB(W){if(typeof W!=="number")throw TypeError("Length of an array should be a number.")}function _B(W,G){if(W!==G)throw Error(`Argument #1 required length ${W} instead of ${G}`)}function tc(W,G,X,Y){let V=[],Z=Y.bytes,Q=0;while(Q<G)V.push(yB(X,W,Y)),Q=Y.bytes-Z;if(Q>G)throw Error("Incorrect length of an array.");return V}function ec(W,G,X,Y){let V=Array(G);for(let Z=0;Z<G;Z+=1)V[Z]=yB(X,W,Y);return V}});var mB=Y1((vq0,bB)=>{var{isType:Wp,isFunction:Gp}=E7(),Xp=HY(),Yp=zQ();bB.exports=Vp;function Vp(W){let G=typeof W==="number",X=Wp(W),Y=Gp(W),V=W===null;if(!G&&!X&&!Y&&!V)throw TypeError("Unknown type of argument #1.");return{encode:Z,decode:Q,encodingLength:J};function Z(U,q){uB(U),Z.bytes=0;let A=this;if(G)hB(W,U.length);if(X)W.encode.call(A,U.length,q),Z.bytes+=W.encode.bytes;if(Y){let N=W(A);Dj(N),hB(N,U.length)}if(q.writeBuffer(Buffer.isBuffer(U)?U:U.buffer),Z.bytes+=U.length,V)q.writeUInt8(0),Z.bytes+=1}function Q(U){let q=0;Q.bytes=0;let A=this;if(G)q=W;else if(X)q=W.decode.call(A,U),Q.bytes+=W.decode.bytes,Dj(q);else if(Y)q=W(A),Dj(q);else if(V){if(q=U.indexOf(0),q===-1)throw new Xp(U.length+1,U.length)}let N=U.readBuffer(q);if(Q.bytes+=q,V)Q.bytes+=1,U.consume(1);return N}function J(U){uB(U);let q=0;if(G)return W;if(V)q=1;else if(X)q=W.encodingLength(U.length);return q+U.length}}function uB(W){if(!Buffer.isBuffer(W)&&!(W instanceof Yp))throw TypeError("Argument 1 should be a Buffer or a BinaryStream.")}function hB(W,G){if(W!==G)throw Error(`Buffer required length ${W} instead of ${G}`)}function Dj(W){if(typeof W!=="number")throw TypeError("Length of a buffer should be a number.")}});var cB=Y1((gq0,fB)=>{var{isType:Zp}=E7();fB.exports=Qp;function Qp(W){if(!Zp(W))throw TypeError("Argument #1 should be valid type.");function G(Y){let V=this,Z=W.decode.call(V,Y);return G.bytes=W.decode.bytes,Boolean(Z)}function X(Y,V){let Z=this;W.encode.call(Z,Y?1:0,V),X.bytes=W.encode.bytes}return{encode:X,decode:G,encodingLength:W.encodingLength}}});var lB=Y1((uq0,pB)=>{var{decodeCommon:Jp}=IY(),{encodeCommon:Up}=jQ(),{encodingLengthCommon:qp}=OQ(),{isType:Ap,isFunction:XA}=E7(),Hp=_6(),g6=y6();pB.exports=Np;function Np(W,G=1){if(!Ap(W))throw TypeError("Invalid data type.");if(!Number.isInteger(G)&&!XA(G))throw TypeError("Argument #2 should be a valid integer or function.");return{[Hp.skip]:!0,encodingLength:X,decode:Y,encode:V};function X(Z){let Q=g6.clone(this),J=XA(G)?G(Q):G;return qp(Z,W,Q),g6.clean(Q),Q.bytes*J}function Y(Z){let Q=g6.clone(this);Y.bytes=0;let J=XA(G)?G(Q):G;if(J===0){g6.clean(Q);return}for(let U=J;U>0;U-=1)Jp(Z,W,Q);Y.bytes=Q.bytes,g6.clean(Q)}function V(Z,Q){V.bytes=0;let J=g6.clone(this),U=XA(G)?G(J):G;if(U===0){g6.clean(J);return}for(let q=U;q>0;q-=1)Up(0,Q,W,J);V.bytes=J.bytes,g6.clean(J)}}});var nB=Y1((hq0,oB)=>{var{isType:Ip}=E7(),zp=HY();oB.exports=wp;function wp(W,G="ascii"){if(!Buffer.isEncoding(G))throw Error("Argument #2 should be an encoding name.");if(typeof W==="number")return{encode:Kp(W,G),decode:Cp(W,G),encodingLength:()=>W};if(Ip(W))return{encode:Dp(W,G),decode:Tp(W,G),encodingLength:Mp(W,G)};if(W===null)return{encode:jp(G),decode:Op(G),encodingLength(X){return Buffer.byteLength(X,G)+1}};if(typeof W==="function")return{encode:Pp(W,G),decode:Rp(W,G),encodingLength(X){return Buffer.byteLength(X,G)}};throw TypeError("Unknown type of argument #1.")}function jp(W){return function G(X,Y){let V=Buffer.from(X.toString(),W);Y.writeBuffer(V),Y.writeInt8(0),G.bytes=V.length+1}}function Op(W){return function G(X){let Y=X.indexOf(0);if(Y===-1)throw new zp(X.length+1,X.length);let V=Y+1,Z=X.readBuffer(V);return G.bytes=V,Z.toString(W,0,Y)}}function Kp(W,G){return function X(Y,V){if(Y=Y.toString(),Buffer.byteLength(Y,G)!==W)throw Error(`Size of string should be ${W} in bytes.`);let Z=Buffer.from(Y,G);V.writeBuffer(Z),X.bytes=Z.length}}function Cp(W,G){return function X(Y){let V=Y.readBuffer(W);return X.bytes=W,V.toString(G)}}function Dp(W,G){return function X(Y,V){Y=Y.toString();let Z=this;W.encode.call(Z,Buffer.byteLength(Y,G),V),X.bytes=W.encode.bytes;let Q=Buffer.from(Y,G);V.writeBuffer(Q),X.bytes+=Q.length}}function Tp(W,G){return function X(Y){let V=W.decode.call(this,Y);if(typeof V!=="number")throw TypeError("Size of a string should be a number.");let Z=Y.readBuffer(V);return X.bytes=W.decode.bytes+Z.length,Z.toString(G)}}function Mp(W,G){return function(Y){let V=Buffer.byteLength(Y,G);return W.encodingLength(V)+V}}function Pp(W,G){return function X(Y,V){X.bytes=0;let Q=W(this),J=Buffer.from(Y.toString(),G);dB(Q),Lp(Q,J.length),V.writeBuffer(J),X.bytes+=J.length}}function Rp(W,G){return function X(Y){let V=W(this);dB(V);let Z=Y.readBuffer(V);return X.bytes=V,Z.toString(G)}}function dB(W){if(typeof W!=="number")throw TypeError("Length of a buffer should be a number.")}function Lp(W,G){if(W!==G)throw Error(`Buffer required length ${W} instead of ${G}`)}});var rB=Y1((bq0,iB)=>{var YA=IQ();iB.exports={doublebe:d9(8,"writeDoubleBE","readDoubleBE"),doublele:d9(8,"writeDoubleLE","readDoubleLE"),floatbe:d9(4,"writeFloatBE","readFloatBE"),floatle:d9(4,"writeFloatLE","readFloatLE"),int8:d9(1,"writeInt8","readInt8"),uint8:d9(1,"writeUInt8","readUInt8"),int16be:d9(2,"writeInt16BE","readInt16BE"),uint16be:d9(2,"writeUInt16BE","readUInt16BE"),int16le:d9(2,"writeInt16LE","readInt16LE"),uint16le:d9(2,"writeUInt16LE","readUInt16LE"),int32be:d9(4,"writeInt32BE","readInt32BE"),uint32be:d9(4,"writeUInt32BE","readUInt32BE"),int32le:d9(4,"writeInt32LE","readInt32LE"),uint32le:d9(4,"writeUInt32LE","readUInt32LE"),int24be:T5(3,"writeIntBE","readIntBE"),uint24be:T5(3,"writeUIntBE","readUIntBE"),int24le:T5(3,"writeIntLE","readIntLE"),uint24le:T5(3,"writeUIntLE","readUIntLE"),int40be:T5(5,"writeIntBE","readIntBE"),uint40be:T5(5,"writeUIntBE","readUIntBE"),int40le:T5(5,"writeIntLE","readIntLE"),uint40le:T5(5,"writeUIntLE","readUIntLE"),int48be:T5(6,"writeIntBE","readIntBE"),uint48be:T5(6,"writeUIntBE","readUIntBE"),int48le:T5(6,"writeIntLE","readIntLE"),uint48le:T5(6,"writeUIntLE","readUIntLE")};function d9(W,G,X){let Y=YA(),V=YA();return Y(`
|
|
114
|
+
function decode_${X}(rstream) {
|
|
115
|
+
decode_${X}.bytes = ${Y.formats.d(W)};
|
|
116
|
+
return rstream.${X}()
|
|
117
|
+
}
|
|
118
|
+
`),V(`
|
|
119
|
+
function encode_${G}(value, wstream) {
|
|
120
|
+
wstream.${G}(value);
|
|
121
|
+
encode_${G}.bytes = ${Y.formats.d(W)};
|
|
122
|
+
}
|
|
123
|
+
`),{encodingLength:()=>W,encode:V.toFunction(),decode:Y.toFunction()}}function T5(W,G,X){let Y=YA(),V=YA();return Y(`
|
|
124
|
+
function decode_${X}(rstream) {
|
|
125
|
+
decode_${X}.bytes = ${Y.formats.d(W)};
|
|
126
|
+
return rstream.${X}(${Y.formats.d(W)})
|
|
127
|
+
}
|
|
128
|
+
`),V(`
|
|
129
|
+
function encode_${G}(value, wstream) {
|
|
130
|
+
wstream.${G}(value, ${Y.formats.d(W)});
|
|
131
|
+
encode_${G}.bytes = ${Y.formats.d(W)};
|
|
132
|
+
}
|
|
133
|
+
`),{encodingLength:()=>W,encode:V.toFunction(),decode:Y.toFunction()}}});var sB=Y1((mq0,aB)=>{var{isType:Bp,isFunction:Tj,isUserType:Ep}=E7(),Mj=_6(),{decodeCommon:$p}=IY(),{encodeCommon:Fp}=jQ(),{encodingLengthCommon:Sp}=OQ(),u6=y6();aB.exports=xp;function xp(W,G){if(!Bp(G)&&!Ep(G))throw TypeError("Argument #2 should be a valid type.");let X={encode:Y,decode:V,encodingLength:Z,[Mj.skip]:!1};return X;function Y(Q,J){let U=u6.clone(this);Y.bytes=0;let q=Tj(W)?Boolean(W(U)):Boolean(W);if(X[Mj.skip]=!q,!q){u6.clean(U);return}Fp(Q,J,G,U),Y.bytes=U.bytes,u6.clean(U)}function V(Q){let J=u6.clone(this);V.bytes=0;let U=Tj(W)?Boolean(W(J)):Boolean(W);if(X[Mj.skip]=!U,!U){u6.clean(J);return}let q=$p(Q,G,J);return V.bytes=J.bytes,u6.clean(J),q}function Z(Q){let J=u6.clone(this);if(Tj(W)?Boolean(W(J)):Boolean(W))Sp(Q,G,J);return u6.clean(J),J.bytes}}});var WE=Y1((fq0,eB)=>{var VA=_6(),{decodeCommon:kp}=IY(),tB=y6();eB.exports=_p;function _p(...W){if(W.length===0)throw TypeError("You should set at least one condition type.");let G={decode:X,encode:()=>{},[VA.skip]:!0};return G;function X(Y){X.bytes=0;let V=tB.clone(this);for(let Z of W){let Q=kp(Y,Z,V);if(Z[VA.skip]===!0)continue;return X.bytes=V.bytes,tB.clean(V),G[VA.skip]=!1,Q}G[VA.skip]=!0}}});var VE=Y1((cq0,YE)=>{var XE=IQ(),yp=HY();class ZA{constructor(W){this.stream=W,this.index=0}append(W){this.stream.append(W)}commit(){this.stream.consume(this.index)}get(W=0){return this.stream.get(this.index+W)}get length(){return this.stream.length}slice(W,G){return this.stream.slice(W,G)}toString(W,G,X){return this.stream.toString(W,G,X)}readBuffer(W){Pj(this.index+W,this.length);let G=this.stream.slice(this.index,this.index+W);return this.index+=W,G}indexOf(W,G=0){return this.stream.indexOf(W,this.index+G)-this.index}}var GE={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(GE).forEach((W)=>{let G=XE(),X=GE[W];G(`
|
|
134
|
+
function transaction_${W}() {
|
|
135
|
+
assertSize(this.index + ${G.formats.d(X)}, this.length);
|
|
136
|
+
const value = this.stream.buffer.${W}(this.index);
|
|
137
|
+
this.index += ${G.formats.d(X)};
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
`),ZA.prototype[W]=G.toFunction({assertSize:Pj})});["readIntBE","readIntLE","readUIntBE","readUIntLE"].forEach((W)=>{let G=XE();G(`
|
|
141
|
+
function transaction_${W}(bytes) {
|
|
142
|
+
assertSize(this.index + bytes, this.length);
|
|
143
|
+
const value = this.stream.buffer.${W}(bytes, this.index);
|
|
144
|
+
this.index += bytes;
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
`),ZA.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=ZA;function Pj(W,G){if(W>G)throw new yp(W,G)}});var N8=Y1((pq0,NE)=>{var Rj=zQ(),vp=gB(),gp=mB(),up=cB(),hp=lB(),bp=nB(),ZE=rB(),mp=sB(),fp=WE(),{encode:UE}=jQ(),{decode:qE}=IY(),{encodingLength:cp}=OQ(),pp=VE(),AE=HY(),HE={array:vp,bool:up,buffer:gp,reserved:hp,string:bp,when:mp,select:fp};for(let W of Object.keys(ZE))HE[W]=ZE[W];var QA=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:lp});return G[QA]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:dp,readableObjectMode:!0,writableObjectMode:!1});if(Y[QA]=G,X)Y.append(W);return Y}function lp(W,G,X){try{UE(W,this[QA],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function dp(W,G,X){this.append(W);try{while(this.length>0){let Y=new pp(this),V=qE(Y,this[QA]);Y.commit(),this.push(V)}X()}catch(Y){if(Y instanceof AE)X();else X(Y)}}NE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:qE,encodingLength:cp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:AE}});var H$=Y1((q$)=>{Object.defineProperty(q$,"__esModule",{value:!0});q$.LEB128=q$.SignedLEB128=q$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class TY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,V=0;for(let Z=0;Z<=X-G;Z++){let Q=W[G+Z]&DY.LOWER_7;Y|=Q<<V,V+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}q$.UnsignedLEB128=TY;class DA{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return TY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=TY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}q$.SignedLEB128=DA;class TA{}q$.LEB128=TA;TA.encode=(W)=>(W>=0?TY:DA).encode(W);TA.decode=(W,G=0,X=!1)=>(X?DA:TY).decode(W,G)});var I$=Y1((dj,N$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(M){return parseInt(M)===M}function X(M){if(!G(M.length))return!1;for(var $=0;$<M.length;$++)if(!G(M[$])||M[$]<0||M[$]>255)return!1;return!0}function Y(M,$){if(M.buffer&&M.name==="Uint8Array"){if($)if(M.slice)M=M.slice();else M=Array.prototype.slice.call(M);return M}if(Array.isArray(M)){if(!X(M))throw Error("Array contains invalid value: "+M);return new Uint8Array(M)}if(G(M.length)&&X(M))return new Uint8Array(M);throw Error("unsupported array-like object")}function V(M){return new Uint8Array(M)}function Z(M,$,g,u,m){if(u!=null||m!=null)if(M.slice)M=M.slice(u,m);else M=Array.prototype.slice.call(M,u,m);$.set(M,g)}var Q=function(){function M(g){var u=[],m=0;g=encodeURI(g);while(m<g.length){var i=g.charCodeAt(m++);if(i===37)u.push(parseInt(g.substr(m,2),16)),m+=2;else u.push(i)}return Y(u)}function $(g){var u=[],m=0;while(m<g.length){var i=g[m];if(i<128)u.push(String.fromCharCode(i)),m++;else if(i>191&&i<224)u.push(String.fromCharCode((i&31)<<6|g[m+1]&63)),m+=2;else u.push(String.fromCharCode((i&15)<<12|(g[m+1]&63)<<6|g[m+2]&63)),m+=3}return u.join("")}return{toBytes:M,fromBytes:$}}(),J=function(){function M(u){var m=[];for(var i=0;i<u.length;i+=2)m.push(parseInt(u.substr(i,2),16));return m}var $="0123456789abcdef";function g(u){var m=[];for(var i=0;i<u.length;i++){var Q0=u[i];m.push($[(Q0&240)>>4]+$[Q0&15])}return m.join("")}return{toBytes:M,fromBytes:g}}(),U={16:10,24:12,32:14},q=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],A=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],N=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],z=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],p=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],v=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],l=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function G0(M){var $=[];for(var g=0;g<M.length;g+=4)$.push(M[g]<<24|M[g+1]<<16|M[g+2]<<8|M[g+3]);return $}var b=function(M){if(!(this instanceof b))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(M,!0)}),this._prepare()};b.prototype._prepare=function(){var M=U[this.key.length];if(M==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var $=0;$<=M;$++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var g=(M+1)*4,u=this.key.length/4,m=G0(this.key),i;for(var $=0;$<u;$++)i=$>>2,this._Ke[i][$%4]=m[$],this._Kd[M-i][$%4]=m[$];var Q0=0,I0=u,E0;while(I0<g){if(E0=m[u-1],m[0]^=A[E0>>16&255]<<24^A[E0>>8&255]<<16^A[E0&255]<<8^A[E0>>24&255]^q[Q0]<<24,Q0+=1,u!=8)for(var $=1;$<u;$++)m[$]^=m[$-1];else{for(var $=1;$<u/2;$++)m[$]^=m[$-1];E0=m[u/2-1],m[u/2]^=A[E0&255]^A[E0>>8&255]<<8^A[E0>>16&255]<<16^A[E0>>24&255]<<24;for(var $=u/2+1;$<u;$++)m[$]^=m[$-1]}var $=0,x0,L0;while($<u&&I0<g)x0=I0>>2,L0=I0%4,this._Ke[x0][L0]=m[$],this._Kd[M-x0][L0]=m[$++],I0++}for(var x0=1;x0<M;x0++)for(var L0=0;L0<4;L0++)E0=this._Kd[x0][L0],this._Kd[x0][L0]=v[E0>>24&255]^n[E0>>16&255]^c[E0>>8&255]^l[E0&255]},b.prototype.encrypt=function(M){if(M.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var $=this._Ke.length-1,g=[0,0,0,0],u=G0(M);for(var m=0;m<4;m++)u[m]^=this._Ke[0][m];for(var i=1;i<$;i++){for(var m=0;m<4;m++)g[m]=H[u[m]>>24&255]^z[u[(m+1)%4]>>16&255]^w[u[(m+2)%4]>>8&255]^C[u[(m+3)%4]&255]^this._Ke[i][m];u=g.slice()}var Q0=V(16),I0;for(var m=0;m<4;m++)I0=this._Ke[$][m],Q0[4*m]=(A[u[m]>>24&255]^I0>>24)&255,Q0[4*m+1]=(A[u[(m+1)%4]>>16&255]^I0>>16)&255,Q0[4*m+2]=(A[u[(m+2)%4]>>8&255]^I0>>8)&255,Q0[4*m+3]=(A[u[(m+3)%4]&255]^I0)&255;return Q0},b.prototype.decrypt=function(M){if(M.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var $=this._Kd.length-1,g=[0,0,0,0],u=G0(M);for(var m=0;m<4;m++)u[m]^=this._Kd[0][m];for(var i=1;i<$;i++){for(var m=0;m<4;m++)g[m]=D[u[m]>>24&255]^x[u[(m+3)%4]>>16&255]^h[u[(m+2)%4]>>8&255]^p[u[(m+1)%4]&255]^this._Kd[i][m];u=g.slice()}var Q0=V(16),I0;for(var m=0;m<4;m++)I0=this._Kd[$][m],Q0[4*m]=(N[u[m]>>24&255]^I0>>24)&255,Q0[4*m+1]=(N[u[(m+3)%4]>>16&255]^I0>>16)&255,Q0[4*m+2]=(N[u[(m+2)%4]>>8&255]^I0>>8)&255,Q0[4*m+3]=(N[u[(m+1)%4]&255]^I0)&255;return Q0};var Y0=function(M){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new b(M)};Y0.prototype.encrypt=function(M){if(M=Y(M),M.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var $=V(M.length),g=V(16);for(var u=0;u<M.length;u+=16)Z(M,g,0,u,u+16),g=this._aes.encrypt(g),Z(g,$,u);return $},Y0.prototype.decrypt=function(M){if(M=Y(M),M.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var $=V(M.length),g=V(16);for(var u=0;u<M.length;u+=16)Z(M,g,0,u,u+16),g=this._aes.decrypt(g),Z(g,$,u);return $};var J0=function(M,$){if(!(this instanceof J0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!$)$=V(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y($,!0),this._aes=new b(M)};J0.prototype.encrypt=function(M){if(M=Y(M),M.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var $=V(M.length),g=V(16);for(var u=0;u<M.length;u+=16){Z(M,g,0,u,u+16);for(var m=0;m<16;m++)g[m]^=this._lastCipherblock[m];this._lastCipherblock=this._aes.encrypt(g),Z(this._lastCipherblock,$,u)}return $},J0.prototype.decrypt=function(M){if(M=Y(M),M.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var $=V(M.length),g=V(16);for(var u=0;u<M.length;u+=16){Z(M,g,0,u,u+16),g=this._aes.decrypt(g);for(var m=0;m<16;m++)$[u+m]=g[m]^this._lastCipherblock[m];Z(M,this._lastCipherblock,0,u,u+16)}return $};var k=function(M,$,g){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!$)$=V(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!g)g=1;this.segmentSize=g,this._shiftRegister=Y($,!0),this._aes=new b(M)};k.prototype.encrypt=function(M){if(M.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var $=Y(M,!0),g;for(var u=0;u<$.length;u+=this.segmentSize){g=this._aes.encrypt(this._shiftRegister);for(var m=0;m<this.segmentSize;m++)$[u+m]^=g[m];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z($,this._shiftRegister,16-this.segmentSize,u,u+this.segmentSize)}return $},k.prototype.decrypt=function(M){if(M.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var $=Y(M,!0),g;for(var u=0;u<$.length;u+=this.segmentSize){g=this._aes.encrypt(this._shiftRegister);for(var m=0;m<this.segmentSize;m++)$[u+m]^=g[m];Z(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Z(M,this._shiftRegister,16-this.segmentSize,u,u+this.segmentSize)}return $};var o=function(M,$){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!$)$=V(16);else if($.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y($,!0),this._lastPrecipherIndex=16,this._aes=new b(M)};o.prototype.encrypt=function(M){var $=Y(M,!0);for(var g=0;g<$.length;g++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;$[g]^=this._lastPrecipher[this._lastPrecipherIndex++]}return $},o.prototype.decrypt=o.prototype.encrypt;var B=function(M){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(M!==0&&!M)M=1;if(typeof M==="number")this._counter=V(16),this.setValue(M);else this.setBytes(M)};B.prototype.setValue=function(M){if(typeof M!=="number"||parseInt(M)!=M)throw Error("invalid counter value (must be an integer)");if(M>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var $=15;$>=0;--$)this._counter[$]=M%256,M=parseInt(M/256)},B.prototype.setBytes=function(M){if(M=Y(M,!0),M.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=M},B.prototype.increment=function(){for(var M=15;M>=0;M--)if(this._counter[M]===255)this._counter[M]=0;else{this._counter[M]++;break}};var R=function(M,$){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!($ instanceof B))$=new B($);this._counter=$,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new b(M)};R.prototype.encrypt=function(M){var $=Y(M,!0);for(var g=0;g<$.length;g++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();$[g]^=this._remainingCounter[this._remainingCounterIndex++]}return $},R.prototype.decrypt=R.prototype.encrypt;function L(M){M=Y(M,!0);var $=16-M.length%16,g=V(M.length+$);Z(M,g);for(var u=M.length;u<g.length;u++)g[u]=$;return g}function _(M){if(M=Y(M,!0),M.length<16)throw Error("PKCS#7 invalid length");var $=M[M.length-1];if($>16)throw Error("PKCS#7 padding byte out of range");var g=M.length-$;for(var u=0;u<$;u++)if(M[g+u]!==$)throw Error("PKCS#7 invalid padding byte");var m=V(g);return Z(M,m,0,0,g),m}var f={AES:b,Counter:B,ModeOfOperation:{ecb:Y0,cbc:J0,cfb:k,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:L,strip:_}},_arrayTest:{coerceArray:Y,createArray:V,copyArray:Z}};if(typeof dj<"u")N$.exports=f;else if(typeof define==="function"&&define.amd)define([],function(){return f});else{if(W.aesjs)f._aesjs=W.aesjs;W.aesjs=f}})(dj)});var rj=Y1((C$)=>{var s0=C$,{Buffer:LA}=E8("buffer"),Sl=E8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||LA.alloc(X+4),W.split(/\./g).map((V)=>{Y[X++]=parseInt(V,10)&255});else if(this.isV6Format(W)){let V=W.split(":",8),Z;for(Z=0;Z<V.length;Z++){let Q=this.isV4Format(V[Z]),J;if(Q)J=this.toBuffer(V[Z]),V[Z]=J.slice(0,2).toString("hex");if(J&&++Z<8)V.splice(Z,0,J.slice(2,4).toString("hex"))}if(V[0]==="")while(V.length<8)V.unshift("0");else if(V[V.length-1]==="")while(V.length<8)V.push("0");else if(V.length<8){for(Z=0;Z<V.length&&V[Z]!=="";Z++);let Q=[Z,1];for(Z=9-V.length;Z>0;Z--)Q.push("0");V.splice(...Q)}Y=G||LA.alloc(X+16);for(Z=0;Z<V.length;Z++){let Q=parseInt(V[Z],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let V=0;V<X;V++)Y.push(W[G+V]);Y=Y.join(".")}else if(X===16){for(let V=0;V<X;V+=2)Y.push(W.readUInt16BE(G+V).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var xl=/^(\d{1,3}\.){3,3}\d{1,3}$/,kl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return xl.test(W)};s0.isV6Format=function(W){return kl.test(W)};function $Q(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=$Q(G);let X=4;if(G==="ipv6")X=16;let Y=LA.alloc(X);for(let V=0,Z=Y.length;V<Z;++V){let Q=8;if(W<8)Q=W;W-=Q,Y[V]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=LA.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),V=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)V+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,V++}let Z=2**(32-V);return{networkAddress:s0.fromLong(X),firstAddress:Z<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:Z<=2?s0.fromLong(X+Z-1):s0.fromLong(X+Z-2),broadcastAddress:s0.fromLong(X+Z-1),subnetMask:G,subnetMaskLength:V,numHosts:Z<=2?Z:Z-2,length:Z,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Z=0;Z<W.length;++Z)W[Z]|=G[Z];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let V=X.length-Y.length;for(let Z=V;Z<X.length;++Z)X[Z]|=Y[Z-V];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=$Q(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=Sl.networkInterfaces();if(G=$Q(G),W&&W!=="private"&&W!=="public"){let V=X[W].filter((Z)=>{return $Q(Z.family)===G});if(V.length===0)return;return V[0].address}let Y=Object.keys(X).map((V)=>{let Z=X[V].filter((Q)=>{if(Q.family=$Q(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return Z.length?Z[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((V)=>{if(V.startsWith("0x")||V.startsWith("0X"))return parseInt(V,16);else if(V.startsWith("0")&&V!=="0"&&/^[0-7]+$/.test(V))return parseInt(V,8);else if(/^[1-9]\d*$/.test(V)||V==="0")return parseInt(V,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((V)=>V>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var T$=Y1((SA0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,V,Z;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(V=Y;V--!==0;)if(!W(G[V],X[V]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(Z=Object.keys(G),Y=Z.length,Y!==Object.keys(X).length)return!1;for(V=Y;V--!==0;)if(!Object.prototype.hasOwnProperty.call(X,Z[V]))return!1;for(V=Y;V--!==0;){var Q=Z[V];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var M$=Y1((_l)=>{_l.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};_l.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Y1((gl)=>{gl.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};gl.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Y1((bl)=>{bl.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};bl.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Y1((cl)=>{cl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};cl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Y1((dl)=>{dl.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};dl.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Y1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=N,W.encode=A,W.familyOf=q,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,V=16,Z={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,z,w){w=~~w,z=z||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)z[w++]=D,D=0;else D=D*10+(h-48)}return z[w]=D,z},decode(H,z){return z=~~z,`${H[z++]}.${H[z++]}.${H[z++]}.${H[z]}`}};W.v4=Z;let Q={name:"v6",size:V,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,z,w){w=~~w;let C=w+V,D=-1,x=0,h=0,p=!0,v=!1;z=z||new Uint8Array(w+V);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(p){if(D!==-1){if(w<C)z[w]=0;if(w<C-1)z[w+1]=0;w+=2}else if(w<C)D=w}else{if(v===!0){if(w<C)z[w]=h;w++}else{if(w<C)z[w]=x>>8;if(w<C-1)z[w+1]=x&255;w+=2}x=0,h=0}p=!0,v=!1}else if(c===46){if(w<C)z[w]=h;w++,h=0,x=0,p=!1,v=!0}else{if(p=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(p===!1)if(v===!0){if(w<C)z[w]=h;w++}else{if(w<C)z[w]=x>>8;if(w<C-1)z[w+1]=x&255;w+=2}else if(D===0){if(w<C)z[w]=0;if(w<C-1)z[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)z[n]=z[n-2];z[D]=0,z[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)z[--C]=w<C&&w>D?z[--w]:0}else while(w<C)z[w++]=0;return z},decode(H,z){z=~~z;let w="";for(let C=0;C<V;C+=2){if(C!==0)w+=":";w+=(H[z+C]<<8|H[z+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(Z.isFormat(H))return Z.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function q(H){return U(H)===Z.size?1:2}function A(H,z,w){w=~~w;let C=U(H);if(typeof z==="function")z=z(w+C);if(C===Z.size)return Z.encode(H,z,w);return Q.encode(H,z,w)}function N(H,z,w){if(z=~~z,w=w||H.length-z,w===Z.size)return Z.decode(H,z,w);if(w===Q.size)return Q.decode(H,z,w);throw Error(`Invalid buffer size needs to be ${Z.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Y1((tl)=>{var G1=E8("buffer").Buffer,u4=M$(),il=P$(),rl=R$(),EA=L$(),ej=B$(),jG=F$(),y0=tl.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let V=X,Z=W.replace(/^\.|\.$/gm,"");if(Z.length){let Q=[];if(Y){let J="";Z.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=Z.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-V,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],V=G,Z=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(Z+=U+1,Z>254)throw Error("Cannot decode name (name too long)");let q=W.toString("utf-8",G,G+U);if(X)q=q.replace(/\./g,"\\.");Y.push(q),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let q=W.readUInt16BE(G-1)-49152;if(q>=V)throw Error("Cannot decode name (bad pointer)");G=q,V=q,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var $1={};$1.encode=function(W,G,X){if(!G)G=G1.alloc($1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,$1.encode.bytes=Y+1,G};$1.encode.bytes=0;$1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return $1.decode.bytes=X+1,Y};$1.decode.bytes=0;$1.encodingLength=function(W){return G1.byteLength(W)+1};var i5={};i5.encode=function(W,G,X){if(!G)G=i5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,V=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|V,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};i5.encode.bytes=12;i5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:rl.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:il.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};i5.decode.bytes=12;i5.encodingLength=function(){return 12};var $4=tl.unknown={};$4.encode=function(W,G,X){if(!G)G=G1.alloc($4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),$4.encode.bytes=W.length+2,G};$4.encode.bytes=0;$4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return $4.decode.bytes=X+2,Y};$4.decode.bytes=0;$4.encodingLength=function(W){return W.length+2};var F4=tl.ns={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),F4.encode.bytes=y0.encode.bytes+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return y0.encodingLength(W)+2};var S4=tl.soa={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),S4.encode.bytes=X-Y,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,S4.decode.bytes=G-X,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var x4=tl.txt={};x4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let V=0;V<W.length;V++){if(typeof W[V]==="string")W[V]=G1.from(W[V]);if(!G1.isBuffer(W[V]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(V){G[X++]=V.length,V.copy(G,X,0,V.length),X+=V.length}),G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let V=[];while(Y>0){let Z=W[G++];if(--Y,Y<Z)throw Error("Buffer overflow");V.push(W.slice(G,G+Z)),G+=Z,Y-=Z}return x4.decode.bytes=G-X,V};x4.decode.bytes=0;x4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var k4=tl.null={};k4.encode=function(W,G,X){if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let V=W.length;return W.copy(G,X,0,V),X+=V,G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let V=W.slice(G,G+Y);return G+=Y,k4.decode.bytes=G-X,V};k4.decode.bytes=0;k4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var _4=tl.hinfo={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,$1.encode(W.cpu,G,X),X+=$1.encode.bytes,$1.encode(W.os,G,X),X+=$1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=$1.decode(W,G),G+=$1.decode.bytes,Y.os=$1.decode(W,G),G+=$1.decode.bytes,_4.decode.bytes=G-X,Y};_4.decode.bytes=0;_4.encodingLength=function(W){return $1.encodingLength(W.cpu)+$1.encodingLength(W.os)+2};var o5=tl.ptr={},al=tl.cname=o5,sl=tl.dname=o5;o5.encode=function(W,G,X){if(!G)G=G1.alloc(o5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),o5.encode.bytes=y0.encode.bytes+2,G};o5.encode.bytes=0;o5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return o5.decode.bytes=y0.decode.bytes+2,X};o5.decode.bytes=0;o5.encodingLength=function(W){return y0.encodingLength(W)+2};var y4=tl.srv={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),y4.encode.bytes=Y+2,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),y4.decode.bytes=X+2,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=tl.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,$1.encode(W.tag,G,X),X+=$1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,V={};return V.flags=W.readUInt8(G),G+=1,V.tag=$1.decode(W,G),G+=$1.decode.bytes,V.value=W.toString("utf-8",G,Y+X),V.issuerCritical=!!(V.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,V};Q5.decode.bytes=0;Q5.encodingLength=function(W){return $1.encodingLength(W.tag)+$1.encodingLength(W.value)+2};var l6=tl.mx={};l6.encode=function(W,G,X){if(!G)G=G1.alloc(l6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),l6.encode.bytes=X-Y,G};l6.encode.bytes=0;l6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,l6.decode.bytes=G-X,Y};l6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var v4=tl.a={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),v4.encode.bytes=6,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return v4.decode.bytes=6,X};v4.decode.bytes=0;v4.encodingLength=function(){return 6};var g4=tl.aaaa={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),g4.encode.bytes=18,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return g4.decode.bytes=18,X};g4.decode.bytes=0;g4.encodingLength=function(){return 18};var n9=tl.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,V=ej.toCode(W.code);if(G.writeUInt16BE(V,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(V){case 8:let Z=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(Z/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(Z,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let q=W.length||0;G.writeUInt16BE(q,X),X+=2,G.fill(0,X,X+q),X+=q;break;case 14:let A=W.tags.length*2;G.writeUInt16BE(A,X),X+=2;for(let N of W.tags)G.writeUInt16BE(N,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let V=G1.alloc(X.family===1?4:16);W.copy(V,0,G,G+Y-4),X.ip=jG.decode(V);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let Z=0;Z<Y;Z+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=tl.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,V=BY(W,n9);return G.writeUInt16BE(V,X),X=FQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],V=W.readUInt16BE(G);G+=2;let Z=0;while(V>0)Y[Z++]=n9.decode(W,G),G+=n9.decode.bytes,V-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=tl.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,V=W.key;if(!G1.isBuffer(V))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},V=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+V+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var F7=tl.rrsig={};F7.encode=function(W,G,X){if(!G)G=G1.alloc(F7.encodingLength(W));if(!X)X=0;let Y=X,V=W.signature;if(!G1.isBuffer(V))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(u4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,V.copy(G,X,0,V.length),X+=V.length,F7.encode.bytes=X-Y,G.writeUInt16BE(F7.encode.bytes-2,Y),G};F7.encode.bytes=0;F7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},V=W.readUInt16BE(G);return G+=2,Y.typeCovered=u4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+V+2),G+=Y.signature.length,F7.decode.bytes=G-X,Y};F7.decode.bytes=0;F7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var S7=tl.rp={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var l8={};l8.encode=function(W,G,X){if(!G)G=G1.alloc(l8.encodingLength(W));if(!X)X=0;let Y=X;var V=[];for(var Z=0;Z<W.length;Z++){var Q=u4.toType(W[Z]);if(V[Q>>8]===void 0)V[Q>>8]=[];V[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(Z=0;Z<V.length;Z++)if(V[Z]!==void 0){var J=G1.from(V[Z]);G.writeUInt8(Z,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return l8.encode.bytes=X-Y,G};l8.encode.bytes=0;l8.decode=function(W,G,X){if(!G)G=0;let Y=G;var V=[];while(G-Y<X){var Z=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var q=0;q<8;q++)if(U&1<<7-q){var A=u4.toString(Z<<8|J<<3|q);V.push(A)}}G+=Q}return l8.decode.bytes=G-Y,V};l8.decode.bytes=0;l8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=u4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var V=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)V+=2+Math.ceil((G[X]+1)/8);return V};var x7=tl.nsec={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,l8.encode(W.rrtypes,G,X),X+=l8.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},V=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=l8.decode(W,G,V-(G-X)),G+=l8.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+l8.encodingLength(W.rrtypes)};var k7=tl.nsec3={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X,V=W.salt;if(!G1.isBuffer(V))throw Error("salt must be a Buffer");let Z=W.nextDomain;if(!G1.isBuffer(Z))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,l8.encode(W.rrtypes,G,X),X+=l8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},V=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let Z=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+Z),G+=Z;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=l8.decode(W,G,V-(G-X)),G+=l8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+l8.encodingLength(W.rrtypes)};var _7=tl.ds={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,V=W.digest;if(!G1.isBuffer(V))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},V=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+V+2),G+=Y.digest.length,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=tl.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let V=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let Z=G1.from(G.fingerprint.toUpperCase(),"hex");if(Z.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return Z.copy(X,Y),Y+=Z.byteLength,J5.encode.bytes=Y-V,X.writeUInt16BE(J5.encode.bytes-2,V),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,V={};X+=2,V.algorithm=G[X],X+=1,V.hash=G[X],X+=1;let Z=J5.getFingerprintLengthForHashType(V.hash);return V.fingerprint=G.slice(X,X+Z).toString("hex").toUpperCase(),X+=Z,J5.decode.bytes=X-Y,V};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var y7=tl.naptr={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,$1.encode(W.flags,G,X),X+=$1.encode.bytes,$1.encode(W.services,G,X),X+=$1.encode.bytes,$1.encode(W.regexp,G,X),X+=$1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=$1.decode(W,G),G+=$1.decode.bytes,Y.services=$1.decode(W,G),G+=$1.decode.bytes,Y.regexp=$1.decode(W,G),G+=$1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return $1.encodingLength(W.flags)+$1.encodingLength(W.services)+$1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var v7=tl.tlsa={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X,V=W.certificate;if(!G1.isBuffer(V))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={},V=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+V+2),G+=Y.certificate.length,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=tl.record=function(W){switch(W.toUpperCase()){case"A":return v4;case"PTR":return o5;case"CNAME":return al;case"DNAME":return sl;case"TXT":return x4;case"NULL":return k4;case"AAAA":return g4;case"SRV":return y4;case"HINFO":return _4;case"CAA":return Q5;case"NS":return F4;case"SOA":return S4;case"MX":return l6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return F7;case"RP":return S7;case"NSEC":return x7;case"NSEC3":return k7;case"SSHFP":return J5;case"DS":return _7;case"NAPTR":return y7;case"TLSA":return v7}return $4},G9=tl.answer={};G9.encode=function(W,G,X){if(!G)G=G1.alloc(G9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(u4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let V=EA.toClass(W.class===void 0?"IN":W.class);if(W.flush)V|=32768;G.writeUInt16BE(V,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let Z=WO(W.type);Z.encode(W.data,G,X),X+=Z.encode.bytes}return G9.encode.bytes=X-Y,G};G9.encode.bytes=0;G9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=u4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let V=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=EA.toString(V&-32769),X.flush=!!(V&32768);let Z=WO(X.type);X.data=Z.decode(W,G+8),G+=8+Z.decode.bytes}return G9.decode.bytes=G-Y,X};G9.decode.bytes=0;G9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var n5=tl.question={};n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(u4.toType(W.type),X),X+=2,G.writeUInt16BE(EA.toClass(W.class===void 0?"IN":W.class),X),X+=2,n5.encode.bytes=X-Y,W};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=u4.toString(W.readUInt16BE(G)),G+=2,Y.class=EA.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return n5.decode.bytes=G-X,Y};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W.name)+4};tl.AUTHORITATIVE_ANSWER=1024;tl.TRUNCATED_RESPONSE=512;tl.RECURSION_DESIRED=256;tl.RECURSION_AVAILABLE=128;tl.AUTHENTIC_DATA=32;tl.CHECKING_DISABLED=16;tl.DNSSEC_OK=32768;tl.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(tl.encodingLength(W));if(!X)X=0;let V=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(i5.encode(W,G,X),X+=i5.encode.bytes,X=FQ(W.questions,n5,G,X),X=FQ(W.answers,G9,G,X),X=FQ(W.authorities,G9,G,X),X=FQ(W.additionals,G9,G,X),tl.encode.bytes=X-V,Y&&tl.encode.bytes!==G.length)return G.slice(0,tl.encode.bytes);return G};tl.encode.bytes=0;tl.decode=function(W,G){if(!G)G=0;let X=G,Y=i5.decode(W,G);return G+=i5.decode.bytes,G=BA(Y.questions,n5,W,G),G=BA(Y.answers,G9,W,G),G=BA(Y.authorities,G9,W,G),G=BA(Y.additionals,G9,W,G),tl.decode.bytes=G-X,Y};tl.decode.bytes=0;tl.encodingLength=function(W){return i5.encodingLength(W)+BY(W.questions||[],n5)+BY(W.answers||[],G9)+BY(W.authorities||[],G9)+BY(W.additionals||[],G9)};tl.streamEncode=function(W){let G=tl.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return tl.streamEncode.bytes=Y.byteLength,Y};tl.streamEncode.bytes=0;tl.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=tl.decode(W.slice(2));return tl.streamDecode.bytes=tl.decode.bytes,X};tl.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function FQ(W,G,X,Y){for(let V=0;V<W.length;V++)G.encode(W[V],X,Y),Y+=G.encode.bytes;return Y}function BA(W,G,X,Y){for(let V=0;V<W.length;V++)W[V]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Y1((NH0,k$)=>{var x$=Nd;process.nextTick(Hd,42);k$.exports=Jd;function Jd(W){var G=Y;return X;function X(V){G(V||qd)}function Y(V){var Z=[V];G=Q,W(J);function Q(U){Z.push(U)}function J(U){var q=arguments;G=Ud(U)?Y:A;while(Z.length)A(Z.shift());function A(N){x$(Ad,N,q)}}}}function Ud(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Ad(W,G){W.apply(null,G)}function Hd(W){if(W===42)x$=process.nextTick}function Nd(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Y1((IH0,v$)=>{var GO=S$(),Id=E8("dgram"),zd=_$(),wd=E8("events"),YO=E8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new wd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",V=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),Z={address:V,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!V||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var q=W.socket||Id.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});q.on("error",function(N){if(N.code==="EACCES"||N.code==="EADDRINUSE")G.emit("error",N);else G.emit("warning",N)}),q.on("message",function(N,H){try{N=GO.decode(N)}catch(z){G.emit("warning",z);return}if(G.emit("packet",N,H),N.type==="query")G.emit("query",N,H);if(N.type==="response")G.emit("response",N,H)}),q.on("listening",function(){if(!X)X=Z.port=q.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),q.setMulticastTTL(W.ttl||255),q.setMulticastLoopback(W.loopback!==!1)});var A=zd(function(N){if(!X||W.bind===!1)return N(null);q.once("error",N),q.bind(X,W.bind||W.interface,function(){q.removeListener("error",N),N(null)})});return A(function(N){if(N)return G.emit("error",N);G.emit("ready")}),G.send=function(N,H,z){if(typeof H==="function")return G.send(N,null,H);if(!z)z=XO;if(!H)H=Z;else if(!H.host&&!H.address)H.address=Z.address;A(w);function w(C){if(J)return z();if(C)return z(C);var D=GO.encode(N);q.send(D,0,D.length,H.port,H.address||H.host,z)}},G.response=G.respond=function(N,H,z){if(Array.isArray(N))N={answers:N};N.type="response",N.flags=(N.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(N,H,z)},G.query=function(N,H,z,w){if(typeof H==="function")return G.query(N,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(N,null,H,z);if(typeof z==="function")return G.query(N,H,null,z);if(!w)w=XO;if(typeof N==="string")N=[{name:N,type:H||"ANY"}];if(Array.isArray(N))N={type:"query",questions:N};N.type="query",G.send(N,z,w)},G.destroy=function(N){if(!N)N=XO;if(J)return process.nextTick(N);J=!0,clearInterval(U);for(var H in Q)try{q.dropMembership(V,H)}catch(z){}Q={},q.close(N)},G.update=function(){var N=W.interface?[].concat(W.interface):Od(),H=!1;for(var z=0;z<N.length;z++){var w=N[z];if(Q[w])continue;try{q.addMembership(V,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(q.setMulticastInterface)try{q.setMulticastInterface(W.interface||jd())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function jd(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var V=0;V<Y.length;V++){var Z=Y[V];if(y$(Z.family)&&!Z.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return Z.address;return"0.0.0.0"}}}return"127.0.0.1"}function Od(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var V=W[G[Y]];for(var Z=0;Z<V.length;Z++){var Q=V[Z];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as At}from"fs";import{dirname as Ht}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let V=W.charCodeAt(Y++);if((V&4294967168)===0){X++;continue}else if((V&4294965248)===0)X+=2;else{if(V>=55296&&V<=56319){if(Y<G){let Z=W.charCodeAt(Y);if((Z&64512)===56320)++Y,V=((V&1023)<<10)+(Z&1023)+65536}}if((V&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,V=X,Z=0;while(Z<Y){let Q=W.charCodeAt(Z++);if((Q&4294967168)===0){G[V++]=Q;continue}else if((Q&4294965248)===0)G[V++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(Z<Y){let J=W.charCodeAt(Z);if((J&64512)===56320)++Z,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[V++]=Q>>12&15|224,G[V++]=Q>>6&63|128;else G[V++]=Q>>18&7|240,G[V++]=Q>>12&63|128,G[V++]=Q>>6&63|128}G[V++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function AN(W,G,X){let Y=G,V=Y+X,Z=[],Q="";while(Y<V){let J=W[Y++];if((J&128)===0)Z.push(J);else if((J&224)===192){let U=W[Y++]&63;Z.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,q=W[Y++]&63;Z.push((J&31)<<12|U<<6|q)}else if((J&248)===240){let U=W[Y++]&63,q=W[Y++]&63,A=W[Y++]&63,N=(J&7)<<18|U<<12|q<<6|A;if(N>65535)N-=65536,Z.push(N>>>10&1023|55296),N=56320|N&1023;Z.push(N)}else Z.push(J);if(Z.length>=m_)Q+=String.fromCharCode(...Z),Z.length=0}if(Z.length>0)Q+=String.fromCharCode(...Z);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function qC(W,G,X){if(X>c_)return p_(W,G,X);else return AN(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function AC(W,G,X){let Y=X/4294967296,V=X;W.setUint32(G,Y),W.setUint32(G+4,V)}function _J(W,G,X){let Y=Math.floor(X/4294967296),V=X;W.setUint32(G,Y),W.setUint32(G+4,V)}function yJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,V=new Uint8Array(8),Z=new DataView(V.buffer);return Z.setUint32(0,G<<2|X&3),Z.setUint32(4,Y),V}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),_J(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,V=Math.floor(Y/1e9);return{sec:X+V,nsec:Y-V*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),V=(X&3)*4294967296+Y,Z=X>>>2;return{sec:V,nsec:Z}}case 12:{let X=yJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var NC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(NC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let V=Y(W,G);if(V!=null){let Z=-1-X;return new pG(Z,V)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let V=Y(W,G);if(V!=null)return new pG(X,V)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UV(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class vJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,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 vJ({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,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);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,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}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 Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UV(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let V of X){let Z=W[V];if(!(this.ignoreUndefined&&Z===void 0))this.encodeString(V),this.doEncode(Z,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}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),AC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),_J(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 qV(W,G){return new vJ(G).encodeSharedRef(W)}function gJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HN{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let V of Y){let Z=V.bytes;for(let Q=0;Q<X;Q++)if(Z[Q]!==W[G+Q])continue W;return V.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let V=AN(W,G,X),Z=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(Z,V),V}}var NN="array",HV="map_key",zC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=NN,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HV,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let 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 Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===NN){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HV||W.type===zC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var AV=-1,IN=new DataView(new ArrayBuffer(0)),Vy=new Uint8Array(IN.buffer);try{IN.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var IC=RangeError("Insufficient data"),Zy=new HN;class uJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=IN;bytes=Vy;headByte=AV;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Zy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new uJ({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=AV,this.stack.reset()}setBuffer(W){let G=UV(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===AV&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UV(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.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);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}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 G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:V,totalPos:Z}=this;throw RangeError(`Insufficient data in parsing ${gJ(Y)} at ${Z} (${V} 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,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let V of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(V),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(Z){if(!(Z instanceof RangeError))throw Z}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${gJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===NN)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HV){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=zC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HV;continue W}}return G}}readHeadByte(){if(this.headByte===AV)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=AV}readArraySize(){let 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 $9(`Unrecognized array type byte: ${gJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw IC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=qC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HV;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw IC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=yJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function HW(W,G){return new uJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,qy=258,uN=29,BV=256,KV=BV+1+uN,iG=30,hN=19,GD=2*KV+1,NW=15,zN=16,Ay=7,bN=256,XD=16,YD=17,VD=18,$N=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]),pJ=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]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ZD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ny=512,r7=Array((KV+2)*2);sG(r7);var wV=Array(iG*2);sG(wV);var CV=Array(Ny);sG(CV);var DV=Array(qy-Uy+1);sG(DV);var mN=Array(uN);sG(mN);var lJ=Array(iG);sG(lJ);function wN(W,G,X,Y,V){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=V,this.has_stree=W&&W.length}var QD,JD,UD;function jN(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var qD=(W)=>{return W<256?CV[W]:CV[256+(W>>>7)]},TV=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>zN-X)W.bi_buf|=G<<W.bi_valid&65535,TV(W,W.bi_buf),W.bi_buf=G>>zN-W.bi_valid,W.bi_valid+=X-zN;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},J7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},AD=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},Iy=(W)=>{if(W.bi_valid===16)TV(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},zy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,V=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,q,A,N,H,z,w,C=0;for(H=0;H<=NW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(q=W.heap_max+1;q<GD;q++){if(A=W.heap[q],H=X[X[A*2+1]*2+1]+1,H>U)H=U,C++;if(X[A*2+1]=H,A>Y)continue;if(W.bl_count[H]++,z=0,A>=J)z=Q[A-J];if(w=X[A*2],W.opt_len+=w*(H+z),Z)W.static_len+=w*(V[A*2+1]+z)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){A=W.bl_count[H];while(A!==0){if(N=W.heap[--q],N>Y)continue;if(X[N*2+1]!==H)W.opt_len+=(H-X[N*2+1])*X[N*2],X[N*2+1]=H;A--}}},HD=(W,G,X)=>{let Y=Array(NW+1),V=0,Z,Q;for(Z=1;Z<=NW;Z++)V=V+X[Z-1]<<1,Y[Z]=V;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=AD(Y[J]++,J)}},wy=()=>{let W,G,X,Y,V,Z=Array(NW+1);X=0;for(Y=0;Y<uN-1;Y++){mN[Y]=X;for(W=0;W<1<<$N[Y];W++)DV[X++]=Y}DV[X-1]=Y,V=0;for(Y=0;Y<16;Y++){lJ[Y]=V;for(W=0;W<1<<pJ[Y];W++)CV[V++]=Y}V>>=7;for(;Y<iG;Y++){lJ[Y]=V<<7;for(W=0;W<1<<pJ[Y]-7;W++)CV[256+V++]=Y}for(G=0;G<=NW;G++)Z[G]=0;W=0;while(W<=143)r7[W*2+1]=8,W++,Z[8]++;while(W<=255)r7[W*2+1]=9,W++,Z[9]++;while(W<=279)r7[W*2+1]=7,W++,Z[7]++;while(W<=287)r7[W*2+1]=8,W++,Z[8]++;HD(r7,KV+1,Z);for(W=0;W<iG;W++)wV[W*2+1]=5,wV[W*2]=AD(W,5);QD=new wN(r7,$N,BV+1,KV,NW),JD=new wN(wV,pJ,0,iG,NW),UD=new wN([],Hy,0,hN,Ay)},ND=(W)=>{let G;for(G=0;G<KV;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hN;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bN*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},ID=(W)=>{if(W.bi_valid>8)TV(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},jC=(W,G,X,Y)=>{let V=G*2,Z=X*2;return W[V]<W[Z]||W[V]===W[Z]&&Y[G]<=Y[X]},ON=(W,G,X)=>{let Y=W.heap[X],V=X<<1;while(V<=W.heap_len){if(V<W.heap_len&&jC(G,W.heap[V+1],W.heap[V],W.depth))V++;if(jC(G,Y,W.heap[V],W.depth))break;W.heap[X]=W.heap[V],X=V,V<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,V,Z=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+Z++]&255,Y+=(W.pending_buf[W.sym_buf+Z++]&255)<<8,V=W.pending_buf[W.sym_buf+Z++],Y===0)J7(W,V,G);else{if(Q=DV[V],J7(W,Q+BV+1,G),J=$N[Q],J!==0)V-=mN[Q],g9(W,V,J);if(Y--,Q=qD(Y),J7(W,Q,X),J=pJ[Q],J!==0)Y-=lJ[Q],g9(W,Y,J)}while(Z<W.sym_next);J7(W,bN,G)},FN=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Z=G.stat_desc.elems,Q,J,U=-1,q;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<Z;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(q=W.heap[++W.heap_len]=U<2?++U:0,X[q*2]=1,W.depth[q]=0,W.opt_len--,V)W.static_len-=Y[q*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)ON(W,X,Q);q=Z;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],ON(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[q*2]=X[Q*2]+X[J*2],W.depth[q]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=q,W.heap[1]=q++,ON(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],zy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,V=-1,Z,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(Z=Q,Q=G[(Y+1)*2+1],++J<U&&Z===Q)continue;else if(J<q)W.bl_tree[Z*2]+=J;else if(Z!==0){if(Z!==V)W.bl_tree[Z*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[VD*2]++;if(J=0,V=Z,Q===0)U=138,q=3;else if(Z===Q)U=6,q=3;else U=7,q=4}},CC=(W,G,X)=>{let Y,V=-1,Z,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;for(Y=0;Y<=X;Y++){if(Z=Q,Q=G[(Y+1)*2+1],++J<U&&Z===Q)continue;else if(J<q)do J7(W,Z,W.bl_tree);while(--J!==0);else if(Z!==0){if(Z!==V)J7(W,Z,W.bl_tree),J--;J7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)J7(W,YD,W.bl_tree),g9(W,J-3,3);else J7(W,VD,W.bl_tree),g9(W,J-11,7);if(J=0,V=Z,Q===0)U=138,q=3;else if(Z===Q)U=6,q=3;else U=7,q=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FN(W,W.bl_desc);for(G=hN-1;G>=3;G--)if(W.bl_tree[ZD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let V;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(V=0;V<Y;V++)g9(W,W.bl_tree[ZD[V]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BV;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jN(W.dyn_ltree,QD),W.d_desc=new jN(W.dyn_dtree,JD),W.bl_desc=new jN(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,ND(W)},zD=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),ID(W),TV(W,X),TV(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),J7(W,bN,r7),Iy(W)},Ty=(W,G,X,Y)=>{let V,Z,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FN(W,W.l_desc),FN(W,W.d_desc),Q=jy(W),V=W.opt_len+3+7>>>3,Z=W.static_len+3+7>>>3,Z<=V)V=Z}else V=Z=X+5;if(X+4<=V&&G!==-1)zD(W,G,X,Y);else if(W.strategy===4||Z===V)g9(W,(WD<<1)+(Y?1:0),3),OC(W,r7,wV);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(ND(W),Y)ID(W)},My=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DV[X]+BV+1)*2]++,W.dyn_dtree[qD(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=zD,Ly=Ty,By=My,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let V=W&65535|0,Z=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do V=V+G[Y++]|0,Z=Z+V|0;while(--Q);V%=65521,Z%=65521}return V|Z<<16|0},MV=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let V=xy,Z=Y+X;W^=-1;for(let Q=Y;Q<Z;Q++)W=W>>>8^V[(W^G[Q])&255];return W^-1},p8=ky,wW={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"},KW={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:_y,_tr_stored_block:SN,_tr_flush_block:yy,_tr_tally:Z6,_tr_align:vy}=$y,{Z_NO_FLUSH:Q6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:N5,Z_BLOCK:TC,Z_OK:r8,Z_STREAM_END:MC,Z_STREAM_ERROR:U7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KN,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:hJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:nJ}=KW,dy=9,oy=15,ny=8,iy=29,ry=256,xN=ry+1+iy,ay=30,sy=19,ty=2*xN+1,ey=15,v1=3,V6=258,q7=V6+v1+1,Wv=32,rG=42,fN=57,kN=69,_N=73,yN=91,vN=103,IW=113,IV=666,F9=1,tG=2,jW=3,eG=4,Gv=3,zW=(W,G)=>{return W.msg=wW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Y6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,V=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=V?X-V:0;while(--G);G=V,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=V?X-V:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,J6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},n1=(W,G)=>{W.pending_buf[W.pending++]=G},NV=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gN=(W,G,X,Y)=>{let V=W.avail_in;if(V>Y)V=Y;if(V===0)return 0;if(W.avail_in-=V,G.set(W.input.subarray(W.next_in,W.next_in+V),X),W.state.wrap===1)W.adler=MV(W.adler,G,V,X);else if(W.state.wrap===2)W.adler=p8(W.adler,G,V,X);return W.next_in+=V,W.total_in+=V,V},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,V,Z,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-q7?W.strstart-(W.w_size-q7):0,q=W.window,A=W.w_mask,N=W.prev,H=W.strstart+V6,z=q[Y+Q-1],w=q[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(V=G,q[V+Q]!==w||q[V+Q-1]!==z||q[V]!==q[Y]||q[++V]!==q[Y+1])continue;Y+=2,V++;do;while(q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&q[++Y]===q[++V]&&Y<H);if(Z=V6-(H-Y),Y=H-V6,Z>Q){if(W.match_start=G,Q=Z,Z>=J)break;z=q[Y+Q-1],w=q[Y+Q]}}while((G=N[G&A])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,V;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-q7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gN(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=v1){V=W.strstart-W.insert,W.ins_h=W.window[V],W.ins_h=J6(W,W.ins_h,W.window[V+1]);while(W.insert)if(W.ins_h=J6(W,W.ins_h,W.window[V+v1-1]),W.prev[V&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=V,V++,W.insert--,W.lookahead+W.insert<v1)break}}while(W.lookahead<q7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,V,Z,Q=0,J=W.strm.avail_in;do{if(Y=65535,Z=W.bi_valid+42>>3,W.strm.avail_out<Z)break;if(Z=W.strm.avail_out-Z,V=W.strstart-W.block_start,Y>V+W.strm.avail_in)Y=V+W.strm.avail_in;if(Y>Z)Y=Z;if(Y<X&&(Y===0&&G!==N5||G===Q6||Y!==V+W.strm.avail_in))break;if(Q=G===N5&&Y===V+W.strm.avail_in?1:0,SN(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),V){if(V>Y)V=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+V),W.strm.next_out),W.strm.next_out+=V,W.strm.avail_out-=V,W.strm.total_out+=V,W.block_start+=V,Y-=V}if(Y)gN(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=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<=J){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-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==Q6&&G!==N5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(Z=W.window_size-W.strstart,W.strm.avail_in>Z&&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(Z+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(Z>W.strm.avail_in)Z=W.strm.avail_in;if(Z)gN(W.strm,W.window,W.strstart,Z),W.strstart+=Z,W.insert+=Z>W.w_size-W.insert?W.w_size-W.insert:Z;if(W.high_water<W.strstart)W.high_water=W.strstart;if(Z=W.bi_valid+42>>3,Z=W.pending_buf_size-Z>65535?65535:W.pending_buf_size-Z,X=Z>W.w_size?W.w_size:Z,V=W.strstart-W.block_start,V>=X||(V||G===N5)&&G!==Q6&&W.strm.avail_in===0&&V<=Z)Y=V>Z?Z:V,Q=G===N5&&W.strm.avail_in===0&&Y===V?1:0,SN(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?jW:F9},CN=(W,G)=>{let X,Y;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===Q6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=v1)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+v1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-q7)W.match_length=wD(W,X);if(W.match_length>=v1)if(Y=Z6(W,W.strstart-W.match_start,W.match_length-v1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=v1){W.match_length--;do W.strstart++,W.ins_h=J6(W,W.ins_h,W.window[W.strstart+v1-1]),X=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=J6(W,W.ins_h,W.window[W.strstart+1]);else Y=Z6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<v1-1?W.strstart:v1-1,G===N5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,V;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===Q6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=v1)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+v1-1]),X=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=v1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-q7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===v1&&W.strstart-W.match_start>4096))W.match_length=v1-1}if(W.prev_length>=v1&&W.match_length<=W.prev_length){V=W.strstart+W.lookahead-v1,Y=Z6(W,W.strstart-1-W.prev_match,W.prev_length-v1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=V)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+v1-1]),X=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=v1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=Z6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=Z6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<v1-1?W.strstart:v1-1,G===N5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X,Y,V,Z,Q=W.window;for(;;){if(W.lookahead<=V6){if(aG(W),W.lookahead<=V6&&G===Q6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=v1&&W.strstart>0){if(V=W.strstart-1,Y=Q[V],Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]){Z=W.strstart+V6;do;while(Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&Y===Q[++V]&&V<Z);if(W.match_length=V6-(Z-V),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=v1)X=Z6(W,1,W.match_length-v1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=Z6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===N5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===Q6)return F9;break}}if(W.match_length=0,X=Z6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===N5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function Q7(W,G,X,Y,V){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=V}var zV=[new Q7(0,0,0,0,jD),new Q7(4,4,8,4,CN),new Q7(4,5,16,8,CN),new Q7(4,6,32,32,CN),new Q7(4,4,16,16,oG),new Q7(8,16,32,32,oG),new Q7(8,16,128,128,oG),new Q7(8,32,128,256,oG),new Q7(32,128,258,1024,oG),new Q7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Y6(W.head),W.max_lazy_match=zV[W.level].max_lazy,W.good_match=zV[W.level].good_length,W.nice_match=zV[W.level].nice_length,W.max_chain_length=zV[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=v1-1,W.match_available=0,W.ins_h=0};function Jv(){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=nJ,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(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Y6(this.dyn_ltree),Y6(this.dyn_dtree),Y6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xN+1),Y6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xN+1),Y6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EV=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fN&&G.status!==kN&&G.status!==_N&&G.status!==yN&&G.status!==vN&&G.status!==IW&&G.status!==IV)return 1;return 0},OD=(W)=>{if(EV(W))return zW(W,U7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fN:G.wrap?rG:IW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),r8},KD=(W)=>{let G=OD(W);if(G===r8)Qv(W.state);return G},Uv=(W,G)=>{if(EV(W)||W.state.wrap!==2)return U7;return W.state.gzhead=G,r8},CD=(W,G,X,Y,V,Z)=>{if(!W)return U7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(V<1||V>dy||X!==nJ||Y<8||Y>15||G<0||G>9||Z<0||Z>cy||Y===8&&Q!==1)return zW(W,U7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=V+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+v1-1)/v1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<V+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=Z,J.method=X,KD(W)},qv=(W,G)=>{return CD(W,G,nJ,oy,ny,py)},Av=(W,G)=>{if(EV(W)||G>TC||G<0)return W?zW(W,U7):U7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===IV&&G!==N5)return zW(W,W.avail_out===0?KN:U7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,r8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==N5)return zW(W,KN);if(X.status===IV&&W.avail_in!==0)return zW(W,KN);if(X.status===rG&&X.wrap===0)X.status=IW;if(X.status===rG){let V=nJ+(X.w_bits-8<<4)<<8,Z=-1;if(X.strategy>=hJ||X.level<2)Z=0;else if(X.level<6)Z=1;else if(X.level===6)Z=2;else Z=3;if(V|=Z<<6,X.strstart!==0)V|=Wv;if(V+=31-V%31,NV(X,V),X.strstart!==0)NV(X,W.adler>>>16),NV(X,W.adler&65535);if(W.adler=1,X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,r8}if(X.status===fN)if(W.adler=0,n1(X,31),n1(X,139),n1(X,8),!X.gzhead){if(n1(X,0),n1(X,0),n1(X,0),n1(X,0),n1(X,0),n1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),n1(X,Gv),X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,r8}else{if(n1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),n1(X,X.gzhead.time&255),n1(X,X.gzhead.time>>8&255),n1(X,X.gzhead.time>>16&255),n1(X,X.gzhead.time>>24&255),n1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),n1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)n1(X,X.gzhead.extra.length&255),n1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=p8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kN}if(X.status===kN){if(X.gzhead.extra){let V=X.pending,Z=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+Z>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,r8;V=0,Z-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+Z),X.pending),X.pending+=Z,X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V);X.gzindex=0}X.status=_N}if(X.status===_N){if(X.gzhead.name){let V=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V);if(s9(W),X.pending!==0)return X.last_flush=-1,r8;V=0}if(X.gzindex<X.gzhead.name.length)Z=X.gzhead.name.charCodeAt(X.gzindex++)&255;else Z=0;n1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V);X.gzindex=0}X.status=yN}if(X.status===yN){if(X.gzhead.comment){let V=X.pending,Z;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V);if(s9(W),X.pending!==0)return X.last_flush=-1,r8;V=0}if(X.gzindex<X.gzhead.comment.length)Z=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else Z=0;n1(X,Z)}while(Z!==0);if(X.gzhead.hcrc&&X.pending>V)W.adler=p8(W.adler,X.pending_buf,X.pending-V,V)}X.status=vN}if(X.status===vN){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,r8}n1(X,W.adler&255),n1(X,W.adler>>8&255),W.adler=0}if(X.status=IW,s9(W),X.pending!==0)return X.last_flush=-1,r8}if(W.avail_in!==0||X.lookahead!==0||G!==Q6&&X.status!==IV){let V=X.level===0?jD(X,G):X.strategy===hJ?Zv(X,G):X.strategy===fy?Vv(X,G):zV[X.level].func(X,G);if(V===jW||V===eG)X.status=IV;if(V===F9||V===jW){if(W.avail_out===0)X.last_flush=-1;return r8}if(V===tG){if(G===gy)vy(X);else if(G!==TC){if(SN(X,0,0,!1),G===uy){if(Y6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,r8}}if(G!==N5)return r8;if(X.wrap<=0)return MC;if(X.wrap===2)n1(X,W.adler&255),n1(X,W.adler>>8&255),n1(X,W.adler>>16&255),n1(X,W.adler>>24&255),n1(X,W.total_in&255),n1(X,W.total_in>>8&255),n1(X,W.total_in>>16&255),n1(X,W.total_in>>24&255);else NV(X,W.adler>>>16),NV(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?r8:MC},Hv=(W)=>{if(EV(W))return U7;let G=W.state.status;return W.state=null,G===IW?zW(W,hy):r8},Nv=(W,G)=>{let X=G.length;if(EV(W))return U7;let Y=W.state,V=Y.wrap;if(V===2||V===1&&Y.status!==rG||Y.lookahead)return U7;if(V===1)W.adler=MV(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(V===0)Y6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:Z,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=v1){let U=Y.strstart,q=Y.lookahead-(v1-1);do Y.ins_h=J6(Y,Y.ins_h,Y.window[U+v1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--q);Y.strstart=U,Y.lookahead=v1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=v1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=Z,Y.wrap=V,r8},Iv=qv,zv=CD,wv=KD,jv=OD,Ov=Uv,Kv=Av,Cv=Hv,Dv=Nv,Tv="pako deflate (from Nodeca project)",jV={deflateInit:Iv,deflateInit2:zv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Tv},Mv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Mv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,V=W.length;Y<V;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,V=0,Z=W.length;Y<Z;Y++){let Q=W[Y];X.set(Q,V),V+=Q.length}return X},iJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PV=new Uint8Array(256);for(let W=0;W<256;W++)PV[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PV[254]=PV[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,V,Z,Q=W.length,J=0;for(V=0;V<Q;V++){if(X=W.charCodeAt(V),(X&64512)===55296&&V+1<Q){if(Y=W.charCodeAt(V+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),V++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(Z=0,V=0;Z<J;V++){if(X=W.charCodeAt(V),(X&64512)===55296&&V+1<Q){if(Y=W.charCodeAt(V+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),V++}if(X<128)G[Z++]=X;else if(X<2048)G[Z++]=192|X>>>6,G[Z++]=128|X&63;else if(X<65536)G[Z++]=224|X>>>12,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63;else G[Z++]=240|X>>>18,G[Z++]=128|X>>>12&63,G[Z++]=128|X>>>6&63,G[Z++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,V,Z=Array(X*2);for(V=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){Z[V++]=Q;continue}let J=PV[Q];if(J>4){Z[V++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){Z[V++]=65533;continue}if(Q<65536)Z[V++]=Q;else Q-=65536,Z[V++]=55296|Q>>10&1023,Z[V++]=56320|Q&1023}return Bv(Z,V)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PV[W[X]]>G?X:G},RV={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var TD=Fv,MD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:dJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=KW;function $V(W){this.options=iJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new TD,this.strm.avail_out=0;let X=jV.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==dJ)throw Error(wW[X]);if(G.header)jV.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RV.string2buf(G.dictionary);else if(MD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jV.deflateSetDictionary(this.strm,Y),X!==dJ)throw Error(wW[X]);this._dict_set=!0}}$V.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,V,Z;if(this.ended)return!1;if(G===~~G)Z=G;else Z=G===!0?_v:Sv;if(typeof W==="string")X.input=RV.string2buf(W);else if(MD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((Z===xv||Z===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(V=jV.deflate(X,Z),V===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return V=jV.deflateEnd(this.strm),this.onEnd(V),this.ended=!0,V===dJ}if(X.avail_out===0){this.onData(X.output);continue}if(Z>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$V.prototype.onData=function(W){this.chunks.push(W)};$V.prototype.onEnd=function(W){if(W===dJ)this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cN(W,G){let X=new $V(G);if(X.push(W,!0),X.err)throw X.msg||wW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cN(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cN(W,G)}var mv=$V,fv=cN,cv=hv,pv=bv,lv=KW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},bJ=16209,ov=16191,nv=function(G,X){let Y,V,Z,Q,J,U,q,A,N,H,z,w,C,D,x,h,p,v,n,c,l,G0,b,Y0,J0=G.state;Y=G.next_in,b=G.input,V=Y+(G.avail_in-5),Z=G.next_out,Y0=G.output,Q=Z-(X-G.avail_out),J=Z+(G.avail_out-257),U=J0.dmax,q=J0.wsize,A=J0.whave,N=J0.wnext,H=J0.window,z=J0.hold,w=J0.bits,C=J0.lencode,D=J0.distcode,x=(1<<J0.lenbits)-1,h=(1<<J0.distbits)-1;W:do{if(w<15)z+=b[Y++]<<w,w+=8,z+=b[Y++]<<w,w+=8;p=C[z&x];G:for(;;){if(v=p>>>24,z>>>=v,w-=v,v=p>>>16&255,v===0)Y0[Z++]=p&65535;else if(v&16){if(n=p&65535,v&=15,v){if(w<v)z+=b[Y++]<<w,w+=8;n+=z&(1<<v)-1,z>>>=v,w-=v}if(w<15)z+=b[Y++]<<w,w+=8,z+=b[Y++]<<w,w+=8;p=D[z&h];X:for(;;){if(v=p>>>24,z>>>=v,w-=v,v=p>>>16&255,v&16){if(c=p&65535,v&=15,w<v){if(z+=b[Y++]<<w,w+=8,w<v)z+=b[Y++]<<w,w+=8}if(c+=z&(1<<v)-1,c>U){G.msg="invalid distance too far back",J0.mode=bJ;break W}if(z>>>=v,w-=v,v=Z-Q,c>v){if(v=c-v,v>A){if(J0.sane){G.msg="invalid distance too far back",J0.mode=bJ;break W}}if(l=0,G0=H,N===0){if(l+=q-v,v<n){n-=v;do Y0[Z++]=H[l++];while(--v);l=Z-c,G0=Y0}}else if(N<v){if(l+=q+N-v,v-=N,v<n){n-=v;do Y0[Z++]=H[l++];while(--v);if(l=0,N<n){v=N,n-=v;do Y0[Z++]=H[l++];while(--v);l=Z-c,G0=Y0}}}else if(l+=N-v,v<n){n-=v;do Y0[Z++]=H[l++];while(--v);l=Z-c,G0=Y0}while(n>2)Y0[Z++]=G0[l++],Y0[Z++]=G0[l++],Y0[Z++]=G0[l++],n-=3;if(n){if(Y0[Z++]=G0[l++],n>1)Y0[Z++]=G0[l++]}}else{l=Z-c;do Y0[Z++]=Y0[l++],Y0[Z++]=Y0[l++],Y0[Z++]=Y0[l++],n-=3;while(n>2);if(n){if(Y0[Z++]=Y0[l++],n>1)Y0[Z++]=Y0[l++]}}}else if((v&64)===0){p=D[(p&65535)+(z&(1<<v)-1)];continue X}else{G.msg="invalid distance code",J0.mode=bJ;break W}break}}else if((v&64)===0){p=C[(p&65535)+(z&(1<<v)-1)];continue G}else if(v&32){J0.mode=ov;break W}else{G.msg="invalid literal/length code",J0.mode=bJ;break W}break}}while(Y<V&&Z<J);n=w>>3,Y-=n,w-=n<<3,z&=(1<<w)-1,G.next_in=Y,G.next_out=Z,G.avail_in=Y<V?5+(V-Y):5-(Y-V),G.avail_out=Z<J?257+(J-Z):257-(Z-J),J0.hold=z,J0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DN=1,EC=2,iv=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]),rv=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]),av=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]),sv=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]),tv=(W,G,X,Y,V,Z,Q,J)=>{let U=J.bits,q=0,A=0,N=0,H=0,z=0,w=0,C=0,D=0,x=0,h=0,p,v,n,c,l,G0=null,b,Y0=new Uint16Array(nG+1),J0=new Uint16Array(nG+1),k=null,o,B,R;for(q=0;q<=nG;q++)Y0[q]=0;for(A=0;A<Y;A++)Y0[G[X+A]]++;z=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(z>H)z=H;if(H===0)return V[Z++]=20971520,V[Z++]=20971520,J.bits=1,0;for(N=1;N<H;N++)if(Y0[N]!==0)break;if(z<N)z=N;D=1;for(q=1;q<=nG;q++)if(D<<=1,D-=Y0[q],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;J0[1]=0;for(q=1;q<nG;q++)J0[q+1]=J0[q]+Y0[q];for(A=0;A<Y;A++)if(G[X+A]!==0)Q[J0[G[X+A]]++]=A;if(W===BC)G0=k=Q,b=20;else if(W===DN)G0=iv,k=rv,b=257;else G0=av,k=sv,b=0;if(h=0,A=0,q=N,l=Z,w=z,C=0,n=-1,x=1<<z,c=x-1,W===DN&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=q-C,Q[A]+1<b)B=0,R=Q[A];else if(Q[A]>=b)B=k[Q[A]-b],R=G0[Q[A]-b];else B=96,R=0;p=1<<q-C,v=1<<w,N=v;do v-=p,V[l+(h>>C)+v]=o<<24|B<<16|R|0;while(v!==0);p=1<<q-1;while(h&p)p>>=1;if(p!==0)h&=p-1,h+=p;else h=0;if(A++,--Y0[q]===0){if(q===H)break;q=G[X+Q[A]]}if(q>z&&(h&c)!==n){if(C===0)C=z;l+=N,w=q-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DN&&x>RC||W===EC&&x>LC)return 1;n=h&c,V[n]=z<<24|w<<16|l-Z|0}}if(h!==0)V[l+h]=q-C<<24|4194304|0;return J.bits=z,0},OV=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:mJ,Z_OK:OW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:I5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=KW,rJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,oJ=16190,i7=16191,TN=16192,bC=16193,MN=16194,mC=16195,fC=16196,cC=16197,pC=16198,fJ=16199,cJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PN=16206,rC=16207,aC=16208,H8=16209,ED=16210,$D=16211,Vg=852,Zg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var CW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<rJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(CW(W))return I5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=rJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Vg),G.distcode=G.distdyn=new Int32Array(Zg),G.sane=1,G.back=-1,OW},SD=(W)=>{if(CW(W))return I5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(CW(W))return I5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return I5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return I5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=rJ;let Y=xD(W,G);if(Y!==OW)W.state=null;return Y},qg=(W)=>{return kD(W,Jg)},tC=!0,RN,LN,Ag=(W)=>{if(tC){RN=new Int32Array(512),LN=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OV(PD,W.lens,0,288,RN,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OV(RD,W.lens,0,32,LN,0,W.work,{bits:5}),tC=!1}W.lencode=RN,W.lenbits=9,W.distcode=LN,W.distbits=5},_D=(W,G,X,Y)=>{let V,Z=W.state;if(Z.window===null)Z.wsize=1<<Z.wbits,Z.wnext=0,Z.whave=0,Z.window=new Uint8Array(Z.wsize);if(Y>=Z.wsize)Z.window.set(G.subarray(X-Z.wsize,X),0),Z.wnext=0,Z.whave=Z.wsize;else{if(V=Z.wsize-Z.wnext,V>Y)V=Y;if(Z.window.set(G.subarray(X-Y,X-Y+V),Z.wnext),Y-=V,Y)Z.window.set(G.subarray(X-Y,X),0),Z.wnext=Y,Z.whave=Z.wsize;else{if(Z.wnext+=V,Z.wnext===Z.wsize)Z.wnext=0;if(Z.whave<Z.wsize)Z.whave+=V}}return 0},Hg=(W,G)=>{let X,Y,V,Z,Q,J,U,q,A,N,H,z,w,C,D=0,x,h,p,v,n,c,l,G0,b=new Uint8Array(4),Y0,J0,k=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(CW(W)||!W.output||!W.input&&W.avail_in!==0)return I5;if(X=W.state,X.mode===i7)X.mode=TN;Q=W.next_out,V=W.output,U=W.avail_out,Z=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,A=X.bits,N=J,H=U,G0=OW;W:for(;;)switch(X.mode){case rJ:if(X.wrap===0){X.mode=TN;break}while(A<16){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.wrap&2&&q===35615){if(X.wbits===0)X.wbits=15;X.check=0,b[0]=q&255,b[1]=q>>>8&255,X.check=p8(X.check,b,2,0),q=0,A=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((q&255)<<8)+(q>>8))%31){W.msg="incorrect header check",X.mode=H8;break}if((q&15)!==FC){W.msg="unknown compression method",X.mode=H8;break}if(q>>>=4,A-=4,l=(q&15)+8,X.wbits===0)X.wbits=l;if(l>15||l>X.wbits){W.msg="invalid window size",X.mode=H8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=q&512?hC:i7,q=0,A=0;break;case SC:while(A<16){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.flags=q,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=H8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=H8;break}if(X.head)X.head.text=q>>8&1;if(X.flags&512&&X.wrap&4)b[0]=q&255,b[1]=q>>>8&255,X.check=p8(X.check,b,2,0);q=0,A=0,X.mode=xC;case xC:while(A<32){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.head)X.head.time=q;if(X.flags&512&&X.wrap&4)b[0]=q&255,b[1]=q>>>8&255,b[2]=q>>>16&255,b[3]=q>>>24&255,X.check=p8(X.check,b,4,0);q=0,A=0,X.mode=kC;case kC:while(A<16){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.head)X.head.xflags=q&255,X.head.os=q>>8;if(X.flags&512&&X.wrap&4)b[0]=q&255,b[1]=q>>>8&255,X.check=p8(X.check,b,2,0);q=0,A=0,X.mode=_C;case _C:if(X.flags&1024){while(A<16){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.length=q,X.head)X.head.extra_len=q;if(X.flags&512&&X.wrap&4)b[0]=q&255,b[1]=q>>>8&255,X.check=p8(X.check,b,2,0);q=0,A=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(z=X.length,z>J)z=J;if(z){if(X.head){if(l=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(Z,Z+z),l)}if(X.flags&512&&X.wrap&4)X.check=p8(X.check,Y,z,Z);J-=z,Z+=z,X.length-=z}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;z=0;do if(l=Y[Z+z++],X.head&&l&&X.length<65536)X.head.name+=String.fromCharCode(l);while(l&&z<J);if(X.flags&512&&X.wrap&4)X.check=p8(X.check,Y,z,Z);if(J-=z,Z+=z,l)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;z=0;do if(l=Y[Z+z++],X.head&&l&&X.length<65536)X.head.comment+=String.fromCharCode(l);while(l&&z<J);if(X.flags&512&&X.wrap&4)X.check=p8(X.check,Y,z,Z);if(J-=z,Z+=z,l)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(A<16){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.wrap&4&&q!==(X.check&65535)){W.msg="header crc mismatch",X.mode=H8;break}q=0,A=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=i7;break;case hC:while(A<32){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}W.adler=X.check=sC(q),q=0,A=0,X.mode=oJ;case oJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=Z,W.avail_in=J,X.hold=q,X.bits=A,Xg;W.adler=X.check=1,X.mode=i7;case i7:if(G===Wg||G===mJ)break W;case TN:if(X.last){q>>>=A&7,A-=A&7,X.mode=PN;break}while(A<3){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}switch(X.last=q&1,q>>>=1,A-=1,q&3){case 0:X.mode=bC;break;case 1:if(Ag(X),X.mode=fJ,G===mJ){q>>>=2,A-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=H8}q>>>=2,A-=2;break;case bC:q>>>=A&7,A-=A&7;while(A<32){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if((q&65535)!==(q>>>16^65535)){W.msg="invalid stored block lengths",X.mode=H8;break}if(X.length=q&65535,q=0,A=0,X.mode=MN,G===mJ)break W;case MN:X.mode=mC;case mC:if(z=X.length,z){if(z>J)z=J;if(z>U)z=U;if(z===0)break W;V.set(Y.subarray(Z,Z+z),Q),J-=z,Z+=z,U-=z,Q+=z,X.length-=z;break}X.mode=i7;break;case fC:while(A<14){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.nlen=(q&31)+257,q>>>=5,A-=5,X.ndist=(q&31)+1,q>>>=5,A-=5,X.ncode=(q&15)+4,q>>>=4,A-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=H8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(A<3){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}X.lens[k[X.have++]]=q&7,q>>>=3,A-=3}while(X.have<19)X.lens[k[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},G0=OV(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,G0){W.msg="invalid code lengths set",X.mode=H8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=A)break;if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(p<16)q>>>=x,A-=x,X.lens[X.have++]=p;else{if(p===16){J0=x+2;while(A<J0){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(q>>>=x,A-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=H8;break}l=X.lens[X.have-1],z=3+(q&3),q>>>=2,A-=2}else if(p===17){J0=x+3;while(A<J0){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}q>>>=x,A-=x,l=0,z=3+(q&7),q>>>=3,A-=3}else{J0=x+7;while(A<J0){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}q>>>=x,A-=x,l=0,z=11+(q&127),q>>>=7,A-=7}if(X.have+z>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=H8;break}while(z--)X.lens[X.have++]=l}}if(X.mode===H8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=H8;break}if(X.lenbits=9,Y0={bits:X.lenbits},G0=OV(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,G0){W.msg="invalid literal/lengths set",X.mode=H8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},G0=OV(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,G0){W.msg="invalid distances set",X.mode=H8;break}if(X.mode=fJ,G===mJ)break W;case fJ:X.mode=cJ;case cJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=Z,W.avail_in=J,X.hold=q,X.bits=A,nv(W,H),Q=W.next_out,V=W.output,U=W.avail_out,Z=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,A=X.bits,X.mode===i7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=A)break;if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(h&&(h&240)===0){v=x,n=h,c=p;for(;;){if(D=X.lencode[c+((q&(1<<v+n)-1)>>v)],x=D>>>24,h=D>>>16&255,p=D&65535,v+x<=A)break;if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}q>>>=v,A-=v,X.back+=v}if(q>>>=x,A-=x,X.back+=x,X.length=p,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=i7;break}if(h&64){W.msg="invalid literal/length code",X.mode=H8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){J0=X.extra;while(A<J0){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}X.length+=q&(1<<X.extra)-1,q>>>=X.extra,A-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[q&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=A)break;if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if((h&240)===0){v=x,n=h,c=p;for(;;){if(D=X.distcode[c+((q&(1<<v+n)-1)>>v)],x=D>>>24,h=D>>>16&255,p=D&65535,v+x<=A)break;if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}q>>>=v,A-=v,X.back+=v}if(q>>>=x,A-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=H8;break}X.offset=p,X.extra=h&15,X.mode=oC;case oC:if(X.extra){J0=X.extra;while(A<J0){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}X.offset+=q&(1<<X.extra)-1,q>>>=X.extra,A-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=H8;break}X.mode=nC;case nC:if(U===0)break W;if(z=H-U,X.offset>z){if(z=X.offset-z,z>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=H8;break}}if(z>X.wnext)z-=X.wnext,w=X.wsize-z;else w=X.wnext-z;if(z>X.length)z=X.length;C=X.window}else C=V,w=Q-X.offset,z=X.length;if(z>U)z=U;U-=z,X.length-=z;do V[Q++]=C[w++];while(--z);if(X.length===0)X.mode=cJ;break;case iC:if(U===0)break W;V[Q++]=X.length,U--,X.mode=cJ;break;case PN:if(X.wrap){while(A<32){if(J===0)break W;J--,q|=Y[Z++]<<A,A+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?p8(X.check,V,H,Q-H):MV(X.check,V,H,Q-H);if(H=U,X.wrap&4&&(X.flags?q:sC(q))!==X.check){W.msg="incorrect data check",X.mode=H8;break}q=0,A=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(A<32){if(J===0)break W;J--,q+=Y[Z++]<<A,A+=8}if(X.wrap&4&&q!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=H8;break}q=0,A=0}X.mode=aC;case aC:G0=Gg;break W;case H8:G0=LD;break W;case ED:return BD;case $D:default:return I5}if(W.next_out=Q,W.avail_out=U,W.next_in=Z,W.avail_in=J,X.hold=q,X.bits=A,X.wsize||H!==W.avail_out&&X.mode<H8&&(X.mode<PN||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(N-=W.avail_in,H-=W.avail_out,W.total_in+=N,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?p8(X.check,V,H,W.next_out-H):MV(X.check,V,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===i7?128:0)+(X.mode===fJ||X.mode===MN?256:0),(N===0&&H===0||G===$C)&&G0===OW)G0=Yg;return G0},Ng=(W)=>{if(CW(W))return I5;let G=W.state;if(G.window)G.window=null;return W.state=null,OW},Ig=(W,G)=>{if(CW(W))return I5;let X=W.state;if((X.wrap&2)===0)return I5;return X.head=G,G.done=!1,OW},zg=(W,G)=>{let X=G.length,Y,V,Z;if(CW(W))return I5;if(Y=W.state,Y.wrap!==0&&Y.mode!==oJ)return I5;if(Y.mode===oJ){if(V=1,V=MV(V,G,X,0),V!==Y.check)return LD}if(Z=_D(W,G,X,X),Z)return Y.mode=ED,BD;return Y.havedict=1,OW},wg=SD,jg=xD,Og=FD,Kg=qg,Cg=kD,Dg=Hg,Tg=Ng,Mg=Ig,Pg=zg,Rg="pako inflate (from Nodeca project)",a7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Tg,inflateGetHeader:Mg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LV,Z_STREAM_END:BN,Z_NEED_DICT:EN,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=KW;function FV(W){this.options=iJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new TD,this.strm.avail_out=0;let X=a7.inflateInit2(this.strm,G.windowBits);if(X!==LV)throw Error(wW[X]);if(this.header=new Bg,a7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RV.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=a7.inflateSetDictionary(this.strm,G.dictionary),X!==LV)throw Error(wW[X])}}}FV.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,V=this.options.dictionary,Z,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(Z=a7.inflate(X,Q),Z===EN&&V){if(Z=a7.inflateSetDictionary(X,V),Z===LV)Z=a7.inflate(X,Q);else if(Z===eC)Z=EN}while(X.avail_in>0&&Z===BN&&X.state.wrap>0&&W[X.next_in]!==0)a7.inflateReset(X),Z=a7.inflate(X,Q);switch(Z){case Fg:case eC:case EN:case Sg:return this.onEnd(Z),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||Z===BN)if(this.options.to==="string"){let U=RV.utf8border(X.output,X.next_out),q=X.next_out-U,A=RV.buf2string(X.output,U);if(X.next_out=q,X.avail_out=Y-q,q)X.output.set(X.output.subarray(U,U+q),0);this.onData(A)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(Z===LV&&J===0)continue;if(Z===BN)return Z=a7.inflateEnd(this.strm),this.onEnd(Z),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FV.prototype.onData=function(W){this.chunks.push(W)};FV.prototype.onEnd=function(W){if(W===LV)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pN(W,G){let X=new FV(G);if(X.push(W),X.err)throw X.msg||wW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pN(W,G)}var kg=FV,_g=pN,yg=xg,vg=pN,gg=KW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=KW,DW={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:V,...Z}=G.value;return{resolved:!0,value:Z,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:V,...Z}=G.value;G={...G,value:Z}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SV={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(V)=>String(V).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((V)=>typeof V==="object"?null.fieldSearch(V,Y):X(V).includes(Y))},field:(W,G)=>{let X=(V)=>String(V).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((V)=>X(V).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),V=[...W.edges],Z=new Set(V).add(W.id),Q=[];while(V.length){let J=V.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((q)=>!Z.has(q)&&Z.add(q)&&V.push(q))}if(Q.length)W._edgeResult=Q;return Q.length>0}},aJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),sJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,V])=>{if(Y.startsWith("$"))return SV[Y](X,V,{createFilter:sJ,allNodes:G});let Z=aJ(X.value,Y);if(Z===void 0)Z=aJ(X,Y);if(typeof V!=="object"||V===null)return SV.$eq(Z,V);return Object.entries(V).every(([Q,J])=>{if(Q==="$text")return SV.$text.field(Z,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SV.$between(new Date(Z),J);return SV[Q]?.(Z,J,{createFilter:sJ,allNodes:G})??!1})})},lN=(W,G)=>{let{$edge:X,...Y}=G.query||{},V=sJ(Y,W),Z=Object.values(W).filter(V),J=[...X?(()=>{let U=sJ({$edge:X},W);Z.forEach((A)=>U(A));let q=new Map;return Z.forEach((A)=>{if(A._edgeResult)A._edgeResult.forEach((N)=>q.set(N.id,N)),delete A._edgeResult}),Array.from(q.values())})():Z];if(G.field){let U=G.order==="asc"?1:-1;J.sort((q,A)=>{let N=aJ(q.value,G.field),H=aJ(A.value,G.field);if(typeof N==="string"&&typeof H==="string")return N.localeCompare(H)*U;return((N??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((q)=>q.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((q)=>q.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dN=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function TU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function XI(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!TU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XT(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");XI(W.outputLen),XI(W.blockLen)}function AU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oN(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function A7(W,G){return W<<32-G|W>>>G}var YT=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YT)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var s7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=s7._0&&W<=s7._9)return W-s7._0;if(W>=s7.A&&W<=s7.F)return W-(s7.A-10);if(W>=s7.a&&W<=s7.f)return W-(s7.a-10);return}function NU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YT)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let V=0,Z=0;V<X;V++,Z+=2){let Q=uD(W.charCodeAt(Z)),J=uD(W.charCodeAt(Z+1));if(Q===void 0||J===void 0){let U=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+Z)}Y[V]=Q*16+J}return Y}function VT(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function HI(W){if(typeof W==="string")W=VT(W);return BW(W),W}function H7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let V=W[Y];BW(V),G+=V.length}let X=new Uint8Array(G);for(let Y=0,V=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,V),V+=Z.length}return X}class NI{}function Yu(W){let G=(Y)=>W().update(HI(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function MU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Vu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let V=BigInt(32),Z=BigInt(4294967295),Q=Number(X>>V&Z),J=Number(X&Z),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function Zu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class ZT extends NI{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oN(this.buffer)}update(W){AU(this),W=HI(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,V=W.length;for(let Z=0;Z<V;){let Q=Math.min(Y-this.pos,V-Z);if(Q===Y){let J=oN(W);for(;Y<=V-Z;Z+=Y)this.process(J,Z);continue}if(X.set(W.subarray(Z,Z+Q),this.pos),this.pos+=Q,Z+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){AU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:V}=this,{pos:Z}=this;if(G[Z++]=128,HU(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let A=Z;A<Y;A++)G[A]=0;Vu(X,Y-8,BigInt(this.length*8),V),this.process(X,0);let Q=oN(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let A=0;A<U;A++)Q.setUint32(4*A,q[A],V)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:V,destroyed:Z,pos:Q}=this;if(W.destroyed=Z,W.finished=V,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var U6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=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]),q6=new Uint32Array(64);class QT extends ZT{constructor(W=32){super(64,W,8,!1);this.A=U6[0]|0,this.B=U6[1]|0,this.C=U6[2]|0,this.D=U6[3]|0,this.E=U6[4]|0,this.F=U6[5]|0,this.G=U6[6]|0,this.H=U6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:V,F:Z,G:Q,H:J}=this;return[W,G,X,Y,V,Z,Q,J]}set(W,G,X,Y,V,Z,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=V|0,this.F=Z|0,this.G=Q|0,this.H=J|0}process(W,G){for(let A=0;A<16;A++,G+=4)q6[A]=W.getUint32(G,!1);for(let A=16;A<64;A++){let N=q6[A-15],H=q6[A-2],z=A7(N,7)^A7(N,18)^N>>>3,w=A7(H,17)^A7(H,19)^H>>>10;q6[A]=w+q6[A-7]+z+q6[A-16]|0}let{A:X,B:Y,C:V,D:Z,E:Q,F:J,G:U,H:q}=this;for(let A=0;A<64;A++){let N=A7(Q,6)^A7(Q,11)^A7(Q,25),H=q+N+Zu(Q,J,U)+Ju[A]+q6[A]|0,z=(A7(X,2)^A7(X,13)^A7(X,22))+Qu(X,Y,V)|0;q=U,U=J,J=Q,Q=Z+H|0,Z=V,V=Y,Y=X,X=H+z|0}X=X+this.A|0,Y=Y+this.B|0,V=V+this.C|0,Z=Z+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,V,Z,Q,J,U,q)}roundClean(){HU(q6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var YI=Yu(()=>new QT);class II extends NI{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XT(W);let X=HI(G);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;let Y=this.blockLen,V=new Uint8Array(Y);V.set(X.length>Y?W.create().update(X).digest():X);for(let Z=0;Z<V.length;Z++)V[Z]^=54;this.iHash.update(V),this.oHash=W.create();for(let Z=0;Z<V.length;Z++)V[Z]^=106;this.oHash.update(V),HU(V)}update(W){return AU(this),this.iHash.update(W),this}digestInto(W){AU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:V,blockLen:Z,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=V,W.blockLen=Z,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JT=(W,G,X)=>new II(W,G).update(X).digest();JT.create=(W,G)=>new II(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var zI=BigInt(0),VI=BigInt(1);function IU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function TW(W,G,X=""){let Y=TU(W),V=W?.length,Z=G!==void 0;if(!Y||Z&&V!==G){let Q=X&&`"${X}" `,J=Z?` of length ${G}`:"",U=Y?`length=${V}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function tJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UT(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?zI:BigInt("0x"+W)}function UX(W){return UT(YX(W))}function qT(W){return BW(W),UT(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return NU(W.toString(16).padStart(G*2,"0"))}function AT(W,G){return PU(W,G).reverse()}function v8(W,G,X){let Y;if(typeof G==="string")try{Y=NU(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(TU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let V=Y.length;if(typeof X==="number"&&V!==X)throw Error(W+" of length "+X+" expected, got "+V);return Y}var nN=(W)=>typeof W==="bigint"&&zI<=W;function ZI(W,G,X){return nN(W)&&nN(G)&&nN(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!ZI(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HT(W){let G;for(G=0;W>zI;W>>=VI,G+=1);return G}var uV=(W)=>(VI<<BigInt(W))-VI;function qu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),V=(H)=>Uint8Array.of(H),Z=Y(W),Q=Y(W),J=0,U=()=>{Z.fill(1),Q.fill(0),J=0},q=(...H)=>X(Q,Z,...H),A=(H=Y(0))=>{if(Q=q(V(0),H),Z=q(),H.length===0)return;Q=q(V(1),H),Z=q()},N=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,z=[];while(H<G){Z=q();let w=Z.slice();z.push(w),H+=Z.length}return H7(...z)};return(H,z)=>{U(),A(H);let w=void 0;while(!(w=z(N())))A();return U(),w}}function wI(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(V,Z,Q){let J=W[V];if(Q&&J===void 0)return;let U=typeof J;if(U!==Z||J===null)throw Error(`param "${V}" is invalid: expected ${Z}, got ${U}`)}Object.entries(G).forEach(([V,Z])=>Y(V,Z,!1)),Object.entries(X).forEach(([V,Z])=>Y(V,Z,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let V=G.get(X);if(V!==void 0)return V;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),A9=BigInt(1),MW=BigInt(2),NT=BigInt(3),IT=BigInt(4),zT=BigInt(5),Au=BigInt(7),wT=BigInt(8),Hu=BigInt(9),jT=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function z5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,V=S9,Z=A9,Q=A9,J=S9;while(X!==S9){let U=Y/X,q=Y%X,A=V-Q*U,N=Z-J*U;Y=X,X=q,V=Q,Z=J,Q=A,J=N}if(Y!==A9)throw Error("invert: does not exist");return w5(V,G)}function jI(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OT(W,G){let X=(W.ORDER+A9)/IT,Y=W.pow(G,X);return jI(W,Y,G),Y}function Nu(W,G){let X=(W.ORDER-zT)/wT,Y=W.mul(G,MW),V=W.pow(Y,X),Z=W.mul(G,V),Q=W.mul(W.mul(Z,MW),V),J=W.mul(Z,W.sub(Q,W.ONE));return jI(W,J,G),J}function Iu(W){let G=hV(W),X=KT(W),Y=X(G,G.neg(G.ONE)),V=X(G,Y),Z=X(G,G.neg(Y)),Q=(W+Au)/jT;return(J,U)=>{let q=J.pow(U,Q),A=J.mul(q,Y),N=J.mul(q,V),H=J.mul(q,Z),z=J.eql(J.sqr(A),U),w=J.eql(J.sqr(N),U);q=J.cmov(q,A,z),A=J.cmov(H,N,w);let C=J.eql(J.sqr(A),U),D=J.cmov(q,A,C);return jI(J,D,U),D}}function KT(W){if(W<NT)throw Error("sqrt is not defined for small field");let G=W-A9,X=0;while(G%MW===S9)G/=MW,X++;let Y=MW,V=hV(W);while(mD(V,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OT;let Z=V.pow(Y,G),Q=(G+A9)/MW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let q=X,A=J.mul(J.ONE,Z),N=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(N,J.ONE)){if(J.is0(N))return J.ZERO;let z=1,w=J.sqr(N);while(!J.eql(w,J.ONE))if(z++,w=J.sqr(w),z===q)throw Error("Cannot find square root");let C=A9<<BigInt(q-z-1),D=J.pow(A,C);q=z,A=J.sqr(D),N=J.mul(N,A),H=J.mul(H,D)}return H}}function zu(W){if(W%IT===NT)return OT;if(W%wT===zT)return Nu;if(W%jT===Hu)return Iu(W);return KT(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,V)=>{return Y[V]="function",Y},G);return wI(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===A9)return G;let Y=W.ONE,V=G;while(X>S9){if(X&A9)Y=W.mul(Y,V);V=W.sqr(V),X>>=A9}return Y}function CT(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),V=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),Z=W.inv(V);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},Z),Y}function mD(W,G){let X=(W.ORDER-A9)/MW,Y=W.pow(G,X),V=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!V&&!Z&&!Q)throw Error("invalid Legendre symbol result");return V?1:Z?0:-1}function DT(W,G){if(G!==void 0)XI(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function hV(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let V=void 0,Z=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)V=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")V=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:U,nByteLength:q}=DT(W,V);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let A,N=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:uV(U),ZERO:S9,ONE:A9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!N.is0(H)&&N.isValid(H),isOdd:(H)=>(H&A9)===A9,neg:(H)=>w5(-H,W),eql:(H,z)=>H===z,sqr:(H)=>w5(H*H,W),add:(H,z)=>w5(H+z,W),sub:(H,z)=>w5(H-z,W),mul:(H,z)=>w5(H*z,W),pow:(H,z)=>Ou(N,H,z),div:(H,z)=>w5(H*bD(z,W),W),sqrN:(H)=>H*H,addN:(H,z)=>H+z,subN:(H,z)=>H-z,mulN:(H,z)=>H*z,inv:(H)=>bD(H,W),sqrt:Z||((H)=>{if(!A)A=zu(W);return A(N,H)}),toBytes:(H)=>X?AT(H,q):PU(H,q),fromBytes:(H,z=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?qT(H):UX(H);if(Q)w=w5(w,W);if(!z){if(!N.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CT(N,H),cmov:(H,z,w)=>w?z:H});return Object.freeze(N)}function TT(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function MT(W){let G=TT(W);return G+Math.ceil(G/2)}function PT(W,G,X=!1){let Y=W.length,V=TT(G),Z=MT(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let Q=X?qT(W):UX(W),J=w5(Q,G-A9)+A9;return X?AT(J,V):PU(J,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function zU(W,G){let X=G.negate();return W?X:G}function iN(W,G){let X=CT(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,V)=>W.fromAffine(Y.toAffine(X[V])))}function RT(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rN(W,G){RT(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),V=2**W,Z=uV(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}=X,J=Number(W&V),U=W>>Q;if(J>Y)J-=Z,U+=PW;let q=G*Y,A=q+Math.abs(J)-1,N=J===0,H=J<0,z=G%2!==0;return{nextN:U,offset:A,isZero:N,isNeg:H,isNegF:z,offsetF:q}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aN=new WeakMap,LT=new WeakMap;function sN(W){return LT.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BT{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rN(G,this.bits),V=[],Z=W,Q=Z;for(let J=0;J<X;J++){Q=Z,V.push(Q);for(let U=1;U<Y;U++)Q=Q.add(Z),V.push(Q);Z=Q.double()}return V}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,V=this.BASE,Z=rN(W,this.bits);for(let Q=0;Q<Z.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:A,isNegF:N,offsetF:H}=fD(X,Q,Z);if(X=J,q)V=V.add(zU(N,G[H]));else Y=Y.add(zU(A,G[U]))}return cD(X),{p:Y,f:V}}wNAFUnsafe(W,G,X,Y=this.ZERO){let V=rN(W,this.bits);for(let Z=0;Z<V.windows;Z++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=fD(X,Z,V);if(X=Q,U)continue;else{let A=G[J];Y=Y.add(q?A.negate():A)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aN.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aN.set(G,Y)}}return Y}cached(W,G,X){let Y=sN(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let V=sN(W);if(V===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(V,this.getPrecomputes(V,W,X),G,Y)}createCache(W,G){RT(G,this.bits),LT.set(W,G),aN.delete(W)}hasCache(W){return sN(W)!==1}}function Du(W,G,X,Y){let V=G,Z=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)Z=Z.add(V);if(Y&PW)Q=Q.add(V);V=V.double(),X>>=PW,Y>>=PW}return{p1:Z,p2:Q}}function Tu(W,G,X,Y){Ku(X,W),Cu(Y,G);let V=X.length,Z=Y.length;if(V!==Z)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HT(BigInt(V)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=uV(U),A=Array(Number(q)+1).fill(Q),N=Math.floor((G.BITS-1)/U)*U,H=Q;for(let z=N;z>=0;z-=U){A.fill(Q);for(let C=0;C<Z;C++){let D=Y[C],x=Number(D>>BigInt(z)&q);A[x]=A[x].add(X[C])}let w=Q;for(let C=A.length-1,D=Q;C>0;C--)D=D.add(A[C]),w=w.add(D);if(H=H.add(w),z!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return hV(W,{isLE:X})}function Mu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let V=pD(G.p,X.Fp,Y),Z=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!V.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:V,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$T)/G;function Pu(W,G,X){let[[Y,V],[Z,Q]]=G,J=lD(Q*W,X),U=lD(-V*W,X),q=W-J*Y-U*Z,A=-J*V-U*Q,N=q<W4,H=A<W4;if(N)q=-q;if(H)A=-A;let z=uV(Math.ceil(HT(X)/2))+VX;if(q<W4||q>=z||A<W4||A>=z)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:N,k1:q,k2neg:H,k2:A}}function QI(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tN(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(IU(X.lowS,"lowS"),IU(X.prehash,"prehash"),X.format!==void 0)QI(X.format);return X}class ET extends Error{constructor(W=""){super(W)}}var e7={Err:ET,_tlv:{encode:(W,G)=>{let{Err:X}=e7;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,V=tJ(Y);if(V.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?tJ(V.length/2|128):"";return tJ(W)+Z+V+G},decode(W,G){let{Err:X}=e7,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let V=G[Y++],Z=!!(V&128),Q=0;if(!Z)Q=V;else{let U=V&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let A of q)Q=Q<<8|A;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=e7;if(W<W4)throw new G("integer: negative integers are not allowed");let X=tJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=e7;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=e7,V=v8("signature",W),{v:Z,l:Q}=Y.decode(48,V);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,Z),{v:q,l:A}=Y.decode(2,U);if(A.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=e7,Y=G.encode(2,X.encode(W.r)),V=G.encode(2,X.encode(W.s)),Z=Y+V;return G.encode(48,Z)}},W4=BigInt(0),VX=BigInt(1),$T=BigInt(2),eJ=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let V=v8("private key",G);try{Y=W.fromBytes(V)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Mu("weierstrass",W,G),{Fp:Y,Fn:V}=X,Z=X.CURVE,{h:Q,n:J}=Z;wI(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(Z.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=ST(Y,V);function A(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function N(k,o,B){let{x:R,y:L}=o.toAffine(),_=Y.toBytes(R);if(IU(B,"isCompressed"),B){A();let f=!Y.isOdd(L);return H7(FT(f),_)}else return H7(Uint8Array.of(4),_,Y.toBytes(L))}function H(k){TW(k,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=k.length,L=k[0],_=k.subarray(1);if(R===o&&(L===2||L===3)){let f=Y.fromBytes(_);if(!Y.isValid(f))throw Error("bad point: is not on curve, wrong x");let M=C(f),$;try{$=Y.sqrt(M)}catch(u){let m=u instanceof Error?": "+u.message:"";throw Error("bad point: is not on curve, sqrt error"+m)}A();let g=Y.isOdd($);if((L&1)===1!==g)$=Y.neg($);return{x:f,y:$}}else if(R===B&&L===4){let f=Y.BYTES,M=Y.fromBytes(_.subarray(0,f)),$=Y.fromBytes(_.subarray(f,f*2));if(!D(M,$))throw Error("bad point: is not on curve");return{x:M,y:$}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let z=G.toBytes||N,w=G.fromBytes||H;function C(k){let o=Y.sqr(k),B=Y.mul(o,k);return Y.add(Y.add(B,Y.mul(k,Z.a)),Z.b)}function D(k,o){let B=Y.sqr(o),R=C(k);return Y.eql(B,R)}if(!D(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,eJ),Ru),h=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(k,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${k}`);return o}function v(k){if(!(k instanceof b))throw Error("ProjectivePoint expected")}function n(k){if(!U||!U.basises)throw Error("no endo");return Pu(k,U.basises,V.ORDER)}let c=hD((k,o)=>{let{X:B,Y:R,Z:L}=k;if(Y.eql(L,Y.ONE))return{x:B,y:R};let _=k.is0();if(o==null)o=_?Y.ONE:Y.inv(L);let f=Y.mul(B,o),M=Y.mul(R,o),$=Y.mul(L,o);if(_)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:f,y:M}}),l=hD((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=k.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function G0(k,o,B,R,L){return B=new b(Y.mul(B.X,k),B.Y,B.Z),o=zU(R,o),B=zU(L,B),o.add(B)}class b{constructor(k,o,B){this.X=p("x",k),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:o,y:B}=k||{};if(!k||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(k instanceof b)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return b.ZERO;return new b(o,B,Y.ONE)}static fromBytes(k){let o=b.fromAffine(w(TW(k,void 0,"point")));return o.assertValidity(),o}static fromHex(k){return b.fromBytes(v8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,o=!0){if(J0.createCache(this,k),!o)this.multiply(eJ);return this}assertValidity(){l(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){v(k);let{X:o,Y:B,Z:R}=this,{X:L,Y:_,Z:f}=k,M=Y.eql(Y.mul(o,f),Y.mul(L,R)),$=Y.eql(Y.mul(B,f),Y.mul(_,R));return M&&$}negate(){return new b(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:o}=Z,B=Y.mul(o,eJ),{X:R,Y:L,Z:_}=this,f=Y.ZERO,M=Y.ZERO,$=Y.ZERO,g=Y.mul(R,R),u=Y.mul(L,L),m=Y.mul(_,_),i=Y.mul(R,L);return i=Y.add(i,i),$=Y.mul(R,_),$=Y.add($,$),f=Y.mul(k,$),M=Y.mul(B,m),M=Y.add(f,M),f=Y.sub(u,M),M=Y.add(u,M),M=Y.mul(f,M),f=Y.mul(i,f),$=Y.mul(B,$),m=Y.mul(k,m),i=Y.sub(g,m),i=Y.mul(k,i),i=Y.add(i,$),$=Y.add(g,g),g=Y.add($,g),g=Y.add(g,m),g=Y.mul(g,i),M=Y.add(M,g),m=Y.mul(L,_),m=Y.add(m,m),g=Y.mul(m,i),f=Y.sub(f,g),$=Y.mul(m,u),$=Y.add($,$),$=Y.add($,$),new b(f,M,$)}add(k){v(k);let{X:o,Y:B,Z:R}=this,{X:L,Y:_,Z:f}=k,M=Y.ZERO,$=Y.ZERO,g=Y.ZERO,u=Z.a,m=Y.mul(Z.b,eJ),i=Y.mul(o,L),Q0=Y.mul(B,_),I0=Y.mul(R,f),E0=Y.add(o,B),x0=Y.add(L,_);E0=Y.mul(E0,x0),x0=Y.add(i,Q0),E0=Y.sub(E0,x0),x0=Y.add(o,R);let L0=Y.add(L,f);return x0=Y.mul(x0,L0),L0=Y.add(i,I0),x0=Y.sub(x0,L0),L0=Y.add(B,R),M=Y.add(_,f),L0=Y.mul(L0,M),M=Y.add(Q0,I0),L0=Y.sub(L0,M),g=Y.mul(u,x0),M=Y.mul(m,I0),g=Y.add(M,g),M=Y.sub(Q0,g),g=Y.add(Q0,g),$=Y.mul(M,g),Q0=Y.add(i,i),Q0=Y.add(Q0,i),I0=Y.mul(u,I0),x0=Y.mul(m,x0),Q0=Y.add(Q0,I0),I0=Y.sub(i,I0),I0=Y.mul(u,I0),x0=Y.add(x0,I0),i=Y.mul(Q0,x0),$=Y.add($,i),i=Y.mul(L0,x0),M=Y.mul(E0,M),M=Y.sub(M,i),i=Y.mul(E0,Q0),g=Y.mul(L0,g),g=Y.add(g,i),new b(M,$,g)}subtract(k){return this.add(k.negate())}is0(){return this.equals(b.ZERO)}multiply(k){let{endo:o}=G;if(!V.isValidNot0(k))throw Error("invalid scalar: out of range");let B,R,L=(_)=>J0.cached(this,_,(f)=>iN(b,f));if(o){let{k1neg:_,k1:f,k2neg:M,k2:$}=n(k),{p:g,f:u}=L(f),{p:m,f:i}=L($);R=u.add(i),B=G0(o.beta,g,m,_,M)}else{let{p:_,f}=L(k);B=_,R=f}return iN(b,[B,R])[0]}multiplyUnsafe(k){let{endo:o}=G,B=this;if(!V.isValid(k))throw Error("invalid scalar: out of range");if(k===W4||B.is0())return b.ZERO;if(k===VX)return B;if(J0.hasCache(this))return this.multiply(k);if(o){let{k1neg:R,k1:L,k2neg:_,k2:f}=n(k),{p1:M,p2:$}=Du(b,B,L,f);return G0(o.beta,M,$,R,_)}else return J0.unsafe(B,k)}multiplyAndAddUnsafe(k,o,B){let R=this.multiplyUnsafe(o).add(k.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(k){return c(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(Q===VX)return!0;if(k)return k(b,this);return J0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:k}=G;if(Q===VX)return this;if(k)return k(b,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(k=!0){return IU(k,"isCompressed"),this.assertValidity(),z(b,this,k)}toHex(k=!0){return YX(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return iN(b,k)}static msm(k,o){return Tu(b,V,k,o)}static fromPrivateKey(k){return b.BASE.multiply(RW(V,k))}}b.BASE=new b(Z.Gx,Z.Gy,Y.ONE),b.ZERO=new b(Y.ZERO,Y.ONE,Y.ZERO),b.Fp=Y,b.Fn=V;let Y0=V.BITS,J0=new BT(b,G.endo?Math.ceil(Y0/2):Y0);return b.BASE.precompute(8),b}function FT(W){return Uint8Array.of(W?2:3)}function ST(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||MU,V=Object.assign(ST(W.Fp,X),{seed:MT(X.ORDER)});function Z(H){try{return!!RW(X,H)}catch(z){return!1}}function Q(H,z){let{publicKey:w,publicKeyUncompressed:C}=V;try{let D=H.length;if(z===!0&&D!==w)return!1;if(z===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(V.seed)){return PT(TW(H,V.seed,"seed"),X.ORDER)}function U(H,z=!0){return W.BASE.multiply(RW(X,H)).toBytes(z)}function q(H){let z=J(H);return{secretKey:z,publicKey:U(z)}}function A(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:z,publicKey:w,publicKeyUncompressed:C}=V;if(X.allowedLengths||z===w)return;let D=v8("key",H).length;return D===w||D===C}function N(H,z,w=!0){if(A(H)===!0)throw Error("first arg must be private key");if(A(z)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(z).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:N,keygen:q,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:Z,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,z=W.BASE){return z.precompute(H,!1)}},lengths:V})}function Eu(W,G,X={}){XT(G),wI(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||MU,V=X.hmac||((B,...R)=>JT(G,B,H7(...R))),{Fp:Z,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:A,getSharedSecret:N,utils:H,lengths:z}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>VX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){QI(R);let L=z.signature,_=R==="compact"?L:R==="recovered"?L+1:void 0;return TW(B,_,`${R} signature`)}class p{constructor(B,R,L){if(this.r=x("r",B),this.s=x("s",R),L!=null)this.recovery=L;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let L;if(R==="der"){let{r:$,s:g}=e7.toSig(TW(B));return new p($,g)}if(R==="recovered")L=B[0],R="compact",B=B.subarray(1);let _=Q.BYTES,f=B.subarray(0,_),M=B.subarray(_,_*2);return new p(Q.fromBytes(f),Q.fromBytes(M),L)}static fromHex(B,R){return this.fromBytes(NU(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=Z.ORDER,{r:L,s:_,recovery:f}=this;if(f==null||![0,1,2,3].includes(f))throw Error("recovery id invalid");if(J*$T<R&&f>1)throw Error("recovery id is ambiguous for h>1 curve");let M=f===2||f===3?L+J:L;if(!Z.isValid(M))throw Error("recovery id 2 or 3 invalid");let $=Z.toBytes(M),g=W.fromBytes(H7(FT((f&1)===0),$)),u=Q.inv(M),m=n(v8("msgHash",B)),i=Q.create(-m*u),Q0=Q.create(_*u),I0=W.BASE.multiplyUnsafe(i).add(g.multiplyUnsafe(Q0));if(I0.is0())throw Error("point at infinify");return I0.assertValidity(),I0}hasHighS(){return D(this.s)}toBytes(B=C){if(QI(B),B==="der")return NU(e7.hexFromSig(this));let R=Q.toBytes(this.r),L=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return H7(Uint8Array.of(this.recovery),R,L)}return H7(R,L)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(v8("sig",B),"compact")}static fromDER(B){return p.fromBytes(v8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let v=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),L=B.length*8-U;return L>0?R>>BigInt(L):R},n=X.bits2int_modN||function(B){return Q.create(v(B))},c=uV(U);function l(B){return Uu("num < 2^"+U,B,W4,c),Q.toBytes(B)}function G0(B,R){return TW(B,void 0,"message"),R?TW(G(B),void 0,"prehashed message"):B}function b(B,R,L){if(["recovered","canonical"].some((I0)=>(I0 in L)))throw Error("sign() legacy options not supported");let{lowS:_,prehash:f,extraEntropy:M}=tN(L,w);B=G0(B,f);let $=n(B),g=RW(Q,R),u=[l(g),l($)];if(M!=null&&M!==!1){let I0=M===!0?Y(z.secretKey):M;u.push(v8("extraEntropy",I0))}let m=H7(...u),i=$;function Q0(I0){let E0=v(I0);if(!Q.isValidNot0(E0))return;let x0=Q.inv(E0),L0=W.BASE.multiply(E0).toAffine(),Q1=Q.create(L0.x);if(Q1===W4)return;let k1=Q.create(x0*Q.create(i+Q1*g));if(k1===W4)return;let q0=(L0.x===Q1?0:2)|Number(L0.y&VX),B0=k1;if(_&&D(k1))B0=Q.neg(k1),q0^=1;return new p(Q1,B0,q0)}return{seed:m,k2sig:Q0}}function Y0(B,R,L={}){B=v8("message",B);let{seed:_,k2sig:f}=b(B,R,L);return qu(G.outputLen,Q.BYTES,V)(_,f)}function J0(B){let R=void 0,L=typeof B==="string"||TU(B),_=!L&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!L&&!_)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(_)R=new p(B.r,B.s);else if(L){try{R=p.fromBytes(v8("sig",B),"der")}catch(f){if(!(f instanceof e7.Err))throw f}if(!R)try{R=p.fromBytes(v8("sig",B),"compact")}catch(f){return!1}}if(!R)return!1;return R}function k(B,R,L,_={}){let{lowS:f,prehash:M,format:$}=tN(_,w);if(L=v8("publicKey",L),R=G0(v8("message",R),M),"strict"in _)throw Error("options.strict was renamed to lowS");let g=$===void 0?J0(B):p.fromBytes(v8("sig",B),$);if(g===!1)return!1;try{let u=W.fromBytes(L);if(f&&g.hasHighS())return!1;let{r:m,s:i}=g,Q0=n(R),I0=Q.inv(i),E0=Q.create(Q0*I0),x0=Q.create(m*I0),L0=W.BASE.multiplyUnsafe(E0).add(u.multiplyUnsafe(x0));if(L0.is0())return!1;return Q.create(L0.x)===m}catch(u){return!1}}function o(B,R,L={}){let{prehash:_}=tN(L,w);return R=G0(R,_),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:A,getSharedSecret:N,utils:H,lengths:z,Point:W,sign:Y0,verify:k,recoverPublicKey:o,Signature:p,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,V=hV(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:V,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DT(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:V}=Fu(W),Z=Lu(G,X),Q=Eu(Z,Y,V);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),JI=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),V=BigInt(11),Z=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,A=q*q*W%G,N=z5(A,X,G)*A%G,H=z5(N,X,G)*A%G,z=z5(H,JI,G)*q%G,w=z5(z,V,G)*z%G,C=z5(w,Z,G)*w%G,D=z5(C,J,G)*C%G,x=z5(D,U,G)*D%G,h=z5(x,J,G)*C%G,p=z5(h,X,G)*A%G,v=z5(p,Q,G)*w%G,n=z5(v,Y,G)*q%G,c=z5(n,JI,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=hV(JX.p,{sqrt:vu}),xT=ku({...JX,Fp:wU,lowS:!0,endo:_u},YI),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=YI(VT(W));X=H7(Y,Y),oD[W]=X}return YI(H7(X,...G))}var OI=(W)=>W.toBytes(!0).slice(1),qX=(()=>xT.Point)(),KI=(W)=>W%JI===yu;function UI(W){let{Fn:G,BASE:X}=qX,Y=RW(G,W),V=X.multiply(Y);return{scalar:KI(V.y)?Y:G.neg(Y),bytes:OI(V)}}function kT(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),V=G.sqrt(Y);if(!KI(V))V=G.neg(V);let Z=qX.fromAffine({x:W,y:V});return Z.assertValidity(),Z}var gV=UX;function _T(...W){return qX.Fn.create(gV(jU("BIP0340/challenge",...W)))}function nD(W){return UI(W).bytes}function gu(W,G,X=MU(32)){let{Fn:Y}=qX,V=v8("message",W),{bytes:Z,scalar:Q}=UI(G),J=v8("auxRand",X,32),U=Y.toBytes(Q^gV(jU("BIP0340/aux",J))),q=jU("BIP0340/nonce",U,Z,V),{bytes:A,scalar:N}=UI(q),H=_T(A,Z,V),z=new Uint8Array(64);if(z.set(A,0),z.set(Y.toBytes(Y.create(N+H*Q)),32),!yT(z,V,Z))throw Error("sign: Invalid signature produced");return z}function yT(W,G,X){let{Fn:Y,BASE:V}=qX,Z=v8("signature",W,64),Q=v8("message",G),J=v8("publicKey",X,32);try{let U=kT(gV(J)),q=gV(Z.subarray(0,32));if(!ZI(q,dD,JX.p))return!1;let A=gV(Z.subarray(32,64));if(!ZI(A,dD,JX.n))return!1;let N=_T(Y.toBytes(q),OI(U),Q),H=V.multiplyUnsafe(A).add(U.multiplyUnsafe(Y.neg(N))),{x:z,y:w}=H.toAffine();if(H.is0()||!KI(w)||z!==q)return!1;return!0}catch(U){return!1}}var CI=(()=>{let W=(X=MU(48))=>{return PT(X,JX.n)};xT.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yT,Point:qX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kT,pointToBytes:OI,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),kV=(W)=>hu.decode(W),qI=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),G4=JSON.stringify,OU=JSON.parse,vT=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,DI="AES-GCM",bu={},gT="$",uT=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let V=0;V<G.length;V+=32768)Y+=String.fromCharCode(...G.subarray(V,V+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,WU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let V of X)Y+=V.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:DI},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,V=await crypto.subtle.encrypt({name:DI,iv:X},Y,LW(G));return`${X.join(uT)}${gT}${mu(V)}`},lu=async(W,G)=>{let[X,Y]=G.split(gT);if(!X||!Y)throw Error("Invalid encrypted payload format");let V=Uint8Array.from(X.split(uT),Number),Z=await W,Q=await crypto.subtle.decrypt({name:DI,iv:V},Z,fu(Y));return kV(Q)},k5="GenosRTC",TI=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),e1=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hT,keys:Re}=Object,nu=()=>{},t7=(W)=>Error(`GenosRTC: ${W}`),GU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,V=()=>{let Z=Math.sin(G++)*1e4;return Z-Math.floor(Z)};while(Y){let Z=Math.floor(V()*Y--);[X[Y],X[Z]]=[X[Z],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...TI(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let V=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),Z={},Q=!1,J=!1,U,q=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(z)=>Z.data?.(z.data),onopen:()=>Z.connect?.(),onclose:()=>Z.close?.(),onerror:(z)=>!z?.error?.message?.includes("User-Initiated Abort")&&Z.error?.(z)}),A=()=>Promise.race([new Promise((H)=>{let z=()=>{if(V.iceGatheringState==="complete")V.removeEventListener(iD,z),H()};V.addEventListener(iD,z),z()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:V.localDescription.type,sdp:V.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?q(U=V.createDataChannel("data")):V.ondatachannel=({channel:H})=>q(U=H),V.onnegotiationneeded=async()=>{try{Q=!0,await V.setLocalDescription(),Z.signal?.(await A())}catch(H){Z.error?.(H)}finally{Q=!1}},V.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(V.connectionState))Z.close?.()},V.ontrack=(H)=>{Z.track?.(H.track,H.streams[0]),Z.stream?.(H.streams[0])},V.onremovestream=(H)=>Z.stream?.(H.stream),W&&!V.canTrickleIceCandidates)V.onnegotiationneeded();let N=()=>V.getSenders();return{created:Date.now(),connection:V,get channel(){return U},get isDead(){return V.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||V.signalingState!=="stable"&&!J){if(W)return;await XX([V.setLocalDescription({type:"rollback"}),V.setRemoteDescription(H)])}else await V.setRemoteDescription(H);await V.setLocalDescription();let z=await A();return Z.signal?.(z),z}if(H.type===au){J=!0;try{await V.setRemoteDescription(H)}finally{J=!1}}}catch(z){Z.error?.(z)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),V.close(),Q=J=!1},setHandlers:(H)=>Object.assign(Z,H),offerPromise:W?new Promise((H)=>Z.signal=(z)=>z.type===rD&&H(z)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((z)=>V.addTrack(z,H)),removeStream:(H)=>N().filter((z)=>H.getTracks().includes(z.track)).forEach((z)=>V.removeTrack(z)),addTrack:(H,z)=>V.addTrack(H,z),removeTrack:(H)=>{let z=N().find((w)=>w.track===H);if(z)V.removeTrack(z)},replaceTrack:(H,z)=>N().find((w)=>w.track===H)?.replaceTrack(z)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bT=0,JU=bT+QU,UU=JU+1,_V=UU+1,yV=_V+1,xV=16384-yV,XU=255,eN="bufferedamountlow",GX=(W)=>`@_${W}`,WI=100,eu=3,Wh=200,Gh=(W,G,X)=>{let Y=new Map,V=new Map,Z=new Map,Q={},J={},U={},q={},A=new Map,N=(L,_)=>{if(!A.has(L))A.set(L,new Set);A.get(L).add(_)},H=(L,_)=>A.get(L)?.delete(_),z=(L,..._)=>A.get(L)?.forEach((f)=>f(..._)),w=(L,_)=>{let f=L?Array.isArray(L)?L:[L]:Y.keys();return Array.from(f,(M)=>{let $=Y.get(M);if(!$)return console.warn(`${k5}: no peer with id ${M}`),null;return _(M,$)}).filter(Boolean)},C=(L)=>{if(!Y.has(L))return;Y.delete(L),delete Q[L],delete J[L],delete U[L],delete q[L],z("peer:leave",L),G(L)},D=(L)=>new Promise((_,f)=>{let M=setTimeout(()=>{L.removeEventListener(eN,$),f(Error(`${k5}: bufferLow timeout`))},5000);function $(){clearTimeout(M),L.removeEventListener(eN,$),_()}L.addEventListener(eN,$)}),x=(L)=>{if(Z.has(L))return Z.get(L);if(!L)throw t7("action type is required");let _=LW(L);if(_.byteLength>QU)throw t7(`\u274C "${L}" exceeds ${QU} bytes. Use a shorter name.`);let f=new Uint8Array(QU).map((Q0,I0)=>_[I0]||0),M=0,$=new Map([["message",new Set],["progress",new Set]]),g=(Q0,I0)=>$.get(Q0)?.add(I0),u=(Q0,I0)=>$.get(Q0)?.delete(I0),m=async(Q0,I0,E0,x0)=>{if(E0&&typeof E0!=="object")throw t7("meta must be object");if(Q0===void 0)throw t7("data cannot be undefined");let L0=Q0 instanceof Blob,Q1=L0||Q0 instanceof ArrayBuffer||Q0 instanceof tu,k1=typeof Q0!=="string";if(E0&&!Q1)throw t7("meta only allowed with binary");let q0=Q1?new Uint8Array(L0?await Q0.arrayBuffer():Q0):LW(k1?G4(Q0):Q0),B0=E0?LW(G4(E0)):null,v0=Math.ceil(q0.byteLength/xV)+(E0?1:0)||1;if(v0>WI)throw t7(`Message too large, exceeds max chunks ${WI}`);let T1=TI(v0,(J8,w1)=>{let $0=w1===v0-1,c0=E0&&w1===0,j1=c0?B0:q0.subarray(E0?(w1-1)*xV:w1*xV,E0?w1*xV:(w1+1)*xV),y1=new Uint8Array(yV+j1.byteLength);return y1.set(f),y1.set([M],JU),y1.set([$0|c0<<1|Q1<<2|k1<<3],UU),y1.set([Math.round((w1+1)/v0*XU)],_V),y1.set(j1,yV),y1});return M=M+1&XU,XX(w(I0,async(J8,w1)=>{let{channel:$0}=w1;for(let c0=0;c0<v0;c0++){let j1=0;while($0.bufferedAmount>$0.bufferedAmountLowThreshold){if(j1++>eu)throw t7(`${k5}: send buffer full, max retries reached for peer ${J8}`);try{await D($0)}catch(y1){console.warn(y1.message),await new Promise((E9)=>setTimeout(E9,Wh))}}if(!Y.has(J8))break;w1.sendData(T1[c0]),x0?.(T1[c0][_V]/XU,J8,E0)}}))};V.set(L,{listeners:$,send:m});let i={send:m,on:g,off:u};return Z.set(L,i),i},h=(L,_)=>{try{let f=new Uint8Array(_),M=kV(f.subarray(bT,JU)).replace(/\x00/g,"");if(!V.has(M))return console.warn(`${k5}: unregistered type (${M})`);let[$]=f.subarray(JU,UU),[g]=f.subarray(UU,_V),[u]=f.subarray(_V,yV),m=f.subarray(yV),i=Boolean(g&1),Q0=Boolean(g&2),I0=Boolean(g&4),E0=Boolean(g&8),x0=V.get(M),L0=(Q[L]||={})[M]||={};if(L0[$]?.chunks?.length>WI){console.warn(`${k5}: peer ${L} sent too many chunks for nonce ${$}, ignoring.`);return}let Q1=L0[$]||={chunks:[]};if(Q0)try{Q1.meta=OU(kV(m))}catch{console.warn(`${k5}: failed to parse meta from peer ${L} for type ${M}`);return}else Q1.chunks.push(m);if(x0.listeners.get("progress").forEach((B0)=>{try{B0(u/XU,L,Q1.meta)}catch(v0){console.error(v0)}}),!i)return;let k1=new Uint8Array(Q1.chunks.reduce((B0,v0)=>B0+v0.byteLength,0));Q1.chunks.reduce((B0,v0)=>(k1.set(v0,B0),B0+v0.byteLength),0),delete L0[$];let q0;if(I0)q0=k1;else if(E0)try{q0=OU(kV(k1))}catch{console.warn(`${k5}: failed to parse JSON message data from peer ${L} for type ${M}`);return}else q0=kV(k1);x0.listeners.get("message").forEach((B0)=>{try{B0(q0,L,Q1.meta)}catch(v0){console.error(v0)}})}catch(f){console.error(`${k5}: error handling data from peer ${L}:`,f)}},p=async()=>{try{await B(""),await new Promise((L)=>setTimeout(L,99))}catch(L){console.warn(`${k5}: error sending leave`,L)}for(let[L,_]of Y){try{_.destroy()}catch{}Y.delete(L)}X()},{send:v,on:n}=x(GX("ping")),{send:c,on:l}=x(GX("pong")),{send:G0,on:b}=x(GX("signal")),{send:Y0,on:J0}=x(GX("stream")),{send:k,on:o}=x(GX("track")),{send:B,on:R}=x(GX("leave"));if(W((L,_)=>{let f=Y.get(_);if(f===L)return;if(f){let M=()=>{};f.setHandlers({data:M,stream:M,track:M,signal:M,close:M,error:M})}Y.set(_,L),L.setHandlers({data:(M)=>h(_,M),stream:(M)=>{z("stream:add",M,_,U[_]),delete U[_]},track:(M,$)=>{z("track:add",M,$,_,q[_]),delete q[_]},signal:(M)=>G0(M,_),close:()=>C(_),error:(M)=>{console.error(`${k5}: peer error for ${_}`,M),C(_)}}),z("peer:join",_)}),n("message",(L,_)=>c("",_)),l("message",(L,_)=>{J[_]?.(),delete J[_]}),b("message",(L,_)=>Y.get(_)?.signal(L)),J0("message",(L,_)=>U[_]=L),o("message",(L,_)=>q[_]=L),R("message",(L,_)=>C(_)),du)addEventListener("beforeunload",p);return{on:N,off:H,channel:x,leave:p,ping:async(L)=>{if(!L)throw t7("ping() requires target peer ID");let _=Date.now();return v("",L),await new Promise((f)=>J[L]=f),Date.now()-_},getPeers:()=>hT(Array.from(Y,([L,_])=>[L,_.connection])),addStream:(L,_,f)=>w(_,async(M,$)=>{if(f)await Y0(f,M);$.addStream(L)}),removeStream:(L,_)=>w(_,(f,M)=>M.removeStream(L)),addTrack:(L,_,f,M)=>w(f,async($,g)=>{if(M)await k(M,$);g.addTrack(L,_)}),removeTrack:(L,_)=>w(_,(f,M)=>M.removeTrack(L)),replaceTrack:(L,_,f,M)=>w(f,async($,g)=>{if(M)await k(M,$);g.replaceTrack(L,_)})}},Xh=5,Yh=10,Vh=2500,YU=57333,Zh=({init:W,subscribe:G,announce:X})=>{let Y={},V=!1,Z,Q;return(J,U,q)=>{let{appId:A}=J;if(Y[A]?.[U])return Y[A][U];if(!J||!U||!A&&!J.firebaseApp)throw t7(!J?"config required":!U?"roomId required":"appId missing");let N=nu;if(!V){let R=W(J);Q=TI(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),Z=Array.isArray(R)?R:[R];let L=setInterval(()=>{Q=Q.filter((_)=>{let f=Date.now()-_.created<YU;if(!f)_.destroy();return f})},YU);Y.offerCleanupTimer||=L,V=!0}let H={},z={},w=new Map,C=new Map,D=GU(k5,A,U),x=WU(D),h=WU(GU(D,e1)),p=cu(J.password||"",A,U),v=(R)=>async(L)=>({type:L.type,sdp:await R(p,L.sdp)}),n=v(lu),c=v(pu),l=(R)=>{return setTimeout(()=>{if(!R.isDead&&!Object.values(z).includes(R))R.destroy()},YU),R},G0=(R)=>{try{return l(aD(R,J))}catch{return null}},b=(R,L)=>{if(z[L]===R)return;z[L]?.destroy(),z[L]=R,N(R,L),H[L]?.forEach((_)=>_!==R&&_.destroy()),delete H[L]},Y0=(R,L)=>{if(z[L]===R)delete z[L]},J0=(R)=>async(L,_,f)=>{let[M,$]=await XX([x,h]);if(L!==M&&L!==$)return;let{peerId:g,offer:u,answer:m}=typeof _==="string"?OU(_):_;if(g&&g!==e1)C.set(g,Date.now());if(g===e1||z[g])return;if(J.admit&&!J.admit(g))return;if(u){if(H[g]?.[R]&&e1>g)return;let i=G0(!1);if(!i)return;i.setHandlers({connect:()=>b(i,g),close:()=>Y0(i,g)});try{let Q0=await n(u);if(i.isDead)return;let[I0,E0]=await XX([WU(GU(D,g)),i.signal(Q0).then(c)]);f(I0,G4({peerId:e1,answer:E0}))}catch{q?.({error:"decryption failed (offer)",appId:A,peerId:g,roomId:U})}}else if(m){let i=H[g]?.[R];if(!i||i.isDead)return;i.setHandlers({connect:()=>b(i,g),close:()=>Y0(i,g)});try{i.signal(await n(m))}catch{q?.({error:"decryption failed (answer)",appId:A,peerId:g,roomId:U})}}else{let i=H[g]||=[];if(i.forEach((L0,Q1)=>{if(L0&&(L0.isDead||Date.now()-(L0.dialedAt??L0.created)>YU)){if(L0.isDead)w.set(g,Date.now()+30000);L0.destroy(),delete i[Q1]}}),i[R]||i.filter(Boolean).length>=2||w.get(g)>Date.now())return;if(Object.values(H).reduce((L0,Q1)=>L0+Q1.filter((k1)=>k1&&!k1.isDead).length,0)>=Yh)return;let Q0=Q.pop(),I0=Q0?l(Q0):G0(!0);if(!I0){w.set(g,Date.now()+30000);return}I0.dialedAt=Date.now();let[E0,{offer:x0}]=await XX([WU(GU(D,g)),I0.offerPromise.then(c).then((L0)=>({offer:L0}))]);i[R]=I0,I0.setHandlers({connect:()=>b(I0,g),close:()=>Y0(I0,g)}),f(E0,G4({peerId:e1,offer:x0,peer:I0}))}},k=[],o=[];Z.forEach(async(R,L)=>{let _=await R;if(!_)return;let[f,M]=await XX([x,h]);o[L]=G(_,f,M,J0(L));let $=async()=>{let g=await X(_,f,M);k[L]=setTimeout($,typeof g==="number"?g:Vh)};$()}),Y[A]||={};let B=Gh((R)=>N=R,(R)=>delete z[R],()=>B.onCleanup?.());return B.onCleanup=()=>{if(delete Y[A][U],k.forEach(clearTimeout),o.forEach((R)=>R?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},B._census=()=>{for(let L of Object.keys(z))C.set(L,Date.now());let R=Date.now()-120000;for(let[L,_]of C)if(_<R)C.delete(L);return[...C.keys()]},Y[A][U]=B}},sD=3333,VU={},mT={},Qh=(W,G)=>{let X={},Y=null,V=()=>{if(Y)clearTimeout(Y),Y=null;let Z=new WebSocket(W);Z.onclose=()=>{VU[W]??=sD,Y=setTimeout(V,VU[W]),VU[W]*=2},Z.onmessage=(Q)=>G(Q.data),X.socket=Z,X.url=Z.url,X.ready=new Promise((Q)=>{Z.onopen=()=>{VU[W]=sD,Q(X)}}),X.send=(Q)=>{if(Z.readyState===1)Z.send(Q)}};return X.forceReconnect=V,V(),mT[W]=X,X};if(typeof window<"u"){let W=()=>{dN.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mT).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&G.socket.readyState!==WebSocket.CONNECTING)G.forceReconnect()})};window.addEventListener("online",()=>{dN.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{dN.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Jh=(W)=>()=>hT(ou(W).map(([G,X])=>[G,X.socket])),Uh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vT(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://ftp.halifax.rwth-aachen.de/nostr","wss://nostr.oxtr.dev","wss://nostr.sathoarder.com","wss://nostr.mom","wss://nos.lol","wss://nostr.vulpem.com","wss://nostr.data.haus","wss://relay.mostro.network","wss://relay.nostrdice.com"],ZX={},Ah=10,fT="x",cT="EVENT",Hh=/pow:\s*(\d+)\s*bits needed\.?/i,AI=new Set,pT=CI.utils.randomSecretKey(),Nh=qI(CI.getPublicKey(pT)),MI={},vV={},Ih={},lT=()=>Math.floor(Date.now()/1000),dT=(W)=>Ih[W]??=vT(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),zh=(W,G)=>{let[X,Y,V,Z]=OU(G);if(X===cT)return vV[Y]?.(MI[Y],V.content);if(X==="NOTICE"||X==="OK"&&!V){if(+((X==="NOTICE"?Y:Z).match(Hh)?.[1]??0)>0){let Q=CU(W);AI.add(Q),ZX[Q]?.close?.(),delete ZX[Q]}}},wh=(W)=>{let G=CU(W);if(ZX[G])return ZX[G];let X=Qh(G,(Y)=>zh(G,Y));return ZX[G]=X},tD=async(W,G)=>{let X={kind:dT(W),content:G,pubkey:Nh,created_at:lT(),tags:[[fT,W]]},Y=LW(G4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),V=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),Z=CI.sign(V,pT);return G4([cT,{...X,id:qI(V),sig:qI(Z)}])},eD=(W,G)=>{return MI[W]=G,G4(["REQ",W,{kinds:[dT(G)],since:lT(),["#"+fT]:[G]}])},WT=(W)=>{return delete MI[W],G4(["CLOSE",W])},oT=Zh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Uh(W,G,Ah,!1).map(wh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let V=KU(64),Z=KU(64);return vV[V]=vV[Z]=(Q,J)=>Y(Q,J,async(U,q)=>{if(AI.has(CU(W.url)))return;W.send(await tD(U,q))}),W.send(eD(V,G)),W.send(eD(Z,X)),()=>{W.send(WT(V)),W.send(WT(Z)),delete vV[V],delete vV[Z]}},announce:async(W,G)=>{if(AI.has(CU(W.url)))return;W.send(await tD(G,G4({peerId:e1})))}}),Le=Jh(ZX),jh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GT=5000,Oh=3000,Kh=30000,Ch=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Dh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let V=1;V<G;V*=2){if(X-V>=0)Y.push(`cell-${X-V}`);if(X+V<G)Y.push(`cell-${X+V}`)}return Y},ZU=(W)=>`c${(DU(W)||0).toString(36)}`,Th=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,V=Math.ceil(W/G);return Math.max(Y,Math.min(X,V))},Mh=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nT=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},GI=(W,G)=>{let X=0,Y=-1;for(let V=0;V<G;V++){let Z=nT(`${W}:${V}`);if(Z>Y)Y=Z,X=V}return X};class qU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Kh}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Ph(W,G={},X={}){let Y={...jh,...G},V=!!Y.debug,Z=(...F)=>V&&console.debug("[cells]",...F),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),q=Y.cellSize==="auto",A=q?2:Math.max(1,Y.cellSize|0),N={cellId:null,bridges:[],isBridge:!1},H=null,z=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,p=new Set,v=new Set,n=0,c=[],l=new Map,G0=new Set,b=new Map,Y0=new Map,J0=1,k=0,o=1,B=0,R=()=>{B0();let F=Mh(q0().length,A);if(F!==o)o=F,B=Date.now();let d=Date.now()-B;if(F>J0&&d>4000)J0=F;else if(F<J0&&d>30000)J0=F;return J0},L=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),_=(F)=>Dh(F,R()),f=W.on?.bind(W),M=W.off?.bind(W);if(f)W.on=(F,d)=>String(F).startsWith("mesh:")?u(F,d):f(F,d);if(M)W.off=(F,d)=>String(F).startsWith("mesh:")?h.get(F)?.delete(d):M(F,d);let $=(F)=>(x.add(F),()=>x.delete(F)),g=(F,d,X0)=>{if(v.has(X0))return;if(v.add(X0),v.size>GT){let w0=v.values().next().value;v.delete(w0)}for(let w0 of x)try{w0(F,d)}catch(e0){Z("Error in deliver handler:",e0)}},u=(F,d)=>{if(!h.has(F))h.set(F,new Set);return h.get(F).add(d),()=>h.get(F)?.delete(d)},m=(F,...d)=>{let X0=h.get(F);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},i=(F)=>{try{return typeof F==="string"?JSON.parse(F):F}catch{return null}},Q0=()=>`${e1}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,I0=()=>{if(p.size>GT)p.delete(p.values().next().value)},E0=(F,d,X0=[])=>{if(!F||!d)return;if(C.set(F,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has(F))D.set(F,new qU(F));let w0=D.get(F);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:F}),X0.length>0)for(let e0 of _(d))w0.addConnectedCell(e0)},x0=(F)=>D.get(F),L0=(F,d)=>{let X0=D.get(F);if(X0)X0.addRttSample(d)},Q1=(F)=>{let d=$0(F);if(d.length===0)return null;let X0=0,w0=0;for(let O1 of d){let r0=D.get(O1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((O1)=>{let r0=D.get(O1);return r0&&!r0.isStale});return{cellId:F,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},k1=()=>{let F=Q1(N.cellId);m("mesh:health",{...N,health:F})},q0=()=>[...new Set([...W._census(),e1])].sort(),B0=()=>{if(!q)return;let F=q0().length,d=Th(F,U,J);if(d!==A)Z("cellSize changed:",A,"->",d),A=d},v0=(F,d)=>d.filter((X0)=>GI(X0,R())===F),T1=(F,d)=>{if(Q===0)return[];let X0=DU(F),w0=DU(d);if(X0==null||w0==null)return[];let e0=q0(),O1=v0(X0,e0),r0=v0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),u0=(o1)=>nT(`${o1}@${K0}~${F0}`),k0=[...new Set([...O1,...r0])].sort((o1,Z7)=>u0(Z7)-u0(o1));if(!k0.length)return[];let Z1=new Set(O1),X1=[],F1=(o1)=>o1&&!X1.includes(o1)&&X1.push(o1);F1(k0.find((o1)=>Z1.has(o1))),F1(k0.find((o1)=>!Z1.has(o1)));for(let o1 of k0){if(X1.length>=Math.max(Q,2))break;F1(o1)}return X1},J8=(F,d)=>{if(Q===0)return[];let X0=_(d),w0=[];for(let e0 of X0)if(T1(d,e0).includes(F))w0.push(e0);return w0},w1=()=>{B0();let F=q0(),d=GI(e1,R()),X0=R(),w0=`cell-${d}`,e0=J8(e1,w0),O1=e0.length>0;return Z("computeState",{self:e1,myCell:w0,isBridge:O1,bridgeEdges:e0,cellSize:A,rosterSize:F.length,totalCells:X0,dynamicTTL:L()}),{cellId:w0,isBridge:O1,bridges:e0,cellSize:A,dynamicTTL:L(),totalCells:X0}},$0=(F)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===F){let O1=D.get(w0);if(X0.has(w0)&&(!O1||!O1.isStale))d.push(w0)}return d.sort(),d},c0=()=>{if(!H)return;Z9=qW(),X6=Date.now();let F={t:"state",id:Q0(),ttl:L(),data:{id:e1,cell:N.cellId,bridges:N.bridges,health:D.get(e1)?.healthScore||0.5,timestamp:Date.now()},origin:e1,originCell:N.cellId},d=JSON.stringify(F);H.send(d),j1(z,d)},j1=(F,d)=>{let X0=i(d);if(!X0?.id||!X0?.t)return;let w0=p.has(X0.id);if(!w0)p.add(X0.id),I0();let{t:e0,id:O1,ttl:r0,data:K0,origin:F0,originCell:u0}=X0,k0=N.cellId;if(e0==="state"&&K0)E0(K0.id,K0.cell,K0.bridges),m("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==e1){let X1={t:"pong",id:Q0(),ttl:L(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:e1,originCell:k0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=b.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let F1=Date.now()-X1.start;L0(X1.peerId,F1),X1.resolve(F1),b.delete(K0.pingId)}}if(e0==="msg"&&F0!==e1){if(u0===k0||Q>0)g(K0,F0,O1)}if(w0)return;if(!N.isBridge)return;if((r0??0)<=0)return;let Z1=(X1,F1,o1=null)=>{if(!X1)return;let Z7={t:e0,id:O1,ttl:o1??(r0??L())-1,data:K0,origin:F0||e1,originCell:u0||k0},AW=JSON.stringify(Z7);if(F1?.length){let JV=new Set(Object.keys(W.getPeers?.()||{})),Q9=F1.filter((kJ)=>JV.has(kJ));if(Q9.length>0)X1.send(AW,Q9)}else X1.send(AW)};if(F===z){for(let X1 of _(k0))Z1(y1(X1),null);return}if(!_(k0).map(ZU).includes(F))return;Z1(H,null);for(let X1 of _(k0))if(ZU(X1)!==F)Z1(y1(X1),null)},y1=(F)=>{let d=ZU(F);if(l.has(F))return l.get(F);let X0=W.channel(d);if(l.set(F,X0),!G0.has(d))G0.add(d),X0.on("message",(w0)=>j1(d,w0));return X0},E9=()=>{if(!N.cellId)return;if(z=ZU(N.cellId),H=W.channel(z),!G0.has(z))G0.add(z),H.on("message",(F)=>j1(z,F));if(N.isBridge)for(let F of _(N.cellId))y1(F);if(c.length)for(let F of c.splice(0)){let d={t:"msg",id:Q0(),ttl:L(),data:F,origin:e1,originCell:N.cellId},X0=JSON.stringify(d);H.send(X0),j1(z,X0)}c0()},i8=(F)=>{if(!N.cellId)return!0;if(!q0().includes(F))return!0;let d=`cell-${GI(F,R())}`;if(d===N.cellId)return!0;if(N.bridges.includes(d))return!0;return _(N.cellId).includes(d)&&T1(d,N.cellId).includes(F)},j8=()=>{let F=W.getPeers?.()||{};for(let d of Object.keys(F))if(!i8(d))F[d].close?.()};X.admit=i8;let A8=()=>{let F=w1(),d=!N.cellId||N.cellId!==F.cellId||N.isBridge!==F.isBridge||JSON.stringify(N.bridges)!==JSON.stringify(F.bridges);if(N=F,E0(e1,F.cellId,F.bridges),d)E9();else c0();j8(),m("mesh:state",F),k1()},Z9="",X6=0,qW=()=>{return`${N.cellId}:${N.isBridge}:${N.bridges.join(",")}`},QV=()=>{if(w)return;w=setInterval(()=>{let F=R();if(F!==k){k=F,A8();return}let d=qW();if(d!==Z9||Date.now()-X6>1e4)c0(),Z9=d;for(let[X0,w0]of D)if(X0!==e1&&w0.isStale)C.delete(X0),D.delete(X0),Z("Removed stale peer:",X0)},Ch)},n7=()=>{if(w)clearInterval(w),w=null},r=(F)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),O1=setTimeout(()=>{b.delete(w0);let K0=D.get(F);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Oh);b.set(w0,{start:e0,resolve:d,reject:X0,timeout:O1,peerId:F});let r0={t:"ping",id:Q0(),ttl:L(),data:{pingId:w0,target:F},origin:e1,originCell:N.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",(F)=>{if(!D.has(F))D.set(F,new qU(F));else D.get(F).markReconnect();A8()}),W.on?.("peer:leave",(F)=>{C.delete(F),A8()}),!D.has(e1))D.set(e1,new qU(e1));return D.get(e1).addConnectedCell(N.cellId||"cell-0"),A8(),QV(),{send:(F)=>{if(!N.cellId||!H)return c.push(F);let d={t:"msg",id:Q0(),ttl:L(),data:F,origin:e1,originCell:N.cellId},X0=JSON.stringify(d);H.send(X0),j1(z,X0)},on:(F,d)=>F==="message"?$(d):void 0,ping:r,getState:()=>({...N,cellSize:A,health:Q1(N.cellId),dynamicTTL:L(),totalCells:R(),knownCells:Y0.size}),getMetrics:x0,getCellHealth:Q1,getPeerInfo:()=>new Map(C),getStableRoster:()=>q0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>A,destroy:()=>{n7(),b.forEach((F)=>clearTimeout(F.timeout)),b.clear(),v.clear(),Y0.clear()}}}function Rh(W,G,X){let Y={},V=oT({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),Z=W.overlay||{},Q=Ph(V,Z,Y),J=new Map;return{on:(U,q)=>V.on(U,q),off:(U,q)=>V.off?.(U,q),channel:(U)=>{if(J.has(U))return J.get(U);let q=V.channel(U),A={send:(N,H)=>{Q.send({_ch:U,_d:N,_t:H})},on:(N,H)=>{if(N==="message")Q.on("message",(z,w)=>{if(z?._ch===U)H(z._d,w)}),q.on(N,H);else q.on(N,H)},off:(N,H)=>q.off?.(N,H),_original:q};return J.set(U,A),A},get id(){return V.id},get peers(){return V.peers},getPeers:()=>V.getPeers?.()||{},mesh:Q,_room:V,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),destroy:()=>{Q.destroy(),J.clear()}}}var PI=(W,G,X)=>W?.cells||W?.overlay?Rh(W,G,X):oT(W,G,X);import{randomBytes as NS}from"crypto";function Lh(){var W,G=!1,X=this;X._DeArray=function(Y,V,Z){return[Y.slice(V,V+Z)]},X._EnArray=function(Y,V,Z,Q){for(var J=0;J<Z;Y[V+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,V){return String.fromCharCode(Y[V])},X._EnChar=function(Y,V,Z){Y[V]=Z.charCodeAt(0)},X._DeInt=function(Y,V){var Z=G?W.len-1:0,Q=G?-1:1,J=Z+Q*W.len,U,q,A;for(U=0,q=Z,A=1;q!=J;U+=Y[V+q]*A,q+=Q,A*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,V,Z){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,q;Z=Z<W.min?W.min:Z>W.max?W.max:Z;for(q=Q;q!=U;Y[V+q]=Z&255,q+=J,Z>>=8);},X._DeString=function(Y,V,Z){for(var Q=Array(Z),J=0;J<Z;Q[J]=String.fromCharCode(Y[V+J]),J++);return Q.join("")},X._EnString=function(Y,V,Z,Q){for(var J,U=0;U<Z;Y[V+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,V){var Z,Q,J,U,q,A,N,H,z,w;N=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,z=w>>1,U=G?0:W.len-1,q=G?1:-1,Z=Y[V+U],U+=q,A=-7;for(Q=Z&(1<<-A)-1,Z>>=-A,A+=H;A>0;Q=Q*256+Y[V+U],U+=q,A-=8);for(J=Q&(1<<-A)-1,Q>>=-A,A+=N;A>0;J=J*256+Y[V+U],U+=q,A-=8);switch(Q){case 0:Q=1-z;break;case w:return J?NaN:(Z?-1:1)*(1/0);default:J=J+Math.pow(2,N),Q=Q-z;break}return(Z?-1:1)*J*Math.pow(2,Q-N)},X._En754=function(Y,V,Z){var Q,J,U,q,A,N,H,z,w,C;if(H=W.mLen,z=W.len*8-W.mLen-1,C=(1<<z)-1,w=C>>1,Q=Z<0?1:0,Z=Math.abs(Z),isNaN(Z)||Z==1/0)U=isNaN(Z)?1:0,J=C;else{if(J=Math.floor(Math.log(Z)/Math.LN2),Z*(N=Math.pow(2,-J))<1)J--,N*=2;if(J+w>=1)Z+=W.rt/N;else Z+=W.rt*Math.pow(2,1-w);if(Z*N>=2)J++,N/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(Z*N-1)*Math.pow(2,H),J=J+w;else U=Z*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(q=G?W.len-1:0,A=G?-1:1;H>=8;Y[V+q]=U&255,q+=A,U/=256,H-=8);for(J=J<<H|U,z+=H;z>0;Y[V+q]=J&255,q+=A,J/=256,z-=8);Y[V+q-A]|=Q*128},X._DeInt64=function(Y,V){var Z=G?0:7,Q=G?1:-1,J=Z+Q*8,U=[0,0,!W.bSigned],q,A,N;for(q=Z,N=1,A=0;q!=J;U[N]=(U[N]<<8>>>0)+Y[V+q],q+=Q,A++,N=A<4?1:0);return U},X._EnInt64=function(Y,V,Z){var Q=G?0:7,J=G?1:-1,U=Q+J*8,q,A,N,H;for(q=Q,N=1,A=0,H=24;q!=U;Y[V+q]=Z[N]>>H&255,q+=J,A++,N=A<4?1:0,H=24-8*(A%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,V,Z,Q){for(var J=W.de,U=[],q=0;q<Y;U.push(J(Z,Q+q*V)),q++);return U},X._PackSeries=function(Y,V,Z,Q,J,U){for(var q=W.en,A=0;A<Y;q(Z,Q+A*V,J[U+A]),A++);},X.Unpack=function(Y,V,Z){G=Y.charAt(0)!="<",Z=Z?Z:0;var Q=new RegExp(this._sPattern,"g"),J,U,q,A=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),q=this._lenLut[J[2]],Z+U*q>V.length)return;switch(J[2]){case"A":case"s":A.push(this._elLut[J[2]].de(V,Z,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],A.push(this._UnpackSeries(U,q,V,Z));break}Z+=U*q}return Array.prototype.concat.apply([],A)},X.PackTo=function(Y,V,Z,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,q,A,N,H=0;while(U=J.exec(Y)){if(q=U[1]==null||U[1]==""?1:parseInt(U[1]),A=this._lenLut[U[2]],Z+q*A>V.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(V,Z,q,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+q>Q.length)return!1;this._PackSeries(q,A,V,Z,Q,H),H+=q;break;case"x":for(N=0;N<q;N++)V[Z+N]=0;break}Z+=q*A}return V},X.Pack=function(Y,V){return this.PackTo(Y,Array(this.CalcLength(Y)),0,V)},X.CalcLength=function(Y){var V=new RegExp(this._sPattern,"g"),Z=0,Q;while(Q=V.exec(Y))Z+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return Z}}var r1=new Lh;var PS=_1(YM(),1),qH=_1(gI(),1);import{createSocket as Ld}from"dgram";import{createSocket as $d}from"dgram";import*as RS from"net";import{connect as Fd}from"net";import{createSign as xd,randomBytes as kd,webcrypto as _d}from"crypto";var Aq0=_1(xM(),1);var C7={};qN(C7,{verifySchema:()=>um,fromBER:()=>Q4,compareSchema:()=>X4,VisibleString:()=>SW,ViewWriter:()=>lV,VideotexString:()=>MX,ValueBlock:()=>a8,Utf8String:()=>y5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>TX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>IX,RelativeObjectIdentifier:()=>iU,RawData:()=>MP,PrintableString:()=>DX,Primitive:()=>w6,OctetString:()=>O7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>j7,Integer:()=>j6,IA5String:()=>PX,HexBlock:()=>w7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lM,DEFAULT_MAX_DEPTH:()=>pM,DEFAULT_MAX_CONTENT_LENGTH:()=>dM,DATE:()=>rU,Constructed:()=>h8,Choice:()=>oV,CharacterString:()=>BX,Boolean:()=>zX,BmpString:()=>OX,BitString:()=>K7,BaseStringBlock:()=>lU,BaseBlock:()=>$8,Any:()=>V4});/*!
|
|
148
|
+
* MIT License
|
|
149
|
+
*
|
|
150
|
+
* Copyright (c) 2017-2024 Peculiar Ventures, LLC
|
|
151
|
+
*
|
|
152
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
153
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
154
|
+
* in the Software without restriction, including without limitation the rights
|
|
155
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
156
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
157
|
+
* furnished to do so, subject to the following conditions:
|
|
158
|
+
*
|
|
159
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
160
|
+
* copies or substantial portions of the Software.
|
|
161
|
+
*
|
|
162
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
163
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
164
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
165
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
166
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
167
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
168
|
+
* SOFTWARE.
|
|
169
|
+
*
|
|
170
|
+
*/class S0{static isArrayBuffer(W){return Object.prototype.toString.call(W)==="[object ArrayBuffer]"}static toArrayBuffer(W){if(this.isArrayBuffer(W))return W;if(W.byteLength===W.buffer.byteLength)return W.buffer;if(W.byteOffset===0&&W.byteLength===W.buffer.byteLength)return W.buffer;return this.toUint8Array(W.buffer).slice(W.byteOffset,W.byteOffset+W.byteLength).buffer}static toUint8Array(W){return this.toView(W,Uint8Array)}static toView(W,G){if(W.constructor===G)return W;if(this.isArrayBuffer(W))return new G(W);if(this.isArrayBufferView(W))return new G(W.buffer,W.byteOffset,W.byteLength);throw TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(W){return this.isArrayBufferView(W)||this.isArrayBuffer(W)}static isArrayBufferView(W){return ArrayBuffer.isView(W)||W&&this.isArrayBuffer(W.buffer)}static isEqual(W,G){let X=S0.toUint8Array(W),Y=S0.toUint8Array(G);if(X.length!==Y.byteLength)return!1;for(let V=0;V<X.length;V++)if(X[V]!==Y[V])return!1;return!0}static concat(...W){let G;if(Array.isArray(W[0])&&!(W[1]instanceof Function))G=W[0];else if(Array.isArray(W[0])&&W[1]instanceof Function)G=W[0];else if(W[W.length-1]instanceof Function)G=W.slice(0,W.length-1);else G=W;let X=0;for(let Z of G)X+=Z.byteLength;let Y=new Uint8Array(X),V=0;for(let Z of G){let Q=this.toUint8Array(Z);Y.set(Q,V),V+=Q.length}if(W[W.length-1]instanceof Function)return this.toView(Y,W[W.length-1]);return Y.buffer}}var uI="string",zm=/^[0-9a-f\s]+$/i,wm=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,jm=/^[a-zA-Z0-9-_]+$/;class hI{static fromString(W){let G=unescape(encodeURIComponent(W)),X=new Uint8Array(G.length);for(let Y=0;Y<G.length;Y++)X[Y]=G.charCodeAt(Y);return X.buffer}static toString(W){let G=S0.toUint8Array(W),X="";for(let V=0;V<G.length;V++)X+=String.fromCharCode(G[V]);return decodeURIComponent(escape(X))}}class _5{static toString(W,G=!1){let X=S0.toArrayBuffer(W),Y=new DataView(X),V="";for(let Z=0;Z<X.byteLength;Z+=2){let Q=Y.getUint16(Z,G);V+=String.fromCharCode(Q)}return V}static fromString(W,G=!1){let X=new ArrayBuffer(W.length*2),Y=new DataView(X);for(let V=0;V<W.length;V++)Y.setUint16(V*2,W.charCodeAt(V),G);return X}}class l0{static isHex(W){return typeof W===uI&&zm.test(W)}static isBase64(W){return typeof W===uI&&wm.test(W)}static isBase64Url(W){return typeof W===uI&&jm.test(W)}static ToString(W,G="utf8"){let X=S0.toUint8Array(W);switch(G.toLowerCase()){case"utf8":return this.ToUtf8String(X);case"binary":return this.ToBinary(X);case"hex":return this.ToHex(X);case"base64":return this.ToBase64(X);case"base64url":return this.ToBase64Url(X);case"utf16le":return _5.toString(X,!0);case"utf16":case"utf16be":return _5.toString(X);default:throw Error(`Unknown type of encoding '${G}'`)}}static FromString(W,G="utf8"){if(!W)return new ArrayBuffer(0);switch(G.toLowerCase()){case"utf8":return this.FromUtf8String(W);case"binary":return this.FromBinary(W);case"hex":return this.FromHex(W);case"base64":return this.FromBase64(W);case"base64url":return this.FromBase64Url(W);case"utf16le":return _5.fromString(W,!0);case"utf16":case"utf16be":return _5.fromString(W);default:throw Error(`Unknown type of encoding '${G}'`)}}static ToBase64(W){let G=S0.toUint8Array(W);if(typeof btoa<"u"){let X=this.ToString(G,"binary");return btoa(X)}else return Buffer.from(G).toString("base64")}static FromBase64(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!l0.isBase64(G))throw TypeError("Argument 'base64Text' is not Base64 encoded");if(typeof atob<"u")return this.FromBinary(atob(G));else return new Uint8Array(Buffer.from(G,"base64")).buffer}static FromBase64Url(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!l0.isBase64Url(G))throw TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(G.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(W){return this.ToBase64(W).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(W,G=l0.DEFAULT_UTF8_ENCODING){switch(G){case"ascii":return this.FromBinary(W);case"utf8":return hI.fromString(W);case"utf16":case"utf16be":return _5.fromString(W);case"utf16le":case"usc2":return _5.fromString(W,!0);default:throw Error(`Unknown type of encoding '${G}'`)}}static ToUtf8String(W,G=l0.DEFAULT_UTF8_ENCODING){switch(G){case"ascii":return this.ToBinary(W);case"utf8":return hI.toString(W);case"utf16":case"utf16be":return _5.toString(W);case"utf16le":case"usc2":return _5.toString(W,!0);default:throw Error(`Unknown type of encoding '${G}'`)}}static FromBinary(W){let G=W.length,X=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);return X.buffer}static ToBinary(W){let G=S0.toUint8Array(W),X="";for(let Y=0;Y<G.length;Y++)X+=String.fromCharCode(G[Y]);return X}static ToHex(W){let G=S0.toUint8Array(W),X="",Y=G.length;for(let V=0;V<Y;V++){let Z=G[V];if(Z<16)X+="0";X+=Z.toString(16)}return X}static FromHex(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!l0.isHex(G))throw TypeError("Argument 'hexString' is not HEX encoded");if(G.length%2)G=`0${G}`;let X=new Uint8Array(G.length/2);for(let Y=0;Y<G.length;Y=Y+2){let V=G.slice(Y,Y+2);X[Y/2]=parseInt(V,16)}return X.buffer}static ToUtf16String(W,G=!1){return _5.toString(W,G)}static FromUtf16String(W,G=!1){return _5.fromString(W,G)}static Base64Padding(W){let G=4-W.length%4;if(G<4)for(let X=0;X<G;X++)W+="=";return W}static formatString(W){return(W===null||W===void 0?void 0:W.replace(/[\n\r\t ]/g,""))||""}}l0.DEFAULT_UTF8_ENCODING="utf8";function kM(...W){let G=W.map((V)=>V.byteLength).reduce((V,Z)=>V+Z),X=new Uint8Array(G),Y=0;return W.map((V)=>new Uint8Array(V)).forEach((V)=>{for(let Z of V)X[Y++]=Z}),X.buffer}function _M(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let V=0;V<W.byteLength;V++)if(X[V]!==Y[V])return!1;return!0}/*!
|
|
171
|
+
Copyright (c) Peculiar Ventures, LLC
|
|
172
|
+
*/function FW(W,G){let X=0;if(W.length===1)return W[0];for(let Y=W.length-1;Y>=0;Y--)X+=W[W.length-1-Y]*Math.pow(2,G*Y);return X}function I6(W,G,X=-1){let Y=X,V=W,Z=0,Q=Math.pow(2,G);for(let J=1;J<8;J++){if(W<Q){let U;if(Y<0)U=new ArrayBuffer(J),Z=J;else{if(Y<J)return new ArrayBuffer(0);U=new ArrayBuffer(Y),Z=Y}let q=new Uint8Array(U);for(let A=J-1;A>=0;A--){let N=Math.pow(2,A*G);q[Z-A-1]=Math.floor(V/N),V-=q[Z-A-1]*N}return U}Q*=Math.pow(2,G)}return new ArrayBuffer(0)}function bU(...W){let G=0,X=0;for(let Z of W)G+=Z.length;let Y=new ArrayBuffer(G),V=new Uint8Array(Y);for(let Z of W)V.set(Z,X),X+=Z.length;return V}function bI(){let W=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let J=W[0]===255&&W[1]&128,U=W[0]===0&&(W[1]&128)===0;if(J||U)this.warnings.push("Needlessly long format")}let G=new ArrayBuffer(this.valueHex.byteLength),X=new Uint8Array(G);for(let J=0;J<this.valueHex.byteLength;J++)X[J]=0;X[0]=W[0]&128;let Y=FW(X,8),V=new ArrayBuffer(this.valueHex.byteLength),Z=new Uint8Array(V);for(let J=0;J<this.valueHex.byteLength;J++)Z[J]=W[J];return Z[0]&=127,FW(Z,8)-Y}function yM(W){let G=W<0?W*-1:W,X=128;for(let Y=1;Y<8;Y++){if(G<=X){if(W<0){let Q=X-G,J=I6(Q,8,Y),U=new Uint8Array(J);return U[0]|=128,J}let V=I6(G,8,Y),Z=new Uint8Array(V);if(Z[0]&128){let Q=V.slice(0),J=new Uint8Array(Q);V=new ArrayBuffer(V.byteLength+1),Z=new Uint8Array(V);for(let U=0;U<Q.byteLength;U++)Z[U+1]=J[U];Z[0]=0}return V}X*=Math.pow(2,8)}return new ArrayBuffer(0)}function vM(W,G){if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let V=0;V<X.length;V++)if(X[V]!==Y[V])return!1;return!0}function u9(W,G){let X=W.toString(10);if(G<X.length)return"";let Y=G-X.length,V=Array(Y);for(let Q=0;Q<Y;Q++)V[Q]="0";return V.join("").concat(X)}var de=Math.log(2);/*!
|
|
173
|
+
* Copyright (c) 2014, GMO GlobalSign
|
|
174
|
+
* Copyright (c) 2015-2022, Peculiar Ventures
|
|
175
|
+
* All rights reserved.
|
|
176
|
+
*
|
|
177
|
+
* Author 2014-2019, Yury Strozhevsky
|
|
178
|
+
*
|
|
179
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
|
180
|
+
* are permitted provided that the following conditions are met:
|
|
181
|
+
*
|
|
182
|
+
* * Redistributions of source code must retain the above copyright notice, this
|
|
183
|
+
* list of conditions and the following disclaimer.
|
|
184
|
+
*
|
|
185
|
+
* * Redistributions in binary form must reproduce the above copyright notice, this
|
|
186
|
+
* list of conditions and the following disclaimer in the documentation and/or
|
|
187
|
+
* other materials provided with the distribution.
|
|
188
|
+
*
|
|
189
|
+
* * Neither the name of the copyright holder nor the names of its
|
|
190
|
+
* contributors may be used to endorse or promote products derived from
|
|
191
|
+
* this software without specific prior written permission.
|
|
192
|
+
*
|
|
193
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
194
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
195
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
196
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
197
|
+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
198
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
199
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
200
|
+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
201
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
202
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
203
|
+
*
|
|
204
|
+
*/function mU(){if(typeof BigInt>"u")throw Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function fI(W){let G=0,X=0;for(let V=0;V<W.length;V++){let Z=W[V];G+=Z.byteLength}let Y=new Uint8Array(G);for(let V=0;V<W.length;V++){let Z=W[V];Y.set(new Uint8Array(Z),X),X+=Z.byteLength}return Y.buffer}function Z4(W,G,X,Y){if(!(G instanceof Uint8Array))return W.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1;if(!G.byteLength)return W.error="Wrong parameter: inputBuffer has zero length",!1;if(X<0)return W.error="Wrong parameter: inputOffset less than zero",!1;if(Y<0)return W.error="Wrong parameter: inputLength less than zero",!1;if(G.byteLength-X-Y<0)return W.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1;return!0}class lV{constructor(){this.items=[]}write(W){this.items.push(W)}final(){return fI(this.items)}}var fV=[new Uint8Array([1])],gM="0123456789",mI="name",uM="valueHexView",Cm="isHexOnly",Dm="idBlock",Tm="tagClass",Mm="tagNumber",Pm="isConstructed",Rm="fromBER",Lm="toBER",Bm="local",h9="",z7=new ArrayBuffer(0),pU=new Uint8Array(0),pV="EndOfContent",bM="OCTET STRING",mM="BIT STRING";function w7(W){var G;return G=class extends W{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(Y){this.valueHexView=new Uint8Array(Y)}constructor(...Y){var V;super(...Y);let Z=Y[0]||{};this.isHexOnly=(V=Z.isHexOnly)!==null&&V!==void 0?V:!1,this.valueHexView=Z.valueHex?S0.toUint8Array(Z.valueHex):pU}fromBER(Y,V,Z,Q){let J=Y instanceof ArrayBuffer?new Uint8Array(Y):Y;if(!Z4(this,J,V,Z))return-1;let U=V+Z;if(this.valueHexView=J.subarray(V,U),!this.valueHexView.length)return this.warnings.push("Zero buffer length"),V;return this.blockLength=Z,U}toBER(Y=!1){if(!this.isHexOnly)return this.error="Flag 'isHexOnly' is not set, abort",z7;if(Y)return new ArrayBuffer(this.valueHexView.byteLength);return this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:l0.ToHex(this.valueHexView)}}},G.NAME="hexBlock",G}class z6{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(W){this.valueBeforeDecodeView=new Uint8Array(W)}constructor({blockLength:W=0,error:G=h9,warnings:X=[],valueBeforeDecode:Y=pU}={}){this.blockLength=W,this.error=G,this.warnings=X,this.valueBeforeDecodeView=S0.toUint8Array(Y)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:l0.ToHex(this.valueBeforeDecodeView)}}}z6.NAME="baseBlock";class a8 extends z6{fromBER(W,G,X,Y){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(W,G){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}}a8.NAME="valueBlock";class cI extends w7(z6){constructor({idBlock:W={}}={}){var G,X,Y,V;super();if(W)this.isHexOnly=(G=W.isHexOnly)!==null&&G!==void 0?G:!1,this.valueHexView=W.valueHex?S0.toUint8Array(W.valueHex):pU,this.tagClass=(X=W.tagClass)!==null&&X!==void 0?X:-1,this.tagNumber=(Y=W.tagNumber)!==null&&Y!==void 0?Y:-1,this.isConstructed=(V=W.isConstructed)!==null&&V!==void 0?V:!1;else this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1}toBER(W=!1){let G=0;switch(this.tagClass){case 1:G|=0;break;case 2:G|=64;break;case 3:G|=128;break;case 4:G|=192;break;default:return this.error="Unknown tag class",z7}if(this.isConstructed)G|=32;if(this.tagNumber<31&&!this.isHexOnly){let Y=new Uint8Array(1);if(!W){let V=this.tagNumber;V&=31,G|=V,Y[0]=G}return Y.buffer}if(!this.isHexOnly){let Y=I6(this.tagNumber,7),V=new Uint8Array(Y),Z=Y.byteLength,Q=new Uint8Array(Z+1);if(Q[0]=G|31,!W){for(let J=0;J<Z-1;J++)Q[J+1]=V[J]|128;Q[Z]=V[Z-1]}return Q.buffer}let X=new Uint8Array(this.valueHexView.byteLength+1);if(X[0]=G|31,!W){let Y=this.valueHexView;for(let V=0;V<Y.length-1;V++)X[V+1]=Y[V]|128;X[this.valueHexView.byteLength]=Y[Y.length-1]}return X.buffer}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!Z4(this,Y,G,X))return-1;let V=Y.subarray(G,G+X);if(V.length===0)return this.error="Zero buffer length",-1;switch(V[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(V[0]&32)===32,this.isHexOnly=!1;let Q=V[0]&31;if(Q!==31)this.tagNumber=Q,this.blockLength=1;else{let J=0;while(!0){let q=J+1;if(q>=V.length)return this.error="End of input reached before message was fully decoded",-1;if(J++,(V[q]&128)===0)break}this.blockLength=J+1;let U=this.valueHexView=new Uint8Array(J);for(let q=0;q<J;q++)U[q]=V[q+1]&127;if(this.blockLength<=9)this.tagNumber=FW(U,7);else this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded")}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return G+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}}cI.NAME="identificationBlock";class pI extends z6{constructor({lenBlock:W={}}={}){var G,X,Y;super();this.isIndefiniteForm=(G=W.isIndefiniteForm)!==null&&G!==void 0?G:!1,this.longFormUsed=(X=W.longFormUsed)!==null&&X!==void 0?X:!1,this.length=(Y=W.length)!==null&&Y!==void 0?Y:0}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!Z4(this,Y,G,X))return-1;let V=Y.subarray(G,G+X);if(V.length===0)return this.error="Zero buffer length",-1;if(V[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=V[0]===128,this.isIndefiniteForm)return this.blockLength=1,G+this.blockLength;if(this.longFormUsed=!!(V[0]&128),this.longFormUsed===!1)return this.length=V[0],this.blockLength=1,G+this.blockLength;let Z=V[0]&127;if(Z>8)return this.error="Too big integer",-1;if(Z+1>V.length)return this.error="End of input reached before message was fully decoded",-1;let Q=G+1,J=Y.subarray(Q,Q+Z);if(J[Z-1]===0)this.warnings.push("Needlessly long encoded length");if(this.length=FW(J,8),this.longFormUsed&&this.length<=127)this.warnings.push("Unnecessary usage of long length form");return this.blockLength=Z+1,G+this.blockLength}toBER(W=!1){let G,X;if(this.length>127)this.longFormUsed=!0;if(this.isIndefiniteForm){if(G=new ArrayBuffer(1),W===!1)X=new Uint8Array(G),X[0]=128;return G}if(this.longFormUsed){let Y=I6(this.length,8);if(Y.byteLength>127)return this.error="Too big length",z7;if(G=new ArrayBuffer(Y.byteLength+1),W)return G;let V=new Uint8Array(Y);X=new Uint8Array(G),X[0]=Y.byteLength|128;for(let Z=0;Z<Y.byteLength;Z++)X[Z+1]=V[Z];return G}if(G=new ArrayBuffer(1),W===!1)X=new Uint8Array(G),X[0]=this.length;return G}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}}pI.NAME="lengthBlock";var b0={};class $8 extends z6{constructor({name:W=h9,optional:G=!1,primitiveSchema:X,...Y}={},V){super(Y);if(this.name=W,this.optional=G,X)this.primitiveSchema=X;this.idBlock=new cI(Y),this.lenBlock=new pI(Y),this.valueBlock=V?new V(Y):new a8(Y)}fromBER(W,G,X,Y){let V=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length,Y);if(V===-1)return this.error=this.valueBlock.error,V;if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return V}toBER(W,G){let X=G||new lV;if(!G)fM(this);let Y=this.idBlock.toBER(W);if(X.write(Y),this.lenBlock.isIndefiniteForm)X.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(W,X),X.write(new ArrayBuffer(2));else{let V=this.valueBlock.toBER(W);this.lenBlock.length=V.byteLength;let Z=this.lenBlock.toBER(W);X.write(Z),X.write(V)}if(!G)return X.final();return z7}toJSON(){let W={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};if(this.primitiveSchema)W.primitiveSchema=this.primitiveSchema.toJSON();return W}toString(W="ascii"){if(W==="ascii")return this.onAsciiEncoding();return l0.ToHex(this.toBER())}onAsciiEncoding(){let W=this.constructor.NAME,G=l0.ToHex(this.valueBlock.valueBeforeDecodeView);return`${W} : ${G}`}isEqual(W){if(this===W)return!0;if(!(W instanceof this.constructor))return!1;let G=this.toBER(),X=W.toBER();return vM(G,X)}}$8.NAME="BaseBlock";function fM(W){var G;if(W instanceof b0.Constructed){for(let X of W.valueBlock.value)if(fM(X))W.lenBlock.isIndefiniteForm=!0}return!!((G=W.lenBlock)===null||G===void 0?void 0:G.isIndefiniteForm)}class lU extends $8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor({value:W=h9,...G}={},X){super(G,X);if(W)this.fromString(W)}fromBER(W,G,X){let Y=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length);if(Y===-1)return this.error=this.valueBlock.error,Y;if(this.fromBuffer(this.valueBlock.valueHexView),!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return Y}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}}lU.NAME="BaseStringBlock";class lI extends w7(a8){constructor({isHexOnly:W=!0,...G}={}){super(G);this.isHexOnly=W}}lI.NAME="PrimitiveValueBlock";var cM;class w6 extends $8{constructor(W={}){super(W,lI);this.idBlock.isConstructed=!1}}cM=w6;(()=>{b0.Primitive=cM})();w6.NAME="PRIMITIVE";var pM=100,lM=1e4,dM=16777216,Em="Maximum ASN.1 nesting depth exceeded",$m="Maximum ASN.1 node count exceeded",Fm="Maximum ASN.1 content length exceeded";function dV(W={}){var G,X,Y;return{depth:0,maxDepth:(G=W.maxDepth)!==null&&G!==void 0?G:pM,nodesCount:0,maxNodes:(X=W.maxNodes)!==null&&X!==void 0?X:lM,maxContentLength:(Y=W.maxContentLength)!==null&&Y!==void 0?Y:dM}}function Sm(W){let G=new $8({},a8);return G.error=W,{offset:-1,result:G}}function xm(W){if(W.nodesCount+=1,W.nodesCount>W.maxNodes)return $m;return}function km(W,G){if(W>G.maxContentLength)return Fm;return}function dI(W,G,X,Y){let V=Y.depth+1;if(V>Y.maxDepth)return Sm(Em);Y.depth=V;try{return dU(W,G,X,Y)}finally{Y.depth-=1}}function _m(W,G){if(W instanceof G)return W;let X=new G;return X.idBlock=W.idBlock,X.lenBlock=W.lenBlock,X.warnings=W.warnings,X.valueBeforeDecodeView=W.valueBeforeDecodeView,X}function dU(W,G=0,X=W.length,Y=dV()){let V=G,Z=new $8({},a8),Q=new z6;if(!Z4(Q,W,G,X))return Z.error=Q.error,{offset:-1,result:Z};if(!W.subarray(G,G+X).length)return Z.error="Zero buffer length",{offset:-1,result:Z};let U=xm(Y);if(U)return Z.error=U,{offset:-1,result:Z};let q=Z.idBlock.fromBER(W,G,X);if(Z.idBlock.warnings.length)Z.warnings.concat(Z.idBlock.warnings);if(q===-1)return Z.error=Z.idBlock.error,{offset:-1,result:Z};if(G=q,X-=Z.idBlock.blockLength,q=Z.lenBlock.fromBER(W,G,X),Z.lenBlock.warnings.length)Z.warnings.concat(Z.lenBlock.warnings);if(q===-1)return Z.error=Z.lenBlock.error,{offset:-1,result:Z};G=q,X-=Z.lenBlock.blockLength;let A=Z.lenBlock.isIndefiniteForm?X:Z.lenBlock.length,N=km(A,Y);if(N)return Z.error=N,{offset:-1,result:Z};if(!Z.idBlock.isConstructed&&Z.lenBlock.isIndefiniteForm)return Z.error="Indefinite length form used for primitive encoding form",{offset:-1,result:Z};let H=$8;switch(Z.idBlock.tagClass){case 1:if(Z.idBlock.tagNumber>=37&&Z.idBlock.isHexOnly===!1)return Z.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:Z};switch(Z.idBlock.tagNumber){case 0:if(Z.idBlock.isConstructed&&Z.lenBlock.length>0)return Z.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:Z};H=b0.EndOfContent;break;case 1:H=b0.Boolean;break;case 2:H=b0.Integer;break;case 3:H=b0.BitString;break;case 4:H=b0.OctetString;break;case 5:H=b0.Null;break;case 6:H=b0.ObjectIdentifier;break;case 10:H=b0.Enumerated;break;case 12:H=b0.Utf8String;break;case 13:H=b0.RelativeObjectIdentifier;break;case 14:H=b0.TIME;break;case 15:return Z.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:Z};case 16:H=b0.Sequence;break;case 17:H=b0.Set;break;case 18:H=b0.NumericString;break;case 19:H=b0.PrintableString;break;case 20:H=b0.TeletexString;break;case 21:H=b0.VideotexString;break;case 22:H=b0.IA5String;break;case 23:H=b0.UTCTime;break;case 24:H=b0.GeneralizedTime;break;case 25:H=b0.GraphicString;break;case 26:H=b0.VisibleString;break;case 27:H=b0.GeneralString;break;case 28:H=b0.UniversalString;break;case 29:H=b0.CharacterString;break;case 30:H=b0.BmpString;break;case 31:H=b0.DATE;break;case 32:H=b0.TimeOfDay;break;case 33:H=b0.DateTime;break;case 34:H=b0.Duration;break;default:{let z=Z.idBlock.isConstructed?new b0.Constructed:new b0.Primitive;z.idBlock=Z.idBlock,z.lenBlock=Z.lenBlock,z.warnings=Z.warnings,Z=z}}break;case 2:case 3:case 4:default:H=Z.idBlock.isConstructed?b0.Constructed:b0.Primitive}return Z=_m(Z,H),q=Z.fromBER(W,G,A,Y),Z.valueBeforeDecodeView=W.subarray(V,V+Z.blockLength),{offset:q,result:Z}}function Q4(W,G={}){if(!W.byteLength){let X=new $8({},a8);return X.error="Input buffer has zero length",{offset:-1,result:X}}return dU(S0.toUint8Array(W).slice(),0,W.byteLength,dV(G))}function ym(W,G){if(W)return 1;return G}class Y4 extends a8{constructor({value:W=[],isIndefiniteForm:G=!1,...X}={}){super(X);this.value=W,this.isIndefiniteForm=G}fromBER(W,G,X,Y){let V=S0.toUint8Array(W),Z=Y!==null&&Y!==void 0?Y:dV();if(!Z4(this,V,G,X))return-1;if(this.valueBeforeDecodeView=V.subarray(G,G+X),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),G;let Q=G;while(ym(this.isIndefiniteForm,X)>0){let J=dI(V,Q,X,Z);if(J.offset===-1)return this.error=J.result.error,this.warnings.concat(J.result.warnings),-1;if(Q=J.offset,this.blockLength+=J.result.blockLength,X-=J.result.blockLength,this.value.push(J.result),this.isIndefiniteForm&&J.result.constructor.NAME===pV)break}if(this.isIndefiniteForm)if(this.value[this.value.length-1].constructor.NAME===pV)this.value.pop();else this.warnings.push("No EndOfContent block encoded");return Q}toBER(W,G){let X=G||new lV;for(let Y=0;Y<this.value.length;Y++)this.value[Y].toBER(W,X);if(!G)return X.final();return z7}toJSON(){let W={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let G of this.value)W.value.push(G.toJSON());return W}}Y4.NAME="ConstructedValueBlock";var oM;class h8 extends $8{constructor(W={}){super(W,Y4);this.idBlock.isConstructed=!0}fromBER(W,G,X,Y){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let V=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length,Y);if(V===-1)return this.error=this.valueBlock.error,V;if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return V}onAsciiEncoding(){let W=[];for(let X of this.valueBlock.value)W.push(X.toString("ascii").split(`
|
|
205
|
+
`).map((Y)=>` ${Y}`).join(`
|
|
206
|
+
`));let G=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return W.length?`${G} :
|
|
207
|
+
${W.join(`
|
|
208
|
+
`)}`:`${G} :`}}oM=h8;(()=>{b0.Constructed=oM})();h8.NAME="CONSTRUCTED";class oI extends a8{fromBER(W,G,X){return G}toBER(W){return z7}}oI.override="EndOfContentValueBlock";var nM;class oU extends $8{constructor(W={}){super(W,oI);this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}nM=oU;(()=>{b0.EndOfContent=nM})();oU.NAME=pV;var iM;class j7 extends $8{constructor(W={}){super(W,a8);this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(W,G,X){if(this.lenBlock.length>0)this.warnings.push("Non-zero length of value block for Null type");if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(this.blockLength+=X,G+X>W.byteLength)return this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1;return G+X}toBER(W,G){let X=new ArrayBuffer(2);if(!W){let Y=new Uint8Array(X);Y[0]=5,Y[1]=0}if(G)G.write(X);return X}onAsciiEncoding(){return`${this.constructor.NAME}`}}iM=j7;(()=>{b0.Null=iM})();j7.NAME="NULL";class nI extends w7(a8){get value(){for(let W of this.valueHexView)if(W>0)return!0;return!1}set value(W){this.valueHexView[0]=W?255:0}constructor({value:W,...G}={}){super(G);if(G.valueHex)this.valueHexView=S0.toUint8Array(G.valueHex);else this.valueHexView=new Uint8Array(1);if(W)this.value=W}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!Z4(this,Y,G,X))return-1;if(this.valueHexView=Y.subarray(G,G+X),X>1)this.warnings.push("Boolean value encoded in more then 1 octet");return this.isHexOnly=!0,bI.call(this),this.blockLength=X,G+X}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}nI.NAME="BooleanValueBlock";var rM;class zX extends $8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor(W={}){super(W,nI);this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}rM=zX;(()=>{b0.Boolean=rM})();zX.NAME="BOOLEAN";class iI extends w7(Y4){constructor({isConstructed:W=!1,...G}={}){super(G);this.isConstructed=W}fromBER(W,G,X,Y){let V=0;if(this.isConstructed){if(this.isHexOnly=!1,V=Y4.prototype.fromBER.call(this,W,G,X,Y),V===-1)return V;for(let Z=0;Z<this.value.length;Z++){let Q=this.value[Z].constructor.NAME;if(Q===pV)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;if(Q!==bM)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,V=super.fromBER(W,G,X),this.blockLength=X;return V}toBER(W,G){if(this.isConstructed)return Y4.prototype.toBER.call(this,W,G);return W?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}iI.NAME="OctetStringValueBlock";var rI;class O7 extends $8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,V;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((V=X.value)===null||V===void 0?void 0:V.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},iI);this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(W,G,X,Y){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,X===0){if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;return G}if(!this.valueBlock.isConstructed){let Z=(W instanceof ArrayBuffer?new Uint8Array(W):W).subarray(G,G+X);try{if(Z.byteLength){let Q=Y!==null&&Y!==void 0?Y:dV(),J=dI(Z,0,Z.byteLength,Q);if(J.offset!==-1&&J.offset===X)this.valueBlock.value=[J.result]}}catch{}}return super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return h8.prototype.onAsciiEncoding.call(this);let W=this.constructor.NAME,G=l0.ToHex(this.valueBlock.valueHexView);return`${W} : ${G}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let W=[];for(let G of this.valueBlock.value)if(G instanceof rI)W.push(G.valueBlock.valueHexView);return S0.concat(W)}}rI=O7;(()=>{b0.OctetString=rI})();O7.NAME=bM;class aI extends w7(Y4){constructor({unusedBits:W=0,isConstructed:G=!1,...X}={}){super(X);this.unusedBits=W,this.isConstructed=G,this.blockLength=this.valueHexView.byteLength}fromBER(W,G,X,Y){if(!X)return G;let V=-1;if(this.isConstructed){if(V=Y4.prototype.fromBER.call(this,W,G,X,Y),V===-1)return V;for(let J of this.value){let U=J.constructor.NAME;if(U===pV)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;if(U!==mM)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let q=J.valueBlock;if(this.unusedBits>0&&q.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=q.unusedBits}return V}let Z=S0.toUint8Array(W);if(!Z4(this,Z,G,X))return-1;let Q=Z.subarray(G,G+X);if(this.unusedBits=Q[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let J=Q.subarray(1);try{if(J.byteLength){let U=Y!==null&&Y!==void 0?Y:dV(),q=dI(J,0,J.byteLength,U);if(q.offset!==-1&&q.offset===X-1)this.value=[q.result]}}catch{}}return this.valueHexView=Q.subarray(1),this.blockLength=Q.length,G+X}toBER(W,G){if(this.isConstructed)return Y4.prototype.toBER.call(this,W,G);if(W)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let Y=new Uint8Array(1);return Y[0]=0,Y.buffer}let X=new Uint8Array(this.valueHexView.length+1);return X[0]=this.unusedBits,X.set(this.valueHexView,1),X.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}aI.NAME="BitStringValueBlock";var aM;class K7 extends $8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,V;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((V=X.value)===null||V===void 0?void 0:V.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},aI);this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(W,G,X,Y){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return h8.prototype.onAsciiEncoding.call(this);else{let W=[],G=this.valueBlock.valueHexView;for(let Z of G)W.push(Z.toString(2).padStart(8,"0"));let X=W.join(""),Y=this.constructor.NAME,V=X.substring(0,X.length-this.valueBlock.unusedBits);return`${Y} : ${V}`}}}aM=K7;(()=>{b0.BitString=aM})();K7.NAME=mM;var sM;function vm(W,G){let X=new Uint8Array([0]),Y=new Uint8Array(W),V=new Uint8Array(G),Z=Y.slice(0),Q=Z.length-1,J=V.slice(0),U=J.length-1,q=0,A=U<Q?Q:U,N=0;for(let H=A;H>=0;H--,N++){switch(!0){case N<J.length:q=Z[Q-N]+J[U-N]+X[0];break;default:q=Z[Q-N]+X[0]}switch(X[0]=q/10,!0){case N>=Z.length:Z=bU(new Uint8Array([q%10]),Z);break;default:Z[Q-N]=q%10}}if(X[0]>0)Z=bU(X,Z);return Z}function hM(W){if(W>=fV.length)for(let G=fV.length;G<=W;G++){let X=new Uint8Array([0]),Y=fV[G-1].slice(0);for(let V=Y.length-1;V>=0;V--){let Z=new Uint8Array([(Y[V]<<1)+X[0]]);X[0]=Z[0]/10,Y[V]=Z[0]%10}if(X[0]>0)Y=bU(X,Y);fV.push(Y)}return fV[W]}function gm(W,G){let X=0,Y=new Uint8Array(W),V=new Uint8Array(G),Z=Y.slice(0),Q=Z.length-1,J=V.slice(0),U=J.length-1,q,A=0;for(let N=U;N>=0;N--,A++)switch(q=Z[Q-A]-J[U-A]-X,!0){case q<0:X=1,Z[Q-A]=q+10;break;default:X=0,Z[Q-A]=q}if(X>0)for(let N=Q-U+1;N>=0;N--,A++)if(q=Z[Q-A]-X,q<0)X=1,Z[Q-A]=q+10;else{X=0,Z[Q-A]=q;break}return Z.slice()}class nU extends w7(a8){setValueHex(){if(this.valueHexView.length>=4)this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0;else if(this.isHexOnly=!1,this.valueHexView.length>0)this._valueDec=bI.call(this)}constructor({value:W,...G}={}){super(G);if(this._valueDec=0,G.valueHex)this.setValueHex();if(W!==void 0)this.valueDec=W}set valueDec(W){this._valueDec=W,this.isHexOnly=!1,this.valueHexView=new Uint8Array(yM(W))}get valueDec(){return this._valueDec}fromDER(W,G,X,Y=0){let V=this.fromBER(W,G,X);if(V===-1)return V;let Z=this.valueHexView;if(Z[0]===0&&(Z[1]&128)!==0)this.valueHexView=Z.subarray(1);else if(Y!==0){if(Z.length<Y){if(Y-Z.length>1)Y=Z.length+1;this.valueHexView=Z.subarray(Y-Z.length)}}return V}toDER(W=!1){let G=this.valueHexView;switch(!0){case(G[0]&128)!==0:{let X=new Uint8Array(this.valueHexView.length+1);X[0]=0,X.set(G,1),this.valueHexView=X}break;case(G[0]===0&&(G[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(W)}fromBER(W,G,X){let Y=super.fromBER(W,G,X);if(Y===-1)return Y;return this.setValueHex(),Y}toBER(W){return W?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let W=this.valueHexView.length*8-1,G=new Uint8Array(this.valueHexView.length*8/3),X=0,Y,V=this.valueHexView,Z="",Q=!1;for(let J=V.byteLength-1;J>=0;J--){Y=V[J];for(let U=0;U<8;U++){if((Y&1)===1)switch(X){case W:G=gm(hM(X),G),Z="-";break;default:G=vm(G,hM(X))}X++,Y>>=1}}for(let J=0;J<G.length;J++){if(G[J])Q=!0;if(Q)Z+=gM.charAt(G[J])}if(Q===!1)Z+=gM.charAt(0);return Z}}sM=nU;nU.NAME="IntegerValueBlock";(()=>{Object.defineProperty(sM.prototype,"valueHex",{set:function(W){this.valueHexView=new Uint8Array(W),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}})})();var cV;class j6 extends $8{constructor(W={}){super(W,nU);this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return mU(),BigInt(this.valueBlock.toString())}static fromBigInt(W){mU();let G=BigInt(W),X=new lV,Y=G.toString(16).replace(/^-/,""),V=new Uint8Array(l0.FromHex(Y));if(G<0){let Q=new Uint8Array(V.length+(V[0]&128?1:0));Q[0]|=128;let U=BigInt(`0x${l0.ToHex(Q)}`)+G,q=S0.toUint8Array(l0.FromHex(U.toString(16)));q[0]|=128,X.write(q)}else{if(V[0]&128)X.write(new Uint8Array([0]));X.write(V)}return new cV({valueHex:X.final()})}convertToDER(){let W=new cV({valueHex:this.valueBlock.valueHexView});return W.valueBlock.toDER(),W}convertFromDER(){return new cV({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}cV=j6;(()=>{b0.Integer=cV})();j6.NAME="INTEGER";var tM;class wX extends j6{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}tM=wX;(()=>{b0.Enumerated=tM})();wX.NAME="ENUMERATED";class fU extends w7(a8){constructor({valueDec:W=-1,isFirstSid:G=!1,...X}={}){super(X);this.valueDec=W,this.isFirstSid=G}fromBER(W,G,X){if(!X)return G;let Y=S0.toUint8Array(W);if(!Z4(this,Y,G,X))return-1;let V=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=V[Q]&127,this.blockLength++,(V[Q]&128)===0)break;let Z=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)Z[Q]=this.valueHexView[Q];if(this.valueHexView=Z,(V[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}set valueBigInt(W){mU();let G=BigInt(W).toString(2);while(G.length%7)G="0"+G;let X=new Uint8Array(G.length/7);for(let Y=0;Y<X.length;Y++)X[Y]=parseInt(G.slice(Y*7,Y*7+7),2)+(Y+1<X.length?128:0);this.fromBER(X.buffer,0,X.length)}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,V=new Uint8Array(this.blockLength);for(let Z=0;Z<this.blockLength-1;Z++)V[Z]=Y[Z]|128;return V[this.blockLength-1]=Y[this.blockLength-1],V.buffer}let G=I6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",z7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),V=G.byteLength-1;for(let Z=0;Z<V;Z++)X[Z]=Y[Z]|128;X[V]=Y[V]}return X}toString(){let W="";if(this.isHexOnly)W=l0.ToHex(this.valueHexView);else if(this.isFirstSid){let G=this.valueDec;if(this.valueDec<=39)W="0.";else if(this.valueDec<=79)W="1.",G-=40;else W="2.",G-=80;W+=G.toString()}else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}fU.NAME="sidBlock";class sI extends a8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let V=new fU;if(Y=V.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=V.error,Y;if(this.value.length===0)V.isFirstSid=!0;this.blockLength+=V.blockLength,X-=V.blockLength,this.value.push(V)}return Y}toBER(W){let G=[];for(let X=0;X<this.value.length;X++){let Y=this.value[X].toBER(W);if(Y.byteLength===0)return this.error=this.value[X].error,z7;G.push(Y)}return fI(G)}fromString(W){this.value=[];let G=0,X=0,Y="",V=!1;do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);if(G=X+1,V){let Z=this.value[0],Q=0;switch(Z.valueDec){case 0:break;case 1:Q=40;break;case 2:Q=80;break;default:this.value=[];return}let J=parseInt(Y,10);if(isNaN(J))return;Z.valueDec=J+Q,V=!1}else{let Z=new fU;if(Y>Number.MAX_SAFE_INTEGER){mU();let Q=BigInt(Y);Z.valueBigInt=Q}else if(Z.valueDec=parseInt(Y,10),isNaN(Z.valueDec))return;if(!this.value.length)Z.isFirstSid=!0,V=!0;this.value.push(Z)}}while(X!==-1)}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)if(Y=`{${Y}}`,this.value[X].isFirstSid)W=`2.{${Y} - 80}`;else W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}sI.NAME="ObjectIdentifierValueBlock";var eM;class jX extends $8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,sI);this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}eM=jX;(()=>{b0.ObjectIdentifier=eM})();jX.NAME="OBJECT IDENTIFIER";class cU extends w7(z6){constructor({valueDec:W=0,...G}={}){super(G);this.valueDec=W}fromBER(W,G,X){if(X===0)return G;let Y=S0.toUint8Array(W);if(!Z4(this,Y,G,X))return-1;let V=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=V[Q]&127,this.blockLength++,(V[Q]&128)===0)break;let Z=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)Z[Q]=this.valueHexView[Q];if(this.valueHexView=Z,(V[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,V=new Uint8Array(this.blockLength);for(let Z=0;Z<this.blockLength-1;Z++)V[Z]=Y[Z]|128;return V[this.blockLength-1]=Y[this.blockLength-1],V.buffer}let G=I6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",z7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),V=G.byteLength-1;for(let Z=0;Z<V;Z++)X[Z]=Y[Z]|128;X[V]=Y[V]}return X.buffer}toString(){let W="";if(this.isHexOnly)W=l0.ToHex(this.valueHexView);else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}cU.NAME="relativeSidBlock";class tI extends a8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let V=new cU;if(Y=V.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=V.error,Y;this.blockLength+=V.blockLength,X-=V.blockLength,this.value.push(V)}return Y}toBER(W,G){let X=[];for(let Y=0;Y<this.value.length;Y++){let V=this.value[Y].toBER(W);if(V.byteLength===0)return this.error=this.value[Y].error,z7;X.push(V)}return fI(X)}fromString(W){this.value=[];let G=0,X=0,Y="";do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);G=X+1;let V=new cU;if(V.valueDec=parseInt(Y,10),isNaN(V.valueDec))return!0;this.value.push(V)}while(X!==-1);return!0}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)Y=`{${Y}}`,W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}tI.NAME="RelativeObjectIdentifierValueBlock";var WP;class iU extends $8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,tI);this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}WP=iU;(()=>{b0.RelativeObjectIdentifier=WP})();iU.NAME="RelativeObjectIdentifier";var GP;class x9 extends h8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}GP=x9;(()=>{b0.Sequence=GP})();x9.NAME="SEQUENCE";var XP;class b9 extends h8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}XP=b9;(()=>{b0.Set=XP})();b9.NAME="SET";class eI extends w7(a8){constructor({...W}={}){super(W);this.isHexOnly=!0,this.value=h9}toJSON(){return{...super.toJSON(),value:this.value}}}eI.NAME="StringValueBlock";class Wz extends eI{}Wz.NAME="SimpleStringValueBlock";class m9 extends lU{constructor({...W}={}){super(W,Wz)}fromBuffer(W){this.valueBlock.value=String.fromCharCode.apply(null,S0.toUint8Array(W))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);this.valueBlock.value=W}}m9.NAME="SIMPLE STRING";class Gz extends m9{fromBuffer(W){this.valueBlock.valueHexView=S0.toUint8Array(W);try{this.valueBlock.value=l0.ToUtf8String(W)}catch(G){this.warnings.push(`Error during "decodeURIComponent": ${G}, using raw string`),this.valueBlock.value=l0.ToBinary(W)}}fromString(W){this.valueBlock.valueHexView=new Uint8Array(l0.FromUtf8String(W)),this.valueBlock.value=W}}Gz.NAME="Utf8StringValueBlock";var YP;class y5 extends Gz{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}YP=y5;(()=>{b0.Utf8String=YP})();y5.NAME="UTF8String";class Xz extends m9{fromBuffer(W){this.valueBlock.value=l0.ToUtf16String(W),this.valueBlock.valueHexView=S0.toUint8Array(W)}fromString(W){this.valueBlock.value=W,this.valueBlock.valueHexView=new Uint8Array(l0.FromUtf16String(W))}}Xz.NAME="BmpStringValueBlock";var VP;class OX extends Xz{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}VP=OX;(()=>{b0.BmpString=VP})();OX.NAME="BMPString";class Yz extends m9{fromBuffer(W){let G=ArrayBuffer.isView(W)?W.slice().buffer:W.slice(0),X=new Uint8Array(G);for(let Y=0;Y<X.length;Y+=4)X[Y]=X[Y+3],X[Y+1]=X[Y+2],X[Y+2]=0,X[Y+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(G))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G*4);for(let Y=0;Y<G;Y++){let V=I6(W.charCodeAt(Y),8),Z=new Uint8Array(V);if(Z.length>4)continue;let Q=4-Z.length;for(let J=Z.length-1;J>=0;J--)X[Y*4+J+Q]=Z[J]}this.valueBlock.value=W}}Yz.NAME="UniversalStringValueBlock";var ZP;class KX extends Yz{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}ZP=KX;(()=>{b0.UniversalString=ZP})();KX.NAME="UniversalString";var QP;class CX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}QP=CX;(()=>{b0.NumericString=QP})();CX.NAME="NumericString";var JP;class DX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}JP=DX;(()=>{b0.PrintableString=JP})();DX.NAME="PrintableString";var UP;class TX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}UP=TX;(()=>{b0.TeletexString=UP})();TX.NAME="TeletexString";var qP;class MX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}qP=MX;(()=>{b0.VideotexString=qP})();MX.NAME="VideotexString";var AP;class PX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}AP=PX;(()=>{b0.IA5String=AP})();PX.NAME="IA5String";var HP;class RX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}HP=RX;(()=>{b0.GraphicString=HP})();RX.NAME="GraphicString";var NP;class SW extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}NP=SW;(()=>{b0.VisibleString=NP})();SW.NAME="VisibleString";var IP;class LX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}IP=LX;(()=>{b0.GeneralString=IP})();LX.NAME="GeneralString";var zP;class BX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}zP=BX;(()=>{b0.CharacterString=zP})();BX.NAME="CharacterString";var wP;class xW extends SW{constructor({value:W,valueDate:G,...X}={}){super(X);if(this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,W){this.fromString(W),this.valueBlock.valueHexView=new Uint8Array(W.length);for(let Y=0;Y<W.length;Y++)this.valueBlock.valueHexView[Y]=W.charCodeAt(Y)}if(G)this.fromDate(G),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer());this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(W){this.fromString(String.fromCharCode.apply(null,S0.toUint8Array(W)))}toBuffer(){let W=this.toString(),G=new ArrayBuffer(W.length),X=new Uint8Array(G);for(let Y=0;Y<W.length;Y++)X[Y]=W.charCodeAt(Y);return G}fromDate(W){this.year=W.getUTCFullYear(),this.month=W.getUTCMonth()+1,this.day=W.getUTCDate(),this.hour=W.getUTCHours(),this.minute=W.getUTCMinutes(),this.second=W.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(W){let X=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(W);if(X===null){this.error="Wrong input string for conversion";return}let Y=parseInt(X[1],10);if(Y>=50)this.year=1900+Y;else this.year=2000+Y;this.month=parseInt(X[2],10),this.day=parseInt(X[3],10),this.hour=parseInt(X[4],10),this.minute=parseInt(X[5],10),this.second=parseInt(X[6],10)}toString(W="iso"){if(W==="iso"){let G=[,,,,,,,];return G[0]=u9(this.year<2000?this.year-1900:this.year-2000,2),G[1]=u9(this.month,2),G[2]=u9(this.day,2),G[3]=u9(this.hour,2),G[4]=u9(this.minute,2),G[5]=u9(this.second,2),G[6]="Z",G.join("")}return super.toString(W)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}wP=xW;(()=>{b0.UTCTime=wP})();xW.NAME="UTCTime";var jP;class EX extends xW{constructor(W={}){var G;super(W);(G=this.millisecond)!==null&&G!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(W){super.fromDate(W),this.millisecond=W.getUTCMilliseconds()}toDate(){let W=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(W)}fromString(W){let G=!1,X="",Y="",V=0,Z,Q=0,J=0;if(W[W.length-1]==="Z")X=W.substring(0,W.length-1),G=!0;else{let A=new Number(W[W.length-1]);if(isNaN(A.valueOf()))throw Error("Wrong input string for conversion");X=W}if(G){if(X.indexOf("+")!==-1)throw Error("Wrong input string for conversion");if(X.indexOf("-")!==-1)throw Error("Wrong input string for conversion")}else{let A=1,N=X.indexOf("+"),H="";if(N===-1)N=X.indexOf("-"),A=-1;if(N!==-1){if(H=X.substring(N+1),X=X.substring(0,N),H.length!==2&&H.length!==4)throw Error("Wrong input string for conversion");let z=parseInt(H.substring(0,2),10);if(isNaN(z.valueOf()))throw Error("Wrong input string for conversion");if(Q=A*z,H.length===4){if(z=parseInt(H.substring(2,4),10),isNaN(z.valueOf()))throw Error("Wrong input string for conversion");J=A*z}}}let U=X.indexOf(".");if(U===-1)U=X.indexOf(",");if(U!==-1){let A=new Number(`0${X.substring(U)}`);if(isNaN(A.valueOf()))throw Error("Wrong input string for conversion");V=A.valueOf(),Y=X.substring(0,U)}else Y=X;switch(!0){case Y.length===8:if(Z=/(\d{4})(\d{2})(\d{2})/ig,U!==-1)throw Error("Wrong input string for conversion");break;case Y.length===10:if(Z=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let A=60*V;this.minute=Math.floor(A),A=60*(A-this.minute),this.second=Math.floor(A),A=1000*(A-this.second),this.millisecond=Math.floor(A)}break;case Y.length===12:if(Z=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let A=60*V;this.second=Math.floor(A),A=1000*(A-this.second),this.millisecond=Math.floor(A)}break;case Y.length===14:if(Z=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let A=1000*V;this.millisecond=Math.floor(A)}break;default:throw Error("Wrong input string for conversion")}let q=Z.exec(Y);if(q===null)throw Error("Wrong input string for conversion");for(let A=1;A<q.length;A++)switch(A){case 1:this.year=parseInt(q[A],10);break;case 2:this.month=parseInt(q[A],10);break;case 3:this.day=parseInt(q[A],10);break;case 4:this.hour=parseInt(q[A],10)+Q;break;case 5:this.minute=parseInt(q[A],10)+J;break;case 6:this.second=parseInt(q[A],10);break;default:throw Error("Wrong input string for conversion")}if(G===!1){let A=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=A.getUTCFullYear(),this.month=A.getUTCMonth(),this.day=A.getUTCDay(),this.hour=A.getUTCHours(),this.minute=A.getUTCMinutes(),this.second=A.getUTCSeconds(),this.millisecond=A.getUTCMilliseconds()}}toString(W="iso"){if(W==="iso"){let G=[];if(G.push(u9(this.year,4)),G.push(u9(this.month,2)),G.push(u9(this.day,2)),G.push(u9(this.hour,2)),G.push(u9(this.minute,2)),G.push(u9(this.second,2)),this.millisecond!==0)G.push("."),G.push(u9(this.millisecond,3));return G.push("Z"),G.join("")}return super.toString(W)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}jP=EX;(()=>{b0.GeneralizedTime=jP})();EX.NAME="GeneralizedTime";var OP;class rU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}OP=rU;(()=>{b0.DATE=OP})();rU.NAME="DATE";var KP;class aU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}KP=aU;(()=>{b0.TimeOfDay=KP})();aU.NAME="TimeOfDay";var CP;class sU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}CP=sU;(()=>{b0.DateTime=CP})();sU.NAME="DateTime";var DP;class tU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}DP=tU;(()=>{b0.Duration=DP})();tU.NAME="Duration";var TP;class eU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}TP=eU;(()=>{b0.TIME=TP})();eU.NAME="TIME";class V4{constructor({name:W=h9,optional:G=!1}={}){this.name=W,this.optional=G}}class oV extends V4{constructor({value:W=[],...G}={}){super(G);this.value=W}}class IX extends V4{constructor({value:W=new V4,local:G=!1,...X}={}){super(X);this.value=W,this.local=G}}class MP{get data(){return this.dataView.slice().buffer}set data(W){this.dataView=S0.toUint8Array(W)}constructor({data:W=pU}={}){this.dataView=S0.toUint8Array(W)}fromBER(W,G,X){let Y=G+X;return this.dataView=S0.toUint8Array(W).subarray(G,Y),Y}toBER(W){return this.dataView.slice().buffer}}function X4(W,G,X){if(X instanceof oV){for(let Z of X.value)if(X4(W,G,Z).verified)return{verified:!0,result:W};{let Z={verified:!1,result:{error:"Wrong values for Choice type"}};if(X.hasOwnProperty(mI))Z.name=X.name;return Z}}if(X instanceof V4){if(X.hasOwnProperty(mI))W[X.name]=G;return{verified:!0,result:W}}if(W instanceof Object===!1)return{verified:!1,result:{error:"Wrong root object"}};if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(X instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Dm in X===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Rm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Lm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let Y=X.idBlock.toBER(!1);if(Y.byteLength===0)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(X.idBlock.fromBER(Y,0,Y.byteLength)===-1)return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(X.idBlock.hasOwnProperty(Tm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagClass!==G.idBlock.tagClass)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Mm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagNumber!==G.idBlock.tagNumber)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Pm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isConstructed!==G.idBlock.isConstructed)return{verified:!1,result:W};if(!(Cm in X.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isHexOnly!==G.idBlock.isHexOnly)return{verified:!1,result:W};if(X.idBlock.isHexOnly){if(uM in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let Z=X.idBlock.valueHexView,Q=G.idBlock.valueHexView;if(Z.length!==Q.length)return{verified:!1,result:W};for(let J=0;J<Z.length;J++)if(Z[J]!==Q[1])return{verified:!1,result:W}}if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)W[X.name]=G}if(X instanceof b0.Constructed){let Z=0,Q={verified:!1,result:{error:"Unknown error"}},J=X.valueBlock.value.length;if(J>0){if(X.valueBlock.value[0]instanceof IX)J=G.valueBlock.value.length}if(J===0)return{verified:!0,result:W};if(G.valueBlock.value.length===0&&X.valueBlock.value.length!==0){let U=!0;for(let q=0;q<X.valueBlock.value.length;q++)U=U&&(X.valueBlock.value[q].optional||!1);if(U)return{verified:!0,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return W.error="Inconsistent object length",{verified:!1,result:W}}for(let U=0;U<J;U++)if(U-Z>=G.valueBlock.value.length){if(X.valueBlock.value[U].optional===!1){let q={verified:!1,result:W};if(W.error="Inconsistent length between ASN.1 data and schema",X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],q.name=X.name}return q}}else if(X.valueBlock.value[0]instanceof IX){if(Q=X4(W,G.valueBlock.value[U],X.valueBlock.value[0].value),Q.verified===!1)if(X.valueBlock.value[0].optional)Z++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(mI in X.valueBlock.value[0]&&X.valueBlock.value[0].name.length>0){let q={};if(Bm in X.valueBlock.value[0]&&X.valueBlock.value[0].local)q=G;else q=W;if(typeof q[X.valueBlock.value[0].name]>"u")q[X.valueBlock.value[0].name]=[];q[X.valueBlock.value[0].name].push(G.valueBlock.value[U])}}else if(Q=X4(W,G.valueBlock.value[U-Z],X.valueBlock.value[U]),Q.verified===!1)if(X.valueBlock.value[U].optional)Z++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(Q.verified===!1){let U={verified:!1,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],U.name=X.name}return U}return{verified:!0,result:W}}if(X.primitiveSchema&&uM in G.valueBlock){let Z=dU(G.valueBlock.valueHexView);if(Z.offset===-1){let Q={verified:!1,result:Z.result};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],Q.name=X.name}return Q}return X4(W,Z.result,X.primitiveSchema)}return{verified:!0,result:W}}function um(W,G){if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let X=dU(S0.toUint8Array(W));if(X.offset===-1)return{verified:!1,result:X.result};return X4(X.result,X.result,G)}function PP(W){return Object.prototype.toString.call(W)}function hm(W){if(ArrayBuffer.isView(W))return!0;if(!W||typeof W!=="object")return!1;let G=W;return typeof G.byteOffset==="number"&&typeof G.byteLength==="number"&&Wq(G.buffer)}function Vz(W){return PP(W)==="[object ArrayBuffer]"}function RP(W){return typeof SharedArrayBuffer<"u"&&PP(W)==="[object SharedArrayBuffer]"}function Wq(W){return Vz(W)||RP(W)}function LP(W){return hm(W)}function J4(W){return Wq(W)||LP(W)}function Zz(W){if(!J4(W))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function j5(W){if(Zz(W),Wq(W))return new Uint8Array(W);return new Uint8Array(W.buffer,W.byteOffset,W.byteLength)}function b8(W){if(Zz(W),Vz(W))return W;let G=new ArrayBuffer(W.byteLength);return new Uint8Array(G).set(j5(W)),G}function Qz(W,G,X={}){let Y=j5(W),V=j5(G);if(!X.constantTime&&Y.byteLength!==V.byteLength)return!1;let Z=Math.max(Y.byteLength,V.byteLength),Q=Y.byteLength^V.byteLength;for(let J=0;J<Z;J++)Q|=(Y[J]??0)^(V[J]??0);return Q===0}var s;(function(W){W[W.Sequence=0]="Sequence",W[W.Set=1]="Set",W[W.Choice=2]="Choice"})(s||(s={}));var S;(function(W){W[W.Any=1]="Any",W[W.Boolean=2]="Boolean",W[W.OctetString=3]="OctetString",W[W.BitString=4]="BitString",W[W.Integer=5]="Integer",W[W.Enumerated=6]="Enumerated",W[W.ObjectIdentifier=7]="ObjectIdentifier",W[W.Utf8String=8]="Utf8String",W[W.BmpString=9]="BmpString",W[W.UniversalString=10]="UniversalString",W[W.NumericString=11]="NumericString",W[W.PrintableString=12]="PrintableString",W[W.TeletexString=13]="TeletexString",W[W.VideotexString=14]="VideotexString",W[W.IA5String=15]="IA5String",W[W.GraphicString=16]="GraphicString",W[W.VisibleString=17]="VisibleString",W[W.GeneralString=18]="GeneralString",W[W.CharacterString=19]="CharacterString",W[W.UTCTime=20]="UTCTime",W[W.GeneralizedTime=21]="GeneralizedTime",W[W.DATE=22]="DATE",W[W.TimeOfDay=23]="TimeOfDay",W[W.DateTime=24]="DateTime",W[W.Duration=25]="Duration",W[W.TIME=26]="TIME",W[W.Null=27]="Null"})(S||(S={}));class U4{unusedBits=0;value=new ArrayBuffer(0);constructor(W,G=0){if(W)if(typeof W==="number")this.fromNumber(W);else if(J4(W))this.unusedBits=G,this.value=b8(W);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(W){if(!(W instanceof K7))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=W.valueBlock.unusedBits,this.value=b8(W.valueBlock.valueHex),this}toASN(){return new K7({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(W){return new K7({name:W})}toNumber(){let W="",G=new Uint8Array(this.value);for(let X of G)W+=X.toString(2).padStart(8,"0");if(W=W.split("").reverse().join(""),this.unusedBits)W=W.slice(this.unusedBits).padStart(this.unusedBits,"0");return parseInt(W,2)}fromNumber(W){let G=W.toString(2),X=G.length+7>>3;this.unusedBits=(X<<3)-G.length;let Y=new Uint8Array(X);G=G.padStart(X<<3,"0").split("").reverse().join("");let V=0;while(V<X)Y[V]=parseInt(G.slice(V<<3,(V<<3)+8),2),V++;this.value=Y.buffer}}class W1{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(W){if(typeof W==="number")this.buffer=new ArrayBuffer(W);else if(J4(W))this.buffer=b8(W);else if(Array.isArray(W))this.buffer=new Uint8Array(W).buffer;else this.buffer=new ArrayBuffer(0)}fromASN(W){if(!(W instanceof O7))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=b8(W.valueBlock.valueHex),this}toASN(){return new O7({valueHex:this.buffer})}toSchema(W){return new O7({name:W})}}var fm={fromASN:(W)=>W instanceof j7?null:b8(W.valueBeforeDecodeView),toASN:(W)=>{if(W===null)return new j7;let G=Q4(W);if(G.result.error)throw Error(G.result.error);return G.result}},cm={fromASN:(W)=>W.valueBlock.valueHexView.byteLength>=4?W.valueBlock.toString():W.valueBlock.valueDec,toASN:(W)=>new j6({value:+W})},pm={fromASN:(W)=>W.valueBlock.valueDec,toASN:(W)=>new wX({value:W})},x1={fromASN:(W)=>b8(W.valueBlock.valueHexView),toASN:(W)=>new j6({valueHex:W})};var lm={fromASN:(W)=>b8(W.valueBlock.valueHexView),toASN:(W)=>new K7({valueHex:W})},dm={fromASN:(W)=>W.valueBlock.toString(),toASN:(W)=>new jX({value:W})},om={fromASN:(W)=>W.valueBlock.value,toASN:(W)=>new zX({value:W})},$X={fromASN:(W)=>b8(W.valueBlock.valueHexView),toASN:(W)=>new O7({valueHex:W})},BP={fromASN:(W)=>new W1(W.getValue()),toASN:(W)=>W.toASN()};function O5(W){return{fromASN:(G)=>G.valueBlock.value,toASN:(G)=>new W({value:G})}}var Jz=O5(y5),nm=O5(OX),im=O5(KX),rm=O5(CX),am=O5(DX),sm=O5(TX),tm=O5(MX),em=O5(PX),Wf=O5(RX),Gf=O5(SW),Xf=O5(LX),Yf=O5(BX),Vf={fromASN:(W)=>W.toDate(),toASN:(W)=>new xW({valueDate:W})},Zf={fromASN:(W)=>W.toDate(),toASN:(W)=>new EX({valueDate:W})},Qf={fromASN:()=>null,toASN:()=>{return new j7}};function O6(W){switch(W){case S.Any:return fm;case S.BitString:return lm;case S.BmpString:return nm;case S.Boolean:return om;case S.CharacterString:return Yf;case S.Enumerated:return pm;case S.GeneralString:return Xf;case S.GeneralizedTime:return Zf;case S.GraphicString:return Wf;case S.IA5String:return em;case S.Integer:return cm;case S.Null:return Qf;case S.NumericString:return rm;case S.ObjectIdentifier:return dm;case S.OctetString:return $X;case S.PrintableString:return am;case S.TeletexString:return sm;case S.UTCTime:return Vf;case S.UniversalString:return im;case S.Utf8String:return Jz;case S.VideotexString:return tm;case S.VisibleString:return Gf;default:return null}}function K5(W){if(typeof W==="function"&&W.prototype)if(W.prototype.toASN&&W.prototype.fromASN)return!0;else return K5(W.prototype);else return!!(W&&typeof W==="object"&&("toASN"in W)&&("fromASN"in W))}function qz(W){if(W){let G=Object.getPrototypeOf(W);if(G?.prototype?.constructor===Array)return!0;return qz(G)}return!1}function EP(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let V=0;V<W.byteLength;V++)if(X[V]!==Y[V])return!1;return!0}class Az{items=new WeakMap;has(W){return this.items.has(W)}get(W,G=!1){let X=this.items.get(W);if(!X)throw Error(`Cannot get schema for '${W.prototype.constructor.name}' target`);if(G&&!X.schema)throw Error(`Schema '${W.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return X}cache(W){let G=this.get(W);if(!G.schema)G.schema=this.create(W,!0)}createDefault(W){let G={type:s.Sequence,items:{}},X=this.findParentSchema(W);if(X)Object.assign(G,X),G.items=Object.assign({},G.items,X.items);return G}create(W,G){let X=this.items.get(W)||this.createDefault(W),Y=[];for(let V in X.items){let Z=X.items[V],Q=G?V:"",J;if(typeof Z.type==="number"){let q=S[Z.type],A=C7[q];if(!A)throw Error(`Cannot get ASN1 class by name '${q}'`);J=new A({name:Q})}else if(K5(Z.type))J=new Z.type().toSchema(Q);else if(Z.optional)if(this.get(Z.type).type===s.Choice)J=new V4({name:Q});else J=this.create(Z.type,!1),J.name=Q;else J=new V4({name:Q});let U=!!Z.optional||Z.defaultValue!==void 0;if(Z.repeated)J.name="",J=new(Z.repeated==="set"?b9:x9)({name:"",value:[new IX({name:Q,value:J})]});if(Z.context!==null&&Z.context!==void 0)if(Z.implicit)if(typeof Z.type==="number"||K5(Z.type)){let q=Z.repeated?h8:w6;Y.push(new q({name:Q,optional:U,idBlock:{tagClass:3,tagNumber:Z.context}}))}else{this.cache(Z.type);let q=!!Z.repeated,A=!q?this.get(Z.type,!0).schema:J;A="valueBlock"in A?A.valueBlock.value:A.value,Y.push(new h8({name:!q?Q:"",optional:U,idBlock:{tagClass:3,tagNumber:Z.context},value:A}))}else Y.push(new h8({optional:U,idBlock:{tagClass:3,tagNumber:Z.context},value:[J]}));else J.optional=U,Y.push(J)}switch(X.type){case s.Sequence:return new x9({value:Y,name:""});case s.Set:return new b9({value:Y,name:""});case s.Choice:return new oV({value:Y,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(W,G){return this.items.set(W,G),this}findParentSchema(W){let G=Object.getPrototypeOf(W);if(G)return this.items.get(G)||this.findParentSchema(G);return null}}var F8=new Az;var W0=(W)=>(G)=>{let X;if(!F8.has(G))X=F8.createDefault(G),F8.set(G,X);else X=F8.get(G);Object.assign(X,W)};var K=(W)=>(G,X)=>{let Y;if(!F8.has(G.constructor))Y=F8.createDefault(G.constructor),F8.set(G.constructor,Y);else Y=F8.get(G.constructor);let V=Object.assign({},W);if(typeof V.type==="number"&&!V.converter){let Z=O6(W.type);if(!Z)throw Error(`Cannot get default converter for property '${X}' of ${G.constructor.name}`);V.converter=Z}V.raw=W.raw,Y.items[X]=V};class kW extends Error{schemas=[]}class Gq{static parse(W,G,X){let Y=Q4(b8(W),X?.berOptions);if(Y.result.error)throw Error(Y.result.error);return this.fromASN(Y.result,G,X)}static fromASN(W,G,X){try{if(K5(G))return new G().fromASN(W);let Y=F8.get(G);F8.cache(G);let V=Y.schema,Z=this.handleChoiceTypes(W,Y,G,V,X);if(Z?.result)return Z.result;if(Z?.targetSchema)V=Z.targetSchema;let Q=this.handleSequenceTypes(W,Y,G,V),J=new G;if(qz(G))return this.handleArrayTypes(W,Y,G,X);return this.processSchemaItems(Y,Q,J,X),J}catch(Y){if(Y instanceof kW)Y.schemas.push(G.name);throw Y}}static handleChoiceTypes(W,G,X,Y,V){if(W.constructor===h8&&G.type===s.Choice&&W.idBlock.tagClass===3)for(let Z in G.items){let Q=G.items[Z];if(Q.context===W.idBlock.tagNumber&&Q.implicit){if(typeof Q.type==="function"&&F8.has(Q.type)){let J=F8.get(Q.type);if(J&&J.type===s.Sequence){let U=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in U.valueBlock){U.valueBlock.value=W.valueBlock.value;let q=this.fromASN(U,Q.type,V),A=new X;return A[Z]=q,{result:A}}}}}}else if(W.constructor===h8&&G.type!==s.Choice){let Z=new h8({idBlock:{tagClass:3,tagNumber:W.idBlock.tagNumber},value:G.schema.valueBlock.value});for(let Q in G.items)delete W[Q];return{targetSchema:Z}}return null}static handleSequenceTypes(W,G,X,Y){if(G.type===s.Sequence){let V=X4({},W,Y);if(!V.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${V.result.error?` ${V.result.error}`:""}`);return V}else{let V=X4({},W,Y);if(!V.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${V.result.error?` ${V.result.error}`:""}`);return V}}static processRepeatedField(W,G,X){let Y=W.slice(G);if(Y.length===1&&Y[0].constructor.name==="Sequence"){let V=Y[0];if(V.valueBlock&&V.valueBlock.value&&Array.isArray(V.valueBlock.value))Y=V.valueBlock.value}if(typeof X.type==="number"){let V=O6(X.type);if(!V)throw Error(`No converter for ASN.1 type ${X.type}`);return Y.filter((Z)=>Z&&Z.valueBlock).map((Z)=>{try{return V.fromASN(Z)}catch{return}}).filter((Z)=>Z!==void 0)}else return Y.filter((V)=>V&&V.valueBlock).map((V)=>{try{return this.fromASN(V,X.type)}catch{return}}).filter((V)=>V!==void 0)}static processPrimitiveField(W,G){let X=O6(G.type);if(!X)throw Error(`No converter for ASN.1 type ${G.type}`);return X.fromASN(W)}static isOptionalChoiceField(W){return W.optional&&typeof W.type==="function"&&F8.has(W.type)&&F8.get(W.type).type===s.Choice}static processOptionalChoiceField(W,G){try{return{processed:!0,value:this.fromASN(W,G.type)}}catch(X){if(X instanceof kW&&/Wrong values for Choice type/.test(X.message))return{processed:!1};throw X}}static handleArrayTypes(W,G,X,Y){if(!(("value"in W.valueBlock)&&Array.isArray(W.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let V=G.itemType;if(typeof V==="number"){let Z=O6(V);if(!Z)throw Error(`Cannot get default converter for array item of ${X.name} ASN1 schema`);return X.from(W.valueBlock.value,(Q)=>Z.fromASN(Q))}else return X.from(W.valueBlock.value,(Z)=>this.fromASN(Z,V,Y))}static processSchemaItems(W,G,X,Y){for(let V in W.items){let Z=G.result[V];if(!Z)continue;let Q=W.items[V],J=Q.type,U;if(typeof J==="number"||K5(J))U=this.processPrimitiveSchemaItem(Z,Q,J,Y);else U=this.processComplexSchemaItem(Z,Q,J,Y);if(U&&typeof U==="object"&&"value"in U&&"raw"in U)X[V]=U.value,X[`${V}Raw`]=U.raw;else X[V]=U}}static processPrimitiveSchemaItem(W,G,X,Y){let V=G.converter??(K5(X)?new X:null);if(!V)throw Error("Converter is empty");if(G.repeated)return this.processRepeatedPrimitiveItem(W,G,V,Y);else return this.processSinglePrimitiveItem(W,G,X,V,Y)}static processRepeatedPrimitiveItem(W,G,X,Y){if(G.implicit){let Z=new(G.repeated==="sequence"?x9:b9);Z.valueBlock=W.valueBlock;let Q=Q4(Z.toBER(!1),Y?.berOptions);if(Q.offset===-1)throw Error(`Cannot parse the child item. ${Q.result.error}`);if(!(("value"in Q.result.valueBlock)&&Array.isArray(Q.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let J=Q.result.valueBlock.value;return Array.from(J,(U)=>X.fromASN(U))}else return Array.from(W,(V)=>X.fromASN(V))}static processSinglePrimitiveItem(W,G,X,Y,V){let Z=W;if(G.implicit){let Q;if(K5(X))Q=new X().toSchema("");else{let J=S[X],U=C7[J];if(!U)throw Error(`Cannot get '${J}' class from asn1js module`);Q=new U}Q.valueBlock=Z.valueBlock,Z=Q4(Q.toBER(!1),V?.berOptions).result}return Y.fromASN(Z)}static processComplexSchemaItem(W,G,X,Y){if(G.repeated){if(!Array.isArray(W))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(W,(V)=>this.fromASN(V,X,Y))}else{let V=this.handleImplicitTagging(W,G,X);if(this.isOptionalChoiceField(G))try{return this.fromASN(V,X,Y)}catch(Z){if(Z instanceof kW&&/Wrong values for Choice type/.test(Z.message))return;throw Z}else{let Z=this.fromASN(V,X,Y);if(G.raw)return{value:Z,raw:W.valueBeforeDecodeView};return Z}}}static handleImplicitTagging(W,G,X){if(G.implicit&&typeof G.context==="number"){let Y=F8.get(X);if(Y.type===s.Sequence){let V=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in V.valueBlock)return V.valueBlock.value=W.valueBlock.value,V}else if(Y.type===s.Set){let V=new b9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in V.valueBlock)return V.valueBlock.value=W.valueBlock.value,V}}return W}}class nV{static serialize(W){if(W instanceof $8)return W.toBER(!1);return this.toASN(W).toBER(!1)}static toASN(W){if(W&&typeof W==="object"&&K5(W))return W.toASN();if(!(W&&typeof W==="object"))throw TypeError("Parameter 1 should be type of Object.");let G=W.constructor,X=F8.get(G);F8.cache(G);let Y=[];if(X.itemType){if(!Array.isArray(W))throw TypeError("Parameter 1 should be type of Array.");if(typeof X.itemType==="number"){let Z=O6(X.itemType);if(!Z)throw Error(`Cannot get default converter for array item of ${G.name} ASN1 schema`);Y=W.map((Q)=>Z.toASN(Q))}else Y=W.map((Z)=>this.toAsnItem({type:X.itemType},"[]",G,Z))}else for(let Z in X.items){let Q=X.items[Z],J=W[Z];if(J===void 0||Q.defaultValue===J||typeof Q.defaultValue==="object"&&typeof J==="object"&&EP(this.serialize(Q.defaultValue),this.serialize(J)))continue;let U=nV.toAsnItem(Q,Z,G,J);if(typeof Q.context==="number")if(Q.implicit)if(!Q.repeated&&(typeof Q.type==="number"||K5(Q.type))){let q={};q.valueHex=U instanceof j7?b8(U.valueBeforeDecodeView):U.valueBlock.toBER(),Y.push(new w6({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},...q}))}else Y.push(new h8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:U.valueBlock.value}));else Y.push(new h8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:[U]}));else if(Q.repeated)Y=Y.concat(U);else Y.push(U)}let V;switch(X.type){case s.Sequence:V=new x9({value:Y});break;case s.Set:V=new b9({value:Y});break;case s.Choice:if(!Y[0])throw Error(`Schema '${G.name}' has wrong data. Choice cannot be empty.`);V=Y[0];break}return V}static toAsnItem(W,G,X,Y){let V;if(typeof W.type==="number"){let Z=W.converter;if(!Z)throw Error(`Property '${G}' doesn't have converter for type ${S[W.type]} in schema '${X.name}'`);if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let Q=Array.from(Y,(U)=>Z.toASN(U));V=new(W.repeated==="sequence"?x9:b9)({value:Q})}else V=Z.toASN(Y)}else if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let Z=Array.from(Y,(J)=>this.toASN(J));V=new(W.repeated==="sequence"?x9:b9)({value:Z})}else V=this.toASN(Y);return V}}class i0 extends Array{constructor(W=[]){if(typeof W==="number")super(W);else{super();for(let G of W)this.push(G)}}}class R0{static serialize(W){return nV.serialize(W)}static parse(W,G,X){return Gq.parse(W,G,X)}static toString(W,G){let X=J4(W)?b8(W):R0.serialize(W),Y=Q4(X,G?.berOptions);if(Y.offset===-1)throw Error(`Cannot decode ASN.1 data. ${Y.result.error}`);return Y.result.toString()}}var YR=_1(XR(),1),{__extends:j10,__assign:O10,__rest:K10,__decorate:j,__param:C10,__esDecorate:D10,__runInitializers:T10,__propKey:M10,__setFunctionName:P10,__metadata:R10,__awaiter:L10,__generator:B10,__exportStar:E10,__createBinding:$10,__values:F10,__read:S10,__spread:x10,__spreadArrays:k10,__spreadArray:_10,__await:y10,__asyncGenerator:v10,__asyncDelegator:g10,__asyncValues:u10,__makeTemplateObject:h10,__importStar:b10,__importDefault:m10,__classPrivateFieldGet:C1,__classPrivateFieldSet:U8,__classPrivateFieldIn:f10,__addDisposableResource:c10,__disposeResources:p10,__rewriteRelativeImportExtension:l10}=YR.default;var SX={};qN(SX,{parse:()=>JR,normalize:()=>iV,is:()=>QR,hex:()=>Kf,formats:()=>qR,format:()=>UR,encode:()=>Nz,decode:()=>Iz});var Uf=/^[0-9a-f]$/i,qf=[" ","\t",`
|
|
209
|
+
`,"\r",":","-","."];function Af(W){if(W.separators==="none")return[];if(!W.separators||W.separators==="common")return qf;return W.separators}function Hf(W){if(!W)throw TypeError("Hex separators must be non-empty strings")}function Nf(W,G,X){for(let Y of X)if(W.startsWith(Y,G))return Y;return}function If(W){let G=/[A-F]/.test(W),X=/[a-f]/.test(W);return G&&!X?"upper":"lower"}function zf(W){let G=/\r\n|\n/.exec(W);if(!G)return;return G[0]===`\r
|
|
210
|
+
`?`\r
|
|
211
|
+
`:`
|
|
212
|
+
`}function VR(W){return W.replace(/[^0-9a-f]/gi,"")}function wf(W){let G=W.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g)??[];if(G.length<3)return;let X=G.filter((Q,J)=>J%2===0),Y=G.filter((Q,J)=>J%2===1),V=Y[0];if(!V||Y.some((Q)=>Q!==V))return;if(X.some((Q)=>Q.length===0||Q.length%2!==0))return;let Z=X[0]?.length??0;if(!Z)return;if(X.slice(0,-1).some((Q)=>Q.length!==Z))return;if((X[X.length-1]?.length??0)>Z)return;return{size:Z/2,separator:V}}function jf(W){let G=W.trim(),X=/^0x/i.test(G)?"0x":"",Y=X?G.slice(2):G,V=zf(Y),Z=Y.split(/\r\n|\n/).filter((q)=>q.length>0),Q=Z[0]?.trim()??"",J=wf(Q),U={case:If(G),prefix:X};if(J)U.group=J;if(V&&Z.length>1){let q=VR(Z[0]??"").length/2;if(q>0&&Z.slice(0,-1).every((A)=>VR(A).length/2===q))U.line={bytesPerLine:q,separator:V}}return U}function Of(W,G){let X=G.allowPrefix??!0,Y=[...Af(G)].sort((J,U)=>U.length-J.length);for(let J of Y)Hf(J);let V=W.trim();if(/^0x/i.test(V)){if(!X)throw TypeError("Hexadecimal text must not include a 0x prefix");V=V.slice(2)}let Z="",Q=!1;for(let J=0;J<V.length;){let U=V[J]??"";if(Uf.test(U)){Z+=U,Q=!1,J+=1;continue}let q=Nf(V,J,Y);if(!q)throw TypeError("Input is not valid hexadecimal text");if(G.strict&&(Q||Z.length===0))throw TypeError("Hexadecimal text contains misplaced separators");Q=!0,J+=q.length}if(G.strict&&Q&&Z.length>0)throw TypeError("Hexadecimal text must not end with a separator");if(Z.length%2!==0){if(!G.allowOddLength)throw TypeError("Hexadecimal text must contain an even number of characters");Z=`0${Z}`}return Z.toLowerCase()}function ZR(W,G){if(!G)return W.join("");if(!Number.isInteger(G.size)||G.size<1)throw RangeError("Hex group size must be a positive integer");let X=[];for(let Y=0;Y<W.length;Y+=G.size)X.push(W.slice(Y,Y+G.size).join(""));return X.join(G.separator)}function iV(W,G={}){return Of(W,G)}function QR(W,G={}){if(typeof W!=="string")return!1;try{return iV(W,G),!0}catch{return!1}}function Nz(W,G={}){let X=j5(W),Y=G.case??"lower",V=Array.from(X,(Q)=>{let J=Q.toString(16).padStart(2,"0");return Y==="upper"?J.toUpperCase():J}),Z="";if(G.line){let Q=G.line.bytesPerLine;if(!Number.isInteger(Q)||Q<1)throw RangeError("Hex bytesPerLine must be a positive integer");let J=G.line.separator??`
|
|
213
|
+
`,U=[];for(let q=0;q<V.length;q+=Q)U.push(ZR(V.slice(q,q+Q),G.group));Z=U.join(J)}else Z=ZR(V,G.group);return`${G.prefix??""}${Z}`}function Iz(W,G={}){let X=iV(W,G),Y=new Uint8Array(X.length/2);for(let V=0;V<X.length;V+=2)Y[V/2]=Number.parseInt(X.slice(V,V+2),16);return Y}function JR(W,G={}){let X=iV(W,G);return{bytes:Iz(X),format:jf(W),normalized:X}}function UR(W,G){return Nz(W,G)}var qR={compact:Object.freeze({}),upper:Object.freeze({case:"upper"}),colon:Object.freeze({group:{size:1,separator:":"}}),colonUpper:Object.freeze({case:"upper",group:{size:1,separator:":"}}),groupsOf4:Object.freeze({group:{size:4,separator:" "}}),prefixed:Object.freeze({prefix:"0x"})},Kf={encode:Nz,decode:Iz,format:UR,formats:qR,is:QR,normalize:iV,parse:JR};class Zq{static isIPv4(W){return/^(\d{1,3}\.){3}\d{1,3}$/.test(W)}static parseIPv4(W){let G=W.split(".");if(G.length!==4)throw Error("Invalid IPv4 address");return G.map((X)=>{let Y=parseInt(X,10);if(isNaN(Y)||Y<0||Y>255)throw Error("Invalid IPv4 address part");return Y})}static parseIPv6(W){let X=this.expandIPv6(W).split(":");if(X.length!==8)throw Error("Invalid IPv6 address");return X.reduce((Y,V)=>{let Z=parseInt(V,16);if(isNaN(Z)||Z<0||Z>65535)throw Error("Invalid IPv6 address part");return Y.push(Z>>8&255),Y.push(Z&255),Y},[])}static expandIPv6(W){if(!W.includes("::"))return W;let G=W.split("::");if(G.length>2)throw Error("Invalid IPv6 address");let X=G[0]?G[0].split(":"):[],Y=G[1]?G[1].split(":"):[],V=8-(X.length+Y.length);if(V<0)throw Error("Invalid IPv6 address");return[...X,...Array(V).fill("0"),...Y].join(":")}static formatIPv6(W){let G=[];for(let X=0;X<16;X+=2)G.push((W[X]<<8|W[X+1]).toString(16));return this.compressIPv6(G.join(":"))}static compressIPv6(W){let G=W.split(":"),X=-1,Y=0,V=-1,Z=0;for(let Q=0;Q<G.length;Q++)if(G[Q]==="0"){if(V===-1)V=Q;Z++}else{if(Z>Y)X=V,Y=Z;V=-1,Z=0}if(Z>Y)X=V,Y=Z;if(Y>1){let Q=G.slice(0,X).join(":"),J=G.slice(X+Y).join(":");return`${Q}::${J}`}return W}static parseCIDR(W){let[G,X]=W.split("/"),Y=parseInt(X,10);if(this.isIPv4(G)){if(Y<0||Y>32)throw Error("Invalid IPv4 prefix length");return[this.parseIPv4(G),Y]}else{if(Y<0||Y>128)throw Error("Invalid IPv6 prefix length");return[this.parseIPv6(G),Y]}}static decodeIP(W){if(W.length===64&&parseInt(W,16)===0)return"::/0";if(W.length!==16)return W;let G=parseInt(W.slice(8),16).toString(2).split("").reduce((Y,V)=>Y+ +V,0),X=W.slice(0,8).replace(/(.{2})/g,(Y)=>`${parseInt(Y,16)}.`);return X=X.slice(0,-1),`${X}/${G}`}static toString(W){let G=new Uint8Array(W);if(G.length===4)return Array.from(G).join(".");if(G.length===16)return this.formatIPv6(G);if(G.length===8||G.length===32){let X=G.length/2,Y=G.slice(0,X),V=G.slice(X);if(G.every((J)=>J===0))return G.length===8?"0.0.0.0/0":"::/0";let Q=V.reduce((J,U)=>J+(U.toString(2).match(/1/g)||[]).length,0);if(G.length===8)return`${Array.from(Y).join(".")}/${Q}`;else return`${this.formatIPv6(Y)}/${Q}`}return this.decodeIP(SX.encode(W))}static fromString(W){if(W.includes("/")){let[X,Y]=this.parseCIDR(W),V=new Uint8Array(X.length),Z=Y;for(let J=0;J<V.length;J++)if(Z>=8)V[J]=255,Z-=8;else if(Z>0)V[J]=255<<8-Z,Z=0;let Q=new Uint8Array(X.length*2);return Q.set(X,0),Q.set(V,X.length),Q.buffer}let G=this.isIPv4(W)?this.parseIPv4(W):this.parseIPv6(W);return new Uint8Array(G).buffer}}var zz,wz,jz,S8=class{teletexString;printableString;universalString;utf8String;bmpString;constructor(G={}){Object.assign(this,G)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};j([K({type:S.TeletexString})],S8.prototype,"teletexString",void 0);j([K({type:S.PrintableString})],S8.prototype,"printableString",void 0);j([K({type:S.UniversalString})],S8.prototype,"universalString",void 0);j([K({type:S.Utf8String})],S8.prototype,"utf8String",void 0);j([K({type:S.BmpString})],S8.prototype,"bmpString",void 0);S8=j([W0({type:s.Choice})],S8);var xX=class extends S8{ia5String;anyValue;constructor(G={}){super(G);Object.assign(this,G)}toString(){return this.ia5String||(this.anyValue?SX.encode(this.anyValue):super.toString())}};j([K({type:S.IA5String})],xX.prototype,"ia5String",void 0);j([K({type:S.Any})],xX.prototype,"anyValue",void 0);xX=j([W0({type:s.Choice})],xX);class kX{type="";value=new xX;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],kX.prototype,"type",void 0);j([K({type:xX})],kX.prototype,"value",void 0);var K6=zz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,zz.prototype)}};K6=zz=j([W0({type:s.Set,itemType:kX})],K6);var Oz=wz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,wz.prototype)}};Oz=wz=j([W0({type:s.Sequence,itemType:K6})],Oz);var W8=jz=class extends Oz{constructor(G){super(G);Object.setPrototypeOf(this,jz.prototype)}};W8=jz=j([W0({type:s.Sequence})],W8);var Pf={fromASN:(W)=>Zq.toString($X.fromASN(W)),toASN:(W)=>$X.toASN(Zq.fromString(W))};class _W{typeId="";value=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],_W.prototype,"typeId",void 0);j([K({type:S.Any,context:0})],_W.prototype,"value",void 0);class Qq{nameAssigner;partyName=new S8;constructor(W={}){Object.assign(this,W)}}j([K({type:S8,optional:!0,context:0,implicit:!0})],Qq.prototype,"nameAssigner",void 0);j([K({type:S8,context:1,implicit:!0})],Qq.prototype,"partyName",void 0);var V1=class{otherName;rfc822Name;dNSName;x400Address;directoryName;ediPartyName;uniformResourceIdentifier;iPAddress;registeredID;constructor(G={}){Object.assign(this,G)}};j([K({type:_W,context:0,implicit:!0})],V1.prototype,"otherName",void 0);j([K({type:S.IA5String,context:1,implicit:!0})],V1.prototype,"rfc822Name",void 0);j([K({type:S.IA5String,context:2,implicit:!0})],V1.prototype,"dNSName",void 0);j([K({type:S.Any,context:3,implicit:!0})],V1.prototype,"x400Address",void 0);j([K({type:W8,context:4,implicit:!1})],V1.prototype,"directoryName",void 0);j([K({type:Qq,context:5})],V1.prototype,"ediPartyName",void 0);j([K({type:S.IA5String,context:6,implicit:!0})],V1.prototype,"uniformResourceIdentifier",void 0);j([K({type:S.OctetString,context:7,implicit:!0,converter:Pf})],V1.prototype,"iPAddress",void 0);j([K({type:S.ObjectIdentifier,context:8,implicit:!0})],V1.prototype,"registeredID",void 0);V1=j([W0({type:s.Choice})],V1);var Jq="1.3.6.1.5.5.7",C6="1.3.6.1.5.5.7.1";var yW="1.3.6.1.5.5.7.3";var Kz="1.3.6.1.5.5.7.48.1",Cz="1.3.6.1.5.5.7.48.2",Dz="1.3.6.1.5.5.7.48.3",Tz="1.3.6.1.5.5.7.48.5",N1="2.5.29";var Mz,Uq=`${C6}.1`;class D6{accessMethod="";accessLocation=new V1;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],D6.prototype,"accessMethod",void 0);j([K({type:V1})],D6.prototype,"accessLocation",void 0);var vW=Mz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Mz.prototype)}};vW=Mz=j([W0({type:s.Sequence,itemType:D6})],vW);var qq=`${N1}.35`;class _X extends W1{}class q4{keyIdentifier;authorityCertIssuer;authorityCertSerialNumber;constructor(W={}){if(W)Object.assign(this,W)}}j([K({type:_X,context:0,optional:!0,implicit:!0})],q4.prototype,"keyIdentifier",void 0);j([K({type:V1,context:1,optional:!0,implicit:!0,repeated:"sequence"})],q4.prototype,"authorityCertIssuer",void 0);j([K({type:S.Integer,context:2,optional:!0,implicit:!0,converter:x1})],q4.prototype,"authorityCertSerialNumber",void 0);var Aq=`${N1}.19`;class yX{cA=!1;pathLenConstraint;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Boolean,defaultValue:!1})],yX.prototype,"cA",void 0);j([K({type:S.Integer,optional:!0})],yX.prototype,"pathLenConstraint",void 0);var Pz,q8=Pz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Pz.prototype)}};q8=Pz=j([W0({type:s.Sequence,itemType:V1})],q8);var Rz,Rf=`${N1}.29`,AR=Rz=class extends q8{constructor(G){super(G);Object.setPrototypeOf(this,Rz.prototype)}};AR=Rz=j([W0({type:s.Sequence})],AR);var Lz,Nq=`${N1}.32`,f80=`${Nq}.0`,A4=class{ia5String;visibleString;bmpString;utf8String;constructor(G={}){Object.assign(this,G)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};j([K({type:S.IA5String})],A4.prototype,"ia5String",void 0);j([K({type:S.VisibleString})],A4.prototype,"visibleString",void 0);j([K({type:S.BmpString})],A4.prototype,"bmpString",void 0);j([K({type:S.Utf8String})],A4.prototype,"utf8String",void 0);A4=j([W0({type:s.Choice})],A4);class Iq{organization=new A4;noticeNumbers=[];constructor(W={}){Object.assign(this,W)}}j([K({type:A4})],Iq.prototype,"organization",void 0);j([K({type:S.Integer,repeated:"sequence"})],Iq.prototype,"noticeNumbers",void 0);class zq{noticeRef;explicitText;constructor(W={}){Object.assign(this,W)}}j([K({type:Iq,optional:!0})],zq.prototype,"noticeRef",void 0);j([K({type:A4,optional:!0})],zq.prototype,"explicitText",void 0);var Hq=class{cPSuri;userNotice;constructor(G={}){Object.assign(this,G)}};j([K({type:S.IA5String})],Hq.prototype,"cPSuri",void 0);j([K({type:zq})],Hq.prototype,"userNotice",void 0);Hq=j([W0({type:s.Choice})],Hq);class wq{policyQualifierId="";qualifier=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],wq.prototype,"policyQualifierId",void 0);j([K({type:S.Any})],wq.prototype,"qualifier",void 0);class vX{policyIdentifier="";policyQualifiers;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],vX.prototype,"policyIdentifier",void 0);j([K({type:wq,repeated:"sequence",optional:!0})],vX.prototype,"policyQualifiers",void 0);var rV=Lz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Lz.prototype)}};rV=Lz=j([W0({type:s.Sequence,itemType:vX})],rV);var o80=`${N1}.20`,aV=class{value;constructor(G=0){this.value=G}};j([K({type:S.Integer})],aV.prototype,"value",void 0);aV=j([W0({type:s.Choice})],aV);var t80=`${N1}.27`,HR=class extends aV{};HR=j([W0({type:s.Choice})],HR);var Bz,jq=`${N1}.31`,v5;(function(W){W[W.unused=1]="unused",W[W.keyCompromise=2]="keyCompromise",W[W.cACompromise=4]="cACompromise",W[W.affiliationChanged=8]="affiliationChanged",W[W.superseded=16]="superseded",W[W.cessationOfOperation=32]="cessationOfOperation",W[W.certificateHold=64]="certificateHold",W[W.privilegeWithdrawn=128]="privilegeWithdrawn",W[W.aACompromise=256]="aACompromise"})(v5||(v5={}));class Oq extends U4{toJSON(){let W=[],G=this.toNumber();if(G&v5.aACompromise)W.push("aACompromise");if(G&v5.affiliationChanged)W.push("affiliationChanged");if(G&v5.cACompromise)W.push("cACompromise");if(G&v5.certificateHold)W.push("certificateHold");if(G&v5.cessationOfOperation)W.push("cessationOfOperation");if(G&v5.keyCompromise)W.push("keyCompromise");if(G&v5.privilegeWithdrawn)W.push("privilegeWithdrawn");if(G&v5.superseded)W.push("superseded");if(G&v5.unused)W.push("unused");return W}toString(){return`[${this.toJSON().join(", ")}]`}}var H4=class{fullName;nameRelativeToCRLIssuer;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,context:0,repeated:"sequence",implicit:!0})],H4.prototype,"fullName",void 0);j([K({type:K6,context:1,implicit:!0})],H4.prototype,"nameRelativeToCRLIssuer",void 0);H4=j([W0({type:s.Choice})],H4);class N4{distributionPoint;reasons;cRLIssuer;constructor(W={}){Object.assign(this,W)}}j([K({type:H4,context:0,optional:!0})],N4.prototype,"distributionPoint",void 0);j([K({type:Oq,context:1,optional:!0,implicit:!0})],N4.prototype,"reasons",void 0);j([K({type:V1,context:2,optional:!0,repeated:"sequence",implicit:!0})],N4.prototype,"cRLIssuer",void 0);var T6=Bz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Bz.prototype)}};T6=Bz=j([W0({type:s.Sequence,itemType:N4})],T6);var Ez,A90=`${N1}.46`,NR=Ez=class extends T6{constructor(G){super(G);Object.setPrototypeOf(this,Ez.prototype)}};NR=Ez=j([W0({type:s.Sequence,itemType:N4})],NR);var j90=`${N1}.28`;class k9{static ONLY=!1;distributionPoint;onlyContainsUserCerts=k9.ONLY;onlyContainsCACerts=k9.ONLY;onlySomeReasons;indirectCRL=k9.ONLY;onlyContainsAttributeCerts=k9.ONLY;constructor(W={}){Object.assign(this,W)}}j([K({type:H4,context:0,optional:!0})],k9.prototype,"distributionPoint",void 0);j([K({type:S.Boolean,context:1,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsUserCerts",void 0);j([K({type:S.Boolean,context:2,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsCACerts",void 0);j([K({type:Oq,context:3,optional:!0,implicit:!0})],k9.prototype,"onlySomeReasons",void 0);j([K({type:S.Boolean,context:4,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"indirectCRL",void 0);j([K({type:S.Boolean,context:5,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsAttributeCerts",void 0);var IR=`${N1}.21`,sV;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(sV||(sV={}));var tV=class{reason=sV.unspecified;constructor(G=sV.unspecified){this.reason=G}toJSON(){return sV[this.reason]}toString(){return this.toJSON()}};j([K({type:S.Enumerated})],tV.prototype,"reason",void 0);tV=j([W0({type:s.Choice})],tV);var $z,Kq=`${N1}.37`,eV=$z=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,$z.prototype)}};eV=$z=j([W0({type:s.Sequence,itemType:S.ObjectIdentifier})],eV);var L90=`${Kq}.0`,zR=`${yW}.1`,wR=`${yW}.2`,jR=`${yW}.3`,OR=`${yW}.4`,KR=`${yW}.8`,CR=`${yW}.9`;var S90=`${N1}.54`,Fz=class{value;constructor(G=new ArrayBuffer(0)){this.value=G}};j([K({type:S.Integer,converter:x1})],Fz.prototype,"value",void 0);Fz=j([W0({type:s.Choice})],Fz);var DR=`${N1}.24`,WZ=class{value=new Date;constructor(G){if(G)this.value=G}};j([K({type:S.GeneralizedTime})],WZ.prototype,"value",void 0);WZ=j([W0({type:s.Choice})],WZ);var Sz,xz=`${N1}.18`,TR=Sz=class extends q8{constructor(G){super(G);Object.setPrototypeOf(this,Sz.prototype)}};TR=Sz=j([W0({type:s.Sequence})],TR);var Cq=`${N1}.15`,g5;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(g5||(g5={}));class GZ extends U4{toJSON(){let W=this.toNumber(),G=[];if(W&g5.cRLSign)G.push("crlSign");if(W&g5.dataEncipherment)G.push("dataEncipherment");if(W&g5.decipherOnly)G.push("decipherOnly");if(W&g5.digitalSignature)G.push("digitalSignature");if(W&g5.encipherOnly)G.push("encipherOnly");if(W&g5.keyAgreement)G.push("keyAgreement");if(W&g5.keyCertSign)G.push("keyCertSign");if(W&g5.keyEncipherment)G.push("keyEncipherment");if(W&g5.nonRepudiation)G.push("nonRepudiation");return G}toString(){return`[${this.toJSON().join(", ")}]`}}var kz,i90=`${N1}.30`;class XZ{base=new V1;minimum=0;maximum;constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],XZ.prototype,"base",void 0);j([K({type:S.Integer,context:0,defaultValue:0,implicit:!0})],XZ.prototype,"minimum",void 0);j([K({type:S.Integer,context:1,optional:!0,implicit:!0})],XZ.prototype,"maximum",void 0);var Dq=kz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,kz.prototype)}};Dq=kz=j([W0({type:s.Sequence,itemType:XZ})],Dq);class _z{permittedSubtrees;excludedSubtrees;constructor(W={}){Object.assign(this,W)}}j([K({type:Dq,context:0,optional:!0,implicit:!0})],_z.prototype,"permittedSubtrees",void 0);j([K({type:Dq,context:1,optional:!0,implicit:!0})],_z.prototype,"excludedSubtrees",void 0);var e90=`${N1}.36`;class yz{requireExplicitPolicy;inhibitPolicyMapping;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,context:0,implicit:!0,optional:!0,converter:x1})],yz.prototype,"requireExplicitPolicy",void 0);j([K({type:S.Integer,context:1,implicit:!0,optional:!0,converter:x1})],yz.prototype,"inhibitPolicyMapping",void 0);var vz,V50=`${N1}.33`;class Tq{issuerDomainPolicy="";subjectDomainPolicy="";constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],Tq.prototype,"issuerDomainPolicy",void 0);j([K({type:S.ObjectIdentifier})],Tq.prototype,"subjectDomainPolicy",void 0);var MR=vz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,vz.prototype)}};MR=vz=j([W0({type:s.Sequence,itemType:Tq})],MR);var gz,uz=`${N1}.17`,Mq=gz=class extends q8{constructor(G){super(G);Object.setPrototypeOf(this,gz.prototype)}};Mq=gz=j([W0({type:s.Sequence})],Mq);class I9{type="";values=[];constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],I9.prototype,"type",void 0);j([K({type:S.Any,repeated:"set"})],I9.prototype,"values",void 0);var hz,K50=`${N1}.9`,PR=hz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,hz.prototype)}};PR=hz=j([W0({type:s.Sequence,itemType:I9})],PR);var bz=`${N1}.14`;class e9 extends _X{}var B50=`${N1}.16`;class mz{notBefore;notAfter;constructor(W={}){Object.assign(this,W)}}j([K({type:S.GeneralizedTime,context:0,implicit:!0,optional:!0})],mz.prototype,"notBefore",void 0);j([K({type:S.GeneralizedTime,context:1,implicit:!0,optional:!0})],mz.prototype,"notAfter",void 0);var YZ;(function(W){W[W.keyUpdateAllowed=1]="keyUpdateAllowed",W[W.newExtensions=2]="newExtensions",W[W.pKIXCertificate=4]="pKIXCertificate"})(YZ||(YZ={}));class fz extends U4{toJSON(){let W=[],G=this.toNumber();if(G&YZ.pKIXCertificate)W.push("pKIXCertificate");if(G&YZ.newExtensions)W.push("newExtensions");if(G&YZ.keyUpdateAllowed)W.push("keyUpdateAllowed");return W}toString(){return`[${this.toJSON().join(", ")}]`}}class cz{entrustVers="";entrustInfoFlags=new fz;constructor(W={}){Object.assign(this,W)}}j([K({type:S.GeneralString})],cz.prototype,"entrustVers",void 0);j([K({type:fz})],cz.prototype,"entrustInfoFlags",void 0);var pz,v50=`${C6}.11`,RR=pz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,pz.prototype)}};RR=pz=j([W0({type:s.Sequence,itemType:D6})],RR);class T0{algorithm="";parameters;constructor(W={}){Object.assign(this,W)}isEqual(W){return W instanceof T0&&W.algorithm==this.algorithm&&(W.parameters&&this.parameters&&Qz(W.parameters,this.parameters)||W.parameters===this.parameters)}}j([K({type:S.ObjectIdentifier})],T0.prototype,"algorithm",void 0);j([K({type:S.Any,optional:!0})],T0.prototype,"parameters",void 0);class z9{algorithm=new T0;subjectPublicKey=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],z9.prototype,"algorithm",void 0);j([K({type:S.BitString})],z9.prototype,"subjectPublicKey",void 0);var T8=class{utcTime;generalTime;constructor(G){if(G)if(typeof G==="string"||typeof G==="number"||G instanceof Date){let X=new Date(G);if(X.setMilliseconds(0),X.getUTCFullYear()>2049)this.generalTime=X;else this.utcTime=X}else Object.assign(this,G)}getTime(){let G=this.utcTime||this.generalTime;if(!G)throw Error("Cannot get time from CHOICE object");return G}};j([K({type:S.UTCTime})],T8.prototype,"utcTime",void 0);j([K({type:S.GeneralizedTime})],T8.prototype,"generalTime",void 0);T8=j([W0({type:s.Choice})],T8);class M6{notBefore=new T8(new Date);notAfter=new T8(new Date);constructor(W){if(W)this.notBefore=new T8(W.notBefore),this.notAfter=new T8(W.notAfter)}}j([K({type:T8})],M6.prototype,"notBefore",void 0);j([K({type:T8})],M6.prototype,"notAfter",void 0);var lz;class w9{static CRITICAL=!1;extnID="";critical=w9.CRITICAL;extnValue=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],w9.prototype,"extnID",void 0);j([K({type:S.Boolean,defaultValue:w9.CRITICAL})],w9.prototype,"critical",void 0);j([K({type:W1})],w9.prototype,"extnValue",void 0);var W5=lz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,lz.prototype)}};W5=lz=j([W0({type:s.Sequence,itemType:w9})],W5);var D7;(function(W){W[W.v1=0]="v1",W[W.v2=1]="v2",W[W.v3=2]="v3"})(D7||(D7={}));class j9{version=D7.v1;serialNumber=new ArrayBuffer(0);signature=new T0;issuer=new W8;validity=new M6;subject=new W8;subjectPublicKeyInfo=new z9;issuerUniqueID;subjectUniqueID;extensions;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,context:0,defaultValue:D7.v1})],j9.prototype,"version",void 0);j([K({type:S.Integer,converter:x1})],j9.prototype,"serialNumber",void 0);j([K({type:T0})],j9.prototype,"signature",void 0);j([K({type:W8})],j9.prototype,"issuer",void 0);j([K({type:M6})],j9.prototype,"validity",void 0);j([K({type:W8})],j9.prototype,"subject",void 0);j([K({type:z9})],j9.prototype,"subjectPublicKeyInfo",void 0);j([K({type:S.BitString,context:1,implicit:!0,optional:!0})],j9.prototype,"issuerUniqueID",void 0);j([K({type:S.BitString,context:2,implicit:!0,optional:!0})],j9.prototype,"subjectUniqueID",void 0);j([K({type:W5,context:3,optional:!0})],j9.prototype,"extensions",void 0);class u5{tbsCertificate=new j9;tbsCertificateRaw;signatureAlgorithm=new T0;signatureValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:j9,raw:!0})],u5.prototype,"tbsCertificate",void 0);j([K({type:T0})],u5.prototype,"signatureAlgorithm",void 0);j([K({type:S.BitString})],u5.prototype,"signatureValue",void 0);class gX{userCertificate=new ArrayBuffer(0);revocationDate=new T8;crlEntryExtensions;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,converter:x1})],gX.prototype,"userCertificate",void 0);j([K({type:T8})],gX.prototype,"revocationDate",void 0);j([K({type:w9,optional:!0,repeated:"sequence"})],gX.prototype,"crlEntryExtensions",void 0);class C5{version;signature=new T0;issuer=new W8;thisUpdate=new T8;nextUpdate;revokedCertificates;crlExtensions;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,optional:!0})],C5.prototype,"version",void 0);j([K({type:T0})],C5.prototype,"signature",void 0);j([K({type:W8})],C5.prototype,"issuer",void 0);j([K({type:T8})],C5.prototype,"thisUpdate",void 0);j([K({type:T8,optional:!0})],C5.prototype,"nextUpdate",void 0);j([K({type:gX,repeated:"sequence",optional:!0})],C5.prototype,"revokedCertificates",void 0);j([K({type:w9,optional:!0,context:0,repeated:"sequence"})],C5.prototype,"crlExtensions",void 0);class uX{tbsCertList=new C5;tbsCertListRaw;signatureAlgorithm=new T0;signature=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:C5,raw:!0})],uX.prototype,"tbsCertList",void 0);j([K({type:T0})],uX.prototype,"signatureAlgorithm",void 0);j([K({type:S.BitString})],uX.prototype,"signature",void 0);class T7{issuer=new W8;serialNumber=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:W8})],T7.prototype,"issuer",void 0);j([K({type:S.Integer,converter:x1})],T7.prototype,"serialNumber",void 0);var gW=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0})],gW.prototype,"subjectKeyIdentifier",void 0);j([K({type:T7})],gW.prototype,"issuerAndSerialNumber",void 0);gW=j([W0({type:s.Choice})],gW);var s8;(function(W){W[W.v0=0]="v0",W[W.v1=1]="v1",W[W.v2=2]="v2",W[W.v3=3]="v3",W[W.v4=4]="v4",W[W.v5=5]="v5"})(s8||(s8={}));var uW=class extends T0{};uW=j([W0({type:s.Sequence})],uW);var VZ=class extends T0{};VZ=j([W0({type:s.Sequence})],VZ);var f9=class extends T0{};f9=j([W0({type:s.Sequence})],f9);var ZZ=class extends T0{};ZZ=j([W0({type:s.Sequence})],ZZ);var BR=class extends T0{};BR=j([W0({type:s.Sequence})],BR);var Pq=class extends T0{};Pq=j([W0({type:s.Sequence})],Pq);class M7{attrType="";attrValues=[];constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],M7.prototype,"attrType",void 0);j([K({type:S.Any,repeated:"set"})],M7.prototype,"attrValues",void 0);var dz;class G5{version=s8.v0;sid=new gW;digestAlgorithm=new uW;signedAttrs;signedAttrsRaw;signatureAlgorithm=new VZ;signature=new W1;unsignedAttrs;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],G5.prototype,"version",void 0);j([K({type:gW})],G5.prototype,"sid",void 0);j([K({type:uW})],G5.prototype,"digestAlgorithm",void 0);j([K({type:M7,repeated:"set",context:0,implicit:!0,optional:!0,raw:!0})],G5.prototype,"signedAttrs",void 0);j([K({type:VZ})],G5.prototype,"signatureAlgorithm",void 0);j([K({type:W1})],G5.prototype,"signature",void 0);j([K({type:M7,repeated:"set",context:1,implicit:!0,optional:!0})],G5.prototype,"unsignedAttrs",void 0);var QZ=dz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,dz.prototype)}};QZ=dz=j([W0({type:s.Set,itemType:G5})],QZ);var ER=class extends G5{};ER=j([W0({type:s.Sequence})],ER);var $R=class extends T8{};$R=j([W0({type:s.Choice})],$R);class Rq{acIssuer=new V1;acSerial=0;attrs=[];constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],Rq.prototype,"acIssuer",void 0);j([K({type:S.Integer})],Rq.prototype,"acSerial",void 0);j([K({type:I9,repeated:"sequence"})],Rq.prototype,"attrs",void 0);var oz,JZ=oz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,oz.prototype)}};JZ=oz=j([W0({type:s.Sequence,itemType:S.ObjectIdentifier})],JZ);class UZ{pathLenConstraint;permittedAttrs;excludedAttrs;permitUnSpecified=!0;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,optional:!0})],UZ.prototype,"pathLenConstraint",void 0);j([K({type:JZ,implicit:!0,context:0,optional:!0})],UZ.prototype,"permittedAttrs",void 0);j([K({type:JZ,implicit:!0,context:1,optional:!0})],UZ.prototype,"excludedAttrs",void 0);j([K({type:S.Boolean,defaultValue:!0})],UZ.prototype,"permitUnSpecified",void 0);class h5{issuer=new q8;serial=new ArrayBuffer(0);issuerUID=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:q8})],h5.prototype,"issuer",void 0);j([K({type:S.Integer,converter:x1})],h5.prototype,"serial",void 0);j([K({type:S.BitString,optional:!0})],h5.prototype,"issuerUID",void 0);var nz;(function(W){W[W.publicKey=0]="publicKey",W[W.publicKeyCert=1]="publicKeyCert",W[W.otherObjectTypes=2]="otherObjectTypes"})(nz||(nz={}));class b5{digestedObjectType=nz.publicKey;otherObjectTypeID;digestAlgorithm=new T0;objectDigest=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.Enumerated})],b5.prototype,"digestedObjectType",void 0);j([K({type:S.ObjectIdentifier,optional:!0})],b5.prototype,"otherObjectTypeID",void 0);j([K({type:T0})],b5.prototype,"digestAlgorithm",void 0);j([K({type:S.BitString})],b5.prototype,"objectDigest",void 0);class hX{issuerName;baseCertificateID;objectDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:q8,optional:!0})],hX.prototype,"issuerName",void 0);j([K({type:h5,context:0,implicit:!0,optional:!0})],hX.prototype,"baseCertificateID",void 0);j([K({type:b5,context:1,implicit:!0,optional:!0})],hX.prototype,"objectDigestInfo",void 0);var hW=class{v1Form;v2Form;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,repeated:"sequence"})],hW.prototype,"v1Form",void 0);j([K({type:hX,context:0,implicit:!0})],hW.prototype,"v2Form",void 0);hW=j([W0({type:s.Choice})],hW);class bX{notBeforeTime=new Date;notAfterTime=new Date;constructor(W={}){Object.assign(this,W)}}j([K({type:S.GeneralizedTime})],bX.prototype,"notBeforeTime",void 0);j([K({type:S.GeneralizedTime})],bX.prototype,"notAfterTime",void 0);class bW{baseCertificateID;entityName;objectDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:h5,implicit:!0,context:0,optional:!0})],bW.prototype,"baseCertificateID",void 0);j([K({type:q8,implicit:!0,context:1,optional:!0})],bW.prototype,"entityName",void 0);j([K({type:b5,implicit:!0,context:2,optional:!0})],bW.prototype,"objectDigestInfo",void 0);var iz;(function(W){W[W.v2=1]="v2"})(iz||(iz={}));class X5{version=iz.v2;holder=new bW;issuer=new hW;signature=new T0;serialNumber=new ArrayBuffer(0);attrCertValidityPeriod=new bX;attributes=[];issuerUniqueID;extensions;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],X5.prototype,"version",void 0);j([K({type:bW})],X5.prototype,"holder",void 0);j([K({type:hW})],X5.prototype,"issuer",void 0);j([K({type:T0})],X5.prototype,"signature",void 0);j([K({type:S.Integer,converter:x1})],X5.prototype,"serialNumber",void 0);j([K({type:bX})],X5.prototype,"attrCertValidityPeriod",void 0);j([K({type:I9,repeated:"sequence"})],X5.prototype,"attributes",void 0);j([K({type:S.BitString,optional:!0})],X5.prototype,"issuerUniqueID",void 0);j([K({type:W5,optional:!0})],X5.prototype,"extensions",void 0);class mX{acinfo=new X5;signatureAlgorithm=new T0;signatureValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:X5})],mX.prototype,"acinfo",void 0);j([K({type:T0})],mX.prototype,"signatureAlgorithm",void 0);j([K({type:S.BitString})],mX.prototype,"signatureValue",void 0);var qZ;(function(W){W[W.unmarked=1]="unmarked",W[W.unclassified=2]="unclassified",W[W.restricted=4]="restricted",W[W.confidential=8]="confidential",W[W.secret=16]="secret",W[W.topSecret=32]="topSecret"})(qZ||(qZ={}));class AZ extends U4{}class HZ{type="";value=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier,implicit:!0,context:0})],HZ.prototype,"type",void 0);j([K({type:S.Any,implicit:!0,context:1})],HZ.prototype,"value",void 0);class Lq{policyId="";classList=new AZ(qZ.unclassified);securityCategories;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],Lq.prototype,"policyId",void 0);j([K({type:AZ,defaultValue:new AZ(qZ.unclassified)})],Lq.prototype,"classList",void 0);j([K({type:HZ,repeated:"set"})],Lq.prototype,"securityCategories",void 0);class NZ{cotets;oid;string;constructor(W={}){Object.assign(this,W)}}j([K({type:W1})],NZ.prototype,"cotets",void 0);j([K({type:S.ObjectIdentifier})],NZ.prototype,"oid",void 0);j([K({type:S.Utf8String})],NZ.prototype,"string",void 0);class rz{policyAuthority;values=[];constructor(W={}){Object.assign(this,W)}}j([K({type:q8,implicit:!0,context:0,optional:!0})],rz.prototype,"policyAuthority",void 0);j([K({type:NZ,repeated:"sequence"})],rz.prototype,"values",void 0);var AW0=`${C6}.4`,HW0=`${C6}.6`,NW0=`${C6}.10`,IW0=`${N1}.55`,IZ=`${Jq}.10`,zW0=`${IZ}.1`,wW0=`${IZ}.2`,jW0=`${IZ}.3`,OW0=`${IZ}.4`,KW0=`${IZ}.6`,az="2.5.4",CW0=`${az}.72`;var sz;class zZ{targetCertificate=new h5;targetName;certDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:h5})],zZ.prototype,"targetCertificate",void 0);j([K({type:V1,optional:!0})],zZ.prototype,"targetName",void 0);j([K({type:b5,optional:!0})],zZ.prototype,"certDigestInfo",void 0);var fX=class{targetName;targetGroup;targetCert;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,context:0,implicit:!0})],fX.prototype,"targetName",void 0);j([K({type:V1,context:1,implicit:!0})],fX.prototype,"targetGroup",void 0);j([K({type:zZ,context:2,implicit:!0})],fX.prototype,"targetCert",void 0);fX=j([W0({type:s.Choice})],fX);var Bq=sz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,sz.prototype)}};Bq=sz=j([W0({type:s.Sequence,itemType:fX})],Bq);var tz,FR=tz=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,tz.prototype)}};FR=tz=j([W0({type:s.Sequence,itemType:Bq})],FR);class ez{roleAuthority;roleName;constructor(W={}){Object.assign(this,W)}}j([K({type:q8,implicit:!0,context:0,optional:!0})],ez.prototype,"roleAuthority",void 0);j([K({type:V1,implicit:!0,context:1})],ez.prototype,"roleName",void 0);class Eq{service=new V1;ident=new V1;authInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],Eq.prototype,"service",void 0);j([K({type:V1})],Eq.prototype,"ident",void 0);j([K({type:W1,optional:!0})],Eq.prototype,"authInfo",void 0);var Ww;class $q{otherCertFormat="";otherCert=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],$q.prototype,"otherCertFormat",void 0);j([K({type:S.Any})],$q.prototype,"otherCert",void 0);var mW=class{certificate;v2AttrCert;other;constructor(G={}){Object.assign(this,G)}};j([K({type:u5})],mW.prototype,"certificate",void 0);j([K({type:mX,context:2,implicit:!0})],mW.prototype,"v2AttrCert",void 0);j([K({type:$q,context:3,implicit:!0})],mW.prototype,"other",void 0);mW=j([W0({type:s.Choice})],mW);var fW=Ww=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Ww.prototype)}};fW=Ww=j([W0({type:s.Set,itemType:mW})],fW);class m5{contentType="";content=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],m5.prototype,"contentType",void 0);j([K({type:S.Any,context:0})],m5.prototype,"content",void 0);var cX=class{single;any;constructor(G={}){Object.assign(this,G)}};j([K({type:W1})],cX.prototype,"single",void 0);j([K({type:S.Any})],cX.prototype,"any",void 0);cX=j([W0({type:s.Choice})],cX);class pX{eContentType="";eContent;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],pX.prototype,"eContentType",void 0);j([K({type:cX,context:0,optional:!0})],pX.prototype,"eContent",void 0);var wZ=class{value;constructedValue;constructor(G={}){Object.assign(this,G)}};j([K({type:W1,context:0,implicit:!0,optional:!0})],wZ.prototype,"value",void 0);j([K({type:W1,converter:BP,context:0,implicit:!0,optional:!0,repeated:"sequence"})],wZ.prototype,"constructedValue",void 0);wZ=j([W0({type:s.Choice})],wZ);class cW{contentType="";contentEncryptionAlgorithm=new ZZ;encryptedContent;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],cW.prototype,"contentType",void 0);j([K({type:ZZ})],cW.prototype,"contentEncryptionAlgorithm",void 0);j([K({type:wZ,optional:!0})],cW.prototype,"encryptedContent",void 0);class pW{keyAttrId="";keyAttr;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],pW.prototype,"keyAttrId",void 0);j([K({type:S.Any,optional:!0})],pW.prototype,"keyAttr",void 0);var Gw;class jZ{subjectKeyIdentifier=new e9;date;other;constructor(W={}){Object.assign(this,W)}}j([K({type:e9})],jZ.prototype,"subjectKeyIdentifier",void 0);j([K({type:S.GeneralizedTime,optional:!0})],jZ.prototype,"date",void 0);j([K({type:pW,optional:!0})],jZ.prototype,"other",void 0);var lX=class{rKeyId;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:jZ,context:0,implicit:!0,optional:!0})],lX.prototype,"rKeyId",void 0);j([K({type:T7,optional:!0})],lX.prototype,"issuerAndSerialNumber",void 0);lX=j([W0({type:s.Choice})],lX);class Sq{rid=new lX;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:lX})],Sq.prototype,"rid",void 0);j([K({type:W1})],Sq.prototype,"encryptedKey",void 0);var Fq=Gw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Gw.prototype)}};Fq=Gw=j([W0({type:s.Sequence,itemType:Sq})],Fq);class xq{algorithm=new T0;publicKey=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],xq.prototype,"algorithm",void 0);j([K({type:S.BitString})],xq.prototype,"publicKey",void 0);var lW=class{subjectKeyIdentifier;originatorKey;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0,optional:!0})],lW.prototype,"subjectKeyIdentifier",void 0);j([K({type:xq,context:1,implicit:!0,optional:!0})],lW.prototype,"originatorKey",void 0);j([K({type:T7,optional:!0})],lW.prototype,"issuerAndSerialNumber",void 0);lW=j([W0({type:s.Choice})],lW);class P6{version=s8.v3;originator=new lW;ukm;keyEncryptionAlgorithm=new f9;recipientEncryptedKeys=new Fq;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],P6.prototype,"version",void 0);j([K({type:lW,context:0})],P6.prototype,"originator",void 0);j([K({type:W1,context:1,optional:!0})],P6.prototype,"ukm",void 0);j([K({type:f9})],P6.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:Fq})],P6.prototype,"recipientEncryptedKeys",void 0);var dX=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0})],dX.prototype,"subjectKeyIdentifier",void 0);j([K({type:T7})],dX.prototype,"issuerAndSerialNumber",void 0);dX=j([W0({type:s.Choice})],dX);class dW{version=s8.v0;rid=new dX;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],dW.prototype,"version",void 0);j([K({type:dX})],dW.prototype,"rid",void 0);j([K({type:f9})],dW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],dW.prototype,"encryptedKey",void 0);class oX{keyIdentifier=new W1;date;other;constructor(W={}){Object.assign(this,W)}}j([K({type:W1})],oX.prototype,"keyIdentifier",void 0);j([K({type:S.GeneralizedTime,optional:!0})],oX.prototype,"date",void 0);j([K({type:pW,optional:!0})],oX.prototype,"other",void 0);class oW{version=s8.v4;kekid=new oX;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],oW.prototype,"version",void 0);j([K({type:oX})],oW.prototype,"kekid",void 0);j([K({type:f9})],oW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],oW.prototype,"encryptedKey",void 0);class nW{version=s8.v0;keyDerivationAlgorithm;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],nW.prototype,"version",void 0);j([K({type:Pq,context:0,optional:!0})],nW.prototype,"keyDerivationAlgorithm",void 0);j([K({type:f9})],nW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],nW.prototype,"encryptedKey",void 0);class kq{oriType="";oriValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],kq.prototype,"oriType",void 0);j([K({type:S.Any})],kq.prototype,"oriValue",void 0);var I4=class{ktri;kari;kekri;pwri;ori;constructor(G={}){Object.assign(this,G)}};j([K({type:dW,optional:!0})],I4.prototype,"ktri",void 0);j([K({type:P6,context:1,implicit:!0,optional:!0})],I4.prototype,"kari",void 0);j([K({type:oW,context:2,implicit:!0,optional:!0})],I4.prototype,"kekri",void 0);j([K({type:nW,context:3,implicit:!0,optional:!0})],I4.prototype,"pwri",void 0);j([K({type:kq,context:4,implicit:!0,optional:!0})],I4.prototype,"ori",void 0);I4=j([W0({type:s.Choice})],I4);var Xw,OZ=Xw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Xw.prototype)}};OZ=Xw=j([W0({type:s.Set,itemType:I4})],OZ);var Yw,SR=`${Jq}.16`,ZX0=`${SR}.2`,QX0=`${SR}.4`;class KZ{otherRevInfoFormat="";otherRevInfo=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],KZ.prototype,"otherRevInfoFormat",void 0);j([K({type:S.Any})],KZ.prototype,"otherRevInfo",void 0);var _q=class{other=new KZ;constructor(G={}){Object.assign(this,G)}};j([K({type:KZ,context:1,implicit:!0})],_q.prototype,"other",void 0);_q=j([W0({type:s.Choice})],_q);var nX=Yw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Yw.prototype)}};nX=Yw=j([W0({type:s.Set,itemType:_q})],nX);class CZ{certs;crls;constructor(W={}){Object.assign(this,W)}}j([K({type:fW,context:0,implicit:!0,optional:!0})],CZ.prototype,"certs",void 0);j([K({type:nX,context:1,implicit:!0,optional:!0})],CZ.prototype,"crls",void 0);var Vw,Zw=Vw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Vw.prototype)}};Zw=Vw=j([W0({type:s.Set,itemType:M7})],Zw);class iX{version=s8.v0;originatorInfo;recipientInfos=new OZ;encryptedContentInfo=new cW;unprotectedAttrs;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],iX.prototype,"version",void 0);j([K({type:CZ,context:0,implicit:!0,optional:!0})],iX.prototype,"originatorInfo",void 0);j([K({type:OZ})],iX.prototype,"recipientInfos",void 0);j([K({type:cW})],iX.prototype,"encryptedContentInfo",void 0);j([K({type:Zw,context:1,implicit:!0,optional:!0})],iX.prototype,"unprotectedAttrs",void 0);var xR="1.2.840.113549.1.7.2";var Qw,yq=Qw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Qw.prototype)}};yq=Qw=j([W0({type:s.Set,itemType:uW})],yq);class R6{version=s8.v0;digestAlgorithms=new yq;encapContentInfo=new pX;certificates;crls;signerInfos=new QZ;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],R6.prototype,"version",void 0);j([K({type:yq})],R6.prototype,"digestAlgorithms",void 0);j([K({type:pX})],R6.prototype,"encapContentInfo",void 0);j([K({type:fW,context:0,implicit:!0,optional:!0})],R6.prototype,"certificates",void 0);j([K({type:nX,context:1,implicit:!0,optional:!0})],R6.prototype,"crls",void 0);j([K({type:QZ})],R6.prototype,"signerInfos",void 0);var iW="1.2.840.10045.2.1";var DZ="1.2.840.10045.4.1",vq="1.2.840.10045.4.3.1",TZ="1.2.840.10045.4.3.2",MZ="1.2.840.10045.4.3.3",PZ="1.2.840.10045.4.3.4";var Jw="1.2.840.10045.3.1.7";var Uw="1.3.132.0.34";var qw="1.3.132.0.35";function RZ(W){return new T0({algorithm:W})}var _R=RZ(DZ),tX0=RZ(vq),yR=RZ(TZ),vR=RZ(MZ),gR=RZ(PZ);var LZ=class{fieldType;parameters;constructor(G={}){Object.assign(this,G)}};j([K({type:S.ObjectIdentifier})],LZ.prototype,"fieldType",void 0);j([K({type:S.Any})],LZ.prototype,"parameters",void 0);LZ=j([W0({type:s.Sequence})],LZ);class uR extends W1{}var rX=class{a;b;seed;constructor(G={}){Object.assign(this,G)}};j([K({type:S.OctetString})],rX.prototype,"a",void 0);j([K({type:S.OctetString})],rX.prototype,"b",void 0);j([K({type:S.BitString,optional:!0})],rX.prototype,"seed",void 0);rX=j([W0({type:s.Sequence})],rX);var Aw;(function(W){W[W.ecpVer1=1]="ecpVer1"})(Aw||(Aw={}));var P7=class{version=Aw.ecpVer1;fieldID;curve;base;order;cofactor;constructor(G={}){Object.assign(this,G)}};j([K({type:S.Integer})],P7.prototype,"version",void 0);j([K({type:LZ})],P7.prototype,"fieldID",void 0);j([K({type:rX})],P7.prototype,"curve",void 0);j([K({type:uR})],P7.prototype,"base",void 0);j([K({type:S.Integer,converter:x1})],P7.prototype,"order",void 0);j([K({type:S.Integer,optional:!0})],P7.prototype,"cofactor",void 0);P7=j([W0({type:s.Sequence})],P7);var R7=class{namedCurve;implicitCurve;specifiedCurve;constructor(G={}){Object.assign(this,G)}};j([K({type:S.ObjectIdentifier})],R7.prototype,"namedCurve",void 0);j([K({type:S.Null})],R7.prototype,"implicitCurve",void 0);j([K({type:P7})],R7.prototype,"specifiedCurve",void 0);R7=j([W0({type:s.Choice})],R7);class BZ{version=1;privateKey=new W1;parameters;publicKey;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],BZ.prototype,"version",void 0);j([K({type:W1})],BZ.prototype,"privateKey",void 0);j([K({type:R7,context:0,optional:!0})],BZ.prototype,"parameters",void 0);j([K({type:S.BitString,context:1,optional:!0})],BZ.prototype,"publicKey",void 0);class aX{r=new ArrayBuffer(0);s=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,converter:x1})],aX.prototype,"r",void 0);j([K({type:S.Integer,converter:x1})],aX.prototype,"s",void 0);var L7="1.2.840.113549.1.1.1",hR="1.2.840.113549.1.1.7",bR="1.2.840.113549.1.1.9",L6="1.2.840.113549.1.1.10",mR="1.2.840.113549.1.1.2",fR="1.2.840.113549.1.1.4",sX="1.2.840.113549.1.1.5",cR="1.2.840.113549.1.1.14";var gq="1.2.840.113549.1.1.11",tX="1.2.840.113549.1.1.12",eX="1.2.840.113549.1.1.13",Hw="1.2.840.113549.1.1.15",Nw="1.2.840.113549.1.1.16",rW="1.3.14.3.2.26",uq="2.16.840.1.101.3.4.2.4",aW="2.16.840.1.101.3.4.2.1",sW="2.16.840.1.101.3.4.2.2",tW="2.16.840.1.101.3.4.2.3",pR="2.16.840.1.101.3.4.2.5",lR="2.16.840.1.101.3.4.2.6",dR="1.2.840.113549.2.2",oR="1.2.840.113549.2.5",B6="1.2.840.113549.1.1.8";function m8(W){return new T0({algorithm:W,parameters:null})}var MY0=m8(dR),PY0=m8(oR),z4=m8(rW),RY0=m8(uq),LY0=m8(aW),BY0=m8(sW),EY0=m8(tW),$Y0=m8(pR),FY0=m8(lR),hq=new T0({algorithm:B6,parameters:R0.serialize(z4)}),Iw=new T0({algorithm:bR,parameters:R0.serialize($X.toASN(new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer))}),SY0=m8(L7),xY0=m8(mR),kY0=m8(fR),_Y0=m8(sX),yY0=m8(Hw),vY0=m8(Nw),gY0=m8(tX),uY0=m8(eX),hY0=m8(Hw),bY0=m8(Nw);class EZ{hashAlgorithm=new T0(z4);maskGenAlgorithm=new T0({algorithm:B6,parameters:R0.serialize(z4)});pSourceAlgorithm=new T0(Iw);constructor(W={}){Object.assign(this,W)}}j([K({type:T0,context:0,defaultValue:z4})],EZ.prototype,"hashAlgorithm",void 0);j([K({type:T0,context:1,defaultValue:hq})],EZ.prototype,"maskGenAlgorithm",void 0);j([K({type:T0,context:2,defaultValue:Iw})],EZ.prototype,"pSourceAlgorithm",void 0);var oY0=new T0({algorithm:hR,parameters:R0.serialize(new EZ)});class w4{hashAlgorithm=new T0(z4);maskGenAlgorithm=new T0({algorithm:B6,parameters:R0.serialize(z4)});saltLength=20;trailerField=1;constructor(W={}){Object.assign(this,W)}}j([K({type:T0,context:0,defaultValue:z4})],w4.prototype,"hashAlgorithm",void 0);j([K({type:T0,context:1,defaultValue:hq})],w4.prototype,"maskGenAlgorithm",void 0);j([K({type:S.Integer,context:2,defaultValue:20})],w4.prototype,"saltLength",void 0);j([K({type:S.Integer,context:3,defaultValue:1})],w4.prototype,"trailerField",void 0);var eY0=new T0({algorithm:L6,parameters:R0.serialize(new w4)});class WY{digestAlgorithm=new T0;digest=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],WY.prototype,"digestAlgorithm",void 0);j([K({type:W1})],WY.prototype,"digest",void 0);var zw;class $Z{prime=new ArrayBuffer(0);exponent=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,converter:x1})],$Z.prototype,"prime",void 0);j([K({type:S.Integer,converter:x1})],$Z.prototype,"exponent",void 0);j([K({type:S.Integer,converter:x1})],$Z.prototype,"coefficient",void 0);var bq=zw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,zw.prototype)}};bq=zw=j([W0({type:s.Sequence,itemType:$Z})],bq);class f5{version=0;modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);privateExponent=new ArrayBuffer(0);prime1=new ArrayBuffer(0);prime2=new ArrayBuffer(0);exponent1=new ArrayBuffer(0);exponent2=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);otherPrimeInfos;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],f5.prototype,"version",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"modulus",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"publicExponent",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"privateExponent",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"prime1",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"prime2",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"exponent1",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"exponent2",void 0);j([K({type:S.Integer,converter:x1})],f5.prototype,"coefficient",void 0);j([K({type:bq,optional:!0})],f5.prototype,"otherPrimeInfos",void 0);class FZ{modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer,converter:x1})],FZ.prototype,"modulus",void 0);j([K({type:S.Integer,converter:x1})],FZ.prototype,"publicExponent",void 0);var ww;(function(W){W[W.Transient=0]="Transient",W[W.Singleton=1]="Singleton",W[W.ResolutionScoped=2]="ResolutionScoped",W[W.ContainerScoped=3]="ContainerScoped"})(ww||(ww={}));var t8=ww;var zL=_1(IL(),1),{__extends:SZ,__assign:FV0,__rest:SV0,__decorate:xV0,__param:kV0,__metadata:_V0,__awaiter:wL,__generator:jL,__exportStar:yV0,__createBinding:vV0,__values:xZ,__read:XY,__spread:B7,__spreadArrays:gV0,__await:uV0,__asyncGenerator:hV0,__asyncDelegator:bV0,__asyncValues:mV0,__makeTemplateObject:fV0,__importStar:cV0,__importDefault:pV0,__classPrivateFieldGet:lV0,__classPrivateFieldSet:dV0}=zL.default;var Sf="injectionTokens";function Ow(W){var G=Reflect.getMetadata("design:paramtypes",W)||[],X=Reflect.getOwnMetadata(Sf,W)||{};return Object.keys(X).forEach(function(Y){G[+Y]=X[Y]}),G}function kZ(W){return!!W.useClass}function YY(W){return!!W.useFactory}var cq=function(){function W(G){this.wrap=G,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return W.prototype.createProxy=function(G){var X=this,Y={},V=!1,Z,Q=function(){if(!V)Z=G(X.wrap()),V=!0;return Z};return new Proxy(Y,this.createHandler(Q))},W.prototype.createHandler=function(G){var X={},Y=function(V){X[V]=function(){var Z=[];for(var Q=0;Q<arguments.length;Q++)Z[Q]=arguments[Q];Z[0]=G();var J=Reflect[V];return J.apply(void 0,B7(Z))}};return this.reflectMethods.forEach(Y),X},W}();function E6(W){return typeof W==="string"||typeof W==="symbol"}function Kw(W){return typeof W==="object"&&"token"in W&&"multiple"in W}function pq(W){return typeof W==="object"&&"token"in W&&"transform"in W}function OL(W){return typeof W==="function"||W instanceof cq}function eW(W){return!!W.useToken}function WG(W){return W.useValue!=null}function KL(W){return kZ(W)||WG(W)||eW(W)||YY(W)}var xf=function(){function W(){this._registryMap=new Map}return W.prototype.entries=function(){return this._registryMap.entries()},W.prototype.getAll=function(G){return this.ensure(G),this._registryMap.get(G)},W.prototype.get=function(G){this.ensure(G);var X=this._registryMap.get(G);return X[X.length-1]||null},W.prototype.set=function(G,X){this.ensure(G),this._registryMap.get(G).push(X)},W.prototype.setAll=function(G,X){this._registryMap.set(G,X)},W.prototype.has=function(G){return this.ensure(G),this._registryMap.get(G).length>0},W.prototype.clear=function(){this._registryMap.clear()},W.prototype.ensure=function(G){if(!this._registryMap.has(G))this._registryMap.set(G,[])},W}(),_Z=xf;var kf=function(W){SZ(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_Z),CL=kf;var _f=function(){function W(){this.scopedResolutions=new Map}return W}(),yZ=_f;function yf(W,G){if(W===null)return"at position #"+G;var X=W.split(",")[G].trim();return'"'+X+'" at position #'+G}function vf(W,G,X){if(X===void 0)X=" ";return B7([W],G.message.split(`
|
|
214
|
+
`).map(function(Y){return X+Y})).join(`
|
|
215
|
+
`)}function Cw(W,G,X){var Y=XY(W.toString().match(/constructor\(([\w, ]+)\)/)||[],2),V=Y[1],Z=V===void 0?null:V,Q=yf(Z,G);return vf("Cannot inject the dependency "+Q+' of "'+W.name+'" constructor. Reason:',X)}function DL(W){if(typeof W.dispose!=="function")return!1;var G=W.dispose;if(G.length>0)return!1;return!0}var gf=function(W){SZ(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_Z);var uf=function(W){SZ(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_Z);var hf=function(){function W(){this.preResolution=new gf,this.postResolution=new uf}return W}(),TL=hf;var Dw=new Map,bf=function(){function W(G){this.parent=G,this._registry=new CL,this.interceptors=new TL,this.disposed=!1,this.disposables=new Set}return W.prototype.register=function(G,X,Y){if(Y===void 0)Y={lifecycle:t8.Transient};this.ensureNotDisposed();var V;if(!KL(X))V={useClass:X};else V=X;if(eW(V)){var Z=[G],Q=V;while(Q!=null){var J=Q.useToken;if(Z.includes(J))throw Error("Token registration cycle detected! "+B7(Z,[J]).join(" -> "));Z.push(J);var U=this._registry.get(J);if(U&&eW(U.provider))Q=U.provider;else Q=null}}if(Y.lifecycle===t8.Singleton||Y.lifecycle==t8.ContainerScoped||Y.lifecycle==t8.ResolutionScoped){if(WG(V)||YY(V))throw Error('Cannot use lifecycle "'+t8[Y.lifecycle]+'" with ValueProviders or FactoryProviders')}return this._registry.set(G,{provider:V,options:Y}),this},W.prototype.registerType=function(G,X){if(this.ensureNotDisposed(),E6(X))return this.register(G,{useToken:X});return this.register(G,{useClass:X})},W.prototype.registerInstance=function(G,X){return this.ensureNotDisposed(),this.register(G,{useValue:X})},W.prototype.registerSingleton=function(G,X){if(this.ensureNotDisposed(),E6(G)){if(E6(X))return this.register(G,{useToken:X},{lifecycle:t8.Singleton});else if(X)return this.register(G,{useClass:X},{lifecycle:t8.Singleton});throw Error('Cannot register a type name as a singleton without a "to" token')}var Y=G;if(X&&!E6(X))Y=X;return this.register(G,{useClass:Y},{lifecycle:t8.Singleton})},W.prototype.resolve=function(G,X,Y){if(X===void 0)X=new yZ;if(Y===void 0)Y=!1;this.ensureNotDisposed();var V=this.getRegistration(G);if(!V&&E6(G)){if(Y)return;throw Error('Attempted to resolve unregistered dependency token: "'+G.toString()+'"')}if(this.executePreResolutionInterceptor(G,"Single"),V){var Z=this.resolveRegistration(V,X);return this.executePostResolutionInterceptor(G,Z,"Single"),Z}if(OL(G)){var Z=this.construct(G,X);return this.executePostResolutionInterceptor(G,Z,"Single"),Z}throw Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},W.prototype.executePreResolutionInterceptor=function(G,X){var Y,V;if(this.interceptors.preResolution.has(G)){var Z=[];try{for(var Q=xZ(this.interceptors.preResolution.getAll(G)),J=Q.next();!J.done;J=Q.next()){var U=J.value;if(U.options.frequency!="Once")Z.push(U);U.callback(G,X)}}catch(q){Y={error:q}}finally{try{if(J&&!J.done&&(V=Q.return))V.call(Q)}finally{if(Y)throw Y.error}}this.interceptors.preResolution.setAll(G,Z)}},W.prototype.executePostResolutionInterceptor=function(G,X,Y){var V,Z;if(this.interceptors.postResolution.has(G)){var Q=[];try{for(var J=xZ(this.interceptors.postResolution.getAll(G)),U=J.next();!U.done;U=J.next()){var q=U.value;if(q.options.frequency!="Once")Q.push(q);q.callback(G,X,Y)}}catch(A){V={error:A}}finally{try{if(U&&!U.done&&(Z=J.return))Z.call(J)}finally{if(V)throw V.error}}this.interceptors.postResolution.setAll(G,Q)}},W.prototype.resolveRegistration=function(G,X){if(this.ensureNotDisposed(),G.options.lifecycle===t8.ResolutionScoped&&X.scopedResolutions.has(G))return X.scopedResolutions.get(G);var Y=G.options.lifecycle===t8.Singleton,V=G.options.lifecycle===t8.ContainerScoped,Z=Y||V,Q;if(WG(G.provider))Q=G.provider.useValue;else if(eW(G.provider))Q=Z?G.instance||(G.instance=this.resolve(G.provider.useToken,X)):this.resolve(G.provider.useToken,X);else if(kZ(G.provider))Q=Z?G.instance||(G.instance=this.construct(G.provider.useClass,X)):this.construct(G.provider.useClass,X);else if(YY(G.provider))Q=G.provider.useFactory(this);else Q=this.construct(G.provider,X);if(G.options.lifecycle===t8.ResolutionScoped)X.scopedResolutions.set(G,Q);return Q},W.prototype.resolveAll=function(G,X,Y){var V=this;if(X===void 0)X=new yZ;if(Y===void 0)Y=!1;this.ensureNotDisposed();var Z=this.getAllRegistrations(G);if(!Z&&E6(G)){if(Y)return[];throw Error('Attempted to resolve unregistered dependency token: "'+G.toString()+'"')}if(this.executePreResolutionInterceptor(G,"All"),Z){var Q=Z.map(function(U){return V.resolveRegistration(U,X)});return this.executePostResolutionInterceptor(G,Q,"All"),Q}var J=[this.construct(G,X)];return this.executePostResolutionInterceptor(G,J,"All"),J},W.prototype.isRegistered=function(G,X){if(X===void 0)X=!1;return this.ensureNotDisposed(),this._registry.has(G)||X&&(this.parent||!1)&&this.parent.isRegistered(G,!0)},W.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},W.prototype.clearInstances=function(){var G,X;this.ensureNotDisposed();try{for(var Y=xZ(this._registry.entries()),V=Y.next();!V.done;V=Y.next()){var Z=XY(V.value,2),Q=Z[0],J=Z[1];this._registry.setAll(Q,J.filter(function(U){return!WG(U.provider)}).map(function(U){return U.instance=void 0,U}))}}catch(U){G={error:U}}finally{try{if(V&&!V.done&&(X=Y.return))X.call(Y)}finally{if(G)throw G.error}}},W.prototype.createChildContainer=function(){var G,X;this.ensureNotDisposed();var Y=new W(this);try{for(var V=xZ(this._registry.entries()),Z=V.next();!Z.done;Z=V.next()){var Q=XY(Z.value,2),J=Q[0],U=Q[1];if(U.some(function(q){var A=q.options;return A.lifecycle===t8.ContainerScoped}))Y._registry.setAll(J,U.map(function(q){if(q.options.lifecycle===t8.ContainerScoped)return{provider:q.provider,options:q.options};return q}))}}catch(q){G={error:q}}finally{try{if(Z&&!Z.done&&(X=V.return))X.call(V)}finally{if(G)throw G.error}}return Y},W.prototype.beforeResolution=function(G,X,Y){if(Y===void 0)Y={frequency:"Always"};this.interceptors.preResolution.set(G,{callback:X,options:Y})},W.prototype.afterResolution=function(G,X,Y){if(Y===void 0)Y={frequency:"Always"};this.interceptors.postResolution.set(G,{callback:X,options:Y})},W.prototype.dispose=function(){return wL(this,void 0,void 0,function(){var G;return jL(this,function(X){switch(X.label){case 0:return this.disposed=!0,G=[],this.disposables.forEach(function(Y){var V=Y.dispose();if(V)G.push(V)}),[4,Promise.all(G)];case 1:return X.sent(),[2]}})})},W.prototype.getRegistration=function(G){if(this.isRegistered(G))return this._registry.get(G);if(this.parent)return this.parent.getRegistration(G);return null},W.prototype.getAllRegistrations=function(G){if(this.isRegistered(G))return this._registry.getAll(G);if(this.parent)return this.parent.getAllRegistrations(G);return null},W.prototype.construct=function(G,X){var Y=this;if(G instanceof cq)return G.createProxy(function(Z){return Y.resolve(Z,X)});var V=function(){var Z=Dw.get(G);if(!Z||Z.length===0)if(G.length===0)return new G;else throw Error('TypeInfo not known for "'+G.name+'"');var Q=Z.map(Y.resolveParams(X,G));return new(G.bind.apply(G,B7([void 0],Q)))}();if(DL(V))this.disposables.add(V);return V},W.prototype.resolveParams=function(G,X){var Y=this;return function(V,Z){var Q,J,U;try{if(Kw(V))if(pq(V))return V.multiple?(Q=Y.resolve(V.transform)).transform.apply(Q,B7([Y.resolveAll(V.token,new yZ,V.isOptional)],V.transformArgs)):(J=Y.resolve(V.transform)).transform.apply(J,B7([Y.resolve(V.token,G,V.isOptional)],V.transformArgs));else return V.multiple?Y.resolveAll(V.token,new yZ,V.isOptional):Y.resolve(V.token,G,V.isOptional);else if(pq(V))return(U=Y.resolve(V.transform,G)).transform.apply(U,B7([Y.resolve(V.token,G)],V.transformArgs));return Y.resolve(V,G)}catch(q){throw Error(Cw(X,Z,q))}}},W.prototype.ensureNotDisposed=function(){if(this.disposed)throw Error("This container has been disposed, you cannot interact with a disposed container")},W}(),V8=new bf;function mf(W){return function(G){if(Dw.set(G,Ow(G)),W&&W.token)if(!Array.isArray(W.token))V8.register(W.token,G);else W.token.forEach(function(X){V8.register(X,G)})}}var $6=mf;if(typeof Reflect>"u"||!Reflect.getMetadata)throw Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);var Mw;class VY{attrId="";attrValues=[];constructor(W={}){Object.assign(W)}}j([K({type:S.ObjectIdentifier})],VY.prototype,"attrId",void 0);j([K({type:S.Any,repeated:"set"})],VY.prototype,"attrValues",void 0);var ML=Mw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Mw.prototype)}};ML=Mw=j([W0({type:s.Sequence,itemType:VY})],ML);var Pw,PL=Pw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Pw.prototype)}};PL=Pw=j([W0({type:s.Sequence,itemType:m5})],PL);var GG="1.2.840.113549.1.12.10.1";var tQ0=`${GG}.1`,eQ0=`${GG}.2`,WJ0=`${GG}.3`,GJ0=`${GG}.4`,XJ0=`${GG}.5`,YJ0=`${GG}.6`,lq="1.2.840.113549.1.9";class Rw{certId="";certValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],Rw.prototype,"certId",void 0);j([K({type:S.Any,context:0})],Rw.prototype,"certValue",void 0);var RL=`${lq}.22`,UJ0=`${RL}.1`,qJ0=`${RL}.2`;class Lw{crlId="";crltValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],Lw.prototype,"crlId",void 0);j([K({type:S.Any,context:0})],Lw.prototype,"crltValue",void 0);var ff=`${lq}.23`,zJ0=`${ff}.1`;class Bw extends W1{}class XG{encryptionAlgorithm=new T0;encryptedData=new Bw;constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],XG.prototype,"encryptionAlgorithm",void 0);j([K({type:Bw})],XG.prototype,"encryptedData",void 0);var Ew,$w;(function(W){W[W.v1=0]="v1"})($w||($w={}));class Sw extends W1{}var Fw=Ew=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Ew.prototype)}};Fw=Ew=j([W0({type:s.Sequence,itemType:I9})],Fw);class YG{version=$w.v1;privateKeyAlgorithm=new T0;privateKey=new Sw;attributes;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],YG.prototype,"version",void 0);j([K({type:T0})],YG.prototype,"privateKeyAlgorithm",void 0);j([K({type:Sw})],YG.prototype,"privateKey",void 0);j([K({type:Fw,implicit:!0,context:0,optional:!0})],YG.prototype,"attributes",void 0);var LL=class extends YG{};LL=j([W0({type:s.Sequence})],LL);var BL=class extends XG{};BL=j([W0({type:s.Sequence})],BL);class xw{secretTypeId="";secretValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],xw.prototype,"secretTypeId",void 0);j([K({type:S.Any,context:0})],xw.prototype,"secretValue",void 0);class VG{mac=new WY;macSalt=new W1;iterations=1;constructor(W={}){Object.assign(this,W)}}j([K({type:WY})],VG.prototype,"mac",void 0);j([K({type:W1})],VG.prototype,"macSalt",void 0);j([K({type:S.Integer,defaultValue:1})],VG.prototype,"iterations",void 0);class ZY{version=3;authSafe=new m5;macData=new VG;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],ZY.prototype,"version",void 0);j([K({type:m5})],ZY.prototype,"authSafe",void 0);j([K({type:VG,optional:!0})],ZY.prototype,"macData",void 0);var kw;class vZ{bagId="";bagValue=new ArrayBuffer(0);bagAttributes;constructor(W={}){Object.assign(this,W)}}j([K({type:S.ObjectIdentifier})],vZ.prototype,"bagId",void 0);j([K({type:S.Any,context:0})],vZ.prototype,"bagValue",void 0);j([K({type:VY,repeated:"set",optional:!0})],vZ.prototype,"bagAttributes",void 0);var EL=kw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,kw.prototype)}};EL=kw=j([W0({type:s.Sequence,itemType:vZ})],EL);var _w,yw,vw,M8="1.2.840.113549.1.9",NU0=`${M8}.0`,fL=`${M8}.24`,uZ=`${M8}.25`,cL=`${M8}.26`,pL=`${M8}.27`,IU0=`${fL}.1`,zU0=`${fL}.2`,wU0=`${M8}.1`,jU0=`${M8}.2`,OU0=`${M8}.3`,KU0=`${M8}.4`,CU0=`${M8}.5`,DU0=`${M8}.6`,pw=`${M8}.7`,TU0=`${M8}.8`,MU0=`${M8}.9`,PU0=`${M8}.13`,hZ=`${M8}.14`,RU0=`${M8}.15`,LU0=`${M8}.20`,BU0=`${M8}.21`;var EU0=`${uZ}.1`,$U0=`${uZ}.2`,FU0=`${uZ}.3`,SU0=`${uZ}.4`,xU0=`${uZ}.5`,bZ="1.3.6.1.5.5.7.9",kU0=`${bZ}.1`,_U0=`${bZ}.2`,yU0=`${bZ}.3`,vU0=`${bZ}.4`,gU0=`${bZ}.5`,uU0=`${cL}.1`,hU0=`${cL}.2`,bU0=`${pL}.1`,mU0=`${pL}.2`,fU0=`${M8}.16`,cU0=`${M8}.22`,pU0=`${M8}.23`,lU0=`${az}.65`,dq=class extends S8{ia5String;constructor(G={}){super(G)}toString(){return{}.toString(),this.ia5String||super.toString()}};j([K({type:S.IA5String})],dq.prototype,"ia5String",void 0);dq=j([W0({type:s.Choice})],dq);var $L=class extends m5{};$L=j([W0({type:s.Sequence})],$L);var FL=class extends ZY{};FL=j([W0({type:s.Sequence})],FL);var SL=class extends XG{};SL=j([W0({type:s.Sequence})],SL);var gw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:S.IA5String})],gw.prototype,"value",void 0);gw=j([W0({type:s.Choice})],gw);var xL=class extends dq{};xL=j([W0({type:s.Choice})],xL);var kL=class extends S8{};kL=j([W0({type:s.Choice})],kL);var uw=class{value;constructor(G=new Date){this.value=G}};j([K({type:S.GeneralizedTime})],uw.prototype,"value",void 0);uw=j([W0({type:s.Choice})],uw);var _L=class extends S8{};_L=j([W0({type:s.Choice})],_L);var hw=class{value;constructor(G="M"){this.value=G}toString(){return this.value}};j([K({type:S.PrintableString})],hw.prototype,"value",void 0);hw=j([W0({type:s.Choice})],hw);var oq=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:S.PrintableString})],oq.prototype,"value",void 0);oq=j([W0({type:s.Choice})],oq);var yL=class extends oq{};yL=j([W0({type:s.Choice})],yL);var vL=class extends S8{};vL=j([W0({type:s.Choice})],vL);var bw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:S.ObjectIdentifier})],bw.prototype,"value",void 0);bw=j([W0({type:s.Choice})],bw);var gL=class extends T8{};gL=j([W0({type:s.Choice})],gL);var mw=class{value;constructor(G=0){this.value=G}toString(){return this.value.toString()}};j([K({type:S.Integer})],mw.prototype,"value",void 0);mw=j([W0({type:s.Choice})],mw);var uL=class extends G5{};uL=j([W0({type:s.Sequence})],uL);var gZ=class extends S8{};gZ=j([W0({type:s.Choice})],gZ);var hL=_w=class extends W5{constructor(G){super(G);Object.setPrototypeOf(this,_w.prototype)}};hL=_w=j([W0({type:s.Sequence})],hL);var bL=yw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,yw.prototype)}};bL=yw=j([W0({type:s.Set,itemType:M7})],bL);var fw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:S.BmpString})],fw.prototype,"value",void 0);fw=j([W0({type:s.Choice})],fw);var cw=class extends T0{};cw=j([W0({type:s.Sequence})],cw);var mL=vw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,vw.prototype)}};mL=vw=j([W0({type:s.Sequence,itemType:cw})],mL);var lw,mZ=lw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,lw.prototype)}};mZ=lw=j([W0({type:s.Sequence,itemType:I9})],mZ);class j4{version=0;subject=new W8;subjectPKInfo=new z9;attributes=new mZ;constructor(W={}){Object.assign(this,W)}}j([K({type:S.Integer})],j4.prototype,"version",void 0);j([K({type:W8})],j4.prototype,"subject",void 0);j([K({type:z9})],j4.prototype,"subjectPKInfo",void 0);j([K({type:mZ,implicit:!0,context:0,optional:!0})],j4.prototype,"attributes",void 0);class ZG{certificationRequestInfo=new j4;certificationRequestInfoRaw;signatureAlgorithm=new T0;signature=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:j4,raw:!0})],ZG.prototype,"certificationRequestInfo",void 0);j([K({type:T0})],ZG.prototype,"signatureAlgorithm",void 0);j([K({type:S.BitString})],ZG.prototype,"signature",void 0);/*!
|
|
216
|
+
* MIT License
|
|
217
|
+
*
|
|
218
|
+
* Copyright (c) Peculiar Ventures. All rights reserved.
|
|
219
|
+
*
|
|
220
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
221
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
222
|
+
* in the Software without restriction, including without limitation the rights
|
|
223
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
224
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
225
|
+
* furnished to do so, subject to the following conditions:
|
|
226
|
+
*
|
|
227
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
228
|
+
* copies or substantial portions of the Software.
|
|
229
|
+
*
|
|
230
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
231
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
232
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
233
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
234
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
235
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
236
|
+
* SOFTWARE.
|
|
237
|
+
*
|
|
238
|
+
*/var qQ="crypto.algorithm";class $3{getAlgorithms(){return V8.resolveAll(qQ)}toAsnAlgorithm(W){({...W});for(let G of this.getAlgorithms()){let X=G.toAsnAlgorithm(W);if(X)return X}if(/^[0-9.]+$/.test(W.name)){let G=new T0({algorithm:W.name});if("parameters"in W){let X=W;G.parameters=X.parameters}return G}throw Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(W){for(let X of this.getAlgorithms()){let Y=X.toWebAlgorithm(W);if(Y)return Y}return{name:W.algorithm,parameters:W.parameters}}}var QG="crypto.algorithmProvider";V8.registerSingleton(QG,$3);var aq,p9="1.3.36.3.3.2.8.1.1",lL=`${p9}.1`,dL=`${p9}.2`,oL=`${p9}.3`,nL=`${p9}.4`,iL=`${p9}.5`,rL=`${p9}.6`,aL=`${p9}.7`,sL=`${p9}.8`,tL=`${p9}.9`,eL=`${p9}.10`,W3=`${p9}.11`,G3=`${p9}.12`,X3=`${p9}.13`,Y3=`${p9}.14`,V3="brainpoolP160r1",Z3="brainpoolP160t1",Q3="brainpoolP192r1",J3="brainpoolP192t1",U3="brainpoolP224r1",q3="brainpoolP224t1",A3="brainpoolP256r1",H3="brainpoolP256t1",N3="brainpoolP320r1",I3="brainpoolP320t1",z3="brainpoolP384r1",w3="brainpoolP384t1",j3="brainpoolP512r1",O3="brainpoolP512t1",I8="ECDSA",QQ=aq=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case I8.toLowerCase():if("hash"in G)switch((typeof G.hash==="string"?G.hash:G.hash.name).toLowerCase()){case"sha-1":return _R;case"sha-256":return yR;case"sha-384":return vR;case"sha-512":return gR}else if("namedCurve"in G){let X="";switch(G.namedCurve){case"P-256":X=Jw;break;case"K-256":X=aq.SECP256K1;break;case"P-384":X=Uw;break;case"P-521":X=qw;break;case V3:X=lL;break;case Z3:X=dL;break;case Q3:X=oL;break;case J3:X=nL;break;case U3:X=iL;break;case q3:X=rL;break;case A3:X=aL;break;case H3:X=sL;break;case N3:X=tL;break;case I3:X=eL;break;case z3:X=W3;break;case w3:X=G3;break;case j3:X=X3;break;case O3:X=Y3;break}if(X)return new T0({algorithm:iW,parameters:R0.serialize(new R7({namedCurve:X}))})}}return null}toWebAlgorithm(G){switch(G.algorithm){case DZ:return{name:I8,hash:{name:"SHA-1"}};case TZ:return{name:I8,hash:{name:"SHA-256"}};case MZ:return{name:I8,hash:{name:"SHA-384"}};case PZ:return{name:I8,hash:{name:"SHA-512"}};case iW:{if(!G.parameters)throw TypeError("Cannot get required parameters from EC algorithm");switch(R0.parse(G.parameters,R7).namedCurve){case Jw:return{name:I8,namedCurve:"P-256"};case aq.SECP256K1:return{name:I8,namedCurve:"K-256"};case Uw:return{name:I8,namedCurve:"P-384"};case qw:return{name:I8,namedCurve:"P-521"};case lL:return{name:I8,namedCurve:V3};case dL:return{name:I8,namedCurve:Z3};case oL:return{name:I8,namedCurve:Q3};case nL:return{name:I8,namedCurve:J3};case iL:return{name:I8,namedCurve:U3};case rL:return{name:I8,namedCurve:q3};case aL:return{name:I8,namedCurve:A3};case sL:return{name:I8,namedCurve:H3};case tL:return{name:I8,namedCurve:N3};case eL:return{name:I8,namedCurve:I3};case W3:return{name:I8,namedCurve:z3};case G3:return{name:I8,namedCurve:w3};case X3:return{name:I8,namedCurve:j3};case Y3:return{name:I8,namedCurve:O3}}}}return null}};QQ.SECP256K1="1.3.132.0.10";QQ=aq=j([$6()],QQ);V8.registerSingleton(qQ,QQ);var F3=Symbol("name"),S3=Symbol("value");class l1{constructor(W,G={},X=""){this[F3]=W,this[S3]=X;for(let Y in G)this[Y]=G[Y]}}l1.NAME=F3;l1.VALUE=S3;class x3{static toTextObject(W){let G=new l1("Algorithm Identifier",{},C4.toString(W.algorithm));if(W.parameters)switch(W.algorithm){case iW:{let X=new QQ().toWebAlgorithm(W);if(X&&"namedCurve"in X)G["Named Curve"]=X.namedCurve;else G.Parameters=W.parameters;break}default:G.Parameters=W.parameters}return G}}class C4{static toString(W){let G=this.items[W];if(G)return G;return W}}C4.items={[rW]:"sha1",[uq]:"sha224",[aW]:"sha256",[sW]:"sha384",[tW]:"sha512",[L7]:"rsaEncryption",[sX]:"sha1WithRSAEncryption",[cR]:"sha224WithRSAEncryption",[gq]:"sha256WithRSAEncryption",[tX]:"sha384WithRSAEncryption",[eX]:"sha512WithRSAEncryption",[iW]:"ecPublicKey",[DZ]:"ecdsaWithSHA1",[vq]:"ecdsaWithSHA224",[TZ]:"ecdsaWithSHA256",[MZ]:"ecdsaWithSHA384",[PZ]:"ecdsaWithSHA512",[zR]:"TLS WWW server authentication",[wR]:"TLS WWW client authentication",[jR]:"Code Signing",[OR]:"E-mail Protection",[KR]:"Time Stamping",[CR]:"OCSP Signing",[xR]:"Signed Data"};class S6{static serialize(W){return this.serializeObj(W).join(`
|
|
239
|
+
`)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,G=0){let X=[],Y=this.pad(G++),V="",Z=W[l1.VALUE];if(Z)V=` ${Z}`;X.push(`${Y}${W[l1.NAME]}:${V}`),Y=this.pad(G);for(let Q in W){if(typeof Q==="symbol")continue;let J=W[Q],U=Q?`${Q}: `:"";if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")X.push(`${Y}${U}${J}`);else if(J instanceof Date)X.push(`${Y}${U}${J.toUTCString()}`);else if(Array.isArray(J))for(let q of J)q[l1.NAME]=Q,X.push(...this.serializeObj(q,G));else if(J instanceof l1)J[l1.NAME]=Q,X.push(...this.serializeObj(J,G));else if(S0.isBufferSource(J))if(Q)X.push(`${Y}${U}`),X.push(...this.serializeBufferSource(J,G+1));else X.push(...this.serializeBufferSource(J,G));else if("toTextObject"in J){let q=J.toTextObject();q[l1.NAME]=Q,X.push(...this.serializeObj(q,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=S0.toUint8Array(W),V=[];for(let Z=0;Z<Y.length;){let Q=[];for(let J=0;J<16&&Z<Y.length;J++){if(J===8)Q.push("");let U=Y[Z++].toString(16).padStart(2,"0");Q.push(U)}V.push(`${X}${Q.join(" ")}`)}return V}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}S6.oidSerializer=C4;S6.algorithmSerializer=x3;var QY;class k6{get rawData(){if(!C1(this,QY,"f"))U8(this,QY,R0.serialize(this.asn),"f");return C1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),S0.isBufferSource(W[0]))this.asn=R0.parse(W[0],W[1]),U8(this,QY,S0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof k6)return _M(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return R0.toString(this.rawData);case"text":return S6.serialize(this.toTextObject());case"hex":return l0.ToHex(this.rawData);case"base64":return l0.ToBase64(this.rawData);case"base64url":return l0.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let W=this.toTextObjectEmpty();return W[""]=this.rawData,W}toTextObjectEmpty(W){return new l1(this.getTextName(),{},W)}}QY=new WeakMap;k6.NAME="ASN";class Y5 extends k6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else G=R0.serialize(new w9({extnID:W[0],critical:W[1],extnValue:new W1(S0.toArrayBuffer(W[2]))}));super(G,w9)}onInit(W){this.type=W.extnID,this.critical=W.critical,this.value=W.extnValue.buffer}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.value,W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty(this.critical?"critical":void 0);if(W[l1.NAME]===Y5.NAME)W[l1.NAME]=C4.toString(this.type);return W}}var k3;class F6{static isCryptoKeyPair(W){return W&&W.privateKey&&W.publicKey}static isCryptoKey(W){return W&&W.usages&&W.type&&W.algorithm&&W.extractable!==void 0}constructor(){if(this.items=new Map,this[k3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(F6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(F6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,G){return this.items.forEach(W,G)}has(W){return this.items.has(W)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(W=F6.DEFAULT){let G=this.items.get(W.toLowerCase());if(!G)throw Error(`Cannot get Crypto by name '${W}'`);return G}set(W,G){if(typeof W==="string"){if(!G)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),G)}else this.items.set(F6.DEFAULT,W);return this}}k3=Symbol.toStringTag;F6.DEFAULT="default";var x8=new F6,df=/^[0-2](?:\.[1-9][0-9]*)+$/;function of(W){return new RegExp(df).test(W)}class Yj{constructor(W={}){this.items={};for(let G in W)this.register(G,W[G])}get(W){return this.items[W]||null}findId(W){if(!of(W))return this.get(W);return W}register(W,G){this.items[W]=G,this.items[G]=W}}var c9=new Yj;c9.register("CN","2.5.4.3");c9.register("L","2.5.4.7");c9.register("ST","2.5.4.8");c9.register("O","2.5.4.10");c9.register("OU","2.5.4.11");c9.register("C","2.5.4.6");c9.register("DC","0.9.2342.19200300.100.1.25");c9.register("E","1.2.840.113549.1.9.1");c9.register("G","2.5.4.42");c9.register("I","2.5.4.43");c9.register("SN","2.5.4.4");c9.register("T","2.5.4.12");function nf(W,G){return`\\${l0.ToHex(l0.FromUtf8String(G)).toUpperCase()}`}function rf(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,nf)}class c5{static isASCII(W){for(let G=0;G<W.length;G++)if(W.charCodeAt(G)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,G={}){this.extraNames=new Yj,this.asn=new W8;for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];this.extraNames.register(X,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof W8)this.asn=W;else if(S0.isBufferSource(W))this.asn=R0.parse(W,W8);else this.asn=this.fromJSON(W)}getField(W){let G=this.extraNames.findId(W)||c9.findId(W),X=[];for(let Y of this.asn)for(let V of Y)if(V.type===G)X.push(V.value.toString());return X}getName(W){return this.extraNames.get(W)||c9.get(W)}toString(){return this.asn.map((W)=>W.map((G)=>{let X=this.getName(G.type)||G.type,Y=G.value.anyValue?`#${l0.ToHex(G.value.anyValue)}`:rf(G.value.toString());return`${X}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let G=[];for(let X of this.asn){let Y={};for(let V of X){let Z=this.getName(V.type)||V.type;(W=Y[Z])!==null&&W!==void 0||(Y[Z]=[]),Y[Z].push(V.value.anyValue?`#${l0.ToHex(V.value.anyValue)}`:V.value.toString())}G.push(Y)}return G}fromString(W){let G=new W8,X=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,V=",";while(Y=X.exec(`${W},`)){let[,Z,Q]=Y,J=Q[Q.length-1];if(J===","||J==="+")Q=Q.slice(0,Q.length-1),Y[3]=J;let U=Y[3];Z=this.getTypeOid(Z);let q=this.createAttribute(Z,Q);if(V==="+")G[G.length-1].push(q);else G.push(new K6([q]));V=U}return G}fromJSON(W){let G=new W8;for(let X of W){let Y=new K6;for(let V in X){let Z=this.getTypeOid(V),Q=X[V];for(let J of Q){let U=this.createAttribute(Z,J);Y.push(U)}}G.push(Y)}return G}getTypeOid(W){if(!/[\d.]+/.test(W))W=this.getName(W)||"";if(!W)throw Error(`Cannot get OID for name type '${W}'`);return W}createAttribute(W,G){let X=new kX({type:W});if(typeof G==="object")for(let Y in G)switch(Y){case"ia5String":X.value.ia5String=G[Y];break;case"utf8String":X.value.utf8String=G[Y];break;case"universalString":X.value.universalString=G[Y];break;case"bmpString":X.value.bmpString=G[Y];break;case"printableString":X.value.printableString=G[Y];break}else if(G[0]==="#")X.value.anyValue=l0.FromHex(G.slice(1));else{let Y=this.processStringValue(G);if(W===this.getName("E")||W===this.getName("DC"))X.value.ia5String=Y;else if(c5.isPrintableString(Y))X.value.printableString=Y;else X.value.utf8String=Y}return X}processStringValue(W){let G=/"(.*?[^\\])?"/.exec(W);if(G)W=G[1];return W.replace(/\\0a/ig,`
|
|
240
|
+
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return R0.serialize(this.asn)}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||x8.get();else X=W[0]||x8.get();return await X.subtle.digest(Y,this.toArrayBuffer())}}var _3="Cannot initialize GeneralName from ASN.1 data.",K3=`${_3} Unsupported string format in use.`,af=`${_3} Value doesn't match to GUID regular expression.`,C3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,D3="1.3.6.1.4.1.311.25.1",T3="1.3.6.1.4.1.311.20.2.3",dw="dns",ow="dn",nw="email",iw="ip",rw="url",aw="guid",sw="upn",nq="id";class O4 extends k6{constructor(...W){let G;if(W.length===2)switch(W[0]){case ow:{let X=new c5(W[1]).toArrayBuffer(),Y=R0.parse(X,W8);G=new V1({directoryName:Y});break}case dw:G=new V1({dNSName:W[1]});break;case nw:G=new V1({rfc822Name:W[1]});break;case aw:{let X=new RegExp(C3,"i").exec(W[1]);if(!X)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=X.slice(1).map((V,Z)=>{if(Z<3)return l0.ToHex(new Uint8Array(l0.FromHex(V)).reverse());return V}).join("");G=new V1({otherName:new _W({typeId:D3,value:R0.serialize(new W1(l0.FromHex(Y)))})});break}case iw:G=new V1({iPAddress:W[1]});break;case nq:G=new V1({registeredID:W[1]});break;case sw:{G=new V1({otherName:new _W({typeId:T3,value:R0.serialize(Jz.toASN(W[1]))})});break}case rw:G=new V1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(S0.isBufferSource(W[0]))G=R0.parse(W[0],V1);else G=W[0];super(G)}onInit(W){if(W.dNSName!=null)this.type=dw,this.value=W.dNSName;else if(W.rfc822Name!=null)this.type=nw,this.value=W.rfc822Name;else if(W.iPAddress!=null)this.type=iw,this.value=W.iPAddress;else if(W.uniformResourceIdentifier!=null)this.type=rw,this.value=W.uniformResourceIdentifier;else if(W.registeredID!=null)this.type=nq,this.value=W.registeredID;else if(W.directoryName!=null)this.type=ow,this.value=new c5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===D3){this.type=aw;let G=R0.parse(W.otherName.value,W1),X=new RegExp(C3,"i").exec(l0.ToHex(G));if(!X)throw Error(af);this.value=X.slice(1).map((Y,V)=>{if(V<3)return l0.ToHex(new Uint8Array(l0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===T3)this.type=sw,this.value=R0.parse(W.otherName.value,S8).toString();else throw Error(K3);else throw Error(K3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case ow:case dw:case aw:case iw:case nq:case sw:case rw:W=this.type.toUpperCase();break;case nw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let G=this.value;if(this.type===nq)G=C4.toString(G);return new l1(W,void 0,G)}}class x6 extends k6{constructor(W){let G;if(W instanceof q8)G=W;else if(Array.isArray(W)){let X=[];for(let Y of W)if(Y instanceof V1)X.push(Y);else{let V=R0.parse(new O4(Y.type,Y.value).rawData,V1);X.push(V)}G=new q8(X)}else if(S0.isBufferSource(W))G=R0.parse(W,q8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(G)}onInit(W){let G=[];for(let X of W){let Y=null;try{Y=new O4(X)}catch{continue}G.push(Y)}this.items=G}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let G of this.items){let X=G.toTextObject(),Y=W[X[l1.NAME]];if(!Array.isArray(Y))Y=[],W[X[l1.NAME]]=Y;Y.push(X)}return W}}x6.NAME="GeneralNames";var ZQ="-{5}",JQ="\\n",sf=`[^${JQ}]+`,tf=`${ZQ}BEGIN (${sf}(?=${ZQ}))${ZQ}`,ef=`${ZQ}END \\1${ZQ}`,qY="\\n",Wc=`[^:${JQ}]+`,Gc=`(?:[^${JQ}]+${qY}(?: +[^${JQ}]+${qY})*)`,Xc="[a-zA-Z0-9=+/]+",Yc=`(?:${Xc}${qY})+`,M3=`${tf}${qY}(?:((?:${Wc}: ${Gc})+))?${qY}?(${Yc})${ef}`;class O9{static isPem(W){return typeof W==="string"&&new RegExp(M3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let G=new RegExp(M3,"g"),X=[],Y=null;while(Y=G.exec(W)){let V=Y[3].replace(new RegExp(`[${JQ}]+`,"g"),""),Z={type:Y[1],headers:[],rawData:l0.FromBase64(V)},Q=Y[2];if(Q){let J=Q.split(new RegExp(qY,"g")),U=null;for(let q of J){let[A,N]=q.split(/:(.*)/);if(N===void 0){if(!U)throw Error("Cannot parse PEM string. Incorrect header value");U.value+=A.trim()}else{if(U)Z.headers.push(U);U={key:A,value:N.trim()}}}if(U)Z.headers.push(U)}X.push(Z)}return X}static decode(W){return this.decodeWithHeaders(W).map((X)=>X.rawData)}static decodeFirst(W){let G=this.decode(W);if(!G.length)throw RangeError("PEM string doesn't contain any objects");return G[0]}static encode(W,G){if(Array.isArray(W)){let X=[];if(G)W.forEach((Y)=>{if(!S0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");X.push(this.encodeStruct({type:G,rawData:S0.toArrayBuffer(Y)}))});else W.forEach((Y)=>{if(!("type"in Y))throw TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");X.push(this.encodeStruct(Y))});return X.join(`
|
|
241
|
+
`)}else{if(!G)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:G,rawData:S0.toArrayBuffer(W)})}}static encodeStruct(W){var G;let X=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${X}-----`),(G=W.headers)===null||G===void 0?void 0:G.length){for(let U of W.headers)Y.push(`${U.key}: ${U.value}`);Y.push("")}let V=l0.ToBase64(W.rawData),Z,Q=0,J=Array();while(Q<V.length){if(V.length-Q<64)Z=V.substring(Q);else Z=V.substring(Q,Q+64),Q+=64;if(Z.length!==0){if(J.push(Z),Z.length<64)break}else break}return Y.push(...J),Y.push(`-----END ${X}-----`),Y.join(`
|
|
242
|
+
`)}}O9.CertificateTag="CERTIFICATE";O9.CrlTag="CRL";O9.CertificateRequestTag="CERTIFICATE REQUEST";O9.PublicKeyTag="PUBLIC KEY";O9.PrivateKeyTag="PRIVATE KEY";class K4 extends k6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(O9.isPem(W))return O9.decode(W)[0];else if(l0.isHex(W))return l0.FromHex(W);else if(l0.isBase64(W))return l0.FromBase64(W);else if(l0.isBase64Url(W))return l0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=l0.ToBinary(W);if(O9.isPem(X))return O9.decode(X)[0];else if(l0.isHex(X))return l0.FromHex(X);else if(l0.isBase64(X))return l0.FromBase64(X);else if(l0.isBase64Url(X))return l0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(K4.isAsnEncoded(W[0]))super(K4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return O9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class p5 extends K4{static async create(W,G=x8.get()){if(W instanceof p5)return W;else if(F6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new p5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new p5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(K4.isAsnEncoded(W))super(W,z9);else super(W);this.tag=O9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||x8.get();else G=W[0]||x8.get();let V=this.rawData,Z=R0.parse(this.rawData,z9);if(Z.algorithm.algorithm===L6)V=Vc(Z,V);return G.subtle.importKey("spki",V,Y,!0,X)}onInit(W){let G=V8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case L7:{let Y=R0.parse(W.subjectPublicKey,FZ),V=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!V[0]?V.slice(1):V).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||x8.get();else X=W[0]||x8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=x8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=x8.get();let Y=R0.parse(this.rawData,z9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=R0.parse(this.rawData,z9);switch(W.Algorithm=S6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case L7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Vc(W,G){return W.algorithm=new T0({algorithm:L7,parameters:null}),G=R0.serialize(W),G}class UQ extends Y5{static async create(W,G=!1,X=x8.get()){if("name"in W&&"serialNumber"in W)return new UQ(W,G);let V=await(await p5.create(W,X)).getKeyIdentifier(X);return new UQ(l0.ToHex(V),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new q4({keyIdentifier:new _X(l0.FromHex(W[0]))});super(qq,W[1],R0.serialize(G))}else{let G=W[0],X=G.name instanceof x6?R0.parse(G.name.rawData,q8):G.name,Y=new q4({authorityCertIssuer:X,authorityCertSerialNumber:l0.FromHex(G.serialNumber)});super(qq,W[1],R0.serialize(Y))}}onInit(W){super.onInit(W);let G=R0.parse(W.extnValue,q4);if(G.keyIdentifier)this.keyId=l0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?l0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=R0.parse(this.value,q4);if(G.authorityCertIssuer)W["Authority Issuer"]=new x6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}UQ.NAME="Authority Key Identifier";class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=R0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(Aq,W[2],R0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Vj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=R0.parse(this.value,eV);this.usages=G.map((X)=>X)}else{let G=new eV(W[0]);super(Kq,W[1],R0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>C4.toString(G)).join(", "),W}}Zj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=R0.parse(this.value,GZ);this.usages=G.toNumber()}else{let G=new GZ(W[0]);super(Cq,W[1],R0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=R0.parse(this.value,GZ);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tq extends Y5{static async create(W,G=!1,X=x8.get()){let V=await(await p5.create(W,X)).getKeyIdentifier(X);return new tq(l0.ToHex(V),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=R0.parse(this.value,e9);this.keyId=l0.ToHex(G)}else{let G=typeof W[0]==="string"?l0.FromHex(W[0]):W[0],X=new e9(G);super(bz,W[1],R0.serialize(X));this.keyId=l0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=R0.parse(this.value,e9);return W[""]=G,W}}tq.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uz,W[1],new x6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=R0.parse(W.extnValue,Mq);this.names=new x6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=R0.parse(this.value,rV);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,V=new rV(X.map((Z)=>new vX({policyIdentifier:Z})));super(Nq,Y,R0.serialize(V));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new l1("",{},C4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(Nq,Uj);class qj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((Z)=>{return new N4({distributionPoint:new H4({fullName:[new V1({uniformResourceIdentifier:Z})]})})}),V=new T6(Y);super(jq,W[1],R0.serialize(V))}else{let X=new T6(W[0]);super(jq,W[1],R0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=R0.parse(W.extnValue,T6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((V)=>new O4(V).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((V)=>V.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Aj extends Y5{constructor(...W){var G,X,Y,V;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let Z=new vW(W[0]);super(Uq,W[1],R0.serialize(Z))}else{let Z=W[0],Q=new vW;rq(Q,Z,Kz,"ocsp"),rq(Q,Z,Cz,"caIssuers"),rq(Q,Z,Dz,"timeStamping"),rq(Q,Z,Tz,"caRepository");super(Uq,W[1],R0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(V=this.caRepository)!==null&&V!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],R0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case Kz:this.ocsp.push(new O4(X.accessLocation));break;case Cz:this.caIssuers.push(new O4(X.accessLocation));break;case Dz:this.timeStamping.push(new O4(X.accessLocation));break;case Tz:this.caRepository.push(new O4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iq(W,"OCSP",this.ocsp);if(this.caIssuers.length)iq(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iq(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iq(W,"CA Repository",this.caRepository);return W}}Aj.NAME="Authority Info Access";function iq(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new l1("");X.forEach((V,Z)=>{let Q=V.toTextObject(),J=`${Q[l1.NAME]} ${Z+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rq(W,G,X,Y){let V=G[Y];if(V)(Array.isArray(V)?V:[V]).forEach((Q)=>{if(typeof Q==="string")Q=new O4("url",Q);W.push(new D6({accessMethod:X,accessLocation:R0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xz,W[1],new x6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=R0.parse(W.extnValue,q8);this.names=new x6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class AY extends k6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((V)=>S0.toArrayBuffer(V)):[];G=R0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new l1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[l1.NAME]===AY.NAME)W[l1.NAME]=C4.toString(this.type);return W}}AY.NAME="Attribute";class Nj extends AY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new gZ({printableString:W[0]});super(pw,[R0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=R0.parse(this.values[0],gZ);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[l1.VALUE]=this.password,W}}Nj.NAME="Challenge Password";class eq extends AY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let V of X)Y.push(R0.parse(V.rawData,w9));super(hZ,[R0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=R0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(R0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[l1.NAME]]=X;return W}}eq.NAME="Extensions";class AQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new AY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}AQ.items=new Map;var HQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sq,Wj=sq=class{static createPssParams(G,X){let Y=sq.getHashAlgorithm(G);if(!Y)return null;return new w4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:B6,parameters:R0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=V8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gq,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:L7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sq.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:L6,parameters:R0.serialize(X)})}else return new T0({algorithm:L6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case L7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gq:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case L6:if(G.parameters){let X=R0.parse(G.parameters,w4);return{name:"RSA-PSS",hash:V8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sq=j([$6()],Wj);V8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([$6()],Gj);V8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,V=new aX,Z=S0.toUint8Array(G);return V.r=this.removePadding(Z.slice(0,Y),!0),V.s=this.removePadding(Z.slice(Y,Y+Y),!0),R0.serialize(V)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=R0.parse(G,aX),Y=W.namedCurve,V=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,Z=this.addPadding(V,this.removePadding(X.r)),Q=this.addPadding(V,this.removePadding(X.s));return kM(Z,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([$6()],Xj);V8.registerSingleton(qQ,Xj);var fZ,cZ,pZ,lZ,dZ,oZ,nZ,JY;class v3 extends K4{get subjectName(){if(!C1(this,cZ,"f"))U8(this,cZ,new c5(this.asn.certificationRequestInfo.subject),"f");return C1(this,cZ,"f")}get subject(){if(!C1(this,pZ,"f"))U8(this,pZ,this.subjectName.toString(),"f");return C1(this,pZ,"f")}get signatureAlgorithm(){if(!C1(this,lZ,"f")){let W=V8.resolve(QG);U8(this,lZ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return C1(this,lZ,"f")}get signature(){if(!C1(this,dZ,"f"))U8(this,dZ,this.asn.signature,"f");return C1(this,dZ,"f")}get publicKey(){if(!C1(this,oZ,"f"))U8(this,oZ,new p5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return C1(this,oZ,"f")}get attributes(){if(!C1(this,nZ,"f"))U8(this,nZ,this.asn.certificationRequestInfo.attributes.map((W)=>AQ.create(R0.serialize(W))),"f");return C1(this,nZ,"f")}get extensions(){if(!C1(this,JY,"f")){U8(this,JY,[],"f");let W=this.getAttribute(hZ);if(W instanceof eq)U8(this,JY,W.items,"f")}return C1(this,JY,"f")}get tbs(){if(!C1(this,fZ,"f"))U8(this,fZ,this.asn.certificationRequestInfoRaw||R0.serialize(this.asn.certificationRequestInfo),"f");return C1(this,fZ,"f")}constructor(W){let G=K4.isAsnEncoded(W)?[W,ZG]:[W];super(G[0],G[1]);fZ.set(this,void 0),cZ.set(this,void 0),pZ.set(this,void 0),lZ.set(this,void 0),dZ.set(this,void 0),oZ.set(this,void 0),nZ.set(this,void 0),JY.set(this,void 0),this.tag=O9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=x8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=V8.resolveAll(HQ).reverse(),V=null;for(let Q of Y)if(V=Q.toWebSignature(G,this.signature),V)break;if(!V)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,V,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=R0.parse(this.rawData,ZG),X=G.certificationRequestInfo,Y=new l1("",{Version:`${D7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let V=new l1("");for(let Z of this.attributes){let Q=Z.toTextObject();V[Q[l1.NAME]]=Q}Y.Attributes=V}return W.Data=Y,W.Signature=new l1("",{Algorithm:S6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}fZ=new WeakMap,cZ=new WeakMap,pZ=new WeakMap,lZ=new WeakMap,dZ=new WeakMap,oZ=new WeakMap,nZ=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var iZ,rZ,aZ,sZ,tZ,eZ,WQ,GQ,XQ,YQ,UY,VQ;class Ij extends K4{get publicKey(){if(!C1(this,VQ,"f"))U8(this,VQ,new p5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return C1(this,VQ,"f")}get serialNumber(){if(!C1(this,rZ,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);U8(this,rZ,l0.ToHex(G),"f")}return C1(this,rZ,"f")}get subjectName(){if(!C1(this,aZ,"f"))U8(this,aZ,new c5(this.asn.tbsCertificate.subject),"f");return C1(this,aZ,"f")}get subject(){if(!C1(this,sZ,"f"))U8(this,sZ,this.subjectName.toString(),"f");return C1(this,sZ,"f")}get issuerName(){if(!C1(this,tZ,"f"))U8(this,tZ,new c5(this.asn.tbsCertificate.issuer),"f");return C1(this,tZ,"f")}get issuer(){if(!C1(this,eZ,"f"))U8(this,eZ,this.issuerName.toString(),"f");return C1(this,eZ,"f")}get notBefore(){if(!C1(this,WQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");U8(this,WQ,W,"f")}return C1(this,WQ,"f")}get notAfter(){if(!C1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");U8(this,GQ,W,"f")}return C1(this,GQ,"f")}get signatureAlgorithm(){if(!C1(this,XQ,"f")){let W=V8.resolve(QG);U8(this,XQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return C1(this,XQ,"f")}get signature(){if(!C1(this,YQ,"f"))U8(this,YQ,this.asn.signatureValue,"f");return C1(this,YQ,"f")}get extensions(){if(!C1(this,UY,"f")){if(U8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)U8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(R0.serialize(W))),"f")}return C1(this,UY,"f")}get tbs(){if(!C1(this,iZ,"f"))U8(this,iZ,this.asn.tbsCertificateRaw||R0.serialize(this.asn.tbsCertificate),"f");return C1(this,iZ,"f")}constructor(W){let G=K4.isAsnEncoded(W)?[W,u5]:[W];super(G[0],G[1]);iZ.set(this,void 0),rZ.set(this,void 0),aZ.set(this,void 0),sZ.set(this,void 0),tZ.set(this,void 0),eZ.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),UY.set(this,void 0),VQ.set(this,void 0),this.tag=O9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=x8.get()){let X,Y,V=W.publicKey;try{if(!V)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in V)X={...V.publicKey.algorithm,...this.signatureAlgorithm},Y=await V.publicKey.export(X,["verify"],G);else if(V instanceof p5)X={...V.algorithm,...this.signatureAlgorithm},Y=await V.export(X,["verify"],G);else if(S0.isBufferSource(V)){let U=new p5(V);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...V.algorithm,...this.signatureAlgorithm},Y=V}catch{return!1}let Z=V8.resolveAll(HQ).reverse(),Q=null;for(let U of Z)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let q=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<q&&q<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=x8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=x8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=R0.parse(this.rawData,u5),X=G.tbsCertificate,Y=new l1("",{Version:`${D7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":S6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new l1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let V=new l1("");for(let Z of this.extensions){let Q=Z.toTextObject();V[Q[l1.NAME]]=Q}Y.Extensions=V}return W.Data=Y,W.Signature=new l1("",{Algorithm:S6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}iZ=new WeakMap,rZ=new WeakMap,aZ=new WeakMap,sZ=new WeakMap,tZ=new WeakMap,eZ=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,UY=new WeakMap,VQ=new WeakMap;Ij.NAME="Certificate";function Zc(W,G=x8.get()){let X=S0.toUint8Array(l0.FromHex(W||"")),Y=X&&X.length&&X.some((Z)=>Z>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let V=0;while(V<Y.length-1&&Y[V]===0)V++;if(Y=Y.slice(V),Y[0]>127){let Z=new Uint8Array(Y.length+1);Z[0]=0,Z.set(Y,1),Y=Z}return Y.buffer}class zj{static async createSelfSigned(W,G=x8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=x8.get()){var X;let Y;if(W.publicKey instanceof p5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let V=Zc(W.serialNumber,G),Z=W.notBefore||new Date,Q=W.notAfter||new Date(Z.getTime()+31536000000),J=new u5({tbsCertificate:new j9({version:D7.v3,serialNumber:V,validity:new M6({notBefore:Z,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>R0.parse(C.rawData,w9)))||[]),subjectPublicKeyInfo:R0.parse(Y,z9)})});if(W.subject){let C=W.subject instanceof c5?W.subject:new c5(W.subject);J.tbsCertificate.subject=R0.parse(C.toArrayBuffer(),W8)}if(W.issuer){let C=W.issuer instanceof c5?W.issuer:new c5(W.issuer);J.tbsCertificate.issuer=R0.parse(C.toArrayBuffer(),W8)}let U={hash:"SHA-256"},q="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},A=V8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=A.toAsnAlgorithm(q);let N=R0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(q,W.signingKey,N):W.signature,z=V8.resolveAll(HQ).reverse(),w=null;for(let C of z)if(w=C.toAsnSignature(q,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new Ij(R0.serialize(J))}}var Qc,Jc,Uc,qc,Ac,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Qc=new WeakMap,Jc=new WeakMap,Uc=new WeakMap,qc=new WeakMap,Ac=new WeakMap;var Hc,Nc,Ic,zc,wc,jc,Oc;Hc=new WeakMap,Nc=new WeakMap,Ic=new WeakMap,zc=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap;l9.register(Aq,Vj);l9.register(Kq,Zj);l9.register(Cq,Qj);l9.register(bz,tq);l9.register(qq,UQ);l9.register(uz,Jj);l9.register(jq,qj);l9.register(Uq,Aj);l9.register(xz,Hj);AQ.register(pw,Nj);AQ.register(hZ,eq);V8.registerSingleton(HQ,y3);V8.registerSingleton(HQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=_1(N8(),1),$S=_1(N8(),1),FS=_1(xU(),1);import{createHash as gd,createHmac as ud}from"crypto";import*as D4 from"crypto";var UG=D4&&typeof D4==="object"&&"webcrypto"in D4?D4.webcrypto:D4&&typeof D4==="object"&&("randomBytes"in D4)?D4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function KQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function l5(W,...G){if(!qG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function JA(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");KQ(W.outputLen),KQ(W.blockLen)}function zY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function zE(W,G){l5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function M4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function UA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function d5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),op=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function P4(W){if(l5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=op[W[X]];return G}var T4={_0:48,_9:57,A:65,F:70,a:97,f:102};function IE(W){if(W>=T4._0&&W<=T4._9)return W-T4._0;if(W>=T4.A&&W<=T4.F)return W-(T4.A-10);if(W>=T4.a&&W<=T4.f)return W-(T4.a-10);return}function AG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let V=0,Z=0;V<X;V++,Z+=2){let Q=IE(W.charCodeAt(Z)),J=IE(W.charCodeAt(Z+1));if(Q===void 0||J===void 0){let U=W[Z]+W[Z+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+Z)}Y[V]=Q*16+J}return Y}function qA(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CQ(W){if(typeof W==="string")W=qA(W);return l5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let V=W[Y];l5(V),G+=V.length}let X=new Uint8Array(G);for(let Y=0,V=0;Y<W.length;Y++){let Z=W[Y];X.set(Z,V),V+=Z.length}return X}class DQ{}function AA(W){let G=(Y)=>W().update(CQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function TQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function h6(W,G,X=""){let Y=qG(W),V=W?.length,Z=G!==void 0;if(!Y||Z&&V!==G){let Q=X&&`"${X}" `,J=Z?` of length ${G}`:"",U=Y?`length=${V}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function MQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function R4(W){return jE(P4(W))}function $j(W){return l5(W),jE(P4(Uint8Array.from(W).reverse()))}function wY(W,G){return AG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function P8(W,G,X){let Y;if(typeof G==="string")try{Y=AG(G)}catch(Z){throw Error(W+" must be hex string or Uint8Array, cause: "+Z)}else if(qG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let V=Y.length;if(typeof X==="number"&&V!==X)throw Error(W+" of length "+X+" expected, got "+V);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function PQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!PQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HA(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var b6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(z)=>new Uint8Array(z),V=(z)=>Uint8Array.of(z),Z=Y(W),Q=Y(W),J=0,U=()=>{Z.fill(1),Q.fill(0),J=0},q=(...z)=>X(Q,Z,...z),A=(z=Y(0))=>{if(Q=q(V(0),z),Z=q(),z.length===0)return;Q=q(V(1),z),Z=q()},N=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let z=0,w=[];while(z<G){Z=q();let C=Z.slice();w.push(C),z+=Z.length}return o9(...w)};return(z,w)=>{U(),A(z);let C=void 0;while(!(C=w(N())))A();return U(),C}}function RQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(V,Z,Q){let J=W[V];if(Q&&J===void 0)return;let U=typeof J;if(U!==Z||J===null)throw Error(`param "${V}" is invalid: expected ${Z}, got ${U}`)}Object.entries(G).forEach(([V,Z])=>Y(V,Z,!1)),Object.entries(X).forEach(([V,Z])=>Y(V,Z,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let V=G.get(X);if(V!==void 0)return V;let Z=W(X,...Y);return G.set(X,Z),Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),K9=BigInt(1),NG=BigInt(2),TE=BigInt(3),ME=BigInt(4),PE=BigInt(5),np=BigInt(7),RE=BigInt(8),ip=BigInt(9),LE=BigInt(16);function V5(W,G){let X=W%G;return X>=_9?X:G+X}function Z5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=V5(W,G),Y=G,V=_9,Z=K9,Q=K9,J=_9;while(X!==_9){let q=Y/X,A=Y%X,N=V-Q*q,H=Z-J*q;Y=X,X=A,V=Q,Z=J,Q=N,J=H}if(Y!==K9)throw Error("invert: does not exist");return V5(V,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+K9)/ME,Y=W.pow(G,X);return xj(W,Y,G),Y}function rp(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,NG),V=W.pow(Y,X),Z=W.mul(G,V),Q=W.mul(W.mul(Z,NG),V),J=W.mul(Z,W.sub(Q,W.ONE));return xj(W,J,G),J}function ap(W){let G=M5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),V=X(G,Y),Z=X(G,G.neg(Y)),Q=(W+np)/LE;return(J,U)=>{let q=J.pow(U,Q),A=J.mul(q,Y),N=J.mul(q,V),H=J.mul(q,Z),z=J.eql(J.sqr(A),U),w=J.eql(J.sqr(N),U);q=J.cmov(q,A,z),A=J.cmov(H,N,w);let C=J.eql(J.sqr(A),U),D=J.cmov(q,A,C);return xj(J,D,U),D}}function EE(W){if(W<TE)throw Error("sqrt is not defined for small field");let G=W-K9,X=0;while(G%NG===_9)G/=NG,X++;let Y=NG,V=M5(W);while(DE(V,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let Z=V.pow(Y,G),Q=(G+K9)/NG;return function(U,q){if(U.is0(q))return q;if(DE(U,q)!==1)throw Error("Cannot find square root");let A=X,N=U.mul(U.ONE,Z),H=U.pow(q,G),z=U.pow(q,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===A)throw Error("Cannot find square root");let D=K9<<BigInt(A-w-1),x=U.pow(N,D);A=w,N=U.sqr(x),H=U.mul(H,N),z=U.mul(z,x)}return z}}function sp(W){if(W%ME===TE)return BE;if(W%RE===PE)return rp;if(W%LE===ip)return ap(W);return EE(W)}var tp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=tp.reduce((Y,V)=>{return Y[V]="function",Y},G);return RQ(W,X),W}function ep(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===K9)return G;let Y=W.ONE,V=G;while(X>_9){if(X&K9)Y=W.mul(Y,V);V=W.sqr(V),X>>=K9}return Y}function NA(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),V=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),Z=W.inv(V);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},Z),Y}function DE(W,G){let X=(W.ORDER-K9)/NG,Y=W.pow(G,X),V=W.eql(Y,W.ONE),Z=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!V&&!Z&&!Q)throw Error("invalid Legendre symbol result");return V?1:Z?0:-1}function IA(W,G){if(G!==void 0)KQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function M5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let V=void 0,Z=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)V=H.BITS;if(H.sqrt)Z=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")V=G;if(Y.sqrt)Z=Y.sqrt}let{nBitLength:U,nByteLength:q}=IA(W,V);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let A,N=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:b6(U),ZERO:_9,ONE:K9,allowedLengths:J,create:(H)=>V5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!N.is0(H)&&N.isValid(H),isOdd:(H)=>(H&K9)===K9,neg:(H)=>V5(-H,W),eql:(H,z)=>H===z,sqr:(H)=>V5(H*H,W),add:(H,z)=>V5(H+z,W),sub:(H,z)=>V5(H-z,W),mul:(H,z)=>V5(H*z,W),pow:(H,z)=>ep(N,H,z),div:(H,z)=>V5(H*CE(z,W),W),sqrN:(H)=>H*H,addN:(H,z)=>H+z,subN:(H,z)=>H-z,mulN:(H,z)=>H*z,inv:(H)=>CE(H,W),sqrt:Z||((H)=>{if(!A)A=sp(W);return A(N,H)}),toBytes:(H)=>X?Fj(H,q):wY(H,q),fromBytes:(H,z=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?$j(H):R4(H);if(Q)w=V5(w,W);if(!z){if(!N.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>NA(N,H),cmov:(H,z,w)=>w?z:H});return Object.freeze(N)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function zA(W,G,X=!1){let Y=W.length,V=$E(G),Z=_j(G);if(Y<16||Y<Z||Y>1024)throw Error("expected "+Z+"-1024 bytes of input, got "+Y);let Q=X?$j(W):R4(W),J=V5(Q,G-K9)+K9;return X?Fj(J,V):wY(J,V)}function Wl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let V=BigInt(32),Z=BigInt(4294967295),Q=Number(X>>V&Z),J=Number(X&Z),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wA extends DQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=UA(this.buffer)}update(W){zY(this),W=CQ(W),l5(W);let{view:G,buffer:X,blockLen:Y}=this,V=W.length;for(let Z=0;Z<V;){let Q=Math.min(Y-this.pos,V-Z);if(Q===Y){let J=UA(W);for(;Y<=V-Z;Z+=Y)this.process(J,Z);continue}if(X.set(W.subarray(Z,Z+Q),this.pos),this.pos+=Q,Z+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){zY(this),zE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:V}=this,{pos:Z}=this;if(G[Z++]=128,M4(this.buffer.subarray(Z)),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let A=Z;A<Y;A++)G[A]=0;Wl(X,Y-8,BigInt(this.length*8),V),this.process(X,0);let Q=UA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let A=0;A<U;A++)Q.setUint32(4*A,q[A],V)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:V,destroyed:Z,pos:Q}=this;if(W.destroyed=Z,W.finished=V,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var L4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var e8=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),W9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jA=BigInt(4294967295),xE=BigInt(32);function Gl(W,G=!1){if(G)return{h:Number(W&jA),l:Number(W>>xE&jA)};return{h:Number(W>>xE&jA)|0,l:Number(W&jA)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),V=new Uint32Array(X);for(let Z=0;Z<X;Z++){let{h:Q,l:J}=Gl(W[Z],G);[Y[Z],V[Z]]=[Q,J]}return[Y,V]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,IG=(W,G,X)=>W>>>X|G<<32-X,zG=(W,G,X)=>W<<32-X|G>>>X,LQ=(W,G,X)=>W<<64-X|G>>>X-32,BQ=(W,G,X)=>W>>>X-32|G<<64-X;function $7(W,G,X,Y){let V=(G>>>0)+(Y>>>0);return{h:W+X+(V/4294967296|0)|0,l:V|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,V)=>G+X+Y+V+(W/4294967296|0)|0,uE=(W,G,X,Y,V)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(V>>>0),hE=(W,G,X,Y,V,Z)=>G+X+Y+V+Z+(W/4294967296|0)|0;var Yl=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]),m6=new Uint32Array(64);class bE extends wA{constructor(W=32){super(64,W,8,!1);this.A=L4[0]|0,this.B=L4[1]|0,this.C=L4[2]|0,this.D=L4[3]|0,this.E=L4[4]|0,this.F=L4[5]|0,this.G=L4[6]|0,this.H=L4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:V,F:Z,G:Q,H:J}=this;return[W,G,X,Y,V,Z,Q,J]}set(W,G,X,Y,V,Z,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=V|0,this.F=Z|0,this.G=Q|0,this.H=J|0}process(W,G){for(let A=0;A<16;A++,G+=4)m6[A]=W.getUint32(G,!1);for(let A=16;A<64;A++){let N=m6[A-15],H=m6[A-2],z=d5(N,7)^d5(N,18)^N>>>3,w=d5(H,17)^d5(H,19)^H>>>10;m6[A]=w+m6[A-7]+z+m6[A-16]|0}let{A:X,B:Y,C:V,D:Z,E:Q,F:J,G:U,H:q}=this;for(let A=0;A<64;A++){let N=d5(Q,6)^d5(Q,11)^d5(Q,25),H=q+N+FE(Q,J,U)+Yl[A]+m6[A]|0,w=(d5(X,2)^d5(X,13)^d5(X,22))+SE(X,Y,V)|0;q=U,U=J,J=Q,Q=Z+H|0,Z=V,V=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,V=V+this.C|0,Z=Z+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,V,Z,Q,J,U,q)}roundClean(){M4(m6)}destroy(){this.set(0,0,0,0,0,0,0,0),M4(this.buffer)}}var mE=(()=>kE(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((W)=>BigInt(W))))(),Vl=(()=>mE[0])(),Zl=(()=>mE[1])(),f6=new Uint32Array(80),c6=new Uint32Array(80);class gj extends wA{constructor(W=64){super(128,W,16,!1);this.Ah=W9[0]|0,this.Al=W9[1]|0,this.Bh=W9[2]|0,this.Bl=W9[3]|0,this.Ch=W9[4]|0,this.Cl=W9[5]|0,this.Dh=W9[6]|0,this.Dl=W9[7]|0,this.Eh=W9[8]|0,this.El=W9[9]|0,this.Fh=W9[10]|0,this.Fl=W9[11]|0,this.Gh=W9[12]|0,this.Gl=W9[13]|0,this.Hh=W9[14]|0,this.Hl=W9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:V,Cl:Z,Dh:Q,Dl:J,Eh:U,El:q,Fh:A,Fl:N,Gh:H,Gl:z,Hh:w,Hl:C}=this;return[W,G,X,Y,V,Z,Q,J,U,q,A,N,H,z,w,C]}set(W,G,X,Y,V,Z,Q,J,U,q,A,N,H,z,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=V|0,this.Cl=Z|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=q|0,this.Fh=A|0,this.Fl=N|0,this.Gh=H|0,this.Gl=z|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)f6[h]=W.getUint32(G),c6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let p=f6[h-15]|0,v=c6[h-15]|0,n=IG(p,v,1)^IG(p,v,8)^yj(p,v,7),c=zG(p,v,1)^zG(p,v,8)^vj(p,v,7),l=f6[h-2]|0,G0=c6[h-2]|0,b=IG(l,G0,19)^LQ(l,G0,61)^yj(l,G0,6),Y0=zG(l,G0,19)^BQ(l,G0,61)^vj(l,G0,6),J0=vE(c,Y0,c6[h-7],c6[h-16]),k=gE(J0,n,b,f6[h-7],f6[h-16]);f6[h]=k|0,c6[h]=J0|0}let{Ah:X,Al:Y,Bh:V,Bl:Z,Ch:Q,Cl:J,Dh:U,Dl:q,Eh:A,El:N,Fh:H,Fl:z,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let p=IG(A,N,14)^IG(A,N,18)^LQ(A,N,41),v=zG(A,N,14)^zG(A,N,18)^BQ(A,N,41),n=A&H^~A&w,c=N&z^~N&C,l=uE(x,v,c,Zl[h],c6[h]),G0=hE(l,D,p,n,Vl[h],f6[h]),b=l|0,Y0=IG(X,Y,28)^LQ(X,Y,34)^LQ(X,Y,39),J0=zG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),k=X&V^X&Q^V&Q,o=Y&Z^Y&J^Z&J;D=w|0,x=C|0,w=H|0,C=z|0,H=A|0,z=N|0,{h:A,l:N}=$7(U|0,q|0,G0|0,b|0),U=Q|0,q=J|0,Q=V|0,J=Z|0,V=X|0,Z=Y|0;let B=_E(b,J0,o);X=yE(B,G0,Y0,k),Y=B|0}({h:X,l:Y}=$7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:V,l:Z}=$7(this.Bh|0,this.Bl|0,V|0,Z|0),{h:Q,l:J}=$7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:q}=$7(this.Dh|0,this.Dl|0,U|0,q|0),{h:A,l:N}=$7(this.Eh|0,this.El|0,A|0,N|0),{h:H,l:z}=$7(this.Fh|0,this.Fl|0,H|0,z|0),{h:w,l:C}=$7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=$7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,V,Z,Q,J,U,q,A,N,H,z,w,C,D,x)}roundClean(){M4(f6,c6)}destroy(){M4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=e8[0]|0,this.Al=e8[1]|0,this.Bh=e8[2]|0,this.Bl=e8[3]|0,this.Ch=e8[4]|0,this.Cl=e8[5]|0,this.Dh=e8[6]|0,this.Dl=e8[7]|0,this.Eh=e8[8]|0,this.El=e8[9]|0,this.Fh=e8[10]|0,this.Fl=e8[11]|0,this.Gh=e8[12]|0,this.Gl=e8[13]|0,this.Hh=e8[14]|0,this.Hl=e8[15]|0}}var jY=AA(()=>new bE);var cE=AA(()=>new gj),pE=AA(()=>new fE);class uj extends DQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,JA(W);let X=CQ(G);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;let Y=this.blockLen,V=new Uint8Array(Y);V.set(X.length>Y?W.create().update(X).digest():X);for(let Z=0;Z<V.length;Z++)V[Z]^=54;this.iHash.update(V),this.oHash=W.create();for(let Z=0;Z<V.length;Z++)V[Z]^=106;this.oHash.update(V),M4(V)}update(W){return zY(this),this.iHash.update(W),this}digestInto(W){zY(this),l5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:V,blockLen:Z,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=V,W.blockLen=Z,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function EQ(W,G){let X=G.negate();return W?X:G}function OA(W,G){let X=NA(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,V)=>W.fromAffine(Y.toAffine(X[V])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),V=2**W,Z=b6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}=X,J=Number(W&V),U=W>>Q;if(J>Y)J-=Z,U+=wG;let q=G*Y,A=q+Math.abs(J)-1,N=J===0,H=J<0,z=G%2!==0;return{nextN:U,offset:A,isZero:N,isNeg:H,isNegF:z,offsetF:q}}function Ql(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Jl(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),V=[],Z=W,Q=Z;for(let J=0;J<X;J++){Q=Z,V.push(Q);for(let U=1;U<Y;U++)Q=Q.add(Z),V.push(Q);Z=Q.double()}return V}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,V=this.BASE,Z=bj(W,this.bits);for(let Q=0;Q<Z.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:A,isNegF:N,offsetF:H}=lE(X,Q,Z);if(X=J,q)V=V.add(EQ(N,G[H]));else Y=Y.add(EQ(A,G[U]))}return dE(X),{p:Y,f:V}}wNAFUnsafe(W,G,X,Y=this.ZERO){let V=bj(W,this.bits);for(let Z=0;Z<V.windows;Z++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=lE(X,Z,V);if(X=Q,U)continue;else{let A=G[J];Y=Y.add(q?A.negate():A)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let V=fj(W);if(V===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(V,this.getPrecomputes(V,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let V=G,Z=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)Z=Z.add(V);if(Y&wG)Q=Q.add(V);V=V.double(),X>>=wG,Y>>=wG}return{p1:Z,p2:Q}}function aE(W,G,X,Y){Ql(X,W),Jl(Y,G);let V=X.length,Z=Y.length;if(V!==Z)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HA(BigInt(V)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=b6(U),A=Array(Number(q)+1).fill(Q),N=Math.floor((G.BITS-1)/U)*U,H=Q;for(let z=N;z>=0;z-=U){A.fill(Q);for(let C=0;C<Z;C++){let D=Y[C],x=Number(D>>BigInt(z)&q);A[x]=A[x].add(X[C])}let w=Q;for(let C=A.length-1,D=Q;C>0;C--)D=D.add(A[C]),w=w.add(D);if(H=H.add(w),z!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return M5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let q=G[U];if(!(typeof q==="bigint"&&q>OY))throw Error(`CURVE.${U} must be positive bigint`)}let V=oE(G.p,X.Fp,Y),Z=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!V.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:V,Fn:Z}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Ul(W,G,X){let[[Y,V],[Z,Q]]=G,J=tE(Q*W,X),U=tE(-V*W,X),q=W-J*Y-U*Z,A=-J*V-U*Q,N=q<E4,H=A<E4;if(N)q=-q;if(H)A=-A;let z=b6(Math.ceil(HA(X)/2))+KY;if(q<E4||q>=z||A<E4||A>=z)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:N,k1:q,k2neg:H,k2:A}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(TQ(X.lowS,"lowS"),TQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var B4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=B4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,V=MQ(Y);if(V.length/2&128)throw new X("tlv.encode: long form length too big");let Z=Y>127?MQ(V.length/2|128):"";return MQ(W)+Z+V+G},decode(W,G){let{Err:X}=B4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let V=G[Y++],Z=!!(V&128),Q=0;if(!Z)Q=V;else{let U=V&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let A of q)Q=Q<<8|A;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=B4;if(W<E4)throw new G("integer: negative integers are not allowed");let X=MQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=B4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return R4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=B4,V=P8("signature",W),{v:Z,l:Q}=Y.decode(48,V);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,Z),{v:q,l:A}=Y.decode(2,U);if(A.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=B4,Y=G.encode(2,X.encode(W.r)),V=G.encode(2,X.encode(W.s)),Z=Y+V;return G.encode(48,Z)}},E4=BigInt(0),KY=BigInt(1),W$=BigInt(2),KA=BigInt(3),ql=BigInt(4);function p6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let V=P8("private key",G);try{Y=W.fromBytes(V)}catch(Z){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Al(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:V}=X,Z=X.CURVE,{h:Q,n:J}=Z;RQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(Z.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=X$(Y,V);function A(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function N(k,o,B){let{x:R,y:L}=o.toAffine(),_=Y.toBytes(R);if(TQ(B,"isCompressed"),B){A();let f=!Y.isOdd(L);return o9(G$(f),_)}else return o9(Uint8Array.of(4),_,Y.toBytes(L))}function H(k){h6(k,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=k.length,L=k[0],_=k.subarray(1);if(R===o&&(L===2||L===3)){let f=Y.fromBytes(_);if(!Y.isValid(f))throw Error("bad point: is not on curve, wrong x");let M=C(f),$;try{$=Y.sqrt(M)}catch(m){let i=m instanceof Error?": "+m.message:"";throw Error("bad point: is not on curve, sqrt error"+i)}A();let g=Y.isOdd($);if((L&1)===1!==g)$=Y.neg($);return{x:f,y:$}}else if(R===B&&L===4){let f=Y.BYTES,M=Y.fromBytes(_.subarray(0,f)),$=Y.fromBytes(_.subarray(f,f*2));if(!D(M,$))throw Error("bad point: is not on curve");return{x:M,y:$}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let z=G.toBytes||N,w=G.fromBytes||H;function C(k){let o=Y.sqr(k),B=Y.mul(o,k);return Y.add(Y.add(B,Y.mul(k,Z.a)),Z.b)}function D(k,o){let B=Y.sqr(o),R=C(k);return Y.eql(B,R)}if(!D(Z.Gx,Z.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(Z.a,KA),ql),h=Y.mul(Y.sqr(Z.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(k,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${k}`);return o}function v(k){if(!(k instanceof b))throw Error("ProjectivePoint expected")}function n(k){if(!U||!U.basises)throw Error("no endo");return Ul(k,U.basises,V.ORDER)}let c=Sj((k,o)=>{let{X:B,Y:R,Z:L}=k;if(Y.eql(L,Y.ONE))return{x:B,y:R};let _=k.is0();if(o==null)o=_?Y.ONE:Y.inv(L);let f=Y.mul(B,o),M=Y.mul(R,o),$=Y.mul(L,o);if(_)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql($,Y.ONE))throw Error("invZ was invalid");return{x:f,y:M}}),l=Sj((k)=>{if(k.is0()){if(G.allowInfinityPoint&&!Y.is0(k.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=k.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!k.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function G0(k,o,B,R,L){return B=new b(Y.mul(B.X,k),B.Y,B.Z),o=EQ(R,o),B=EQ(L,B),o.add(B)}class b{constructor(k,o,B){this.X=p("x",k),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return Z}static fromAffine(k){let{x:o,y:B}=k||{};if(!k||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(k instanceof b)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return b.ZERO;return new b(o,B,Y.ONE)}static fromBytes(k){let o=b.fromAffine(w(h6(k,void 0,"point")));return o.assertValidity(),o}static fromHex(k){return b.fromBytes(P8("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,o=!0){if(J0.createCache(this,k),!o)this.multiply(KA);return this}assertValidity(){l(this)}hasEvenY(){let{y:k}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(k)}equals(k){v(k);let{X:o,Y:B,Z:R}=this,{X:L,Y:_,Z:f}=k,M=Y.eql(Y.mul(o,f),Y.mul(L,R)),$=Y.eql(Y.mul(B,f),Y.mul(_,R));return M&&$}negate(){return new b(this.X,Y.neg(this.Y),this.Z)}double(){let{a:k,b:o}=Z,B=Y.mul(o,KA),{X:R,Y:L,Z:_}=this,f=Y.ZERO,M=Y.ZERO,$=Y.ZERO,g=Y.mul(R,R),u=Y.mul(L,L),m=Y.mul(_,_),i=Y.mul(R,L);return i=Y.add(i,i),$=Y.mul(R,_),$=Y.add($,$),f=Y.mul(k,$),M=Y.mul(B,m),M=Y.add(f,M),f=Y.sub(u,M),M=Y.add(u,M),M=Y.mul(f,M),f=Y.mul(i,f),$=Y.mul(B,$),m=Y.mul(k,m),i=Y.sub(g,m),i=Y.mul(k,i),i=Y.add(i,$),$=Y.add(g,g),g=Y.add($,g),g=Y.add(g,m),g=Y.mul(g,i),M=Y.add(M,g),m=Y.mul(L,_),m=Y.add(m,m),g=Y.mul(m,i),f=Y.sub(f,g),$=Y.mul(m,u),$=Y.add($,$),$=Y.add($,$),new b(f,M,$)}add(k){v(k);let{X:o,Y:B,Z:R}=this,{X:L,Y:_,Z:f}=k,M=Y.ZERO,$=Y.ZERO,g=Y.ZERO,u=Z.a,m=Y.mul(Z.b,KA),i=Y.mul(o,L),Q0=Y.mul(B,_),I0=Y.mul(R,f),E0=Y.add(o,B),x0=Y.add(L,_);E0=Y.mul(E0,x0),x0=Y.add(i,Q0),E0=Y.sub(E0,x0),x0=Y.add(o,R);let L0=Y.add(L,f);return x0=Y.mul(x0,L0),L0=Y.add(i,I0),x0=Y.sub(x0,L0),L0=Y.add(B,R),M=Y.add(_,f),L0=Y.mul(L0,M),M=Y.add(Q0,I0),L0=Y.sub(L0,M),g=Y.mul(u,x0),M=Y.mul(m,I0),g=Y.add(M,g),M=Y.sub(Q0,g),g=Y.add(Q0,g),$=Y.mul(M,g),Q0=Y.add(i,i),Q0=Y.add(Q0,i),I0=Y.mul(u,I0),x0=Y.mul(m,x0),Q0=Y.add(Q0,I0),I0=Y.sub(i,I0),I0=Y.mul(u,I0),x0=Y.add(x0,I0),i=Y.mul(Q0,x0),$=Y.add($,i),i=Y.mul(L0,x0),M=Y.mul(E0,M),M=Y.sub(M,i),i=Y.mul(E0,Q0),g=Y.mul(L0,g),g=Y.add(g,i),new b(M,$,g)}subtract(k){return this.add(k.negate())}is0(){return this.equals(b.ZERO)}multiply(k){let{endo:o}=G;if(!V.isValidNot0(k))throw Error("invalid scalar: out of range");let B,R,L=(_)=>J0.cached(this,_,(f)=>OA(b,f));if(o){let{k1neg:_,k1:f,k2neg:M,k2:$}=n(k),{p:g,f:u}=L(f),{p:m,f:i}=L($);R=u.add(i),B=G0(o.beta,g,m,_,M)}else{let{p:_,f}=L(k);B=_,R=f}return OA(b,[B,R])[0]}multiplyUnsafe(k){let{endo:o}=G,B=this;if(!V.isValid(k))throw Error("invalid scalar: out of range");if(k===E4||B.is0())return b.ZERO;if(k===KY)return B;if(J0.hasCache(this))return this.multiply(k);if(o){let{k1neg:R,k1:L,k2neg:_,k2:f}=n(k),{p1:M,p2:$}=rE(b,B,L,f);return G0(o.beta,M,$,R,_)}else return J0.unsafe(B,k)}multiplyAndAddUnsafe(k,o,B){let R=this.multiplyUnsafe(o).add(k.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(k){return c(this,k)}isTorsionFree(){let{isTorsionFree:k}=G;if(Q===KY)return!0;if(k)return k(b,this);return J0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:k}=G;if(Q===KY)return this;if(k)return k(b,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(k=!0){return TQ(k,"isCompressed"),this.assertValidity(),z(b,this,k)}toHex(k=!0){return P4(this.toBytes(k))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return OA(b,k)}static msm(k,o){return aE(b,V,k,o)}static fromPrivateKey(k){return b.BASE.multiply(p6(V,k))}}b.BASE=new b(Z.Gx,Z.Gy,Y.ONE),b.ZERO=new b(Y.ZERO,Y.ONE,Y.ZERO),b.Fp=Y,b.Fn=V;let Y0=V.BITS,J0=new cj(b,G.endo?Math.ceil(Y0/2):Y0);return b.BASE.precompute(8),b}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Hl(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,V=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function Z(z){try{return!!p6(X,z)}catch(w){return!1}}function Q(z,w){let{publicKey:C,publicKeyUncompressed:D}=V;try{let x=z.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(z)}catch(x){return!1}}function J(z=Y(V.seed)){return zA(h6(z,V.seed,"seed"),X.ORDER)}function U(z,w=!0){return W.BASE.multiply(p6(X,z)).toBytes(w)}function q(z){let w=J(z);return{secretKey:w,publicKey:U(w)}}function A(z){if(typeof z==="bigint")return!1;if(z instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=V;if(X.allowedLengths||w===C)return;let x=P8("key",z).length;return x===C||x===D}function N(z,w,C=!0){if(A(z)===!0)throw Error("first arg must be private key");if(A(w)===!1)throw Error("second arg must be public key");let D=p6(X,z);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:N,keygen:q,Point:W,utils:{isValidSecretKey:Z,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:Z,randomPrivateKey:J,normPrivateKeyToScalar:(z)=>p6(X,z),precompute(z=8,w=W.BASE){return w.precompute(z,!1)}},lengths:V})}function Nl(W,G,X={}){JA(G),RQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,V=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:Z,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:A,getSharedSecret:N,utils:H,lengths:z}=Hl(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let L=z.signature,_=R==="compact"?L:R==="recovered"?L+1:void 0;return h6(B,_,`${R} signature`)}class p{constructor(B,R,L){if(this.r=x("r",B),this.s=x("s",R),L!=null)this.recovery=L;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let L;if(R==="der"){let{r:$,s:g}=B4.toSig(h6(B));return new p($,g)}if(R==="recovered")L=B[0],R="compact",B=B.subarray(1);let _=Q.BYTES,f=B.subarray(0,_),M=B.subarray(_,_*2);return new p(Q.fromBytes(f),Q.fromBytes(M),L)}static fromHex(B,R){return this.fromBytes(AG(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=Z.ORDER,{r:L,s:_,recovery:f}=this;if(f==null||![0,1,2,3].includes(f))throw Error("recovery id invalid");if(J*W$<R&&f>1)throw Error("recovery id is ambiguous for h>1 curve");let $=f===2||f===3?L+J:L;if(!Z.isValid($))throw Error("recovery id 2 or 3 invalid");let g=Z.toBytes($),u=W.fromBytes(o9(G$((f&1)===0),g)),m=Q.inv($),i=n(P8("msgHash",B)),Q0=Q.create(-i*m),I0=Q.create(_*m),E0=W.BASE.multiplyUnsafe(Q0).add(u.multiplyUnsafe(I0));if(E0.is0())throw Error("point at infinify");return E0.assertValidity(),E0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return AG(B4.hexFromSig(this));let R=Q.toBytes(this.r),L=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,L)}return o9(R,L)}toHex(B){return P4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(P8("sig",B),"compact")}static fromDER(B){return p.fromBytes(P8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return P4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return P4(this.toBytes("compact"))}}let v=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let L=R4(R),_=R.length*8-U;return _>0?L>>BigInt(_):L},n=X.bits2int_modN||function(R){return Q.create(v(R))},c=b6(U);function l(B){return OE("num < 2^"+U,B,E4,c),Q.toBytes(B)}function G0(B,R){return h6(B,void 0,"message"),R?h6(G(B),void 0,"prehashed message"):B}function b(B,R,L){if(["recovered","canonical"].some((I0)=>(I0 in L)))throw Error("sign() legacy options not supported");let{lowS:_,prehash:f,extraEntropy:M}=pj(L,w);B=G0(B,f);let $=n(B),g=p6(Q,R),u=[l(g),l($)];if(M!=null&&M!==!1){let I0=M===!0?Y(z.secretKey):M;u.push(P8("extraEntropy",I0))}let m=o9(...u),i=$;function Q0(I0){let E0=v(I0);if(!Q.isValidNot0(E0))return;let x0=Q.inv(E0),L0=W.BASE.multiply(E0).toAffine(),Q1=Q.create(L0.x);if(Q1===E4)return;let k1=Q.create(x0*Q.create(i+Q1*g));if(k1===E4)return;let q0=(L0.x===Q1?0:2)|Number(L0.y&KY),B0=k1;if(_&&D(k1))B0=Q.neg(k1),q0^=1;return new p(Q1,B0,q0)}return{seed:m,k2sig:Q0}}function Y0(B,R,L={}){B=P8("message",B);let{seed:_,k2sig:f}=b(B,R,L);return KE(G.outputLen,Q.BYTES,V)(_,f)}function J0(B){let R=void 0,L=typeof B==="string"||qG(B),_=!L&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!L&&!_)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(_)R=new p(B.r,B.s);else if(L){try{R=p.fromBytes(P8("sig",B),"der")}catch(f){if(!(f instanceof B4.Err))throw f}if(!R)try{R=p.fromBytes(P8("sig",B),"compact")}catch(f){return!1}}if(!R)return!1;return R}function k(B,R,L,_={}){let{lowS:f,prehash:M,format:$}=pj(_,w);if(L=P8("publicKey",L),R=G0(P8("message",R),M),"strict"in _)throw Error("options.strict was renamed to lowS");let g=$===void 0?J0(B):p.fromBytes(P8("sig",B),$);if(g===!1)return!1;try{let u=W.fromBytes(L);if(f&&g.hasHighS())return!1;let{r:m,s:i}=g,Q0=n(R),I0=Q.inv(i),E0=Q.create(Q0*I0),x0=Q.create(m*I0),L0=W.BASE.multiplyUnsafe(E0).add(u.multiplyUnsafe(x0));if(L0.is0())return!1;return Q.create(L0.x)===m}catch(u){return!1}}function o(B,R,L={}){let{prehash:_}=pj(L,w);return R=G0(R,_),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:A,getSharedSecret:N,utils:H,lengths:z,Point:W,sign:Y0,verify:k,recoverPublicKey:o,Signature:p,hash:G})}function Il(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,V=M5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),Z={Fp:X,Fn:V,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:Z}}function zl(W){let{CURVE:G,curveOpts:X}=Il(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function wl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,IA(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:V}=zl(W),Z=Al(G,X),Q=Nl(Z,Y,V);return wl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var V$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Z$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},jl=M5(V$.p),Ol=M5(Z$.p),Kl=M5(Q$.p);var J$=CY({...V$,Fp:jl,lowS:!1},jY);var MA0=CY({...Z$,Fp:Ol,lowS:!1},pE);var PA0=CY({...Q$,Fp:Kl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var CA=J$;var X9=_1(N8(),1),e5=_1(N8(),1),gS=_1(N8(),1),TG=_1(N8(),1),m4=_1(N8(),1),cS=_1(xU(),1),PG=_1(N8(),1),o6=_1(N8(),1),RG=_1(N8(),1),fY=_1(N8(),1),n6=_1(N8(),1),LG=_1(N8(),1),W7=_1(N8(),1),G7=_1(N8(),1),IH=_1(N8(),1),t5=_1(N8(),1),aS=_1(N8(),1),Ko=_1(H$(),1);import{randomBytes as ed}from"crypto";import{setTimeout as Wo}from"timers/promises";import{createCipheriv as Ho,createDecipheriv as No}from"crypto";var vA=_1(I$(),1),BG=_1(N8(),1),CG=_1(N8(),1),m7=_1(N8(),1),h7=_1(N8(),1),EG=_1(N8(),1);import{createHmac as ZO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as io}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Vn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as j2}from"crypto";import{randomBytes as O2}from"crypto";var PA="undefined",RY=PA!==typeof Buffer&&Buffer,PY=PA!==typeof Uint8Array&&Uint8Array,MA=PA!==typeof ArrayBuffer&&ArrayBuffer,z$=[0,0,0,0,0,0,0,0],Tl=Array.isArray||Fl,MY=4294967296,Ml=16777216,LY,RA=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,V=G?4:0,Z=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,q=G?Ll:El,A=G?Bl:$l,N=w.prototype,H="is"+W,z="_"+H;if(N.buffer=void 0,N.offset=0,N[z]=!0,N.toNumber=h,N.toString=p,N.toJSON=h,N.toArray=Pl,RY)N.toBuffer=Rl;if(PY)N.toArrayBuffer=O$;return w[H]=C,w;function w(c,l,G0,b){if(!(this instanceof w))return new w(c,l,G0,b);return D(this,c,l,G0,b)}function C(c){return!!(c&&c[z])}function D(c,l,G0,b,Y0){if(PY&&MA){if(l instanceof MA)l=new PY(l);if(b instanceof MA)b=new PY(b)}if(!l&&!G0&&!b&&!LY){c.buffer=K$(z$,0);return}if(!w$(l,G0)){var J0=LY||Array;Y0=G0,b=l,G0=0,l=LY===RY?RY.alloc(8):new J0(8)}if(c.buffer=l,c.offset=G0|=0,PA===typeof b)return;if(typeof b==="string")x(l,G0,b,Y0||10);else if(w$(b,Y0))oj(l,G0,b,Y0);else if(typeof Y0==="number")v(l,G0+Y,b),v(l,G0+V,Y0);else if(b>0)q(l,G0,b);else if(b<0)A(l,G0,b);else oj(l,G0,z$,0)}function x(c,l,G0,b){var Y0=0,J0=G0.length,k=0,o=0;if(G0[0]==="-")Y0++;var B=Y0;while(Y0<J0){var R=parseInt(G0[Y0++],b);if(!(R>=0))break;o=o*b+R,k=k*b+Math.floor(o/MY),o%=MY}if(B)if(k=~k,o)o=MY-o;else k++;v(c,l+Y,k),v(c,l+V,o)}function h(){var c=this.buffer,l=this.offset,G0=n(c,l+Y),b=n(c,l+V);if(!X)G0|=0;return G0?G0*MY+b:b}function p(c){var l=this.buffer,G0=this.offset,b=n(l,G0+Y),Y0=n(l,G0+V),J0="",k=!X&&b&2147483648;if(k)b=~b,Y0=MY-Y0;c=c||10;while(!0){var o=b%c*MY+Y0;if(b=Math.floor(b/c),Y0=Math.floor(o/c),J0=(o%c).toString(c)+J0,!b&&!Y0)break}if(k)J0="-"+J0;return J0}function v(c,l,G0){c[l+U]=G0&255,G0=G0>>8,c[l+J]=G0&255,G0=G0>>8,c[l+Q]=G0&255,G0=G0>>8,c[l+Z]=G0&255}function n(c,l){return c[l+Z]*Ml+(c[l+Q]<<16)+(c[l+J]<<8)+c[l+U]}}function Pl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Tl(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Rl(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof MA)return Y.byteLength===8?Y:Y.slice(X,X+8);var V=new PY(8);return oj(V,0,G,X),V.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var V=0;V<8;V++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Ll(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function Bl(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function El(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function $l(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Fl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var aQ=_1(rj(),1);import{createHash as En}from"crypto";import{setTimeout as $n}from"timers/promises";import{createHash as gn}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as un}from"crypto";import{isIPv4 as $F}from"net";var bA=_1(T$(),1),L2=_1(g$(),1),E2=_1(rj(),1);import*as yO from"timers/promises";import{randomUUID as bn}from"crypto";import*as B2 from"os";import{EventEmitter as sn}from"events";import{randomUUID as Ui}from"crypto";import{setTimeout as zO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as FA}from"perf_hooks";import{randomUUID as Ai}from"crypto";import{randomUUID as b2}from"crypto";import{setTimeout as ki}from"timers/promises";import{randomBytes as gi}from"crypto";import{isIPv4 as ui}from"net";var sQ=_1(gI(),1);import{randomUUID as hi}from"crypto";import{setTimeout as bi}from"timers/promises";import{randomUUID as li}from"crypto";import{randomUUID as ri}from"crypto";import{createHmac as iF,randomBytes as ai}from"crypto";import{randomBytes as QS}from"crypto";import{randomUUID as JS}from"crypto";import{setTimeout as US}from"timers/promises";import{randomUUID as Rr}from"crypto";function IS(){return r1.Unpack("!H",NS(2))[0]}function DO(){return r1.Unpack("!L",NS(4))[0]}var nA=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},zS=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function _8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let V=Y.slice(G,G+X).join("");return Number.parseInt(V,2)}function R8(W,G){return _A(W)(G)}function _A(W,G){let X=W.reduce((V,Z)=>V+Z,0),Y=G?Buffer.alloc(X):void 0;return(V)=>{let Z=Y||Buffer.alloc(X),Q=0;return V.forEach((J,U)=>{let q=W[U];if(q===8)Z.writeBigUInt64BE(J,Q);else Z.writeUIntBE(J,Q,q);Q+=q}),Z}}function r9(W,G){let X=0;return G.map((Y)=>{let V;if(Y===8)V=W.readBigUInt64BE(X);else V=W.readUIntBE(X,Y);return X+=Y,V})}var cQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let V=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=V>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Kd=3988292384,Cd=2197175160;function wS(W){return typeof W!=="string"}function jS(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function OS(W){let G=new Int32Array(4096),X=0,Y=0,V=0;for(V=0;V<256;++V)G[V]=W[V];for(V=0;V<256;++V){Y=W[V];for(X=256+V;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let Z=[];for(V=1;V<16;++V)Z[V-1]=G.subarray(V*256,V*256+256);return Z}function KS(W,G,X){let Y=G^-1,V=0,Z=W.length,Q=0,J=0;while(V<Z)if(Q=W.charCodeAt(V++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(V++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function CS(W,G,X,Y){let[V,Z,Q,J,U,q,A,N,H,z,w,C,D,x,h]=Y,p=G^-1,v=0,n=W.length-15;while(v<n)p=h[W[v++]^p&255]^x[W[v++]^p>>>8&255]^D[W[v++]^p>>>16&255]^C[W[v++]^p>>>24]^w[W[v++]]^z[W[v++]]^H[W[v++]]^N[W[v++]]^A[W[v++]]^q[W[v++]]^U[W[v++]]^J[W[v++]]^Q[W[v++]]^Z[W[v++]]^V[W[v++]]^X[W[v++]];for(n+=15;v<n;)p=p>>>8^X[(p^W[v++])&255];return~p>>>0}var TO=jS(Kd),Dd=OS(TO),MO=jS(Cd),Td=OS(MO);function Md(W,G=0){if(wS(W))return CS(W,G,TO,Dd);return KS(W,G,TO)}function DS(W,G=0){if(wS(W))return CS(W,G,MO,Td);return KS(W,G,MO)}function Pd(W,G){return W+G&255}function D9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Rd(W){return W&16777215}function TS(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function b4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function bQ(W,G){return W===G||b4(W,G)}var pQ=(W)=>Number.parseInt(W,10);var MS=(W,G)=>G?G[W]:void 0;async function Bd(W,G,X="udp4",Y){let V;for(let Z=W;Z<=G;Z++){let Q=Ld(X);if(setImmediate(()=>Q.bind({port:Z,address:MS(X,Y)})),await new Promise((U)=>{Q.once("error",(q)=>U(q)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(V=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=V&&V<=G)break}if(!V)throw Error("port not found");return V}function iA(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var D1=PS.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let V=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:V,disposer:(Q)=>{Q.push(V)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let V=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:V,disposer:(Q)=>{Q.push(V)}}};once=(W,G,X)=>{let Y=this.subscribe((...V)=>{Y.unSubscribe(),W(...V)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let V=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:Z}=this.subscribe((...Q)=>{if(W(...Q)){if(V)clearTimeout(V);Z(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...V)=>{if(Y)clearTimeout(Y);G(V)},()=>{if(Y)clearTimeout(Y);G([])},(V)=>{if(Y)clearTimeout(Y);X(V)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},Ed=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=D1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=$d(G),this.socket.on("message",(Y,V)=>{if(iA(V.family)===6)[V.address]=V.address.split("%");this.rinfo=V;try{this.onData(Y,[V.address,V.port])}catch(Z){u$("onData error",Z)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=MS(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Bd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!RS.isIP(X[0]))return new Promise((Y,V)=>{this.socket.send(G,X[1],X[0],(Z)=>{if(Z)u$("send error",X,G),V(Z);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},Sd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Fd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},c4={rsa_1:1,ecdsa_3:3},rA={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},yd=Object.values(RO),i6={x25519_29:29,secp256r1_23:23},LS=Object.values(i6),BS={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},vd=[1,64],ES=[{hash:rA.sha256_4,signature:c4.rsa_1},{hash:rA.sha256_4,signature:c4.ecdsa_3}],hd=()=>{let W=CA.utils.randomPrivateKey(),G=CA.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},bd=({publicKey:W,privateKey:G})=>{let X=CA.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function SS(W,G,X){switch(X){case i6.secp256r1_23:return bd({publicKey:W,privateKey:G});case i6.x25519_29:return Buffer.from(FS.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=ud(W,G);return Y.update(X),Y.digest()}function eQ(W,G,X,Y="sha256"){let V=X,Z=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));Z.push(J),X-=J.length}while(X>0);return Buffer.concat(Z,V)}function xS(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return eQ(W,Y,48)}function kS(W,G){let X=_S("sha256",G),Y="extended master secret";return eQ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function md(W,G,X,Y,V,Z){let Q=Z?Y:V,J=Z?V:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return eQ(X,U,G)}function _S(W,G){return gd(W).update(G).digest()}function yS(W,G,X,Y=12){let V=_S("sha256",G);return eQ(W,Buffer.concat([Buffer.from(X),V]),Y)}function fd(W,G){return yS(W,G,"client finished")}function cd(W,G){return yS(W,G,"server finished")}function pd(W,G,X,Y,V,Z,Q="sha256"){let J=Y*2+V*2,U=W,q=Buffer.concat([X,G]),A=eQ(U,Buffer.concat([Buffer.from("key expansion"),q]),J,Q),N=$S.createDecode(A),H=N.readBuffer(Y),z=N.readBuffer(Y),w=N.readBuffer(V),C=N.readBuffer(V),D=Buffer.alloc(Z,0),x=Buffer.alloc(Z,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:z,clientNonce:D,serverNonce:x}}var f4={CLIENT:1,SERVER:2},ld=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=_d;x8.set(LO);var aA=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case c4.rsa_1:return"RSASSA-PKCS1-v1_5";case c4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rA.sha256_4:return"SHA-256"}})(),V=(()=>{switch(G){case i6.secp256r1_23:return"P-256";case i6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),Z=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:V};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(Z,!0,["sign","verify"]),U=(await zj.createSelfSigned({serialNumber:kd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:Z,keys:Q})).toString("pem"),q=O9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:q,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===f4.CLIENT)return fd(this.masterSecret,W);else return cd(this.masterSecret,W)}signatureData(W,G){let X=xd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===f4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===f4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=qH.Certificate.fromPEM(Buffer.from(W)),V=qH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=V,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let V=Buffer.from(vY.encode({type:BS.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,V,X])}},sA=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),vS=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,V,Z,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=V,this.fragment_length=Z,this.fragment=Q}static spec={msg_type:e5.types.uint8,length:e5.types.uint24be,message_seq:e5.types.uint16be,fragment_offset:e5.types.uint24be,fragment_length:e5.types.uint24be,fragment:e5.types.buffer((G)=>G.current.fragment_length)};get summary(){return vS(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(e5.decode(G,W.spec)))}serialize(){let G=e5.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let V=[];if(!G)G=1240;while(X<Y){let Z=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+Z));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");V.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return V}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,V)=>Y.fragment_offset-V.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((V)=>V.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((V)=>{return V.msg_type===Y.msg_type&&V.message_seq===Y.message_seq&&V.length===Y.length})}},{uint16be:tA,uint24be:dd,buffer:uS,array:od,uint8:oQ,string:nd}=gS.types,id={type:tA,data:uS(tA)},BO=od(id,tA,"bytes"),rd=uS(dd),ad=oQ,sd=nd(tA),td={hash:oQ,signature:oQ},WK={major:oQ,minor:oQ},MG=class W{constructor(G=Math.floor(Date.now()/1000),X=ed(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:TG.types.uint32be,random_bytes:TG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(TG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=TG.encode(this,W.spec).slice();return Buffer.from(G)}},hS=class W{constructor(G,X,Y,V,Z,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=V,this.cipherSuites=Z,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:X9.types.uint8,minor:X9.types.uint8},random:MG.spec,sessionId:X9.types.buffer(X9.types.uint8),cookie:X9.types.buffer(X9.types.uint8),cipherSuites:X9.types.array(X9.types.uint16be,X9.types.uint16be,"bytes"),compressionMethods:X9.types.array(X9.types.uint8,X9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(X9.decode(G,W.spec)))}serialize(){let G=X9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Go=class W{constructor(G,X,Y,V,Z){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=V,this.contentLen=Z}static spec={epoch:m4.types.uint16be,sequenceNumber:m4.types.uint48be,contentType:m4.types.uint8,protocolVersion:WK,contentLen:m4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(m4.decode(G,W.spec)))}serialize(){let G=m4.encode(this,W.spec).slice();return Buffer.from(G)}},bS=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),V=G.readUInt8(2),Z=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:V},epoch:Z,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Go(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},mS=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},WJ=(W)=>(G,X)=>{return G.map((Y)=>{return new bS({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Xo=D1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),VO=D1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GJ=class W{constructor(G,X,Y,V){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=V}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=mS(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),WJ(this.dtls)(X.map((V)=>({type:22,fragment:V.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{VO("fail to send",VO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Wo(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Xo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw VO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Yo=class extends GJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new hS({major:254,minor:253},new MG,Buffer.from([]),Buffer.from([]),yd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=MG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((V)=>V.serialize()));await this.transmit([Y])}},Vo=D1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Zo=class extends GJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Vo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((V)=>V.serialize()));await this.transmit([Y])}},AH={NULL:0,ECDHE:1},XJ={NULL:0,RSA:1,ECDSA:2,PSK:3},YJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},VJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Qo(){let W=new VJ;return W.id=YJ.RSA,W.name="RSA",W.keyType=XJ.RSA,W}function Jo(){let W=new VJ;return W.id=YJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=AH.ECDHE,W.keyType=XJ.RSA,W}function Uo(){let W=new VJ;return W.id=YJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=AH.ECDHE,W.keyType=XJ.ECDSA,W}function qo(){let W=new VJ;return W.id=YJ.PSK,W.name="PSK",W.signType=AH.NULL,W.keyType=XJ.PSK,W}function Ao(){let W=new VJ;return W.id=YJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=AH.ECDHE,W.keyType=XJ.PSK,W}var Io=D1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),zo=class extends ld{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return vS(this)}init(W,G,X){let Y=pd(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===f4.CLIENT,V=Y?this.clientNonce:this.serverNonce,Z=Y?this.clientWriteKey:this.serverWriteKey;if(!V||!Z)throw Error();V.writeUInt16BE(X.epoch,this.nonceImplicitLength),V.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=V.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ho(this.blockAlgorithm,Z,V,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let q=U.update(G),A=U.final(),N=U.getAuthTag();return Buffer.concat([Q,q,A,N])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===f4.CLIENT,V=Y?this.serverNonce:this.clientNonce,Z=Y?this.serverWriteKey:this.clientWriteKey;if(!V||!Z)throw Error();G.subarray(0,this.nonceExplicitLength).copy(V,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),q=this.encodeAdditionalBuffer(X,J.length),A=No(this.blockAlgorithm,Z,V,{authTagLength:this.authTagLength});A.setAuthTag(U),A.setAAD(q,{plaintextLength:J.length});let N=A.update(J);try{let H=A.final();return H.length>0?Buffer.concat([N,H]):N}catch(H){throw Io("decrypt failed",H,W,eO(G),X,this.summary),H}}},k8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},xQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},kQ={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Qo(),f$=Jo(),c$=Uo(),p$=qo(),l$=Ao();function fS(W){switch(W){case k8.TLS_RSA_WITH_AES_128_GCM_SHA256:return g7(k8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,xQ);case k8.TLS_RSA_WITH_AES_256_GCM_SHA384:return g7(k8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,kQ,"sha384");case k8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return g7(k8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,xQ);case k8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return g7(k8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,kQ,"sha384");case k8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return g7(k8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,xQ);case k8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return g7(k8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,kQ,"sha384");case k8.TLS_PSK_WITH_AES_128_GCM_SHA256:return g7(k8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,xQ,"sha256");case k8.TLS_PSK_WITH_AES_256_GCM_SHA384:return g7(k8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,kQ,"sha384");case k8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return g7(k8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,xQ,"sha256");case k8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return g7(k8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,kQ,"sha384");default:break}return null}function g7(W,G,X,Y,V,Z="sha256"){let Q=new zo;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=Z,Q.keyLength=V.K_LEN,Q.nonceLength=V.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function pS(W){switch(W){case i6.secp256r1_23:{let{privateKey:G,publicKey:X}=hd();return{curve:W,privateKey:G,publicKey:X}}case i6.x25519_29:{let G=cS.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},NH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:o6.types.uint16be,data:o6.types.buffer(o6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(o6.decode(G,W.spec)),Y=X.data.readUInt16BE(),V=Array(Y/2);for(let Z=0;Z<V.length;Z++)V[Z]=X.data.readUInt16BE(Z*2+2);return X.profiles=V,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((V)=>{let Z=Buffer.alloc(2);return Z.writeUInt16BE(V),Z}),this.mki]);this.data=X;let Y=o6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eA=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(rd,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},lS=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},dS=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:n6.types.uint16be,signature:n6.types.buffer(n6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=n6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=n6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},oS=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},nS=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:W7.types.array(ad,W7.types.uint8,"bytes"),signatures:W7.types.array(td,W7.types.uint16be,"bytes"),authorities:W7.types.array(sd,W7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},iS=class W{constructor(G,X,Y,V,Z,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=V,this.compressionMethod=Z,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:MG.spec,sessionId:G7.types.buffer(G7.types.uint8),cipherSuite:G7.types.uint16be,compressionMethod:G7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=G7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(G7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?G7.encode(this,W.spec).slice():G7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},rS=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(IH.decode(G,W.spec)))}serialize(){let G=IH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function wo(W,G){return Buffer.from(aS.encode(W,G).slice())}var sS=class W{constructor(G,X,Y,V,Z,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=V,this.hashAlgorithm=Z,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:t5.types.uint8,namedCurve:t5.types.uint16be,publicKeyLength:t5.types.uint8,publicKey:t5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:t5.types.uint8,signatureAlgorithm:t5.types.uint8,signatureLength:t5.types.uint16be,signature:t5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=t5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return wo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},zH=1,ZJ=7;var jo=(W)=>{switch(W){case zH:case ZJ:return 16}},Oo=(W)=>{switch(W){case zH:return 14;case ZJ:return 12}},LH0=D1("werift-rtp : packages/rtp/src/codec/av1.ts");var Co={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},BH0=Object.entries(Co).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var EH0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Do(W){let G=W[0];return G>127&&G<192}var FO=4,s6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,V){let Q=new W({type:G,count:X,version:2,length:V}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nA(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),R8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,V]=r9(G,[1,1,2]),Z=_8(X,0,2),Q=_8(X,2,1)>0,J=_8(X,3,5);return new W({version:Z,padding:Q,count:J,type:Y,length:V})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),V=[];for(let Z=8;Z<G.length;Z+=8)V.push({ssrc:G.readUInt32BE(Z),sequenceNumber:G[Z+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:V})}serialize(){let G=R8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:V},Z)=>{X.writeUInt32BE(Y,Z*8),X[Z*8+4]=V}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return R8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,V,Z,Q]=r9(G,[4,4,4,1,1]),J=_8(Q,0,6),U=(_8(Q,6,2)<<16)+(G[14]<<8)+G[15],q=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),A=[];for(let N=16;N<G.length;N+=4){let H=G.slice(N).readUIntBE(0,4);A.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:R8([4],[V]).toString(),ssrcNum:Z,brExp:J,brMantissa:U,ssrcFeedbacks:A,bitrate:q})}serialize(){let G=Buffer.concat([R8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),R8([1],[this.ssrcNum])]),X=new nA(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((Z)=>R8([4],[Z]))),V=Buffer.concat([G,R8([3],[X.value]),Y]);return this.length=V.length/4,V}},To=D1("werift-rtp: /rtcp/psfb/index"),nQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return s6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:To("unknown psfb packet",X.count);break}return new W({feedback:Y})}},iQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=R8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),s6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),V=4,Z=[];for(let Q=0;Q<X;Q++)Z.push(GK.deSerialize(G.slice(V,V+24))),V+=24;return new W({ssrc:Y,reports:Z})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return R8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,V,Z,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:V,highestSequence:Z,jitter:Q,lsr:J,dlsr:U})}},tS=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new s6({type:tS,count:this.count,version:2})}static deSerialize(G,X){let[Y,V]=r9(G,[4,4]),Z=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);Z.push(J);for(let q=0;q<16;q++)if(U>>q&1)Z.push(J+q+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:V,lost:Z})}serialize(){let G=R8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let V=this.lost[0],Z=0;this.lost.slice(1).forEach((Q)=>{let J=Q-V-1;if(J>=0&&J<16)Z|=1<<J;else X.push(R8([2,2],[V,Z])),V=Q,Z=0}),X.push(R8([2,2],[V,Z]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},Mo=D1("werift/rtp/rtcp/rtpfb/twcc"),VH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new s6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,V,Z,Q,J,U]=r9(G,[4,4,2,2,3,1]),q=[],A=[],N=16;for(let z=0;z<Q;){let w=_8(G.slice(N,N+1)[0],0,1),C;switch(w){case 0:{let D=lQ.deSerialize(G.slice(N,N+2));C=D;let x=Math.min(Q-z,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)A.push(new yA({type:D.packetStatus}));z+=x}break;case 1:{let D=Po.deSerialize(G.slice(N,N+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)A.push(new yA({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)A.push(new yA({type:x}))});z+=D.symbolList.length}break}if(!C)throw Error();N+=2,q.push(C)}let H=N;return A.forEach((z)=>{if(z.type===1)z.deSerialize(G.slice(H,H+1)),H++;if(z.type===2)z.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:V,baseSequenceNumber:Z,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:A,packetChunks:q,header:X})}serialize(){let G=R8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((Z)=>Z.serialize())),Y=Buffer.concat(this.recvDeltas.map((Z)=>{try{return Z.serialize()}catch(Q){Mo(Q?.message);return}}).filter((Z)=>Z)),V=Buffer.concat([G,X,Y]);if(this.header.padding&&V.length%4!==0){let Z=4-V.length%4,Q=Buffer.alloc(Z);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((V.length+Q.length)/4),Buffer.concat([this.header.serialize(),V,Q])}return this.header.length=Math.floor(V.length/4),Buffer.concat([this.header.serialize(),V])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof lQ).flatMap((Q)=>Q.results(G)),Y=0,Z=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;Z+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(Z),Y++}return X}},lQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=_8(G[0],1,2),Y=(_8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new zS(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let V=0;V<=this.runLength;++V)Y.push(new Ro({sequenceNumber:++G,received:X}));return Y}},Po=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=_8(G[0],1,1),V=[];function Z(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:Z(6,(Q)=>V.push(_8(G[0],2+Q,1))),Z(8,(Q)=>V.push(_8(G[1],Q,1)));break;case 1:Z(3,(Q)=>V.push(_8(G[0],2+Q*2,2))),Z(4,(Q)=>V.push(_8(G[1],Q*2,2)));break;default:Y=(_8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:V})}serialize(){let G=Buffer.alloc(2),X=new zS(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((V)=>{X.set(V,Y)}),G.writeUInt16BE(X.value),G}},yA=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Ro=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Lo=D1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=tS;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case VH.count:Y=VH.deSerialize(G,X);break;default:Lo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},ZH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return s6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let V=0;V<G.length;){let Z=eS.deSerialize(G.slice(V));Y.push(Z),V+=Z.length}return new W({chunks:Y})}},eS=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([R8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let V=4;V<G.length;){if(G[V]===0)break;let Q=W2.deSerialize(G.slice(V));Y.push(Q),V+=Q.length}return new W({source:X,items:Y})}},W2=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([R8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],V=G.slice(2,2+Y).toString();return new W({type:X,text:V})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),s6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),V=G2.deSerialize(G.subarray(4,24)),Z=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(Z,Z+24))),Z+=24;return new W({ssrc:Y,senderInfo:V,reports:Q})}},G2=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Bo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return R8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,V,Z]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:V,octetCount:Z})}},Bo=(W)=>{let[G,X]=r9(R8([8],[W]),[4,4]);return Number(`${G}.${X}`)},Eo=D1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),$o=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=s6.deSerialize(W.subarray(G,G+FO));G+=FO;let V=W.subarray(G);if(G+=Y.length*4,Y.padding)V=V.subarray(0,V.length-V.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(V,Y.count));break;case iQ.type:X.push(iQ.deSerialize(V,Y.count));break;case ZH.type:X.push(ZH.deSerialize(V,Y));break;case uY.type:X.push(uY.deSerialize(V,Y));break;case nQ.type:X.push(nQ.deSerialize(V,Y));break;default:break}}catch(Z){Eo("deSerialize RTCP",Z)}}return X}};function Fo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var C9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function So(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case C9.sdesMid:case C9.sdesRTPStreamID:case C9.repairedRtpStreamId:return{uri:Y,value:go(X.payload)};case C9.transportWideCC:return{uri:Y,value:uo(X.payload)};case C9.absSendTime:return{uri:Y,value:ho(X.payload)};case C9.audioLevelIndication:return{uri:Y,value:bo(X.payload)};case C9.videoOrientation:return{uri:Y,value:mo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function xo(W){return Buffer.from(W)}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return R8([2],[W])}function vo(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function go(W){return W.toString()}function uo(W){return W.readUInt16BE()}function ho(W){return r9(W,[3])[0]}function bo(W){let G=new cQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function mo(W){let G=new cQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var fo=D1("packages/rtp/src/rtp/red/packet.ts"),X2=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,V=0;return[Y.header,V]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:Z,timestampOffset:Q,blockPT:J})=>{if(Z&&Q){let U=X.subarray(V,V+Z);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),V+=Z}else{let U=X.subarray(V);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:V}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:V.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let V={};Y.fields.push(V);let Z=new cQ(G.subarray(X));if(V.fBit=Z.readBits(1),V.blockPT=Z.readBits(7),X++,V.fBit===0)break;V.timestampOffset=Z.readBits(14),V.blockLength=Z.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){fo(Y?.message)}return G}},co=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new X2,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let V=yY(X.timestamp,-Y.timestamp);if(V>po)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:V})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},po=16383,lo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:V,timestampOffset:Z,block:Q},J)=>{let U=D9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(Z)X.push(new a6(new r6({timestamp:yY(G.header.timestamp,-Z),payloadType:V,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new a6(new r6({timestamp:G.header.timestamp,payloadType:V,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((V)=>{if(this.sequenceNumbers.includes(V.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(V.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,r6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,V=G[Y++];X.version=_8(V,0,2),X.padding=_8(V,2)>0,X.extension=_8(V,3)>0,X.csrcLength=_8(V,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let Z=G[1];X.marker=_8(Z,0)>0,X.payloadType=_8(Z,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,q=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let A={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,A],Y+=q}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let q=G[Y];Y++;let A={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,A],Y+=q}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,V=12+G.length*e$;if(Y.length>0||this.extension===!0){let Z=4;switch(X){case OG.OneByte:for(let Q of Y)Z+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)Z+=2+Q.payload.length;break;default:Z+=Y[0].payload.length}V+=Math.floor((Z+3)/4)*4}return V}serialize(G){let X=Buffer.alloc(G),Y=0,V=new nA(8);if(V.set(2,0,this.version),this.padding)V.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)V.set(1,3,1);V.set(4,4,this.csrc.length),X.writeUInt8(V.value,Y++);let Z=new nA(8);if(this.marker)Z.set(1,0,1);Z.set(7,1,this.payloadType),X.writeUInt8(Z.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let A of this.extensions)X.writeUInt8(A.id<<4|A.payload.length-1,Y++),A.payload.copy(X,Y),Y+=A.payload.length;break;case OG.TwoByte:for(let A of this.extensions)X.writeUInt8(A.id,Y++),X.writeUInt8(A.payload.length,Y++),A.payload.copy(X,Y),Y+=A.payload.length;break;default:{let A=this.extensions[0].payload.length;if(A%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=A}}let U=Y-J,q=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(q/4),Q+2);for(let A=0;A<q-U;A++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},a6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new r6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=r6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function oo(W,G,X){return new a6(new r6({payloadType:G,marker:W.header.marker,sequenceNumber:r1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function no(W,G,X,Y){return new a6(new r6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(r1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var Y2=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ro=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;rQ(W.length>=YF+G,X);let V=Z2(()=>r6.deSerialize(W.subarray(0,Y)),X);return V.paddingSize=0,rQ(V.payloadOffset>=YF&&V.payloadOffset<=Y,X),V}function V2(W,G,X,Y="Failed to authenticate SRTCP packet"){return rQ(W.length>=ro+G+X,Y),Z2(()=>s6.deSerialize(W.subarray(0,FO)),Y)}function rQ(W,G){if(!W)throw new bY(G)}function Z2(W,G){try{return W()}catch{throw new bY(G)}}function Q2(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;rQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return rQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var ao=class extends Y2{constructor(W,G,X,Y,V,Z){super(W,G,X,Y);this.srtpSessionAuthTag=V,this.srtcpSessionAuthTag=Z}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),V=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,V).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,V=W.subarray(0,Y),Z=W.subarray(Y),Q=this.generateSrtpAuthTag(G,V.subarray(0,X.payloadOffset),V.subarray(X.payloadOffset));ZF(Z,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),q=V.subarray(X.payloadOffset),A=U.update(q),N=Buffer.concat([V.subarray(0,X.payloadOffset),A]);return[N,Q2(X,N,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),V=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,V).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=V2(W,this.authTagLength,VF),X=W.length-(this.authTagLength+VF),Y=W.subarray(0,W.length-this.authTagLength),V=W.subarray(W.length-this.authTagLength),Z=this.generateSrtcpAuthTag(Y);ZF(V,Z,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let q=W.readUInt32BE(4),A=this.generateCounter(U&65535,U>>16,q,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,A).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let V=Buffer.alloc(16);V.writeUInt32BE(X,4),V.writeUInt32BE(G,8),V.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let Z=0;Z<Y.length;Z++)V[Z]^=Y[Z];return V}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let V of G)X.update(V);return X.update(Y).digest().subarray(0,10)}},VF=4;function ZF(W,G,X){if(W.length!==G.length||!io(W,G))throw new bY(X)}var so=class extends Y2{aeadAuthTagLen=16;rtpIvWriter=_A([2,4,4,2],!0);rtcpIvWriter=_A([2,4,2,4],!0);aadWriter=_A([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),V=this.rtpInitializationVector(W,X),Z=QF("aes-128-gcm",this.srtpSessionKey,V);Z.setAAD(Y);let Q=Z.update(G);Z.final();let J=Z.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),V=W.length-this.aeadAuthTagLen,Z=W.subarray(V),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,V),q=JF("aes-128-gcm",this.srtpSessionKey,J);q.setAAD(Y),q.setAuthTag(Z);let A=q.update(U);return qF(q,"SRTP"),A.copy(Q,X.payloadOffset),[Q,Q2(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,V=Buffer.from([]);V=d$(V,Y+QO),W.slice(0,8).copy(V);let Z=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,Z);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(V,8),J.getAuthTag().copy(V,8+U.length),Q.slice(8,12).copy(V,Y),V}decryptRTCP(W){let G=V2(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,V=W.readUInt32BE(4),Z=W.readUInt32BE(X),Q=Z>>>31===1,J=Z&~(UF<<24),U=this.rtcpInitializationVector(V,J),q=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),A=Q?W.slice(8,Y):Buffer.alloc(0),N=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(N);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(q),H.setAuthTag(W.subarray(Y,X));let z=H.update(A);if(qF(H,"SRTCP"),Q)z.copy(N,8);return[N,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function qF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var J2=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=ZO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=ZO("sha1",this.srtcpSessionAuthTag),X){case zH:this.cipher=new ao(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case ZJ:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let V=X.length-1,Z=G.length-1;V>=0;V--,Z--)G[Z]=G[Z]^X[V];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vA.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let V=X.length-1,Z=G.length-1;V>=0;V--,Z--)G[Z]=G[Z]^X[V];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vA.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),V=Buffer.concat([G,Buffer.from([0,1])]),Z=new vA.default.AES(this.masterKey);return Y=Buffer.from(Z.encrypt(Y)),V=Buffer.from(Z.encrypt(V)),Buffer.concat([Y,V.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>_Q)G.rolloverCounter++}else if(G.lastSequenceNumber<_Q&&W>AF-_Q){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<_Q&&G.lastSequenceNumber>AF-_Q)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=ZO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},_Q=100,AF=65535,to=class extends J2{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>eo)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},eo=2147483647,U2=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,V){this.localContext=new this.ContextCls(W,G,V),this.remoteContext=new this.ContextCls(X,Y,V)}},Wn=class extends U2{constructor(W){super(to);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Gn=class extends J2{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let V=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return V}get rtpAuthTagLength(){return this.profile===ZJ?16:10}},Xn=class extends U2{constructor(W){super(Gn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},kH0=class{constructor(W){this.props=W}sequenceNumber=IS();timestamp=DO();create(W){this.sequenceNumber=D9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new r6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new a6(X,W)}},v9=D1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Yn=class extends GJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return iS.deSerialize(W.fragment);case 11:return eA.deSerialize(W.fragment);case 12:return sS.deSerialize(W.fragment);case 13:return nS.deSerialize(W.fragment);case 14:return rS.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eA([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new oS(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,V=this.cipher.remoteKeyPair;if(!V.publicKey)throw Error("not exist");let Z=SS(V.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?kS(Z,Q):xS(Z,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=fS(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case c4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case c4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new dS(X,G),V=this.createPacket([Y]);return Buffer.concat(V.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=lS.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let V=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),V}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=MG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((V)=>{switch(V.type){case gY.type:{let Z=gY.fromData(V.data),Q=sA.findMatchingSRTPProfile(Z.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case NH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=pS(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var q2=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Zn=D1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((V)=>{let Z=this.handshakeCache[X].data.find((Q)=>Q.msg_type===V.msg_type);if(Z)return Zn(this.sessionId,"exist",Z.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Qn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:m7.types.uint16be,data:m7.types.array(m7.types.uint16be,m7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:m7.decode(G,W.spec.data)})}static deSerialize(G){return new W(m7.decode(G,W.spec))}serialize(){return Buffer.from(m7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:h7.types.uint16be,data:h7.types.array({hash:h7.types.uint8,signature:h7.types.uint8},h7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(h7.decode(G,W.spec))}serialize(){let G=h7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},NF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},IF=D1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=D1("werift-dtls : packages/dtls/record/receive.ts : err"),Jn=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let V=bS.deSerialize(W.subarray(G));X.push(V),G+=13+Y}return X},Un=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return IF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let V=X.fragment;try{if(X.recordLayerHeader.epoch>0)IF(W.sessionId,"decrypt handshake"),V=G.decryptPacket(X)}catch(Z){throw JO(W.sessionId,"decrypt failed",Z),Z}try{let Z=0,Q=[];while(V.length>Z){let J=P5.deSerialize(V.subarray(Z));Q.push({type:22,data:J}),Z+=J.fragment_length+12}return Q}catch(Z){throw JO(W.sessionId,"decSerialize failed",Z,V),Z}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let V=NF.deSerialize(X.fragment);if(EO[V.description]==null){let Z=G.decryptPacket(X);V=NF.deSerialize(Z)}if(JO(W.sessionId,"ContentType.alert",V,EO[V.description],"flight",W.flight,"lastFlight",W.lastFlight),V.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},zF=D1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=D1("werift-dtls : packages/dtls/src/socket.ts : err"),A2=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aA(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Qn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sA;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){zF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aA(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sA,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Jn(W);for(let X of G)try{let Y=Un(this.dtls,this.cipher)(X);for(let V of Y)switch(V.type){case 22:{let Z=V.data,Q=this.handleFragmentHandshake([Z]),J=Object.values(Q.reduce((U,q)=>{if(!U[q.msg_type])U[q.msg_type]=[];return U[q.msg_type].push(q),U},{})).map((U)=>P5.assemble(U)).sort((U,q)=>U.msg_type-q.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(V.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(zF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=LS,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=ES,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=NH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Vn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=WJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:V,clientSalt:Z,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===f4.CLIENT)return{localKey:Y,localSalt:Z,remoteKey:V,remoteSalt:Q};else return{localKey:V,localSalt:Q,remoteKey:Y,remoteSalt:Z}}exportKeyingMaterial(W,G){return md(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===f4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=D1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends A2{constructor(W){super(W,f4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Yo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=q2.deSerialize(G.fragment);await new Zo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Yn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},u7=D1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),An=(W,G,X,Y)=>(V)=>{u7("dtls version",V.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,V.extensions.forEach((N)=>{switch(N.type){case SO.type:{let H=SO.fromData(N.data).data;u7(G.sessionId,"curves",H);let z=H.filter((w)=>LS.includes(w))[0];X.namedCurve=z,u7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(N.data).data;u7(G.sessionId,"hash,signature",H);let z=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(z==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(N.data);u7(G.sessionId,"srtp profiles",H.profiles);let z=sA.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!z)throw Error();Y.srtpProfile=z,u7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case NH.type:u7(G.sessionId,"RenegotiationIndication",N.data);break;case 43:{let z=[...N.data.subarray(1)].map((w)=>w.toString(10));u7("dtls supported version",z)}break}}),X.localRandom=new MG,X.remoteRandom=MG.from(V.random);let Z=V.cipherSuites;u7(G.sessionId,"cipher suites",Z);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case c4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case c4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!Z.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,u7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=pS(X.namedCurve),G.cookie||=qn(20);let J=new q2({major:254,minor:253},G.cookie),U=mS(G)([J]),A=WJ(G)(U.map((N)=>({type:22,fragment:N.serialize()})),++G.recordSequenceNumber).map((N)=>N.serialize());for(let N of A)W.send(N)},OF=D1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Hn=class extends GJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=NH.createEmpty();W.push(G.extension);let X=new iS(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((V)=>V.serialize()))}sendCertificate(){let W=new eA([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new sS(BS.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new nS(vd,ES,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new rS,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=D1("werift-dtls : packages/dtls/flight/server/flight6.ts"),Nn=class extends GJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eA.deSerialize(W.fragment);case 15:return dS.deSerialize(W.fragment);case 16:return oS.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=QJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=lS.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Z)=>Z.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},QJ={};QJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=SS(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let V=Buffer.concat(G.sortedHandshakeCache.map((Z)=>Z.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?kS(Y,V):xS(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=fS(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};QJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};QJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};QJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=D1("werift-dtls : packages/dtls/src/server.ts : log"),In=class extends A2{constructor(W){super(W,f4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=hS.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),An(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new Hn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new Nn(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,zn=8,wn=1398035790,d6=20,H2=24,N2=1,I2=2,jn=6,On=50;var z2=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(z2||{}),w2=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(w2||{});function yQ(W){return O2(W).toString("hex").substring(0,W)}function K2(){return O2(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((Z,Q)=>{G=Z,X=Q});Y.then(()=>{V.execute(void 0),V.complete()}).catch((Z)=>{V.execute(Z??Error()),V.complete()});let V=new f0;return W(G,X,V).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=aQ.default.isV4Format(G)?N2:I2,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,aQ.default.toBuffer(G)])}function Kn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case N2:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[aQ.default.toString(Y),X];case I2:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[aQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var VK=Buffer.alloc(6);VK.writeUInt16BE(YK>>16,0);VK.writeUInt32BE(YK,2);function C2(W,G){let X=[...VK,...G],Y=W.slice(0,2);for(let V=2;V<W.length;V++){let Z=W[V]^X[V-2],Q=Buffer.alloc(1);Q.writeUIntBE(Z,0,1),Y=Buffer.concat([Y,Q])}return Y}function gA(W,G){return kY(C2(W,G))}function Cn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uA(W,G){return C2(xY(W),G)}var vQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},gQ=(W)=>W.readUInt32BE(0),Dn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Tn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},qO=(W)=>Buffer.from(W,"utf8"),AO=(W)=>W.toString("utf8"),HO=(W)=>W,NO=(W)=>W,Mn=(W)=>Buffer.from([]),Pn=(W)=>null,D2=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",vQ,gQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",qO,AO],[8,"MESSAGE-INTEGRITY",HO,NO],[9,"ERROR-CODE",Cn,Kn],[12,"CHANNEL-NUMBER",Dn,Tn],[13,"LIFETIME",vQ,gQ],[18,"XOR-PEER-ADDRESS",uA,gA],[19,"DATA",HO,NO],[20,"REALM",qO,AO],[21,"NONCE",HO,NO],[22,"XOR-RELAYED-ADDRESS",uA,gA],[25,"REQUESTED-TRANSPORT",vQ,gQ],[32,"XOR-MAPPED-ADDRESS",uA,gA],[36,"PRIORITY",vQ,gQ],[37,"USE-CANDIDATE",Mn,Pn],[32802,"SOFTWARE",qO,AO],[32808,"FINGERPRINT",vQ,gQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],T2=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},TF=D2.reduce((W,G)=>{return W[G[0]]=G,W},{}),Rn=D2.reduce((W,G)=>{return W[G[1]]=G,W},{});function ZK(W,G){if(W.length<d6)return;let X=W.readUint16BE(2);if(W.length!==d6+X)return;let Y=W.readUint16BE(0),V=Buffer.from(W.slice(d6-12,d6)),Z=new T2;for(let J=d6;J<=W.length-4;){let U=W.readUInt16BE(J),q=W.readUInt16BE(J+2),A=W.slice(J+4,J+4+q),N=4*Math.floor((q+3)/4)-q;if(Object.keys(TF).includes(U.toString())){let[,z,,w]=TF[U];if(w.name===gA.name)Z.setAttribute(z,w(A,V));else Z.setAttribute(z,w(A));if(z==="FINGERPRINT"){let C=M2(W.slice(0,J));if(Z.getAttributeValue("FINGERPRINT")!==C)return}else if(z==="MESSAGE-INTEGRITY"){if(G){let C=Ln(W.slice(0,J),G),D=Z.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+q+N}let Q=Z.getAttributes();return Z.clear(),new b7(Y&16111,Y&272,V,Q)}var b7=class extends T2{constructor(W,G,X=K2(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:w2[this.messageMethod],messageClass:z2[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[V,,Z]=Rn[X],Q=Z.name===uA.name?Z(Y,this.transactionId):Z(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,q=Buffer.alloc(4);q.writeUInt16BE(V,0),q.writeUInt16BE(J,2),W=Buffer.concat([W,q,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-d6+H2);return Buffer.from(j2("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",M2(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function M2(W){let G=QK(W,W.length-d6+zn);return(Md(G)^wn)>>>0}function Ln(W,G){let X=QK(W,W.length-d6+H2);return Buffer.from(j2("sha1",G).update(X).digest("hex"),"hex")}function MF(W){let G=W%4;if(G===0)return 0;else return 4-G}var P2=class extends Error{response;addr},R2=class extends P2{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},Bn=class extends P2{get str(){return"STUN transaction timed out"}},IO=D1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:jn)}timeoutDelay=On;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new R2(W,G))};run=async()=>{try{return this.retry().catch((G)=>{IO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{IO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)IO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new Bn)};cancel(){this.ended=!0}},PF=D1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(V,Z)=>{this.datagramReceived(V,Z)}};datagramReceived(G,X){try{let Y=ZK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,V){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this,V);this.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=D1("werift-ice:packages/ice/src/turn/protocol.ts"),Fn=500,Sn=600,xn=285212672,kn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new Ed;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=ZK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let V=this.turn.transactions[Y.transactionIdHex];if(V)V.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Z){throw Z}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},_n=class W{constructor(G,X,Y,V,Z,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=V,this.transport=Z,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Fn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(V,Z)=>{this.dataReceived(V,Z)};let G=new b7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",xn);let[X]=await this.requestWithRetry(G,this.server).catch((V)=>{throw i9("connect error",V),V});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=r1.Unpack("!HH",G.slice(0,4)),V=this.addrByChannel[X];if(V){let Z=G.subarray(4,4+Y);this.onData.execute(Z,V)}}handleSTUNMessage(G,X){try{let Y=ZK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let V=this.transactions[Y.transactionIdHex];if(V)V.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let V=Y.getAttributeValue("DATA");this.onData.execute(V,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(V,Z)=>{if(V.length>=4&&BF(V))this.handleChannelData(V);else this.handleSTUNMessage(V,Z)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,V]=r9(this.tcpBuffer.subarray(0,4),[2,2]);V+=MF(V);let Z=BF(this.tcpBuffer)?4+V:20+V;if(this.tcpBuffer.length<Z)break;Y(this.tcpBuffer.subarray(0,Z),X),this.tcpBuffer=this.tcpBuffer.subarray(Z)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=MF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new b7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,V)=>{let Z=!0;V.once(()=>{Z=!1});while(Z){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await $n(Q);let J=new b7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(V){throw V}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,V;try{[Y,V]=await this.request(G,X)}catch(Z){if(Z instanceof R2==!1)throw i9("requestWithRetry error",Z),Z;this.server=Z.addr;let[Q]=Z.response.getAttributeValue("ERROR-CODE"),J=Z.response.getAttributeValue("NONCE"),U=Z.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=vn(this.username,this.realm,this.password),G.transactionId=K2(),[Y,V]=await this.request(G,this.server)}else throw Z}return[Y,V]}async sendData(G,X){let Y=await this.getChannel(X).catch((Z)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let Z=new b7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(Z,this.server);return}let V=r1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(V),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<pQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new b7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[V]=await this.requestWithRetry(Y,this.server);if(V.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function yn({address:W,username:G,password:X},{lifetime:Y,portRange:V,interfaceAddresses:Z,transport:Q}={}){Y??=Sn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:V,interfaceAddresses:Z}):await Sd.init(W),U=new _n(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:V,interfaceAddresses:Z,transport:Q}={}){let J=await yn({address:W,username:G,password:X},{lifetime:Y,portRange:V,interfaceAddresses:Z,transport:Q});return new kn(J)}function vn(W,G,X){return En("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,V,Z,Q,J,U,q,A,N,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=V,this.host=Z,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=q,this.tcptype=A,this.generation=N,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let N=8,H=X.length-1;N<H;N+=2)if(X[N]==="raddr")Y.related_address=X[N+1];else if(X[N]==="rport")Y.related_port=Number(X[N+1]);else if(X[N]==="tcptype")Y.tcptype=X[N+1];else if(X[N]==="generation")Y.generation=Number(X[N+1]);else if(X[N]==="ufrag")Y.ufrag=X[N+1];let{foundation:V,component:Z,transport:Q,priority:J,host:U,port:q,type:A}=Y;return new W(V,Z,Q,J,U,q,A,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return gn("md5").update(Y,"ascii").digest("hex").slice(7)}function hA(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var hn=class{cache=new Map;mdnsInstance=L2.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",Z),clearTimeout(V)},V=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),Z=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",Z),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},mn=D1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=bn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$A=2,fn=5,xF=6;var cn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function pn(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,V=X&&G.priority||W.priority;return 1*Math.min(Y,V)+2*Math.max(Y,V)+(Y>V?1:0)}async function ln(W,G){let X=new b7(1,0);try{let[Y]=await W.request(X,G),V=W.localCandidate;if(!V)throw Error("not exist");return new DG(_O("srflx","udp",V.host),V.component,V.transport,hA("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",V.host,V.port)}catch(Y){mn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var dn=D1("werift-ice : packages/ice/src/utils.ts");function on(W){return iA(W.family)===4&&W.address?.startsWith("169.254.")||iA(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],V=B2.networkInterfaces();dn(V);let Z=Object.keys(V).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=V[Q].filter((U)=>iA(U.family)===W&&!E2.default.isLoopback(U.address)&&(G?!0:!on(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return Z.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(Z).flatMap((Q)=>Q.addresses)}function nn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var t1=D1("werift-ice : packages/ice/src/ice.ts : log"),rn=class{constructor(W,G){this._iceControlling=W,this.options={...cn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),t1("new Connection",this.options)}localUsername=yQ(4);localPassword=yQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new RA(un(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=yQ(4),this.localPassword=yQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){t1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){t1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=nn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((V)=>Object.values(G).includes(V));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let V=G.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(V),Q=this.userHistory[Z]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new b7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((q)=>{t1("sendStun error",q)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){t1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((q)=>q.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let q=new RF;this.ensureProtocol(q);try{await q.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),q.localIp=U,this.protocols.push(q),t1("protocol",q.localIp);let A=[U,q.getExtraInfo()[1]];return q.localCandidate=new DG(_O("host","udp",A[0]),1,"udp",hA("host"),A[0],A[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(q),this.appendLocalCandidate(q.localCandidate),q}catch(A){t1("error protocol STUN",A)}});X.push(...Y.map((U)=>U.then((q)=>q?.localCandidate)));let{stunServer:V,turnServer:Z}=this;if(V){let U=Y.map(async(q)=>{let A=await q;if(!A)return;return new Promise(async(H,z)=>{let w=setTimeout(z,G*1000);if(A.localCandidate?.host&&$F(A.localCandidate?.host)){let C=await ln(A,V).catch((D)=>{t1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{t1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(Z&&Q&&J){let U=(async()=>{let q=await LF({address:Z,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:Z,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(q),this.protocols.push(q);let A=q.turn.relayedAddress,N=q.turn.mappedAddress;return t1("turn candidateAddress",A),q.localCandidate=new DG(_O("relay","udp",A[0]),1,"udp",hA("relay"),A[0],A[1],"relay",N[0],N[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(q.localCandidate),q.localCandidate})().catch((q)=>{t1("query TURN server",q)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(t1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),t1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$A;while(this.checkList.length>0&&W===$A)W=await this.checkListState.get(),t1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,V=!1,Z=new AbortController;X.once(()=>{V=!0,Y+=xF,Z.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!V){await yO.setTimeout(fn*(0.8+0.4*Math.random())*1000,void 0,{signal:Z.signal});let q=this.nominated;if(!q||V)break;let A=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await q.protocol.request(A,q.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(N){if(q.id===this.nominated?.id){t1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){t1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(q){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($A)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new hn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}t1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){pn(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bA.default(Y.protocol,W)&&bA.default(Y.remoteCandidate,G))}switchRole(W){t1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){t1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)t1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}t1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)t1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($A)}))}checkStart=(W)=>kO(async(G)=>{t1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:V,generation:Z}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:V,iceControlling:this.iceControlling}),q=performance.now();try{let[A,N]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),z=(performance.now()-q)/1000;W.rtt=z,W.totalRoundTripTime+=z,W.roundTripTimeMeasurements++,t1("response received",U.toJSON(),A.toJSON(),N,{localUsername:Q,remoteUsername:V,remotePassword:Y,generation:Z,rtt:z}),X.response=A,X.addr=N}catch(A){let N=A;if(t1("failure case",U.toJSON(),N.response?JSON.stringify(N.response.toJSON(),null,2):A,{localUsername:Q,remoteUsername:V,remotePassword:Y,generation:Z},W.remoteAddr),N.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(N.response?.getAttributeValue("ERROR-CODE")[0]===401){t1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{t1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bA.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let A=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:V,iceControlling:this.iceControlling});try{await W.protocol.request(A,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(N){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Y),Z,[Q,J]=G;for(let q of this.remoteCandidates)if(q.host===Q&&q.port===J){Z=q;break}if(!Z)Z=new DG(yQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(Z);let U=this.findPair(X,Z);if(!U)U=new FF(X,Z,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=V,t1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let V=an({remoteUsername:G,localUsername:X}),Z=new b7(1,0);if(Z.setAttribute("USERNAME",V).setAttribute("PRIORITY",hA("prflx")),Y){if(Z.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)Z.setAttribute("USE-CANDIDATE",null)}else Z.setAttribute("ICE-CONTROLLED",this.tieBreaker);return Z}respondError(W,G,X,Y){let V=new b7(W.messageMethod,272,W.transactionId);V.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(V,G).catch((Z)=>{t1("sendStun error",Z)})}},an=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function h4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends sn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},tn=D1("werift:packages/webrtc/src/dataChannel.ts");function en(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $2=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}tn("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},F2=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),JJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Wi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Gi=class{id;uri;constructor(W){Object.assign(this,W)}};var Xi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Yi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Vi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},S2=class{rid;direction;constructor(W){Object.assign(this,W)}},Zi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),x2=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Qi=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),k2=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_2=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),y2=[Ji(),Qi(),x2(),Zi(),k2(),_2()].map((W)=>W.mimeType),oH0=y2.filter((W)=>W.toLowerCase().startsWith("video/")),nH0=y2.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Hi=0,SA=50,bF=51,mF=53,Ni=56,Ii=57,zi="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),wi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],v2=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:zH,SRTP_AEAD_AES_128_GCM:ZJ},mA=["sendonly","sendrecv"],ji=["sendrecv","recvonly"],Oi=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Y8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ki=class{constructor(W,G,X,Y,V){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=V,G)this.setDtlsTransport(G)}id=Ai().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mA.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let V={type:"codec",id:Y8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(V)}return G}},Ci="inactive",g2="sendonly",u2="recvonly",h2="sendrecv",wO=[Ci,g2,u2,h2],uO=class extends UK{uuid=b2().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?a6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Di=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=b2().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Ti=D1("werift:packages/webrtc/src/utils.ts");function m2(W,G){let X=(Z)=>Z.toUpperCase(),Y=(Z)=>Z.match(/(.{2})/g).join(":"),V=qi(G).update(W).digest("hex");return Y(X(V))}var Mi={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function f2(W){return Mi[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Pi(W){let G=W[0];return G>19&&G<64}var c2=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Ri(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var p2=Date.now,Li=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Bi=()=>{return Li+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,Ei=()=>{let G=(FA.timeOrigin+FA.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return R8([4,4],[X,Y]).readBigUInt64BE()},l2=(W)=>{let G=R8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return R8([2,2],[X,Y]).readUInt32BE()};function $i(W){let G=(J)=>{if(!J)return;let[U,q]=J.split(":");return[U,Number.parseInt(q)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:V,username:Z}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:Z,turnPassword:V};return Ti("iceOptions",Q),Q}var WN0=aA.createSelfSignedCertificateWithKey;var Fi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},Si=D1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,xi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){Si("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===D9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>D9(this.newEstSeqNum,1)){for(let Y=D9(this.newEstSeqNum,1);Y<G;Y=D9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},_i=D1("werift:packages/webrtc/media/receiver/receiverTwcc"),yi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Bi()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ki(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((A,N)=>A.tsn-N.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],V=W[0].tsn,Z=D9(X-G,1),Q,J,U=[];for(let A=G;A<=X;A++){let N=this.extensionInfo[A]?.timestamp;if(N){if(!this.lastTimestamp)this.lastTimestamp=N;if(!Q)Q=this.lastTimestamp;let H=N-this.lastTimestamp;this.lastTimestamp=N;let z=new yA({delta:Number(H)});if(z.parseDelta(),U.push(z),J!=null&&J.status!==z.type)Y.push(new lQ({packetStatus:J.status,runLength:A-J.minTSN})),J={minTSN:A,status:z.type};if(A===X)if(J!=null)Y.push(new lQ({packetStatus:J.status,runLength:A-J.minTSN+1}));else Y.push(new lQ({packetStatus:z.type,runLength:1}));if(J==null)J={minTSN:A,status:z.type}}}if(!Q)return;let q=new uY({feedback:new VH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:V,packetStatusCount:Z,referenceTime:Rd(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([q]).catch((A)=>{_i(A)}),this.extensionInfo={},this.fbPktCount=Pd(this.fbPktCount,1)}},vi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||TS(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=pQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let V=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=V-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},r5=D1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,V=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=V,this.localCertificate??=W.localCertificate}id=hi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aA.createSelfSignedCertificateWithKey({signature:c4.ecdsa_3,hash:rA.sha256_4},i6.secp256r1_23);return this.localCertificate=new d2(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=mi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new In({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),r5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await bi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),r5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),r5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let q=f2(J);if(!q)return[];let A=hO(U);if(!A)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:q,normalizedValue:A}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ci(X),V=X.filter(({normalizedAlgorithm:J})=>J===Y),Z=V.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(m2(G,U)));return J},new Map);if(!V.some(({normalizedAlgorithm:J,normalizedValue:U})=>Z.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");r5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:V,remoteSalt:Z}=this.dtls.extractSessionKeys(jo(G),Oo(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:V,remoteMasterSalt:Z},profile:G};this.srtp=new Xn(Q),this.srtcp=new Wn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Do(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,Fo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(V){if(V instanceof bY){r5("dropping invalid SRTCP packet",V);return}throw V}let Y;try{Y=$o.deSerialize(X)}catch(V){r5("dropping malformed SRTCP packet",V);return}for(let V of Y)try{this.onRtcp.execute(V)}catch(Z){r5("RTCP error",Z)}}else{let X;try{X=this.srtp.decrypt(G)}catch(V){if(V instanceof bY){r5("dropping invalid SRTP packet",V);return}throw V}let Y;try{Y=a6.deSerialize(X)}catch(V){r5("dropping malformed SRTP packet",V);return}try{this.onRtp.execute(Y)}catch(V){r5("RTP error",V)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return r5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((V)=>V.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],V={type:"transport",id:Y8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Y8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Y8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Y8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(V),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Y8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Y8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let Z=await this.iceTransport.getStats();return X.push(...Z),X}};var d2=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=sQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=sQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",m2(sQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},mi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let V=`${f2(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(V))return!1;return G.add(V),!0})},fi=["sha512","sha384","sha256","sha224","sha1"],ci=(W)=>{return fi.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},pi=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Pi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new pi(W),nF=D1("werift:packages/webrtc/src/transport/ice.ts"),di=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=li().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ni(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let V={type:"local-candidate",id:Y8("local-candidate",Y.foundation),timestamp:W,transportId:Y8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(V)}for(let Y of this.connection.remoteCandidates){let V=tQ(Y),Z={type:"remote-candidate",id:Y8("remote-candidate",V.foundation),timestamp:W,transportId:Y8("transport",this.id),address:V.ip,port:V.port,protocol:V.protocol,candidateType:V.type,priority:V.priority,foundation:V.foundation};G.push(Z)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let V={type:"candidate-pair",id:Y8("candidate-pair",Y.foundation),timestamp:W,transportId:Y8("transport",this.id),localCandidateId:Y8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Y8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(V)}return G}};var oi=class{constructor(W={}){this.options=W,this.connection=new rn(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(tQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(tQ)}get localParameters(){return new n2({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function tQ(W){let G=new o2(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ni(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ii=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return tQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},o2=class{constructor(W,G,X,Y,V,Z,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=V,this.protocol=Z,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ii({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Vx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},n2=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},f7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},qK=class extends f7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=e2(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,t2(this.params)])}},fA=class W extends qK{static type=1;get type(){return W.type}},fO=class W extends qK{static type=2;get type(){return W.type}},si=class W extends qK{static type=130;get type(){return W.type}},cA=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let V=Buffer.alloc(4);return V.writeUInt16BE(X,0),V.writeUInt16BE(Y,2),V})])}},pA=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends f7{static type=10;get type(){return W.type}},pO=class W extends f7{static type=11;get type(){return W.type}},UJ=class extends f7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=e2(G)}params=[];get body(){return t2(this.params)}},lO=class W extends UJ{static type=6;get type(){return W.type}},lA=class W extends UJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,V])=>V===G)||[])[0],body:X}})}},dO=class W extends UJ{static type=4;get type(){return W.type}},i2=class W extends UJ{static type=5;get type(){return W.type}},oO=class W extends UJ{static type=130;get type(){return W.type}},nO=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),V=X.readUInt16BE(10),Z=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(Z),X.readUInt16BE(Z+2)]),Z+=4}),[...Array(V)].forEach(()=>{this.duplicates.push(X.readUInt32BE(Z)),Z+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((V)=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(V[0],0),Z.writeUInt16BE(V[1],2),Z})]);return Y=Buffer.concat([Y,...this.duplicates.map((V)=>{let Z=Buffer.alloc(4);return Z.writeUInt32BE(V,0),Z})]),Y}},r2=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},a2=class W extends f7{static type=8;get type(){return W.type}},s2=class W extends f7{static type=14;get type(){return W.type}},ti=[pA,fA,fO,nO,dO,i2,lO,r2,a2,lA,cO,pO,s2,oO,cA],ei=ti.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function t2(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,V])=>{let Z=V.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(Z,2),G=Buffer.concat([G,X,Q,V]),X=Buffer.concat([...Array(qJ(Z))].map(()=>Buffer.from("\x00")))}),G}function e2(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),V=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+V)]),X+=V+qJ(V)}return G}function Wr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),V=W.readUInt32LE(8),Z=DS(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(V!==Z)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),q=W.readUInt8(J+1),A=W.readUInt16BE(J+2),N=W.slice(J+4,J+A),H=ei[U.toString()];if(H)Q.push(new H(q,N));else throw Error("unknown");J+=A+qJ(A)}return[G,X,Y,Q]}function Gr(W,G,X,Y){let V=Buffer.alloc(8);V.writeUInt16BE(W,0),V.writeUInt16BE(G,2),V.writeUInt32BE(X,4);let Z=Y.bytes,Q=DS(Buffer.concat([V,Buffer.from("\x00\x00\x00\x00"),Z])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([V,J,Z])}function Xr(W){return W.map((G,X)=>[X,G])}function Yr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,V){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=V}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(r1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(r1.Pack("!H",[X])))])}static parse(G){let[X,Y,V]=r1.Unpack("!LLL",G),Z=[];for(let Q=12;Q<G.length;Q+=2)Z.push(r1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,V,Z)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(r1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=r1.Unpack("!LHH",G);return new W(X,Y)}},xA={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dA=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(r1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=r1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dA,17:Wx},i1=D1("werift/sctp/sctp"),Vr=24,Zr=60,aF=65535,a5=1200,mQ=1,Gx=2,rO=4,sF=10,Qr=8,tF=0.125,eF=0.25,WS=3,Jr=1,Ur=60,JH=4294967296,qr=200,Ar=30,GS=135,XS=7,YS=32776,VS=49152,Hr=["new","closed","connected","connecting"],Nr=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Yr(Hr);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=ai(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*a5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=WS;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Ar;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,V]=Wr(G);if(V.filter((Q)=>Q.type===fA.type).length>0){if(V.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of V)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{i1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((V)=>{let Z=(V-this.lastReceivedTsn)%JH;if(V===X)G[G.length-1][1]=Z;else G.push([Z,Z]);X=_Y(V)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((V)=>{i1("send sack failed",V.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pA.type:this.receiveDataChunk(G);break;case fA.type:{if(!this.isServer)return;let X=G;i1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let V=Date.now()/1000,Z=Buffer.from(r1.Pack("!L",[V]));Z=Buffer.concat([Z,iF("sha1",this.hmacKey).update(Z).digest()]),Y.params.push([XS,Z]),i1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{i1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[V,Z]of X.params)if(V===XS){Y.body=Z;break}await this.sendChunk(Y).catch((V)=>{i1("send echo failed",V.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new i2;X.params=G.params,await this.sendChunk(X).catch((Y)=>{i1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case r2.type:{this.timer2Cancel(),this.setState(7);let X=new a2;await this.sendChunk(X).catch((Y)=>{i1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lA.type:i1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,V=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Vr||!Y.slice(4).equals(V)){i1("x State cookie is invalid");return}let Z=Date.now()/1000,Q=r1.Unpack("!L",Y)[0];if(Q<Z-Zr||Q>Z){let U=new lA(0,void 0);U.params.push([lA.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((q)=>{i1("send errorChunk failed",q.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{i1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case s2.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,V]of X.params){let Z=rF[Y];if(Z)await this.receiveReconfigParam(Z.parse(V))}}break;case cA.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===VS)this.remotePartialReliability=!0;else if(X===YS)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(i1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dA(X.requestSequence,xA.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(V)=>{if(delete this.inboundStreams[V],this.outboundStreamSeq[V]){if(!this.reconfigQueue.includes(V))this.reconfigQueue.push(V)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dA.type:{let X=G;if(X.result!==xA.ReconfigResultSuccessPerformed)i1("OutgoingSSNResetRequestParam failed",Object.keys(xA).find((Y)=>xA[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((V)=>{return delete this.outboundStreamSeq[V],V});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=WS,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dA(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&mQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(b4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,V=0,Z=0;while(this.sentQueue.length>0&&bQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(V++,!J?.acked)Z+=J.bookSize,this.flightSizeDecrease(J);if(V===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((A)=>{for(let N=A[0];N<A[1]+1;N++)U=(G.cumulativeTsn+N)%JH,J.add(U)});let q=G.cumulativeTsn;for(let A of this.sentQueue){if(b4(A.tsn,U))break;if(J.has(A.tsn)&&!A.acked)Z+=A.bookSize,A.acked=!0,this.flightSizeDecrease(A),q=A.tsn}for(let A of this.sentQueue){if(b4(A.tsn,q))break;if(!J.has(A.tsn)){if(A.misses++,A.misses===3){if(A.misses=0,!this.maybeAbandon(A))A.retransmit=!0;A.acked=!1,this.flightSizeDecrease(A),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(V&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(Z,a5);else if(this.partialBytesAcked+=Z,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=a5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*a5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(bQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(V>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,bQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>b4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,V]of G.streams){let Z=this.getInboundStream(Y);Z.streamSequenceNumber=D9(V,1);for(let Q of Z.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Jr,Math.min(this.srtt+4*this.rttvar,Ur))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new Ir;return this.inboundStreams[G]}markReceived(G){if(bQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>b4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:V,maxRetransmits:Z,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/a5),q=0,A=[];for(let N=0;N<U;N++){let H=new pA(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(N===0)H.flags|=Gx;if(N===U-1)H.flags|=mQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(q,q+a5),H.bookSize=H.userData.length,H.expiry=V,H.maxRetransmits=Z,q+=a5,this.localTsn=_Y(this.localTsn),A.push(H)}if(A.forEach((N)=>{this.outboundQueue.push(N)}),Q)this.outboundStreamSeq[G]=D9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((V)=>{i1("send forwardTsn failed",V.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*a5:4*a5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let V of this.sentQueue){if(V.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(V),V.misses=0,V.retransmit=!1,V.sentCount++,await this.sendChunk(V).catch((Z)=>{i1("send data failed",Z.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let V=this.outboundQueue.shift();if(!V)break;if(V.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(V);break}if(this.sentQueue.push(V),this.flightSizeIncrease(V),V.sentCount++,V.sentTime=Date.now()/1000,await this.sendChunk(V).catch((Z)=>{i1("send data outboundQueue failed",Z.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,GS);this.reconfigQueue=G.slice(GS);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){i1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{i1("send reconfig failed",Y.message)})}async sendResetRequest(G){i1("sendResetRequest",G);let X=new pA(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Qr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{i1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{i1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*a5),this.cwnd=a5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;i1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)i1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(i1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)i1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(r1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{i1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(b4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cA(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,V])=>[Number(Y),V])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((V)=>V.type===G.type);for(let V=Y;V>=0;V--){let Z=this.sentQueue[V];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&mQ)break}for(let V=Y;V<this.sentQueue.length;V++){let Z=this.sentQueue[V];if(Z.abandoned=!0,Z.retransmit=!1,Z.flags&mQ)break}return!0}static getCapabilities(){return new zr(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fA;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),i1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){i1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([VS,Buffer.from("")]),X.push(cA.type);X.push(si.type),G.push([YS,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Gr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,i1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{i1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},Ir=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||b4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Xr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(b4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let V=this.reassembly[W];if(G===void 0){if(Y=!(V.flags&rO),!(V.flags&Gx))if(Y)break;else{W++;continue}if(Y&&TS(V.streamSeqNum,this.streamSequenceNumber))break;X=V.tsn,G=W}else if(V.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(V.flags&mQ){let Z=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);Z.pop();let Q=Buffer.concat(Z);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&V.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=D9(this.streamSequenceNumber,1);W=G,yield[V.streamId,V.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,V]of this.reassembly.entries())if(bQ(W,V.tsn))G=Y,X+=V.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},zr=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=D1("werift:packages/webrtc/src/transport/sctp.ts"),fQ=65536,wr=class W{constructor(G=5000,X=fQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ri().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=fQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Nr(new jr(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let V=this.dataChannels[Y];if(!V)return;V.setReadyState("closing"),V.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===SA&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,Z,,Q,J,U]=r1.Unpack("!BBHLHH",Y),q=12,A=Y.slice(q,q+J).toString("utf8");q+=J;let N=Y.slice(q,q+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:Z,reliability:Q,streamId:G,label:A,protocol:N});let H=(Z&3)===1?Q:void 0,z=(Z&3)===2?Q:void 0,w=new F2({label:A,ordered:(Z&128)===0,maxPacketLifeTime:z,maxRetransmits:H,protocol:N,id:G}),C=new $2(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let V=this.dataChannels[G];this.dataChannelQueue.push([V,SA,Buffer.from(r1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let V=this.dataChannels[G];if(!V)throw Error("channel not found");V.setReadyState("open")}break}else{let V=this.dataChannels[G];if(V){let Z=(()=>{switch(X){case bF:return Y.toString("utf8");case Ni:return"";case mF:return Y;case Ii:return Buffer.from([]);default:throw Error()}})();if(V.messagesReceived++,V.bytesReceived+=Y.length,V.onMessage.execute(Z),V.emit("message",{data:Z}),V.onmessage)V.onmessage({data:Z})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Hi,Y=0,V=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,V=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,V=G.maxPacketLifeTime;let Z=r1.Pack("!BBHLHH",[hF,X,Y,V,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(Z),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,SA,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),V=G.id;if(V===void 0){V=this.dataChannelId;while(Object.keys(this.dataChannels).includes(V.toString()))V+=2;this.dataChannels[V]=G,G.setId(V)}if(X===SA)await this.sctp.send(V,X,Y,{ordered:!0});else{let Z=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(V,X,Y,{expiry:Z,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),V=en(X);if(this.assertSendableMessageSize(V),G.addBufferedAmount(V),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),V};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=fQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??fQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},jr=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oA=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Or(G),V=new W;X.forEach((Q)=>{if(Q.startsWith("v="))V.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))V.origin=Q.slice(2);else if(Q.startsWith("s="))V.name=Q.slice(2);else if(Q.startsWith("c="))V.host=jO(Q.slice(2));else if(Q.startsWith("t="))V.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[q,A]=U?.split(" ")||[];V.dtlsFingerprints.push(new bO(q,A))}break;case"ice-lite":V.iceLite=!0;break;case"ice-options":V.iceOptions=U;break;case"ice-pwd":V.icePassword=U;break;case"ice-ufrag":V.iceUsernameFragment=U;break;case"group":KO(V.group,U);break;case"msid-semantic":KO(V.msidSemantic,U);break;case"setup":V.dtlsRole=cF[U];break;case"extmap-allow-mixed":V.extMapAllowMixed=!0;break}}});let Z=V.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let q=U[1],A=U[4].split(" "),N=["audio","video"].includes(q)?A.map((w)=>Number(w)):void 0,H=new aO(q,Number.parseInt(U[2]),U[3],N||A);if(H.dtlsParams=new mO([...V.dtlsFingerprints],V.dtlsRole),H.iceParams=new n2({iceLite:V.iceLite,usernameFragment:V.iceUsernameFragment,password:V.icePassword}),H.iceOptions=V.iceOptions,V.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Vx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Gi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=h4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=h4(D," "),[p,v,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let l=new $G({mimeType:H.kind+"/"+p,channels:c,clockRate:Number.parseInt(v),payloadType:Number.parseInt(x)});H.rtp.codecs.push(l)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=h4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=h4(D," "),p=Number.parseInt(x),[v,n]=h4(h,":"),c=H.ssrc.find((l)=>l.ssrc===p);if(!c)c=new tO({ssrc:p}),H.ssrc.push(c);if(v2.includes(v))c[v]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=h4(D," ");H.simulcastParameters.push(new S2({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&Z&&Z.items.includes(H.rtp.muxId))for(let w=0;w<Z.items.length;w++){if(!Z.items.includes(w.toString()))continue;let C=V.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let z=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=h4(D," "),p=z(Number(x));p.parameters=h}else if(C==="rtcp-fb"){let[x,h,p]=D.split(" ");H.rtp.codecs.forEach((v)=>{if(["*",v.payloadType.toString()].includes(x))v.rtcpFeedback.push(new Xi({type:h,parameter:p}))})}}})}),V}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((V)=>G.push(`a=group:${V.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((V)=>G.push(`a=msid-semantic:${V.str}`));let X=this.media.map((V)=>V.toString()).join("");return G.join(`\r
|
|
243
|
+
`)+`\r
|
|
244
|
+
`+X}toJSON(){return new Kr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},aO=class{constructor(W,G,X,Y){this.kind=W,this.port=G,this.profile=X,this.fmt=Y}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let W=[];if(W.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map((G)=>G.toString()).join(" ")}`),this.host)W.push(`c=${sO(this.host)}`);if(this.iceCandidates.forEach((G)=>{W.push(`a=candidate:${Yx(G)}`)}),this.iceCandidatesComplete)W.push("a=end-of-candidates");if(this.iceParams?.usernameFragment)W.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`);if(this.iceParams?.password)W.push(`a=ice-pwd:${this.iceParams.password}`);if(this.iceParams?.iceLite)W.push("a=ice-lite");if(this.iceOptions)W.push(`a=ice-options:${this.iceOptions}`);if(this.dtlsParams)this.dtlsParams.fingerprints.forEach((G)=>{W.push(`a=fingerprint:${G.algorithm} ${G.value}`)}),W.push(`a=setup:${gO[this.dtlsParams.role]}`);if(this.direction)W.push(`a=${this.direction}`);if(this.rtp.muxId)W.push(`a=mid:${this.rtp.muxId}`);if(this.msid)W.push(`a=msid:${this.msid}`);if(this.rtcpPort&&this.rtcpHost){if(W.push(`a=rtcp:${this.rtcpPort} ${sO(this.rtcpHost)}`),this.rtcpMux)W.push("a=rtcp-mux")}if(this.ssrcGroup.forEach((G)=>{W.push(`a=ssrc-group:${G.str}`)}),this.ssrc.forEach((G)=>{v2.forEach((X)=>{let Y=G[X];if(Y!==void 0)W.push(`a=ssrc:${G.ssrc} ${X}:${Y}`)})}),this.rtp.codecs.forEach((G)=>{if(W.push(`a=rtpmap:${G.payloadType} ${G.str}`),G.rtcpFeedback.forEach((X)=>{let Y=X.type;if(X.parameter)Y+=` ${X.parameter}`;W.push(`a=rtcp-fb:${G.payloadType} ${Y}`)}),G.parameters)W.push(`a=fmtp:${G.payloadType} ${G.parameters}`)}),Object.keys(this.sctpMap).forEach((G)=>{let X=this.sctpMap[Number(G)];W.push(`a=sctpmap:${G} ${X}`)}),this.sctpPort)W.push(`a=sctp-port:${this.sctpPort}`);if(this.sctpCapabilities)W.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`);if(this.rtp.headerExtensions.forEach((G)=>W.push(`a=extmap:${G.id} ${G.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((V)=>{W.push(`a=rid:${V.rid} ${V.direction}`)});let G="a=simulcast:",X=this.simulcastParameters.filter((V)=>V.direction==="recv");if(X.length)G+=`recv ${X.map((V)=>V.rid).join(";")} `;let Y=this.simulcastParameters.filter((V)=>V.direction==="send");if(Y.length)G+=`send ${Y.map((V)=>V.rid).join(";")}`;W.push(G)}return W.join(`\r
|
|
245
|
+
`)+`\r
|
|
246
|
+
`}},dQ=class{constructor(W,G){this.semantic=W,this.items=G}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function jO(W){let G=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!G)throw Error("exception");return G[2]}function sO(W){return`IN IP${ui(W)?4:6} ${W}`}function Yx(W){let G=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)G+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)G+=` rport ${W.relatedPort}`;if(W.tcpType!=null)G+=` tcptype ${W.tcpType}`;if(W.generation!=null)G+=` generation ${W.generation}`;if(W.ufrag!=null)G+=` ufrag ${W.ufrag}`;return G}function Or(W){let G=[],X=[],Y=W.split(`\r
|
|
247
|
+
`);if(Y.length===1)Y=W.split(`
|
|
248
|
+
`);return Y.forEach((V)=>{if(V.startsWith("m="))X.push([V]);else if(X.length>0)X[X.length-1].push(V);else G.push(V)}),[G,X]}function OO(W){if(W.includes(":")){let G=h4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new dQ(Y[0],Y.slice(1).map(X)))}function Vx(W){let G=DG.fromSdp(W);return tQ(G)}var Kr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function ZS(W,G){let Y=new RA(gi(64)).toString().slice(0,8),V=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new dQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,V]=h4(X,"=");if(wi.includes(Y))G[Y]=Number(V);else G[Y]=V}else if(X.includes(":")){let[Y,V]=X.split(":");G[Y]=Number.isNaN(Number(V))?V:Number(V)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kA=D1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Zx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new xi(this);audioRedHandler=new lo;type="receiver";uuid=Ui().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Wi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===JJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new yi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await zO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let V=0,Z=0;if(this.lastSRtimestamp[X]){V=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)Z=pQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:V,dlsr:Z})}),G=new iQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await zO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kA("sendRtcp failed",X),await zO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let V=this.remoteStreams[Y.ssrc];if(!V)continue;let Z={type:"inbound-rtp",id:Y8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Y8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:V.packets_received,packetsLost:V.packets_lost,jitter:V.jitter};if(G.push(Z),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Y8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:Z.codecId,localId:Z.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kA("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kA("sendRtcpPLI",{mediaSsrc:W});let G=new nQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kA(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=l2(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new vi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let Z=G[C9.transportWideCC];if(!Z==null)throw Error("undefined");this.receiverTWCC.handleTWCC(Z)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let Z=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=oo(W,J.payloadType,Z),X=this.trackBySSRC[Z]}let V;if(Y.name.toLowerCase()==="red"){if(V=X2.deSerialize(W.payload),!Object.keys(this.codecs).includes(V.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(V){if(X.kind==="audio"){let Z=this.audioRedHandler.push(V,W);for(let Q of Z)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},uQ=D1("werift:packages/webrtc/src/media/router.ts"),Cr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){uQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){uQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;uQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=So(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[C9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Zx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)uQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){uQ("ssrcReceiver not found");return}let V=G[C9.sdesMid];if(typeof V==="string")X.sdesMid=V;let Z=G[C9.repairedRtpStreamId];if(typeof Z==="string")X.latestRepairedRid=Z};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case iQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case ZH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case nQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Dr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Tr=10,Mr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Dr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=p2()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Tr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let V=Y.sequenceNumber,Z=this.sentInfos[V];if(!Z)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(Z.size,Z.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,V=WH(SY/4)+1,Z=Y-(Y-V)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-Z}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=D1("werift:packages/webrtc/src/media/rtpSender.ts"),qS=128,AS=0.85,Pr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=r1.Unpack("!L",QS(4))[0];rtxSsrc=r1.Unpack("!L",QS(4))[0];streamId=JS().toString();trackId=JS().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Mr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=IS();redRedundantPayloadType;_redDistance=2;redEncoder=new co(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await US(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new G2({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=l2(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new ZH({chunks:[new eS({source:this.ssrc,items:[new W2({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await US(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=D9(this.sequenceNumber,-W),X)this.seqOffset=D9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=D9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?a6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=D9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=Ei(),V=[...G.extensions];G.extensions=this.headerExtensions.map((q)=>{let A=(()=>{switch(q.uri){case C9.sdesMid:if(this.mid)return xo(this.mid);return;case C9.sdesRTPStreamID:if(this.rtpStreamId)return ko(this.rtpStreamId);return;case C9.repairedRtpStreamId:if(this.repairedRtpStreamId)return _o(this.repairedRtpStreamId);return;case C9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=D9(this.dtlsTransport.transportSequenceNumber,1),yo(this.dtlsTransport.transportSequenceNumber);case C9.absSendTime:return vo(Y)}})();if(A)return{id:q.id,payload:A}}).filter((q)=>q);for(let q of V){let A=G.extensions.find((N)=>N.id===q.id);if(A)A.payload=q.payload;else G.extensions.push(q)}G.extensions=G.extensions.sort((q,A)=>q.id-A.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%qS]=W;let Z=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:Z,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),Z=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(Z,G);this.runRtcp();let J=p2(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case iQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=AS*this.rtt+(1-AS)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case VH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let V=this.rtpCache[Y%qS];if(V&&V.header.sequenceNumber!==Y)V=void 0;if(V){if(this.rtxPayloadType!=null)V=no(V,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=D9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(V.payload,V.header)}}),this.onGenericNack.execute(X)}break}}break;case nQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Y8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Y8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let V={type:"media-source",id:Y8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(V)}if(this.rtt!==void 0){let V={type:"remote-inbound-rtp",id:Y8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(V)}return G}},Lr=D1("werift:packages/webrtc/src/transport/sctpManager.ts"),Br=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new wr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let V=new F2({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),Z=new $2(this.sctpTransport,V);return this.dataChannelsOpened++,this.dataChannels.push(Z),Z.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(Z);if(J!==-1)this.dataChannels.splice(J,1)}}),Z}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Lr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Y8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},Er=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new S2(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new dQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=zi,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let V=oA.parse(W);return this.validateDescription({description:V,isLocal:G,signalingState:X}),V.type=Y,V}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oA;ZS("offer",X),(this.currentLocalDescription?.media??[]).forEach((V,Z)=>{let Q=V.rtp.muxId;if(!Q)return;if(V.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=Z,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(V.direction==="inactive"){X.media.push(V);return}throw Error("transceiver not found")}J.mLineIndex=Z,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let V of W.filter((Z)=>!X.media.find((Q)=>Q.rtp.muxId===Z.mid))){if(V.mid==null)V.mid=this.allocateMid(this.midSuffix?"av":"");let Z=this.createMediaDescriptionForTransceiver(V,V.direction);if(V.mLineIndex===void 0)V.mLineIndex=X.media.length,X.media.push(Z);else X.media[V.mLineIndex]=Z}if(G&&!X.media.find((V)=>V.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let V=X.media.map((Z)=>Z.rtp.muxId).filter((Z)=>Z);if(V.length){let Z=new dQ("BUNDLE",V);X.group.push(Z)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oA;ZS("answer",Y);for(let V of this._remoteDescription.media){let Z,Q;if(["audio","video"].includes(V.kind)){let J=W.find((U)=>U.mid===V.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${V.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,c2(J.direction,J.offerDirection)),Z=J.dtlsTransport}else if(V.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),Z=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(Z.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=Z.role;if(V.simulcastParameters&&V.simulcastParameters.length>0)Q.simulcastParameters=V.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let V=new dQ("BUNDLE",[]);for(let Z of Y.media)if(Z.rtp.muxId)V.items.push(Z.rtp.muxId);Y.group.push(V)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),V=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let q=(Y.get(J)??G[J])?.dtlsTransport??V;if(!q)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,q)});let Z=W.media.find((Q)=>Q.kind==="application");if(X&&Z)this.addTransportDescription(Z,X.dtlsTransport);this.setLocalDescription(W)}},hQ=D1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),$r=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new d2(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((V)=>V.state!=="closed"),G=new oi({...$i(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new di(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Fr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:V,bundlePolicy:Z}){if(Z==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(V)W.sdpMLineIndex=V.mLineIndex,W.sdpMid=V.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=o2.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else hQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((V)=>Y.includes(V.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...V){return W.filter((Z)=>V.includes(Z.state)).length===W.length}function Y(...V){return W.some((Z)=>V.includes(Z.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;hQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)hQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{hQ("gatherCandidates failed",X)})}setConnectionState(W){hQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Fr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],s5=D1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Rr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Cr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new Er({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new xr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let V={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",V),this.ontrack)this.ontrack(V)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Br,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new $r({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Fi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((V)=>V.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((V)=>{this.router.routeRtp(V)}),X.onRtcp.subscribe((V)=>{this.router.routeRtcp(V)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((V)=>{if(!this.localDescription){s5("localDescription not found when ice candidate was gathered");return}if(!V){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){s5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:V,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((Z)=>Z?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[V,Z]of gF(X.media)){let Q=Z.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(Z.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(V);if(J)J.mid=Q}if(Z.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((V)=>V.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let V of this.transceiverManager.getTransceivers()){let Z=c2(V.direction,V.offerDirection);V.setCurrentDirection(Z)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((V)=>{s5("gatherCandidates failed",V)}),X.type==="answer")this.connect().catch((V)=>{s5("connect failed",V),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(s5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((V)=>{throw s5("iceTransport.start failed",V),V}),Y())return;if(await G.start().catch((V)=>{throw s5("dtlsTransport.start failed",V),V}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oA)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),V=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let A=this.transceiverManager.getTransceivers().find((N)=>Y(N,Q));if(!A)A=this.addTransceiver(Q.kind,{direction:"recvonly"}),A.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(A);else if(A.direction==="inactive"&&A.stopping){if(A.stopped=!0,W.type==="answer")A.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=A.dtlsTransport;else A.setDtlsTransport(X);U=A.dtlsTransport,this.transceiverManager.setRemoteRTP(A,Q,G.type,J)}else if(Q.kind==="application"){let A=this.sctpTransport;if(!A)A=this.createSctpTransport(),A.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=A.dtlsTransport;else A.setDtlsTransport(X);U=A.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let q=U.iceTransport;if(Q.iceParams){let A=!!this.sdpManager.inactiveRemoteMedia;if(q.setRemoteParams(Q.iceParams,A),Q.iceParams?.iceLite)q.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(q.addRemoteCandidate),Q.iceCandidatesComplete)q.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return q});V=V.filter((Q)=>!!Q);let Z=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of Z)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")s5("caller start connect"),this.connect().catch((Q)=>{s5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(s5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Y8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let V=await this.sctpManager.getStats();if(V)G.push(...V)}return new Oi(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),s5("peerConnection closed")}},HS=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[k2(),_2()],video:[x2()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:fQ}}var ON0=Jx(),Sr=D1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),xr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,V=X.direction||"sendrecv",Z=new Pr(W),Q=new Zx(this.config,Y,Z.ssrc),J=new Ki(Y,G,Q,Z,V);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((A)=>A.currentDirection==="inactive"&&!A.usedForSender),q=this.transceivers.find((A)=>A.currentDirection==="inactive"&&!A.usedForSender);if(U>-1&&q)this.replaceTransceiver(J,U),J.mLineIndex=q.mLineIndex,J.mid=q.mid,q.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((V)=>V.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((V)=>V.sender.track==null&&V.kind===W.kind&&mA.includes(V.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((V)=>V.sender.track==null&&V.kind===W.kind&&mA.includes(V.direction)===!1&&!V.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(ji.includes(W.direction))return!0;return!1}case"sendonly":{if(mA.includes(W.direction))return!0;return!1}case"sendrecv":{if([h2,u2,g2].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,V)=>{if(V.name.toLowerCase()==="rtx"){let Z=UH(V.parameters??""),Q=Y[Z.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Yi({ssrc:W.ssrc[1].ssrc});return Y}return Y[V.payloadType]=new Vi({ssrc:W.ssrc[0]?.ssrc,payloadType:V.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],q=HS(U,J);if(!q)return!1;if(q?.name.toLowerCase()==="rtx"){let N=UH(q.parameters??"").apt,H=G.rtp.codecs.find((z)=>z.payloadType===N);if(!H)return!1;return!!HS(U,H)}return!0}),Sr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let V=G.direction??"inactive",Z=Ri(V);if(["answer","pranswer"].includes(X))W.setCurrentDirection(Z);else W.offerDirection=Z;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(V)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Di({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let V=await X.sender.getStats();if(V)for(let Z of V)if(Z.type==="outbound-rtp"||Z.type==="media-source"){if(Y)G.push(Z)}else G.push(Z)}if(X.receiver){let V=await X.receiver.getStats();if(V)for(let Z of V)if(Z.type==="inbound-rtp"||Z.type==="remote-outbound-rtp"){if(Y)G.push(Z)}else G.push(Z)}if(Y){let V=X.getCodecStats();if(V)G.push(...V)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class AK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},kr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},_r=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function yr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),V=BigInt(11),Z=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,A=q*q*W%G,N=Z5(A,X,G)*A%G,H=Z5(N,X,G)*A%G,z=Z5(H,HK,G)*q%G,w=Z5(z,V,G)*z%G,C=Z5(w,Z,G)*w%G,D=Z5(C,J,G)*C%G,x=Z5(D,U,G)*D%G,h=Z5(x,J,G)*C%G,p=Z5(h,X,G)*A%G,v=Z5(p,Q,G)*w%G,n=Z5(v,Y,G)*q%G,c=Z5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=M5(pY.p,{sqrt:yr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:kr},jY),qx={};function KH(W,...G){let X=qx[W];if(X===void 0){let Y=jY(qA(W));X=o9(Y,Y),qx[W]=X}return jY(o9(X,...G))}var IK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),zK=(W)=>W%HK===_r;function NK(W){let{Fn:G,BASE:X}=lY,Y=p6(G,W),V=X.multiply(Y);return{scalar:zK(V.y)?Y:G.neg(Y),bytes:IK(V)}}function Nx(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),V=G.sqrt(Y);if(!zK(V))V=G.neg(V);let Z=lY.fromAffine({x:W,y:V});return Z.assertValidity(),Z}var AJ=R4;function Ix(...W){return lY.Fn.create(AJ(KH("BIP0340/challenge",...W)))}function Ax(W){return NK(W).bytes}function vr(W,G,X=HG(32)){let{Fn:Y}=lY,V=P8("message",W),{bytes:Z,scalar:Q}=NK(G),J=P8("auxRand",X,32),U=Y.toBytes(Q^AJ(KH("BIP0340/aux",J))),q=KH("BIP0340/nonce",U,Z,V),{bytes:A,scalar:N}=NK(q),H=Ix(A,Z,V),z=new Uint8Array(64);if(z.set(A,0),z.set(Y.toBytes(Y.create(N+H*Q)),32),!zx(z,V,Z))throw Error("sign: Invalid signature produced");return z}function zx(W,G,X){let{Fn:Y,BASE:V}=lY,Z=P8("signature",W,64),Q=P8("message",G),J=P8("publicKey",X,32);try{let U=Nx(AJ(J)),q=AJ(Z.subarray(0,32));if(!PQ(q,Ux,pY.p))return!1;let A=AJ(Z.subarray(32,64));if(!PQ(A,Ux,pY.n))return!1;let N=Ix(Y.toBytes(q),IK(U),Q),H=V.multiplyUnsafe(A).add(U.multiplyUnsafe(Y.neg(N))),{x:z,y:w}=H.toAffine();if(H.is0()||!zK(w)||z!==q)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(V=HG(48))=>{return zA(V,pY.n)};Hx.utils.randomSecretKey;function Y(V){let Z=X(V);return{secretKey:Z,publicKey:Ax(Z)}}return{keygen:Y,getPublicKey:Ax,sign:vr,verify:zx,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Nx,pointToBytes:IK,numberToBytesBE:wY,bytesToNumberBE:R4,mod:V5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),gr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ur=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(gr(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},hr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,V=Bun.serve({port:W,fetch(Z,Q){if(Q.upgrade(Z))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(Z){G.set(Z,new Map)},close(Z){G.delete(Z)},async message(Z,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,q,A]=J;if(U==="REQ"&&typeof q==="string"&&A&&typeof A==="object"){G.get(Z)?.set(q,A),Z.send(JSON.stringify(["EOSE",q]));return}if(U==="CLOSE"&&typeof q==="string"){G.get(Z)?.delete(q);return}if(U==="EVENT"&&q&&typeof q==="object"){if(!await ur(q)){Y++,Z.send(JSON.stringify(["OK",q.id??"",!1,"invalid: bad signature"]));return}X++,Z.send(JSON.stringify(["OK",q.id,!0,""]));for(let[N,H]of G)for(let[z,w]of H)if(hr(w,q)){try{N.send(JSON.stringify(["EVENT",z,q]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${V.port} (ephemeral, schnorr-verified)`),{port:V.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>V.stop(!0)}}var CH="6.15.0";function br(W,G,X){let Y=G.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let V=Error(`invalid value for type ${G}`);throw V.code="INVALID_ARGUMENT",V.argument=`value.${X}`,V.value=W,V}async function c7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,V,Z)=>{return Y[G[Z]]=V,Y},{})}function Z8(W,G,X){for(let Y in G){let V=G[Y],Z=X?X[Y]:null;if(Z)br(V,Z,Y);Object.defineProperty(W,Y,{enumerable:!0,value:V,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let V=0;V<W.length;V++)Y+="0123456789abcdef"[W[V]>>4],Y+="0123456789abcdef"[W[V]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function HJ(W,G,X){let Y=W;{let Z=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];Z.push(Q+"="+dY(J))}}if(Z.push(`code=${G}`),Z.push(`version=${CH}`),Z.length)W+=" ("+Z.join(", ")+")"}let V;switch(G){case"INVALID_ARGUMENT":V=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":V=RangeError(W);break;default:V=Error(W)}if(Z8(V,{code:G}),X)Object.assign(V,X);if(V.shortMessage==null)Z8(V,{shortMessage:Y});return V}function t0(W,G,X,Y){if(!W)throw HJ(G,X,Y)}function t(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var mr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(mr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function p4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,V="new";if(X)Y+=".",V+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:V})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),V=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt(W.substring(V,V+2),16),V+=2;return Y}t(!1,"invalid BytesLike value",G||"value",W)}function P0(W,G){return Cx(W,G,!1)}function X7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function p7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=P0(W),X="0x";for(let Y=0;Y<G.length;Y++){let V=G[Y];X+=Kx[(V&240)>>4]+Kx[V&15]}return X}function a1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function l4(W){if(T9(W,!0))return(W.length-2)/2;return P0(W).length}function nY(W,G,X){let Y=P0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function fr(W,G,X){let Y=P0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let V=new Uint8Array(G);if(V.fill(0),X)V.set(Y,G-Y.length);else V.set(Y,0);return C0(V)}function q5(W,G){return fr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function TH(W,G){let X=g1(W,"value"),Y=BigInt(d8(G,"width")),V=SG<<Y-SG;if(X<wK){X=-X,t0(X<=V,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let Z=(SG<<Y)-SG;return(~X&Z)+SG}else t0(X<V,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function MH(W,G){let X=NJ(W,"value"),Y=BigInt(d8(G,"bits"));return X&(SG<<Y)-SG}function g1(W,G){switch(typeof W){case"bigint":return W;case"number":return t(Number.isInteger(W),"underflow",G||"value",W),t(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){t(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}t(!1,"invalid BigNumberish value",G||"value",W)}function NJ(W,G){let X=g1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return g1(W)}function d8(W,G){switch(typeof W){case"bigint":return t(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return t(Number.isInteger(W),"underflow",G||"value",W),t(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return d8(BigInt(W),G)}catch(X){t(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}t(!1,"invalid numeric value",G||"value",W)}function Y7(W,G){let Y=NJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let V=d8(G,"width");t0(V*2>=Y.length,`value exceeds width (${V} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<V*2)Y="0"+Y}return"0x"+Y}function Q8(W){let G=NJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let V=0;V<Y.length;V++){let Z=V*2;Y[V]=parseInt(X.substring(Z,Z+2),16)}return Y}function PH(W){let G=C0(p7(W)?W:Q8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function cr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return t(G!=null,"invalid base58 value","letter",W),G}var pr=BigInt(0),jK=BigInt(58);function BH(W){let G=P0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let V=0;V<G.length;V++){if(G[V])break;Y=LH[0]+Y}return Y}function EH(W){let G=pr;for(let X=0;X<W.length;X++)G*=jK,G+=cr(W[X]);return G}function lr(W,G,X,Y,V){t(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Tx(W,G,X,Y,V){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let Z=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;Z++}return Z}if(W==="OVERRUN")return X.length-G-1;return 0}function dr(W,G,X,Y,V){if(W==="OVERLONG")return t(typeof V==="number","invalid bad code point for replacement","badCodepoint",V),Y.push(V),0;return Y.push(65533),Tx(W,G,X,Y,V)}var Mx=Object.freeze({error:lr,ignore:Tx,replace:dr});function M9(W,G){if(t(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let V=W.charCodeAt(Y);if(V<128)X.push(V);else if(V<2048)X.push(V>>6|192),X.push(V&63|128);else if((V&64512)==55296){Y++;let Z=W.charCodeAt(Y);t(Y<W.length&&(Z&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((V&1023)<<10)+(Z&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(V>>12|224),X.push(V>>6&63|128),X.push(V&63|128)}return new Uint8Array(X)}function or(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let V=0;V<X;V++)Y=Y*256+W[G+V];return Y}function Rx(W,G,X,Y){let V=[];while(X<G+1+Y){let Z=Lx(W,X);V.push(Z.result),X+=Z.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:V}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let V=Px(W,G+1,Y);return X(G+1+Y+V),Rx(W,G,G+1+Y,Y+V)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let V=Px(W,G+1,Y);X(G+1+Y+V);let Z=C0(W.slice(G+1+Y,G+1+Y+V));return{consumed:1+Y+V,result:Z}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let V=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:V}}return{consumed:1,result:or(W[G])}}function t6(W){let G=P0(W,"data"),X=Lx(G,0);return t(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(Z){Y=Y.concat($x(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let V=Bx(Y.length);return V.unshift(247+V.length),V.concat(Y)}let G=Array.prototype.slice.call(P0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=P0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function e6(W,G,X){let Y=P0(G,"key"),V=P0(X,"data");return C0(yx(W,Y,V))}e6._=_x;e6.lock=function(){kx=!0};e6.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(e6);function P9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function IJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");P9(W.outputLen),P9(W.blockLen)}function d4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){IJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Ga(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let V=0;V<W.length;V++){let{h:Z,l:Q}=Ga(W[V],G);[X[V],Y[V]]=[Z,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as zJ from"crypto";var kH=zJ&&typeof zJ==="object"&&"webcrypto"in zJ?zJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),V7=(W,G)=>W<<32-G|W>>>G,Xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Xa)throw Error("Non little-endian hardware is not supported");var Ya=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let V=0;V<W;V++){X(V);let Z=Date.now()-Y;if(Z>=0&&Z<G)continue;await Ya(),Y+=Z}}function Va(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function l7(W){if(typeof W==="string")W=Va(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,V)=>Y+V.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Za={}.toString;function yH(W,G){if(G!==void 0&&Za.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(l7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Qa=BigInt(0),wJ=BigInt(1),Ja=BigInt(2),Ua=BigInt(7),qa=BigInt(256),Aa=BigInt(113);for(let W=0,G=wJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let V=Qa;for(let Z=0;Z<7;Z++)if(G=(G<<wJ^(G>>Ua)*Aa)%qa,G&Ja)V^=wJ<<(wJ<<BigInt(Z))-wJ;ix.push(V)}var[Ha,Na]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function Ia(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,q=X[U],A=X[U+1],N=lx(q,A,1)^X[J],H=dx(q,A,1)^X[J+1];for(let z=0;z<50;z+=10)W[Q+z]^=N,W[Q+z+1]^=H}let V=W[2],Z=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(V,Z,J),q=dx(V,Z,J),A=ox[Q];V=W[A],Z=W[A+1],W[A]=U,W[A+1]=q}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Ha[Y],W[1]^=Na[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,V=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=V,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,P9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){Ia(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){d4(this);let{blockLen:G,state:X}=this;W=l7(W);let Y=W.length;for(let V=0;V<Y;){let Z=Math.min(G-this.pos,Y-V);for(let Q=0;Q<Z;Q++)X[this.pos++]^=W[V++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){d4(this,!1),IJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,V=W.length;Y<V;){if(this.posOut>=X)this.keccak();let Z=Math.min(X-this.posOut,V-Y);W.set(G.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return P9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:V,enableXOF:Z}=this;return W||(W=new KK(G,X,Y,Z,V)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=V,W.suffix=X,W.outputLen=Y,W.enableXOF=Z,W.destroyed=this.destroyed,W}}var za=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=za(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function G8(W){let G=P0(W,"data");return C0(tx(G))}G8._=sx;G8.lock=function(){ax=!0};G8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(G8);function wa(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let V=BigInt(32),Z=BigInt(4294967295),Q=Number(X>>V&Z),J=Number(X&Z),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}class jJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){d4(this);let{view:G,buffer:X,blockLen:Y}=this;W=l7(W);let V=W.length;for(let Z=0;Z<V;){let Q=Math.min(Y-this.pos,V-Z);if(Q===Y){let J=sY(W);for(;Y<=V-Z;Z+=Y)this.process(J,Z);continue}if(X.set(W.subarray(Z,Z+Q),this.pos),this.pos+=Q,Z+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){d4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:V}=this,{pos:Z}=this;if(G[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(X,0),Z=0;for(let A=Z;A<Y;A++)G[A]=0;wa(X,Y-8,BigInt(this.length*8),V),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let A=0;A<U;A++)Q.setUint32(4*A,q[A],V)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:V,destroyed:Z,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=V,W.destroyed=Z,Y%G)W.buffer.set(X);return W}}var ja=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Oa=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Oa];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>ja[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ka=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Ca=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ta=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends jJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:V}=this;return[W,G,X,Y,V]}set(W,G,X,Y,V){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=V|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,V=this.h1|0,Z=V,Q=this.h2|0,J=Q,U=this.h3|0,q=U,A=this.h4|0,N=A;for(let H=0;H<5;H++){let z=4-H,w=Da[H],C=Ta[H],D=CK[H],x=DK[H],h=Ka[H],p=Ca[H];for(let v=0;v<16;v++){let n=vH(X+ex(H,V,Q,U)+gH[D[v]]+w,h[v])+A|0;X=A,A=U,U=vH(Q,10)|0,Q=V,V=n}for(let v=0;v<16;v++){let n=vH(Y+ex(z,Z,J,q)+gH[x[v]]+C,p[v])+N|0;Y=N,N=q,q=vH(J,10)|0,J=Z,Z=n}}this.set(this.h1+Q+q|0,this.h2+U+N|0,this.h3+A+Y|0,this.h4+X+Z|0,this.h0+V+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Vk=!1,Zk=function(W){return Yk(W)},Qk=Zk;function WW(W){let G=P0(W,"data");return C0(Qk(G))}WW._=Zk;WW.lock=function(){Vk=!0};WW.register=function(W){if(Vk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(WW);var Jk=!1,Uk=function(W,G,X,Y,V){return Sx(W,G,X,Y,V)},qk=Uk;function L5(W,G,X,Y,V){let Z=P0(W,"password"),Q=P0(G,"salt");return C0(qk(Z,Q,X,Y,V))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");qk=W};Object.freeze(L5);var Ak=!1,Hk=function(W){return new Uint8Array(xx(W))},Nk=Hk;function B5(W){return Nk(W)}B5._=Hk;B5.lock=function(){Ak=!0};B5.register=function(W){if(Ak)throw Error("randomBytes is locked");Nk=W};Object.freeze(B5);var Ma=(W,G,X)=>W&G^~W&X,Pa=(W,G,X)=>W&G^W&X^G&X,Ra=new Uint32Array([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]),GW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),XW=new Uint32Array(64);class Ik extends jJ{constructor(){super(64,32,8,!1);this.A=GW[0]|0,this.B=GW[1]|0,this.C=GW[2]|0,this.D=GW[3]|0,this.E=GW[4]|0,this.F=GW[5]|0,this.G=GW[6]|0,this.H=GW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:V,F:Z,G:Q,H:J}=this;return[W,G,X,Y,V,Z,Q,J]}set(W,G,X,Y,V,Z,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=V|0,this.F=Z|0,this.G=Q|0,this.H=J|0}process(W,G){for(let A=0;A<16;A++,G+=4)XW[A]=W.getUint32(G,!1);for(let A=16;A<64;A++){let N=XW[A-15],H=XW[A-2],z=V7(N,7)^V7(N,18)^N>>>3,w=V7(H,17)^V7(H,19)^H>>>10;XW[A]=w+XW[A-7]+z+XW[A-16]|0}let{A:X,B:Y,C:V,D:Z,E:Q,F:J,G:U,H:q}=this;for(let A=0;A<64;A++){let N=V7(Q,6)^V7(Q,11)^V7(Q,25),H=q+N+Ma(Q,J,U)+Ra[A]+XW[A]|0,w=(V7(X,2)^V7(X,13)^V7(X,22))+Pa(X,Y,V)|0;q=U,U=J,J=Q,Q=Z+H|0,Z=V,V=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,V=V+this.C|0,Z=Z+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,V,Z,Q,J,U,q)}roundClean(){XW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OJ=tY(()=>new Ik);class TK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=l7(G);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;let Y=this.blockLen,V=new Uint8Array(Y);V.set(X.length>Y?W.create().update(X).digest():X);for(let Z=0;Z<V.length;Z++)V[Z]^=54;this.iHash.update(V),this.oHash=W.create();for(let Z=0;Z<V.length;Z++)V[Z]^=106;this.oHash.update(V),V.fill(0)}update(W){return d4(this),this.iHash.update(W),this}digestInto(W){d4(this),IJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:V,blockLen:Z,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=V,W.blockLen=Z,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var KJ=(W,G,X)=>new TK(W,G).update(X).digest();KJ.create=(W,G)=>new TK(W,G);function La(W,G,X,Y){FH(W);let V=yH({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:Q,asyncTick:J}=V;if(P9(Z),P9(Q),P9(J),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=l7(G),q=l7(X),A=new Uint8Array(Q),N=KJ.create(W,U),H=N._cloneInto().update(q);return{c:Z,dkLen:Q,asyncTick:J,DK:A,PRF:N,PRFSalt:H}}function Ba(W,G,X,Y,V){if(W.destroy(),G.destroy(),Y)Y.destroy();return V.fill(0),X}function MK(W,G,X,Y){let{c:V,dkLen:Z,DK:Q,PRF:J,PRFSalt:U}=La(W,G,X,Y),q,A=new Uint8Array(4),N=sY(A),H=new Uint8Array(J.outputLen);for(let z=1,w=0;w<Z;z++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);N.setInt32(0,z,!1),(q=U._cloneInto(q)).update(A).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<V;D++){J._cloneInto(q).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ba(J,U,Q,q,H)}var d1=(W,G)=>W<<G|W>>>32-G;function zk(W,G,X,Y,V,Z){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],q=W[G++]^X[Y++],A=W[G++]^X[Y++],N=W[G++]^X[Y++],H=W[G++]^X[Y++],z=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],p=W[G++]^X[Y++],v=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,l=J,G0=U,b=q,Y0=A,J0=N,k=H,o=z,B=w,R=C,L=D,_=x,f=h,M=p,$=v,g=n;for(let u=0;u<8;u+=2)Y0^=d1(c+f|0,7),B^=d1(Y0+c|0,9),f^=d1(B+Y0|0,13),c^=d1(f+B|0,18),R^=d1(J0+l|0,7),M^=d1(R+J0|0,9),l^=d1(M+R|0,13),J0^=d1(l+M|0,18),$^=d1(L+k|0,7),G0^=d1($+L|0,9),k^=d1(G0+$|0,13),L^=d1(k+G0|0,18),b^=d1(g+_|0,7),o^=d1(b+g|0,9),_^=d1(o+b|0,13),g^=d1(_+o|0,18),l^=d1(c+b|0,7),G0^=d1(l+c|0,9),b^=d1(G0+l|0,13),c^=d1(b+G0|0,18),k^=d1(J0+Y0|0,7),o^=d1(k+J0|0,9),Y0^=d1(o+k|0,13),J0^=d1(Y0+o|0,18),_^=d1(L+R|0,7),B^=d1(_+L|0,9),R^=d1(B+_|0,13),L^=d1(R+B|0,18),f^=d1(g+$|0,7),M^=d1(f+g|0,9),$^=d1(M+f|0,13),g^=d1($+M|0,18);V[Z++]=Q+c|0,V[Z++]=J+l|0,V[Z++]=U+G0|0,V[Z++]=q+b|0,V[Z++]=A+Y0|0,V[Z++]=N+J0|0,V[Z++]=H+k|0,V[Z++]=z+o|0,V[Z++]=w+B|0,V[Z++]=C+R|0,V[Z++]=D+L|0,V[Z++]=x+_|0,V[Z++]=h+f|0,V[Z++]=p+M|0,V[Z++]=v+$|0,V[Z++]=n+g|0}function eY(W,G,X,Y,V){let Z=Y+0,Q=Y+16*V;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*V-1)*16+J];for(let J=0;J<V;J++,Z+=16,G+=16){if(zk(X,Q,W,G,X,Z),J>0)Q+=16;zk(X,Z,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:V,r:Z,p:Q,dkLen:J,asyncTick:U,maxmem:q,onProgress:A}=Y;if(P9(V),P9(Z),P9(Q),P9(J),P9(U),P9(q),A!==void 0&&typeof A!=="function")throw Error("progressCb should be function");let N=128*Z,H=N/4;if(V<=1||(V&V-1)!==0||V>=2**(N/8)||V>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/N)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let z=N*(V+Q);if(z>q)throw Error(`Scrypt: parameters too large, ${z} (128 * r * (N + p)) > ${q} (maxmem)`);let w=MK(OJ,W,G,{c:1,dkLen:N*Q}),C=aY(w),D=aY(new Uint8Array(N*V)),x=aY(new Uint8Array(N)),h=()=>{};if(A){let p=2*V*Q,v=Math.max(Math.floor(p/1e4),1),n=0;h=()=>{if(n++,A&&(!(n%v)||n===p))A(n/p)}}return{N:V,r:Z,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,V){let Z=MK(OJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),V.fill(0),Z}function Ok(W,G,X){let{N:Y,r:V,p:Z,dkLen:Q,blockSize32:J,V:U,B32:q,B:A,tmp:N,blockMixCb:H}=wk(W,G,X);for(let z=0;z<Z;z++){let w=J*z;for(let C=0;C<J;C++)U[C]=q[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,V),H();eY(U,(Y-1)*J,q,w,V),H();for(let C=0;C<Y;C++){let D=q[w+J-16]%Y;for(let x=0;x<J;x++)N[x]=q[w+x]^U[D*J+x];eY(N,0,q,w,V),H()}}return jk(W,Q,A,U,N)}async function Kk(W,G,X){let{N:Y,r:V,p:Z,dkLen:Q,blockSize32:J,V:U,B32:q,B:A,tmp:N,blockMixCb:H,asyncTick:z}=wk(W,G,X);for(let w=0;w<Z;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=q[C+x];let D=0;await _H(Y-1,z,()=>{eY(U,D,U,D+=J,V),H()}),eY(U,(Y-1)*J,q,C,V),H(),await _H(Y,z,()=>{let x=q[C+J-16]%Y;for(let h=0;h<J;h++)N[h]=q[C+h]^U[x*J+h];eY(N,0,q,C,V),H()})}return jk(W,Q,A,U,N)}var Ck=!1,Dk=!1,Tk=async function(W,G,X,Y,V,Z,Q){return await Kk(W,G,{N:X,r:Y,p:V,dkLen:Z,onProgress:Q})},Mk=function(W,G,X,Y,V,Z){return Ok(W,G,{N:X,r:Y,p:V,dkLen:Z})},Pk=Tk,Rk=Mk;async function YW(W,G,X,Y,V,Z,Q){let J=P0(W,"passwd"),U=P0(G,"salt");return C0(await Pk(J,U,X,Y,V,Z,Q))}YW._=Tk;YW.lock=function(){Dk=!0};YW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(YW);function VW(W,G,X,Y,V,Z){let Q=P0(W,"passwd"),J=P0(G,"salt");return C0(Rk(Q,J,X,Y,V,Z))}VW._=Mk;VW.lock=function(){Ck=!0};VW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(VW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function R9(W){let G=P0(W,"data");return C0(Ek(G))}R9._=Lk;R9.lock=function(){Fk=!0};R9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(R9);function uH(W){let G=P0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(R9);var BK={};qN(BK,{validateObject:()=>QW,utf8ToBytes:()=>xa,numberToVarBytesBE:()=>Fa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>ZW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>Sa,ensureBytes:()=>A5,createHmacDrbg:()=>LK,concatBytes:()=>WV,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>o4,bytesToHex:()=>kG,bitSet:()=>ya,bitMask:()=>CJ,bitLen:()=>ka,bitGet:()=>_a});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),Ea=BigInt(2),bH=(W)=>W instanceof Uint8Array,$a=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=$a[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let V=Y*2,Z=W.slice(V,V+2),Q=Number.parseInt(Z,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function o4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function ZW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return ZW(W,G).reverse()}function Fa(W){return _G(_k(W))}function A5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(Z){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${Z}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let V=Y.length;if(typeof X==="number"&&V!==X)throw Error(`${W} expected ${X} bytes, got ${V}`);return Y}function WV(...W){let G=new Uint8Array(W.reduce((Y,V)=>Y+V.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function Sa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function xa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ka(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function _a(W,G){return W>>BigInt(G)&hH}var ya=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},CJ=(W)=>(Ea<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),V=PK(W),Z=0,Q=()=>{Y.fill(1),V.fill(0),Z=0},J=(...N)=>X(V,Y,...N),U=(N=PK())=>{if(V=J(xk([0]),N),Y=J(),N.length===0)return;V=J(xk([1]),N),Y=J()},q=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let N=0,H=[];while(N<G){Y=J();let z=Y.slice();H.push(z),N+=Y.length}return WV(...H)};return(N,H)=>{Q(),U(N);let z=void 0;while(!(z=H(q())))U();return Q(),z}}var va={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function QW(W,G,X={}){let Y=(V,Z,Q)=>{let J=va[Z];if(typeof J!=="function")throw Error(`Invalid validator "${Z}", expected function`);let U=W[V];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(V)}=${U} (${typeof U}), expected ${Z}`)};for(let[V,Z]of Object.entries(G))Y(V,Z,!1);for(let[V,Z]of Object.entries(X))Y(V,Z,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var f8=BigInt(0),L8=BigInt(1),yG=BigInt(2),ga=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ua=BigInt(9),ha=BigInt(16);function L9(W,G){let X=W%G;return X>=f8?X:G+X}function ba(W,G,X){if(X<=f8||G<f8)throw Error("Expected power/modulo > 0");if(X===L8)return f8;let Y=L8;while(G>f8){if(G&L8)Y=Y*W%X;W=W*W%X,G>>=L8}return Y}function H5(W,G,X){let Y=W;while(G-- >f8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===f8||G<=f8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=L9(W,G),Y=G,V=f8,Z=L8,Q=L8,J=f8;while(X!==f8){let q=Y/X,A=Y%X,N=V-Q*q,H=Z-J*q;Y=X,X=A,V=Q,Z=J,Q=N,J=H}if(Y!==L8)throw Error("invert: does not exist");return L9(V,G)}function ma(W){let G=(W-L8)/yG,X,Y,V;for(X=W-L8,Y=0;X%yG===f8;X/=yG,Y++);for(V=yG;V<W&&ba(V,G,W)!==W-L8;V++);if(Y===1){let Q=(W+L8)/EK;return function(U,q){let A=U.pow(q,Q);if(!U.eql(U.sqr(A),q))throw Error("Cannot find square root");return A}}let Z=(X+L8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let q=Y,A=J.pow(J.mul(J.ONE,V),X),N=J.pow(U,Z),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let z=1;for(let C=J.sqr(H);z<q;z++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(A,L8<<BigInt(q-z-1));A=J.sqr(w),N=J.mul(N,w),H=J.mul(H,A),q=z}return N}}function fa(W){if(W%EK===ga){let G=(W+L8)/EK;return function(Y,V){let Z=Y.pow(V,G);if(!Y.eql(Y.sqr(Z),V))throw Error("Cannot find square root");return Z}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,V){let Z=Y.mul(V,yG),Q=Y.pow(Z,G),J=Y.mul(V,Q),U=Y.mul(Y.mul(J,yG),Q),q=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(q),V))throw Error("Cannot find square root");return q}}if(W%ha===ua);return ma(W)}var ca=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ca.reduce((Y,V)=>{return Y[V]="function",Y},G);return QW(W,X)}function pa(W,G,X){if(X<f8)throw Error("Expected power > 0");if(X===f8)return W.ONE;if(X===L8)return G;let Y=W.ONE,V=G;while(X>f8){if(X&L8)Y=W.mul(Y,V);V=W.sqr(V),X>>=L8}return Y}function la(W,G){let X=Array(G.length),Y=G.reduce((Z,Q,J)=>{if(W.is0(Q))return Z;return X[J]=Z,W.mul(Z,Q)},W.ONE),V=W.inv(Y);return G.reduceRight((Z,Q,J)=>{if(W.is0(Q))return Z;return X[J]=W.mul(Z,X[J]),W.mul(Z,Q)},V),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=f8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:V,nByteLength:Z}=FK(W,G);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=fa(W),J=Object.freeze({ORDER:W,BITS:V,BYTES:Z,MASK:CJ(V),ZERO:f8,ONE:L8,create:(U)=>L9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return f8<=U&&U<W},is0:(U)=>U===f8,isOdd:(U)=>(U&L8)===L8,neg:(U)=>L9(-U,W),eql:(U,q)=>U===q,sqr:(U)=>L9(U*U,W),add:(U,q)=>L9(U+q,W),sub:(U,q)=>L9(U-q,W),mul:(U,q)=>L9(U*q,W),pow:(U,q)=>pa(J,U,q),div:(U,q)=>L9(U*cH(q,W),W),sqrN:(U)=>U*U,addN:(U,q)=>U+q,subN:(U,q)=>U-q,mulN:(U,q)=>U*q,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>la(J,U),cmov:(U,q,A)=>A?q:U,toBytes:(U)=>X?fH(U,Z):ZW(U,Z),fromBytes:(U)=>{if(U.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${U.length}`);return X?mH(U):o4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,V=uk(G),Z=SK(G);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let Q=X?o4(W):mH(W),J=L9(Q,G-L8)+L8;return X?fH(J,V):ZW(J,V)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oa=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(V,Z)=>{let Q=Z.negate();return V?Q:Z},Y=(V)=>{let Z=Math.ceil(G/V)+1,Q=2**(V-1);return{windows:Z,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(V,Z){let Q=W.ZERO,J=V;while(Z>oa){if(Z&xK)Q=Q.add(J);J=J.double(),Z>>=xK}return Q},precomputeWindow(V,Z){let{windows:Q,windowSize:J}=Y(Z),U=[],q=V,A=q;for(let N=0;N<Q;N++){A=q,U.push(A);for(let H=1;H<J;H++)A=A.add(q),U.push(A);q=A.double()}return U},wNAF(V,Z,Q){let{windows:J,windowSize:U}=Y(V),q=W.ZERO,A=W.BASE,N=BigInt(2**V-1),H=2**V,z=BigInt(V);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&N);if(Q>>=z,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,p=w%2!==0,v=D<0;if(D===0)A=A.add(X(p,Z[x]));else q=q.add(X(v,Z[h]))}return{p:q,f:A}},wNAFCached(V,Z,Q,J){let U=V._WINDOW_SIZE||1,q=Z.get(V);if(!q){if(q=this.precomputeWindow(V,U),U!==1)Z.set(V,J(q))}return this.wNAF(U,q,Q)}}}function kK(W){return $K(W.Fp),QW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function na(W){let G=kK(W);QW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:V}=G;if(X){if(!Y.eql(V,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ia,hexToBytes:ra}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ia(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?ra(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:V,l:Z}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(Z);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:V,s:Q}},hexFromSig(W){let G=(q)=>Number.parseInt(q[0],16)&8?"00"+q:q,X=(q)=>{let A=q.toString(16);return A.length&1?`0${A}`:A},Y=G(X(W.s)),V=G(X(W.r)),Z=Y.length/2,Q=V.length/2,J=X(Z),U=X(Q);return`30${X(Q+Z+4)}02${U}${V}02${J}${Y}`}},n4=BigInt(0),E5=BigInt(1),ew0=BigInt(2),mk=BigInt(3),Wj0=BigInt(4);function aa(W){let G=na(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WV(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),V=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function Z(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),Z(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&n4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let p;try{p=typeof w==="bigint"?w:o4(A5("private key",w,D))}catch(v){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)p=L9(p,h);return J(p),p}let q=new Map;function A(w){if(!(w instanceof N))throw Error("ProjectivePoint expected")}class N{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof N)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return N.ZERO;return new N(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(N.fromAffine)}static fromHex(w){let C=N.fromAffine(V(A5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return N.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,q.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=Z(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){A(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:v}=w,n=X.eql(X.mul(C,v),X.mul(h,x)),c=X.eql(X.mul(D,v),X.mul(p,x));return n&&c}negate(){return new N(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:p}=this,v=X.ZERO,n=X.ZERO,c=X.ZERO,l=X.mul(x,x),G0=X.mul(h,h),b=X.mul(p,p),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,p),c=X.add(c,c),v=X.mul(w,c),n=X.mul(D,b),n=X.add(v,n),v=X.sub(G0,n),n=X.add(G0,n),n=X.mul(v,n),v=X.mul(Y0,v),c=X.mul(D,c),b=X.mul(w,b),Y0=X.sub(l,b),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(l,l),l=X.add(c,l),l=X.add(l,b),l=X.mul(l,Y0),n=X.add(n,l),b=X.mul(h,p),b=X.add(b,b),l=X.mul(b,Y0),v=X.sub(v,l),c=X.mul(b,G0),c=X.add(c,c),c=X.add(c,c),new N(v,n,c)}add(w){A(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:v}=w,n=X.ZERO,c=X.ZERO,l=X.ZERO,G0=G.a,b=X.mul(G.b,mk),Y0=X.mul(C,h),J0=X.mul(D,p),k=X.mul(x,v),o=X.add(C,D),B=X.add(h,p);o=X.mul(o,B),B=X.add(Y0,J0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,v);return B=X.mul(B,R),R=X.add(Y0,k),B=X.sub(B,R),R=X.add(D,x),n=X.add(p,v),R=X.mul(R,n),n=X.add(J0,k),R=X.sub(R,n),l=X.mul(G0,B),n=X.mul(b,k),l=X.add(n,l),n=X.sub(J0,l),l=X.add(J0,l),c=X.mul(n,l),J0=X.add(Y0,Y0),J0=X.add(J0,Y0),k=X.mul(G0,k),B=X.mul(b,B),J0=X.add(J0,k),k=X.sub(Y0,k),k=X.mul(G0,k),B=X.add(B,k),Y0=X.mul(J0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,J0),l=X.mul(R,l),l=X.add(l,Y0),new N(n,c,l)}subtract(w){return this.add(w.negate())}is0(){return this.equals(N.ZERO)}wNAF(w){return z.wNAFCached(this,q,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(N.fromAffine)})}multiplyUnsafe(w){let C=N.ZERO;if(w===n4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return z.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:p,k2:v}=D.splitScalar(w),n=C,c=C,l=this;while(h>n4||v>n4){if(h&E5)n=n.add(l);if(v&E5)c=c.add(l);l=l.double(),h>>=E5,v>>=E5}if(x)n=n.negate();if(p)c=c.negate();return c=new N(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:p,k1:v,k2neg:n,k2:c}=h.splitScalar(C),{p:l,f:G0}=this.wNAF(v),{p:b,f:Y0}=this.wNAF(c);l=z.constTimeNegate(p,l),b=z.constTimeNegate(n,b),b=new N(X.mul(b.px,h.beta),b.py,b.pz),D=l.add(b),x=G0.add(Y0)}else{let{p,f:v}=this.wNAF(C);D=p,x=v}return N.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=N.BASE,h=(v,n)=>n===n4||n===E5||!v.equals(x)?v.multiplyUnsafe(n):v.multiply(n),p=h(this,C).add(h(w,D));return p.is0()?void 0:p}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let p=X.mul(C,w),v=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:p,y:v}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(N,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(N,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(N,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}N.BASE=new N(G.Gx,G.Gy,X.ONE),N.ZERO=new N(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,z=bk(N,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:N,normPrivateKeyToScalar:U,weierstrassEquation:Z,isWithinCurveOrder:Q}}function sa(W){let G=kK(W);return QW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=sa(W),{Fp:X,n:Y}=G,V=X.BYTES+1,Z=2*X.BYTES+1;function Q(R){return n4<R&&R<X.ORDER}function J(R){return L9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:q,normPrivateKeyToScalar:A,weierstrassEquation:N,isWithinCurveOrder:H}=aa({...G,toBytes(R,L,_){let f=L.toAffine(),M=X.toBytes(f.x),$=WV;if(_)return $(Uint8Array.from([L.hasEvenY()?2:3]),M);else return $(Uint8Array.from([4]),M,X.toBytes(f.y))},fromBytes(R){let L=R.length,_=R[0],f=R.subarray(1);if(L===V&&(_===2||_===3)){let M=o4(f);if(!Q(M))throw Error("Point is not on curve");let $=N(M),g=X.sqrt($),u=(g&E5)===E5;if((_&1)===1!==u)g=X.neg(g);return{x:M,y:g}}else if(L===Z&&_===4){let M=X.fromBytes(f.subarray(0,X.BYTES)),$=X.fromBytes(f.subarray(X.BYTES,2*X.BYTES));return{x:M,y:$}}else throw Error(`Point of length ${L} was invalid. Expected ${V} compressed bytes or ${Z} uncompressed bytes`)}}),z=(R)=>kG(ZW(R,G.nByteLength));function w(R){let L=Y>>E5;return R>L}function C(R){return w(R)?J(-R):R}let D=(R,L,_)=>o4(R.slice(L,_));class x{constructor(R,L,_){this.r=R,this.s=L,this.recovery=_,this.assertValidity()}static fromCompact(R){let L=G.nByteLength;return R=A5("compactSignature",R,L*2),new x(D(R,0,L),D(R,L,2*L))}static fromDER(R){let{r:L,s:_}=vG.toSig(A5("DER",R));return new x(L,_)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:L,s:_,recovery:f}=this,M=l(A5("msgHash",R));if(f==null||![0,1,2,3].includes(f))throw Error("recovery id invalid");let $=f===2||f===3?L+G.n:L;if($>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let g=(f&1)===0?"02":"03",u=q.fromHex(g+z($)),m=U($),i=J(-M*m),Q0=J(_*m),I0=q.BASE.multiplyAndAddUnsafe(u,i,Q0);if(!I0)throw Error("point at infinify");return I0.assertValidity(),I0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return z(this.r)+z(this.s)}}let h={isValidPrivateKey(R){try{return A(R),!0}catch(L){return!1}},normPrivateKeyToScalar:A,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,L=q.BASE){return L._setWindowSize(R),L.multiply(BigInt(3)),L}};function p(R,L=!0){return q.fromPrivateKey(R).toRawBytes(L)}function v(R){let L=R instanceof Uint8Array,_=typeof R==="string",f=(L||_)&&R.length;if(L)return f===V||f===Z;if(_)return f===2*V||f===2*Z;if(R instanceof q)return!0;return!1}function n(R,L,_=!0){if(v(R))throw Error("first arg must be private key");if(!v(L))throw Error("second arg must be public key");return q.fromHex(L).multiply(A(R)).toRawBytes(_)}let c=G.bits2int||function(R){let L=o4(R),_=R.length*8-G.nBitLength;return _>0?L>>BigInt(_):L},l=G.bits2int_modN||function(R){return J(c(R))},G0=CJ(G.nBitLength);function b(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(n4<=R&&R<G0))throw Error(`bigint expected < 2^${G.nBitLength}`);return ZW(R,G.nByteLength)}function Y0(R,L,_=J0){if(["recovered","canonical"].some((L0)=>(L0 in _)))throw Error("sign() legacy options not supported");let{hash:f,randomBytes:M}=G,{lowS:$,prehash:g,extraEntropy:u}=_;if($==null)$=!0;if(R=A5("msgHash",R),g)R=A5("prehashed msgHash",f(R));let m=l(R),i=A(L),Q0=[b(i),b(m)];if(u!=null){let L0=u===!0?M(X.BYTES):u;Q0.push(A5("extraEntropy",L0))}let I0=WV(...Q0),E0=m;function x0(L0){let Q1=c(L0);if(!H(Q1))return;let k1=U(Q1),q0=q.BASE.multiply(Q1).toAffine(),B0=J(q0.x);if(B0===n4)return;let v0=J(k1*J(E0+B0*i));if(v0===n4)return;let T1=(q0.x===B0?0:2)|Number(q0.y&E5),J8=v0;if($&&w(v0))J8=C(v0),T1^=1;return new x(B0,J8,T1)}return{seed:I0,k2sig:x0}}let J0={lowS:G.lowS,prehash:!1},k={lowS:G.lowS,prehash:!1};function o(R,L,_=J0){let{seed:f,k2sig:M}=Y0(R,L,_),$=G;return LK($.hash.outputLen,$.nByteLength,$.hmac)(f,M)}q.BASE._setWindowSize(8);function B(R,L,_,f=k){let M=R;if(L=A5("msgHash",L),_=A5("publicKey",_),"strict"in f)throw Error("options.strict was renamed to lowS");let{lowS:$,prehash:g}=f,u=void 0,m;try{if(typeof M==="string"||M instanceof Uint8Array)try{u=x.fromDER(M)}catch(q0){if(!(q0 instanceof vG.Err))throw q0;u=x.fromCompact(M)}else if(typeof M==="object"&&typeof M.r==="bigint"&&typeof M.s==="bigint"){let{r:q0,s:B0}=M;u=new x(q0,B0)}else throw Error("PARSE");m=q.fromHex(_)}catch(q0){if(q0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if($&&u.hasHighS())return!1;if(g)L=G.hash(L);let{r:i,s:Q0}=u,I0=l(L),E0=U(Q0),x0=J(I0*E0),L0=J(i*E0),Q1=q.BASE.multiplyAndAddUnsafe(m,x0,L0)?.toAffine();if(!Q1)return!1;return J(Q1.x)===i}return{CURVE:G,getPublicKey:p,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:q,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ta(W){return{hash:W,hmac:(G,...X)=>KJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ta(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ea=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Ws(W){let G=dk,X=BigInt(3),Y=BigInt(6),V=BigInt(11),Z=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,A=q*q*W%G,N=H5(A,X,G)*A%G,H=H5(N,X,G)*A%G,z=H5(H,_K,G)*q%G,w=H5(z,V,G)*z%G,C=H5(w,Z,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,p=H5(h,X,G)*A%G,v=H5(p,Q,G)*w%G,n=H5(v,Y,G)*q%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Ws}),i4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-ea*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),V=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(Z*W,G),U=lk(-Y*W,G),q=L9(W-J*X-U*V,G),A=L9(-J*Y-U*Z,G),N=q>Q,H=A>Q;if(N)q=G-q;if(H)A=G-A;if(q>Q||A>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:N,k1:q,k2neg:H,k2:A}}}},OJ),qj0=BigInt(0);var Aj0=i4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
|
|
249
|
+
`;var ok=BigInt(0),nk=BigInt(1),ik=BigInt(2),rk=BigInt(27),ak=BigInt(28),lH=BigInt(35),GV={};function sk(W){return q5(Q8(W),32)}class z8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){t(l4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return t(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){t(l4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=d8(W,"value");t(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return z8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=P0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return a1([this.r,this.yParityAndS])}get serialized(){return a1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){p4(W,GV,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new z8(GV,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=g1(W,"v");if(G==rk||G==ak)return ok;return t(G>=lH,"invalid EIP-155 v","v",W),(G-lH)/ik}static getChainIdV(W,G){return g1(W)*ik+BigInt(35+G-27)}static getNormalizedV(W){let G=g1(W);if(G===ok||G===rk)return 27;if(G===nk||G===ak)return 28;return t(G>=lH,"invalid v","v",W),G&nk?27:28}static from(W){function G(U,q){t(U,q,"signature",W)}if(W==null)return new z8(GV,pH,pH,27);if(typeof W==="string"){let U=P0(W,"signature");if(U.length===64){let q=C0(U.slice(0,32)),A=U.slice(32,64),N=A[0]&128?28:27;return A[0]&=127,new z8(GV,q,C0(A),N)}if(U.length===65){let q=C0(U.slice(0,32)),A=C0(U.slice(32,64)),N=z8.getNormalizedV(U[64]);return new z8(GV,q,A,N)}G(!1,"invalid raw signature length")}if(W instanceof z8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=sk(X),V=function(U,q){if(U!=null)return sk(U);if(q!=null){G(T9(q,32),"invalid yParityAndS");let A=P0(q);return A[0]&=127,C0(A)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:Z,v:Q}=function(U,q,A){if(U!=null){let N=g1(U);return{networkV:N>=lH?N:void 0,v:z8.getNormalizedV(N)}}if(q!=null)return G(T9(q,32),"invalid yParityAndS"),{v:P0(q)[0]&128?28:27};if(A!=null){switch(d8(A,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),J=new z8(GV,Y,V,Q);if(Z)J.#Y=Z;return G(W.yParity==null||d8(W.yParity,"sig.yParity")===J.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===J.yParityAndS,"yParityAndS mismatch"),J}}class c8{#W;constructor(W){t(l4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return c8.computePublicKey(this.#W)}get compressedPublicKey(){return c8.computePublicKey(this.#W,!0)}sign(W){t(l4(W)===32,"invalid digest length","digest",W);let G=i4.sign(X7(W),X7(this.#W),{lowS:!0});return z8.from({r:Y7(G.r,32),s:Y7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=c8.computePublicKey(W);return C0(i4.getSharedSecret(X7(this.#W),P0(G),!1))}static computePublicKey(W,G){let X=P0(W,"key");if(X.length===32){let V=i4.getPublicKey(X,!!G);return C0(V)}if(X.length===64){let V=new Uint8Array(65);V[0]=4,V.set(X,1),X=V}let Y=i4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){t(l4(W)===32,"invalid digest length","digest",W);let X=z8.from(G),Y=i4.Signature.fromCompact(X7(a1([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let V=Y.recoverPublicKey(X7(W));return t(V!=null,"invalid signature for digest","signature",G),"0x"+V.toHex(!1)}static addPoints(W,G,X){let Y=i4.ProjectivePoint.fromHex(c8.computePublicKey(W).substring(2)),V=i4.ProjectivePoint.fromHex(c8.computePublicKey(G).substring(2));return"0x"+Y.add(V).toHex(!!X)}}var Gs=BigInt(0),Xs=BigInt(36);function tk(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let V=0;V<40;V++)X[V]=G[V].charCodeAt(0);let Y=P0(G8(X));for(let V=0;V<40;V+=2){if(Y[V>>1]>>4>=8)G[V]=G[V].toUpperCase();if((Y[V>>1]&15)>=8)G[V+1]=G[V+1].toUpperCase()}return"0x"+G.join("")}var uK={};for(let W=0;W<10;W++)uK[String(W)]=String(W);for(let W=0;W<26;W++)uK[String.fromCharCode(65+W)]=String(10+W);var ek=15;function Ys(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return uK[Y]}).join("");while(G.length>=ek){let Y=G.substring(0,ek);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Vs=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Zs(W){W=W.toLowerCase();let G=Gs;for(let X=0;X<W.length;X++)G=G*Xs+Vs[W[X]];return G}function m1(W){if(t(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=tk(W);return t(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){t(W.substring(2,4)===Ys(W),"bad icap checksum","address",W);let G=Zs(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return tk("0x"+G)}t(!1,"invalid address","address",W)}function bK(W){return W&&typeof W.getAddress==="function"}async function hK(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")t0(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),t(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return m1(X)}function r4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return m1(W);return t0(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),hK(W,G.resolveName(W))}else if(bK(W))return hK(W,W.getAddress());else if(W&&typeof W.then==="function")return hK(W,W);t(!1,"unsupported addressable value","target",W)}function mK(W,G){return{address:m1(W),storageKeys:G.map((X,Y)=>{return t(T9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function gG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return t(X.length===2,"invalid slot set",`value[${Y}]`,X),mK(X[0],X[1]);return t(X!=null&&typeof X==="object","invalid address-slot set","value",W),mK(X.address,X.storageKeys)});t(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((V,Z)=>{return V[Z]=!0,V},{});return mK(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function W_(W){return{address:m1(W.address),nonce:g1(W.nonce!=null?W.nonce:0),chainId:g1(W.chainId!=null?W.chainId:0),signature:z8.from(W.signature)}}function a4(W){let G;if(typeof W==="string")G=c8.computePublicKey(W,!1);else G=W.publicKey;return m1(G8("0x"+G.substring(4)).substring(26))}function DJ(W,G){return a4(c8.recoverPublicKey(W,G))}var o8=BigInt(0),Us=BigInt(2),qs=BigInt(27),As=BigInt(28),Hs=BigInt(35),Ns=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fK=131072;function Is(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return P0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return P0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return P0(W.blobToKZGCommitment(C0(Y)));t(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,V)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return P0(W.computeBlobProof(C0(Y),C0(V)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,V);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return P0(W.computeBlobKZGProof(C0(Y),C0(V)));t(!1,"unsupported KZG library","kzg",W)}}}function G_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=R9(G).substring(4),"0x"+X}function XV(W){if(W==="0x")return null;return m1(W)}function dH(W,G){try{return gG(W)}catch(X){t(!1,X.message,G,W)}}function zs(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let V=W[Y];if(!Array.isArray(V))throw Error(`authorization[${Y}]: invalid array`);if(V.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!V[1])throw Error(`authorization[${Y}]: null address`);X.push({address:XV(V[1]),nonce:X8(V[2],"nonce"),chainId:X8(V[0],"chainId"),signature:z8.from({yParity:uG(V[3],"yParity"),r:q5(V[4],32),s:q5(V[5],32)})})}return X}catch(X){t(!1,X.message,G,W)}}function uG(W,G){if(W==="0x")return 0;return d8(W,G)}function X8(W,G){if(W==="0x")return o8;let X=g1(W,G);return t(X<=Ns,"value exceeds uint size",G,X),X}function u1(W,G){let X=g1(W,"value"),Y=Q8(X);return t(Y.length<=32,"value too large",`tx.${G}`,X),Y}function oH(W){return gG(W).map((G)=>[G.address,G.storageKeys])}function ws(W){return W.map((G)=>{return[u1(G.chainId,"chainId"),G.address,u1(G.nonce,"nonce"),u1(G.signature.yParity,"yParity"),Q8(G.signature.r),Q8(G.signature.s)]})}function js(W,G){t(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)t(T9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function Os(W){let G=t6(W);t(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:uG(G[0],"nonce"),gasPrice:X8(G[1],"gasPrice"),gasLimit:X8(G[2],"gasLimit"),to:XV(G[3]),value:X8(G[4],"value"),data:C0(G[5]),chainId:o8};if(G.length===6)return X;let Y=X8(G[6],"v"),V=X8(G[7],"r"),Z=X8(G[8],"s");if(V===o8&&Z===o8)X.chainId=Y;else{let Q=(Y-Hs)/Us;if(Q<o8)Q=o8;X.chainId=Q,t(Q!==o8||(Y===qs||Y===As),"non-canonical legacy v","v",G[6]),X.signature=z8.from({r:q5(G[7],32),s:q5(G[8],32),v:Y})}return X}function Ks(W,G){let X=[u1(W.nonce,"nonce"),u1(W.gasPrice||0,"gasPrice"),u1(W.gasLimit,"gasLimit"),W.to||"0x",u1(W.value,"value"),W.data],Y=o8;if(W.chainId!=o8)Y=g1(W.chainId,"tx.chainId"),t(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let Z=W.signature.legacyChainId;if(Z!=null)Y=Z}if(!G){if(Y!==o8)X.push(Q8(Y)),X.push("0x"),X.push("0x");return R5(X)}let V=BigInt(27+G.yParity);if(Y!==o8)V=z8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==V)t(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(Q8(V)),X.push(Q8(G.r)),X.push(Q8(G.s)),R5(X)}function nH(W,G){let X;try{if(X=uG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(Q){t(!1,"invalid yParity","yParity",G[0])}let Y=q5(G[1],32),V=q5(G[2],32),Z=z8.from({r:Y,s:V,yParity:X});W.signature=Z}function Cs(W){let G=t6(P0(W).slice(1));t(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XV(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList")};if(G.length===9)return X;return nH(X,G.slice(9)),X}function Ds(W,G){let X=[u1(W.chainId,"chainId"),u1(W.nonce,"nonce"),u1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),u1(W.maxFeePerGas||0,"maxFeePerGas"),u1(W.gasLimit,"gasLimit"),W.to||"0x",u1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(u1(G.yParity,"yParity")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x02",R5(X)])}function Ts(W){let G=t6(P0(W).slice(1));t(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),gasPrice:X8(G[2],"gasPrice"),gasLimit:X8(G[3],"gasLimit"),to:XV(G[4]),value:X8(G[5],"value"),data:C0(G[6]),accessList:dH(G[7],"accessList")};if(G.length===8)return X;return nH(X,G.slice(8)),X}function Ms(W,G){let X=[u1(W.chainId,"chainId"),u1(W.nonce,"nonce"),u1(W.gasPrice||0,"gasPrice"),u1(W.gasLimit,"gasLimit"),W.to||"0x",u1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(u1(G.yParity,"recoveryParam")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x01",R5(X)])}function Ps(W){let G=t6(P0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let Z=G[1],Q=G[2],J=G[3];t(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),t(Array.isArray(Q),"invalid network format: commitments not an array","fields[2]",Q),t(Array.isArray(J),"invalid network format: proofs not an array","fields[3]",J),t(Z.length===Q.length,"invalid network format: blobs/commitments length mismatch","fields",G),t(Z.length===J.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let U=0;U<G[1].length;U++)Y.push({data:Z[U],commitment:Q[U],proof:J[U]});G=G[0]}t(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let V={type:3,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XV(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),maxFeePerBlobGas:X8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)V.blobs=Y;t(V.to!=null,`invalid address for transaction type: ${X}`,"data",W),t(Array.isArray(V.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let Z=0;Z<V.blobVersionedHashes.length;Z++)t(T9(V.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",W);if(G.length===11)return V;return nH(V,G.slice(11)),V}function Rs(W,G,X){let Y=[u1(W.chainId,"chainId"),u1(W.nonce,"nonce"),u1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),u1(W.maxFeePerGas||0,"maxFeePerGas"),u1(W.gasLimit,"gasLimit"),W.to||vK,u1(W.value,"value"),W.data,oH(W.accessList||[]),u1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),js(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(u1(G.yParity,"yParity")),Y.push(Q8(G.r)),Y.push(Q8(G.s)),X)return a1(["0x03",R5([Y,X.map((V)=>V.data),X.map((V)=>V.commitment),X.map((V)=>V.proof)])])}return a1(["0x03",R5(Y)])}function Ls(W){let G=t6(P0(W).slice(1));t(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XV(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),authorizationList:zs(G[9],"authorizationList")};if(G.length===10)return X;return nH(X,G.slice(10)),X}function Bs(W,G){let X=[u1(W.chainId,"chainId"),u1(W.nonce,"nonce"),u1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),u1(W.maxFeePerGas||0,"maxFeePerGas"),u1(W.gasLimit,"gasLimit"),W.to||"0x",u1(W.value,"value"),W.data,oH(W.accessList||[]),ws(W.authorizationList||[])];if(G)X.push(u1(G.yParity,"yParity")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x04",R5(X)])}class a9{#W;#G;#X;#Y;#U;#q;#A;#H;#N;#I;#z;#w;#J;#Z;#V;#Q;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:t(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return vK;return W}set to(W){this.#G=W==null?null:m1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=d8(W,"value")}get gasLimit(){return this.#U}set gasLimit(W){this.#U=g1(W)}get gasPrice(){let W=this.#q;if(W==null&&(this.type===0||this.type===1))return o8;return W}set gasPrice(W){this.#q=W==null?null:g1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#A;if(W==null){if(this.type===2||this.type===3)return o8;return null}return W}set maxPriorityFeePerGas(W){this.#A=W==null?null:g1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return o8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:g1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#N}set value(W){this.#N=g1(W,"value")}get chainId(){return this.#I}set chainId(W){this.#I=g1(W)}get signature(){return this.#z||null}set signature(W){this.#z=W==null?null:z8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:gG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>W_(G))}get maxFeePerBlobGas(){let W=this.#J;if(W==null&&this.type===3)return o8;return W}set maxFeePerBlobGas(W){this.#J=W==null?null:g1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#Z;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){t(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)t(T9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#Z=W}get blobs(){if(this.#Q==null)return null;return this.#Q.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#Q=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let V=W[Y];if(p7(V)){t0(this.#V,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=P0(V);if(t(Z.length<=fK,"blob is too large",`blobs[${Y}]`,V),Z.length!==fK){let U=new Uint8Array(fK);U.set(Z),Z=U}let Q=this.#V.blobToKzgCommitment(Z),J=C0(this.#V.computeBlobKzgProof(Z,Q));G.push({data:C0(Z),commitment:C0(Q),proof:J}),X.push(G_(1,Q))}else{let Z=C0(V.commitment);G.push({data:C0(V.data),commitment:Z,proof:C0(V.proof)}),X.push(G_(1,Z))}}this.#Q=G,this.#Z=X}get kzg(){return this.#V}set kzg(W){if(W==null)this.#V=null;else this.#V=Is(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#U=o8,this.#q=null,this.#A=null,this.#H=null,this.#X="0x",this.#N=o8,this.#I=o8,this.#z=null,this.#w=null,this.#J=null,this.#Z=null,this.#V=null,this.#Q=null,this.#j=null}get hash(){if(this.signature==null)return null;return G8(this.#O(!0,!1))}get unsignedHash(){return G8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return DJ(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return c8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#O(W,G){t0(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Ks(this,X);case 1:return Ms(this,X);case 2:return Ds(this,X);case 3:return Rs(this,X,G?this.blobs:null);case 4:return Bs(this,X)}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#O(!0,!0)}get unsignedSerialized(){return this.#O(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#J!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)t0(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});t0(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),t0(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let V=[];if(this.type!=null)V.push(this.type);else if(this.authorizationList&&this.authorizationList.length)V.push(4);else if(G)V.push(2);else if(W){if(V.push(1),!X)V.push(0)}else if(X)V.push(1),V.push(2);else if(Y&&this.to)V.push(3);else V.push(0),V.push(1),V.push(2),V.push(3);return V.sort(),V}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return a9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new a9;if(typeof W==="string"){let X=P0(W);if(X[0]>=127)return a9.from(Os(X));switch(X[0]){case 1:return a9.from(Ts(X));case 2:return a9.from(Cs(X));case 3:return a9.from(Ps(X));case 4:return a9.from(Ls(X))}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new a9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=z8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)t(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),t(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)t(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),t(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function iH(W){return t(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),G8(a1(["0x05",R5([W.chainId!=null?Q8(W.chainId):"0x",m1(W.address),W.nonce!=null?Q8(W.nonce):"0x"])]))}function s4(W){return G8(M9(W))}function TJ(W){if(typeof W==="string")W=M9(W);return G8(a1([M9(gK),M9(String(W.length)),W]))}function rH(W,G){let X=TJ(W);return DJ(X,G)}var Z_=new Uint8Array(32);Z_.fill(0);var Es=BigInt(-1),Q_=BigInt(0),J_=BigInt(1),$s=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Fs(W){let G=P0(W),X=G.length%32;if(X)return a1([G,Z_.slice(X)]);return C0(G)}var Ss=Y7(J_,32),xs=Y7(Q_,32),X_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cK=["name","version","chainId","verifyingContract","salt"];function Y_(W){return function(G){return t(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var ks={name:Y_("name"),version:Y_("version"),chainId:function(W){let G=g1(W,"domain.chainId");if(t(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return PH(G)},verifyingContract:function(W){try{return m1(W).toLowerCase()}catch(G){}t(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=P0(W,"domain.salt");return t(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function pK(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);t(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let V=MH($s,X?Y-1:Y),Z=X?(V+J_)*Es:Q_;return function(Q){let J=g1(Q,"value");return t(J>=Z&&J<=V,`value out-of-bounds for ${W}`,"value",J),Y7(X?TH(J,256):J,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return t(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let V=P0(Y);return t(V.length===X,`invalid length for ${W}`,"value",Y),Fs(Y)}}}switch(W){case"address":return function(G){return q5(m1(G),32)};case"bool":return function(G){return!G?xs:Ss};case"bytes":return function(G){return G8(G)};case"string":return function(G){return s4(G)}}return null}function V_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function aH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class B9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,V={};Object.keys(W).forEach((J)=>{V[J]=W[J].map(({name:U,type:q})=>{let{base:A,index:N}=aH(q);if(A==="int"&&!W.int)A="int256";if(A==="uint"&&!W.uint)A="uint256";return{name:U,type:A+(N||"")}}),G.set(J,new Set),X.set(J,[]),Y.set(J,new Set)}),this.#W=JSON.stringify(V);for(let J in V){let U=new Set;for(let q of V[J]){t(!U.has(q.name),`duplicate variable name ${JSON.stringify(q.name)} in ${JSON.stringify(J)}`,"types",W),U.add(q.name);let A=aH(q.type).base;if(t(A!==J,`circular type reference to ${JSON.stringify(A)}`,"types",W),pK(A))continue;t(X.has(A),`unknown type ${JSON.stringify(A)}`,"types",W),X.get(A).push(J),G.get(J).add(A)}}let Z=Array.from(X.keys()).filter((J)=>X.get(J).length===0);t(Z.length!==0,"missing primary type","types",W),t(Z.length===1,`ambiguous primary types or unused types: ${Z.map((J)=>JSON.stringify(J)).join(", ")}`,"types",W),Z8(this,{primaryType:Z[0]});function Q(J,U){t(!U.has(J),`circular type reference to ${JSON.stringify(J)}`,"types",W),U.add(J);for(let q of G.get(J)){if(!X.has(q))continue;Q(q,U);for(let A of U)Y.get(A).add(q)}U.delete(J)}Q(this.primaryType,new Set);for(let[J,U]of Y){let q=Array.from(U);q.sort(),this.#G.set(J,V_(J,V[J])+q.map((A)=>V_(A,V[A])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=pK(W);if(Y)return Y}let G=aH(W).array;if(G){let Y=G.prefix,V=this.getEncoder(Y);return(Z)=>{t(G.count===-1||G.count===Z.length,`array length mismatch; expected length ${G.count}`,"value",Z);let Q=Z.map(V);if(this.#G.has(Y))Q=Q.map(G8);return G8(a1(Q))}}let X=this.types[W];if(X){let Y=s4(this.#G.get(W));return(V)=>{let Z=X.map(({name:Q,type:J})=>{let U=this.getEncoder(J)(V[Q]);if(this.#G.has(J))return G8(U);return U});return Z.unshift(Y),a1(Z)}}t(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return t(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return G8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(pK(W))return X(W,G);let Y=aH(W).array;if(Y)return t(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((Z)=>this._visit(Y.prefix,Z,X));let V=this.types[W];if(V)return V.reduce((Z,{name:Q,type:J})=>{return Z[Q]=this._visit(J,G[Q],X),Z},{});t(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new B9(W)}static getPrimaryType(W){return B9.from(W).primaryType}static hashStruct(W,G,X){return B9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=X_[X];t(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cK.indexOf(X.name)-cK.indexOf(Y.name)}),B9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return a1(["0x1901",B9.hashDomain(W),B9.from(G).hash(X)])}static hash(W,G,X){return G8(B9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let Q in W)if(W[Q]==null)delete W[Q];let V={};if(W.verifyingContract&&!T9(W.verifyingContract,20))V[W.verifyingContract]="0x";let Z=B9.from(G);Z.visit(X,(Q,J)=>{if(Q==="address"&&!T9(J,20))V[J]="0x";return J});for(let Q in V)V[Q]=await Y(Q);if(W.verifyingContract&&V[W.verifyingContract])W.verifyingContract=V[W.verifyingContract];return X=Z.visit(X,(Q,J)=>{if(Q==="address"&&V[J])return V[J];return J}),{domain:W,value:X}}static getPayload(W,G,X){B9.hashDomain(W);let Y={},V=[];cK.forEach((J)=>{let U=W[J];if(U==null)return;Y[J]=ks[J](U),V.push({name:J,type:X_[J]})});let Z=B9.from(G);G=Z.types;let Q=Object.assign({},G);return t(Q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),Q.EIP712Domain=V,Z.encode(X),{types:Q,domain:Y,primaryType:Z.primaryType,message:Z.visit(X,(J,U)=>{if(J.match(/^bytes(\d*)/))return C0(P0(U));if(J.match(/^u?int/))return g1(U).toString();switch(J){case"address":return U.toLowerCase();case"bool":return!!U;case"string":return t(typeof U==="string","invalid string","value",U),U}t(!1,"unsupported type","type",J)})}}}var U_=BigInt(0);function lK(W){if(W==null)return null;return W}function n8(W){if(W==null)return null;return W.toString()}function MJ(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let V of X){if(!(V in W)||W[V]==null)continue;G[V]=g1(W[V],`request.${V}`)}let Y="type,nonce".split(/,/);for(let V of Y){if(!(V in W)||W[V]==null)continue;G[V]=d8(W[V],`request.${V}`)}if(W.accessList)G.accessList=gG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((V)=>{if(p7(V))return C0(V);return Object.assign({},V)});return G}class q_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new sH(X,G);return X}),Z8(this,{provider:G,hash:lK(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:lK(W.prevRandao),extraData:W.extraData,baseFeePerGas:lK(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return t0(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:V,hash:Z,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:A,parentBeaconBlockRoot:N,stateRoot:H,receiptsRoot:z,timestamp:w,transactions:C}=this;return{_type:"Block",baseFeePerGas:n8(W),difficulty:n8(G),extraData:X,gasLimit:n8(Y),gasUsed:n8(V),blobGasUsed:n8(this.blobGasUsed),excessBlobGas:n8(this.excessBlobGas),hash:Z,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:A,timestamp:w,parentBeaconBlockRoot:N,stateRoot:H,receiptsRoot:z,transactions:C}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;t(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return vs(this)}}class dK{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());Z8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:V,removed:Z,topics:Q,transactionHash:J,transactionIndex:U}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:V,removed:Z,topics:Q,transactionHash:J,transactionIndex:U}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return t0(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return gs(this)}}class A_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new dK(Y,G)}));let X=U_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;Z8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:V,blockHash:Z,blockNumber:Q,logsBloom:J,logs:U,status:q,root:A}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:Q,contractAddress:X,cumulativeGasUsed:n8(this.cumulativeGasUsed),from:G,gasPrice:n8(this.gasPrice),blobGasUsed:n8(this.blobGasUsed),blobGasPrice:n8(this.blobGasPrice),gasUsed:n8(this.gasUsed),hash:Y,index:V,logs:U,logsBloom:J,root:A,status:q,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return N_(this)}reorderedEvent(W){return t0(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),H_(this,W)}}class sH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:V,to:Z,from:Q,nonce:J,data:U,signature:q,accessList:A,blobVersionedHashes:N}=this;return{_type:"TransactionResponse",accessList:A,blockNumber:W,blockHash:G,blobVersionedHashes:N,chainId:n8(this.chainId),data:U,from:Q,gasLimit:n8(this.gasLimit),gasPrice:n8(this.gasPrice),hash:Y,maxFeePerGas:n8(this.maxFeePerGas),maxPriorityFeePerGas:n8(this.maxPriorityFeePerGas),maxFeePerBlobGas:n8(this.maxFeePerBlobGas),nonce:J,signature:q,to:Z,index:X,type:V,value:n8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await c7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,V=this.#W,Z=-1,Q=V===-1?!0:!1,J=async()=>{if(Q)return null;let{blockNumber:N,nonce:H}=await c7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){V=N;return}if(Q)return null;let z=await this.getTransaction();if(z&&z.blockNumber!=null)return;if(Z===-1){if(Z=V-3,Z<this.#W)Z=this.#W}while(Z<=N){if(Q)return null;let w=await this.provider.getBlock(Z,!0);if(w==null)return;for(let C of w)if(C===this.hash)return;for(let C=0;C<w.length;C++){let D=await w.getTransaction(C);if(D.from===this.from&&D.nonce===this.nonce){if(Q)return null;let x=await this.provider.getTransactionReceipt(D.hash);if(x==null)return;if(N-x.blockNumber+1<X)return;let h="replaced";if(D.data===this.data&&D.to===this.to&&D.value===this.value)h="repriced";else if(D.data==="0x"&&D.from===D.to&&D.value===U_)h="cancelled";t0(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:h==="replaced"||h==="cancelled",reason:h,replacement:D.replaceableTransaction(V),hash:D.hash,receipt:x})}}Z++}return},U=(N)=>{if(N==null||N.status!==0)return N;t0(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:N.to,from:N.from,data:""},receipt:N})},q=await this.provider.getTransactionReceipt(this.hash);if(X===0)return U(q);if(q){if(X===1||await q.confirmations()>=X)return U(q)}else if(await J(),X===0)return null;return await new Promise((N,H)=>{let z=[],w=()=>{z.forEach((D)=>D())};if(z.push(()=>{Q=!0}),Y>0){let D=setTimeout(()=>{w(),H(HJ("wait for transaction timeout","TIMEOUT"))},Y);z.push(()=>{clearTimeout(D)})}let C=async(D)=>{if(await D.confirmations()>=X){w();try{N(U(D))}catch(x){H(x)}}};if(z.push(()=>{this.provider.off(this.hash,C)}),this.provider.on(this.hash,C),V>=0){let D=async()=>{try{await J()}catch(x){if(DH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!Q)this.provider.once("block",D)};z.push(()=>{this.provider.off("block",D)}),this.provider.once("block",D)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),N_(this)}reorderedEvent(W){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),t0(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),H_(this,W)}replaceableTransaction(W){t(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new sH(this,this.provider);return G.#W=W,G}}function vs(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function H_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function N_(W){return{orphan:"drop-transaction",tx:W}}function gs(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function hG(W,G){if(W.provider)return W.provider;t0(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function I_(W,G){let X=MJ(G);if(X.to!=null)X.to=r4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),r4(Y,W)]).then(([V,Z])=>{return t(V.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),V})}else X.from=W.getAddress();return await c7(X)}class PJ{provider;constructor(W){Z8(this,{provider:W||null})}async getNonce(W){return hG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await I_(this,W)}async populateTransaction(W){let G=hG(this,"populateTransaction"),X=await I_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let Z=g1(X.chainId);t(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let V=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||V))t(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&V)t(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let Z=await G.getFeeData();if(t0(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=Z.gasPrice}else{let Z=await G.getFeeData();if(X.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let Q=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=Q,X.maxPriorityFeePerGas=Q}else{if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(t0(!V,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=Z.gasPrice;X.type=0}else t0(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=Z.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await c7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await hG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return hG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return hG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await hG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=hG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=a9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){t0(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class RJ extends PJ{address;constructor(W,G){super(G);Z8(this,{address:W})}async getAddress(){return this.address}connect(W){return new RJ(this.address,W)}#W(W,G){t0(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class bG extends PJ{address;#W;constructor(W,G){super(G);t(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=a4(this.signingKey.publicKey);Z8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new bG(this.#W,W)}async signTransaction(W){W=MJ(W);let{to:G,from:X}=await c7({to:W.to?r4(W.to,this):void 0,from:W.from?r4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)t(m1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=a9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(TJ(W)).serialized}authorizeSync(W){t(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(iH(W));return Object.assign({},{address:m1(W.address),nonce:g1(W.nonce||0),chainId:g1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await r4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await B9.resolveNames(W,G,X,async(V)=>{t0(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:V}});let Z=await this.provider.resolveName(V);return t0(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:V}),Z});return this.signingKey.sign(B9.hash(Y.domain,G,Y.value)).serialized}}var tH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",us=/^[a-z]*$/i;function z_(W,G){let X=97;return W.reduce((Y,V)=>{if(V===G)X++;else if(V.match(us))Y.push(String.fromCharCode(X)+V);else X=97,Y.push(V);return Y},[])}function hs(W,G){for(let V=tH.length-1;V>=0;V--)W=W.split(tH[V]).join(G.substring(2*V,2*V+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(V,Z,Q,J)=>{if(Q)for(let U=parseInt(Q);U>=0;U--)X.push(";");else X.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return z_(z_(X,";"),":")}function w_(W){return t(W[0]==="0","unsupported auwl data","data",W),hs(W.substring(1+2*tH.length),W.substring(1,1+2*tH.length))}class oK{locale;constructor(W){Z8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class nK extends oK{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return w_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(s4(W.join(`
|
|
250
|
+
`)+`
|
|
251
|
+
`)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return t(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var bs="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",ms="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class t4 extends nK{constructor(){super("en",bs,ms)}static wordlist(){if(iK==null)iK=new t4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function fs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=t4.wordlist();let X=G.split(W);t(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),V=0;for(let q=0;q<X.length;q++){let A=G.getWordIndex(X[q].normalize("NFKD"));t(A>=0,`invalid mnemonic word at index ${q}`,"mnemonic","[ REDACTED ]");for(let N=0;N<11;N++){if(A&1<<10-N)Y[V>>3]|=1<<7-V%8;V++}}let Z=32*X.length/3,Q=X.length/3,J=j_(Q),U=P0(R9(Y.slice(0,Z/8)))[0]&J;return t(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,Z/8))}function aK(W,G){if(t(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=t4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&fs(8-Y)),Y+=3;let V=W.length/4,Z=parseInt(R9(W).substring(2,4),16)&j_(V);return X[X.length-1]<<=V,X[X.length-1]|=Z>>8-V,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class e4{phrase;password;wordlist;entropy;constructor(W,G,X,Y,V){if(Y==null)Y="";if(V==null)V=t4.wordlist();p4(W,sK,"Mnemonic"),Z8(this,{phrase:X,password:Y,wordlist:V,entropy:G})}computeSeed(){let W=M9("mnemonic"+this.password,"NFKD");return L5(M9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(P0(Y),X),new e4(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=P0(W,"entropy"),V=aK(Y,X);return new e4(sK,C0(Y),V,G,X)}static entropyToPhrase(W,G){let X=P0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Y9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,V){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!V)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!V:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?V.call(W,X):V?V.value=X:G.set(W,X),X},WN,F5,d7,cs={16:10,24:12,32:14},ps=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ls=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],ds=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],os=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ns=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],is=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],rs=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],as=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ss=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ts=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],es=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Wt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Gt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GN{get key(){return Y9(this,WN,"f").slice()}constructor(W){if(WN.set(this,void 0),F5.set(this,void 0),d7.set(this,void 0),!(this instanceof GN))throw Error("AES must be instanitated with `new`");tK(this,WN,new Uint8Array(W),"f");let G=cs[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,d7,[],"f"),tK(this,F5,[],"f");for(let q=0;q<=G;q++)Y9(this,d7,"f").push([0,0,0,0]),Y9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,V=eK(this.key),Z;for(let q=0;q<Y;q++)Z=q>>2,Y9(this,d7,"f")[Z][q%4]=V[q],Y9(this,F5,"f")[G-Z][q%4]=V[q];let Q=0,J=Y,U;while(J<X){if(U=V[Y-1],V[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ps[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)V[H]^=V[H-1];else{for(let H=1;H<Y/2;H++)V[H]^=V[H-1];U=V[Y/2-1],V[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)V[H]^=V[H-1]}let q=0,A,N;while(q<Y&&J<X)A=J>>2,N=J%4,Y9(this,d7,"f")[A][N]=V[q],Y9(this,F5,"f")[G-A][N]=V[q++],J++}for(let q=1;q<G;q++)for(let A=0;A<4;A++)U=Y9(this,F5,"f")[q][A],Y9(this,F5,"f")[q][A]=ts[U>>24&255]^es[U>>16&255]^Wt[U>>8&255]^Gt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Y9(this,d7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=Y9(this,d7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ls[Y[J]>>24&255]^ds[Y[(J+1)%4]>>16&255]^os[Y[(J+2)%4]>>8&255]^ns[Y[(J+3)%4]&255]^Y9(this,d7,"f")[Q][J];Y=X.slice()}let V=new Uint8Array(16),Z=0;for(let Q=0;Q<4;Q++)Z=Y9(this,d7,"f")[G][Q],V[4*Q]=($5[Y[Q]>>24&255]^Z>>24)&255,V[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^Z>>16)&255,V[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^Z>>8)&255,V[4*Q+3]=($5[Y[(Q+3)%4]&255]^Z)&255;return V}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=Y9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=Y9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=is[Y[J]>>24&255]^rs[Y[(J+3)%4]>>16&255]^as[Y[(J+2)%4]>>8&255]^ss[Y[(J+1)%4]&255]^Y9(this,F5,"f")[Q][J];Y=X.slice()}let V=new Uint8Array(16),Z=0;for(let Q=0;Q<4;Q++)Z=Y9(this,F5,"f")[G][Q],V[4*Q]=(eH[Y[Q]>>24&255]^Z>>24)&255,V[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^Z>>16)&255,V[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^Z>>8)&255,V[4*Q+3]=(eH[Y[(Q+1)%4]&255]^Z)&255;return V}}WN=new WeakMap,F5=new WeakMap,d7=new WeakMap;class LJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GN(G)},name:{enumerable:!0,value:W}})}}var XN=function(W,G,X,Y,V){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!V)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!V:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?V.call(W,X):V?V.value=X:G.set(W,X),X},YV=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},BJ,W6;class EJ extends LJ{constructor(W,G){super("ECC",W,EJ);if(BJ.set(this,void 0),W6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XN(this,BJ,new Uint8Array(G),"f")}else XN(this,BJ,new Uint8Array(16),"f");XN(this,W6,this.iv,"f")}get iv(){return new Uint8Array(YV(this,BJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YV(this,W6,"f")[Y]^=W[X+Y];XN(this,W6,this.aes.encrypt(YV(this,W6,"f")),"f"),G.set(YV(this,W6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let V=0;V<16;V++)G[X+V]=Y[V]^YV(this,W6,"f")[V],YV(this,W6,"f")[V]=W[X+V]}return G}}BJ=new WeakMap,W6=new WeakMap;var VV=function(W,G,X,Y,V){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!V)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!V:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?V.call(W,X):V?V.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$J,mG,x5;class JW extends LJ{constructor(W,G){super("CTR",W,JW);if($J.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),VV(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),VV(this,$J,S5(this,x5,"f"),"f"),VV(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let V=0;V<Y.length;V++){if(S5(this,mG,"f")===16)VV(this,$J,this.aes.encrypt(S5(this,x5,"f")),"f"),VV(this,mG,0,"f"),this.increment();Y[V]^=S5(this,$J,"f")[VV(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}$J=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return X7(W)}function ZV(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return M9(W,"NFKC");return X7(W)}function w8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);t(X!=null,"invalid path","path",G);let Y=X[1],V=X[3],Z=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let q in Q)if(q.toLowerCase()===J){U=Q[q];break}Q=U}else Q=null;if(Q==null)break}if(t(!Z||Q!=null,"missing required value","path",Y),V&&Q!=null){if(V==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(V==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(V==="data"){if(typeof Q==="string")return GC(Q)}if(V==="array"&&Array.isArray(Q))return Q;if(V===typeof Q)return Q;t(!1,`wrong type found for ${V} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function VN(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Xt(W,G,X){if(w8(W,"crypto.cipher:string")==="aes-128-ctr"){let V=w8(W,"crypto.cipherparams.iv:data!"),Z=new JW(G,V);return C0(Z.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YN(W,G){let X=P0(G),Y=w8(W,"crypto.ciphertext:data!"),V=C0(G8(a1([X.slice(16,32),Y]))).substring(2);t(V===w8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=Xt(W,X.slice(0,16),Y),Q=a4(Z);if(W.address){let q=W.address.toLowerCase();if(!q.startsWith("0x"))q="0x"+q;t(m1(q)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:Z};if(w8(W,"x-ethers.version:string")==="0.1"){let q=X.slice(32,64),A=w8(W,"x-ethers.mnemonicCiphertext:data!"),N=w8(W,"x-ethers.mnemonicCounter:data!"),H=new JW(q,N);J.mnemonic={path:w8(W,"x-ethers.path:string")||K_,locale:w8(W,"x-ethers.locale:string")||"en",entropy:C0(P0(H.decrypt(A)))}}return J}function C_(W){let G=w8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=w8(W,"crypto.kdfparams.salt:data!"),Y=w8(W,"crypto.kdfparams.n:int!"),V=w8(W,"crypto.kdfparams.r:int!"),Z=w8(W,"crypto.kdfparams.p:int!");t(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),t(V>0&&Z>0,"invalid kdf","kdf",G);let Q=w8(W,"crypto.kdfparams.dklen:int!");return t(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:V,p:Z,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=w8(W,"crypto.kdfparams.salt:data!"),Y=w8(W,"crypto.kdfparams.prf:string!"),V=Y.split("-").pop();t(V==="sha256"||V==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=w8(W,"crypto.kdfparams.c:int!"),Q=w8(W,"crypto.kdfparams.dklen:int!");return t(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:Z,dkLen:Q,algorithm:V}}}t(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),V=C_(X);if(V.name==="pbkdf2"){let{salt:N,count:H,dkLen:z,algorithm:w}=V,C=L5(Y,N,H,z,w);return YN(X,C)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Z,N:Q,r:J,p:U,dkLen:q}=V,A=VW(Y,Z,Q,J,U,q);return YN(X,A)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),V=fG(G),Z=C_(Y);if(Z.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:z,dkLen:w,algorithm:C}=Z,D=L5(V,H,z,w,C);if(X)X(1),await O_(0);return YN(Y,D)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:Q,N:J,r:U,p:q,dkLen:A}=Z,N=await YW(V,Q,J,U,q,A,X);return YN(Y,N)}function D_(W){let G=W.salt!=null?P0(W.salt,"options.salt"):B5(32),X=131072,Y=8,V=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)V=W.scrypt.p}return t(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),t(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),t(typeof V==="number"&&V>0&&Number.isSafeInteger(V),"invalid scrypt p parameter","options.p",V),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:V}}function T_(W,G,X,Y){let V=P0(X.privateKey,"privateKey"),Z=Y.iv!=null?P0(Y.iv,"options.iv"):B5(16);t(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?P0(Y.uuid,"options.uuid"):B5(16);t(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),q=new JW(J,Z),A=P0(q.encrypt(V)),N=G8(a1([U,A])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(Z).substring(2)},ciphertext:C0(A).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:N.substring(2)}};if(X.mnemonic){let z=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=P0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),p=new JW(D,h),v=P0(p.encrypt(x)),n=new Date,l="UTC--"+(n.getUTCFullYear()+"-"+ZV(n.getUTCMonth()+1,2)+"-"+ZV(n.getUTCDate(),2)+"T"+ZV(n.getUTCHours(),2)+"-"+ZV(n.getUTCMinutes(),2)+"-"+ZV(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:z,gethFilename:l,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(v).substring(2),version:"0.1"}}return JSON.stringify(H)}function FJ(W,G,X){if(X==null)X={};let Y=fG(G),V=D_(X),Z=VW(Y,V.salt,V.N,V.r,V.p,64);return T_(P0(Z),V,W,X)}async function SJ(W,G,X){if(X==null)X={};let Y=fG(G),V=D_(X),Z=await YW(Y,V.salt,V.N,V.r,V.p,64,X.progressCallback);return T_(P0(Z),V,W,X)}var xJ="m/44'/60'/0'/0/0",Yt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),UW=2147483648,Vt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Zt="0123456789abcdef";function ZN(W,G){let X="";while(W)X=Zt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function VC(W){let G=P0(W),X=nY(R9(R9(G)),0,4),Y=a1([G,X]);return BH(Y)}var o7={};function M_(W,G,X,Y){let V=new Uint8Array(37);if(W&UW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),V.set(P0(Y),1);else V.set(P0(X));for(let Q=24;Q>=0;Q-=8)V[33+(Q>>3)]=W>>24-Q&255;let Z=P0(e6("sha512",G,V));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function P_(W,G){let X=G.split("/");if(t(X.length>0,"invalid path","path",G),X[0]==="m")t(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let V=0;V<X.length;V++){let Z=X[V];if(Z.match(/^[0-9]+'$/)){let Q=parseInt(Z.substring(0,Z.length-1));t(Q<UW,"invalid path index",`path[${V}]`,Z),Y=Y.deriveChild(UW+Q)}else if(Z.match(/^[0-9]+$/)){let Q=parseInt(Z);t(Q<UW,"invalid path index",`path[${V}]`,Z),Y=Y.deriveChild(Q)}else t(!1,"invalid path component",`path[${V}]`,Z)}return Y}class V9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,V,Z,Q,J,U){super(G,U);p4(W,o7,"HDNodeWallet"),Z8(this,{publicKey:G.compressedPublicKey});let q=nY(WW(R9(this.publicKey)),0,4);Z8(this,{parentFingerprint:X,fingerprint:q,chainCode:Y,path:V,index:Z,depth:Q}),Z8(this,{mnemonic:J})}connect(W){return new V9(o7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await SJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return FJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),VC(a1(["0x0488ADE4",ZN(this.depth,1),this.parentFingerprint,ZN(this.index,4),this.chainCode,a1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(o7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=d8(W,"index");t(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~UW),G&UW)X+="'"}let{IR:Y,IL:V}=M_(G,this.chainCode,this.publicKey,this.privateKey),Z=new c8(Y7((rY(V)+BigInt(this.privateKey))%Vt,32));return new V9(o7,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){t(p7(W),"invalid seed","seed","[REDACTED]");let X=P0(W,"seed");t(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=P0(e6("sha512",Yt,X)),V=new c8(C0(Y.slice(0,32)));return new V9(o7,V,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=Q8(EH(W));t(G.length===82||VC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),V=parseInt(C0(G.slice(9,13)).substring(2),16),Z=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(o7,a4(J),J,Y,Z,null,V,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new V9(o7,new c8(Q.slice(1)),Y,Z,null,V,X,null,null)}t(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=xJ;if(X==null)X=t4.wordlist();let Y=e4.fromEntropy(B5(16),W,X);return V9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=xJ;return V9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=xJ;if(Y==null)Y=t4.wordlist();let V=e4.fromPhrase(W,G,Y);return V9.#G(V.computeSeed(),V).derivePath(X)}static fromSeed(W){return V9.#G(W,null)}}class cG extends RJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,V,Z,Q,J,U){super(G,U);p4(W,o7,"HDNodeVoidWallet"),Z8(this,{publicKey:X});let q=nY(WW(R9(X)),0,4);Z8(this,{publicKey:X,fingerprint:q,parentFingerprint:Y,chainCode:V,path:Z,index:Q,depth:J})}connect(W){return new cG(o7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),VC(a1(["0x0488B21E",ZN(this.depth,1),this.parentFingerprint,ZN(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=d8(W,"index");t(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~UW),G&UW)X+="'"}let{IR:Y,IL:V}=M_(G,this.chainCode,this.publicKey,null),Z=c8.addPoints(V,this.publicKey,!0),Q=a4(Z);return new cG(o7,Q,Z,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QN(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JN(W,G){let X=JSON.parse(W),Y=fG(G),V=m1(w8(X,"ethaddr:string!")),Z=GC(w8(X,"encseed:string!"));t(Z&&Z.length%16===0,"invalid encseed","json",W);let Q=P0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=Z.slice(0,16),U=Z.slice(16),q=new EJ(Q,J),A=WC(P0(q.decrypt(U))),N="";for(let H=0;H<A.length;H++)N+=String.fromCharCode(A[H]);return{address:V,privateKey:s4(N)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class G6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new c8(W):W;super(X,G)}connect(W){return new G6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await SJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return FJ(G,W)}static#W(W){if(t(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=e4.fromEntropy(W.mnemonic.entropy),Y=V9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new G6(W.privateKey);return t(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(VN(W))Y=await YC(W,G,X);else if(QN(W)){if(X)X(0),await R_(0);if(Y=JN(W,G),X)X(1),await R_(0)}return G6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(VN(W))X=XC(W,G);else if(QN(W))X=JN(W,G);else t(!1,"invalid JSON wallet","json","[ REDACTED ]");return G6.#W(X)}static createRandom(W){let G=V9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=V9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?V9.fromPhrase(X):new G6(X),V=m1(Y.address),Z=new Set([...G,V].map((A)=>{try{return m1(A)}catch{return null}}).filter(Boolean)),Q=(A)=>{let N=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((z,w)=>(z[w]=N(H[w]),z),{}):Array.isArray(H)?H.map(N):H;return JSON.stringify(N(A))};return{address:V,superAdmins:Z,canonicalize:Q,signOps:async(A)=>{let N=[];for(let H of A){if(H?.signature&&H?.originEthAddress&&H?.originUser){N.push(H);continue}let z={...H,originUser:V},w=await Y.signMessage(M9(Q(z)));N.push({...H,originUser:V,originEthAddress:V,signature:w})}return N},verifyOp:(A)=>{if(!A?.signature||!A?.originEthAddress||!A?.originUser)return{ok:!1,reason:"missing-fields"};let N;try{if(N=m1(A.originEthAddress),m1(A.originUser)!==N)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:z,...w}=A;try{let C=rH(M9(Q(w)),H);if(m1(C)!==N)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:N,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(A)=>{try{return Z.has(m1(A))}catch{return!1}}}}var Ut=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:V=15000,customRoles:Z=null}={}){let Q=new Set([...Ut,...Object.keys(Z??{})]),J=async(N,H,z=null)=>{let w=m1(N);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:z?new Date(z).toISOString():null,priority:!0},C)},U=async()=>{let N=new Map;for(let H of X){let z=H.then?.assignRole;if(!z)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;N.set(C.id,{role:z,current:C.value?.role})}}for(let[H,{role:z,current:w}]of N){if(w===z)continue;try{await J(H.slice(5),z),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${z}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},q=null,A=setTimeout(()=>{q=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},V);return{assignRole:J,stop:()=>{if(clearTimeout(A),q)clearInterval(q)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,ZC=(W,G=16)=>{let X=null,Y=null;return(...V)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...V))}catch(Z){Y.reject(Z)}finally{Y=null}},G),Y.promise}},Nt=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function It(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((V)=>Y(V.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function zt(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let V=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:V?.edges?[...V.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let V=W.nodes[G],Z=W.nodes[X];if(V&&Z&&!V.edges.includes(X))W.nodes[G]={...V,edges:[...V.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>DW.deflate(qV(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=HW(DW.inflate(X))}}}function wt(W,G){let X=Ht(W);if(X&&X!==".")At(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
|
|
252
|
+
CREATE TABLE IF NOT EXISTS kv (
|
|
253
|
+
key TEXT PRIMARY KEY,
|
|
254
|
+
value BLOB NOT NULL
|
|
255
|
+
)
|
|
256
|
+
`);let V=Y.prepare("SELECT value FROM kv WHERE key = ?"),Z=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let q=V.get(`${J}:${U}`);return q?new Uint8Array(q.value):null},getText(U){let q=V.get(`${J}:${U}`);return q?Buffer.from(q.value).toString("utf8"):null},putBlob(U,q){Z.run(`${J}:${U}`,Buffer.from(q))},putText(U,q){Z.run(`${J}:${U}`,Buffer.from(q,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function jt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:V=200,oplogSize:Z=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:q=null,relay:A=null}=G,N=J?.constructor===Object?J:{},{turnConfig:H=null}=N,z=N.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((q0)=>q0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((q0)=>q0.trim()).filter(Boolean):null),w=A??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(A?.constructor===Object?A:{}),z=[...z??[],`ws://127.0.0.1:${C.port}`];let D=N.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=q?.constructor===Object?q:null,p=h?.key??process.env.GDB_SM_KEY??null,v=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((q0)=>q0.trim()).filter(Boolean),n=null;if(p)n=L_(p,v),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=zt(),l=vD(),G0=It(Z),b=wt(X,W),Y0=[],J0=[],k=[],o=null,B=null,R=null,L={},_=()=>{let q0=b.getBlob("graph");if(q0?.byteLength)c.deserialize(q0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},f=()=>{b.putBlob("graph",c.serialize())},M=()=>{let q0=b.getText("timestamp");if(q0){let B0=JSON.parse(q0);if(B0?.physical&&B0?.logical)o=B0,l.update(o)}},$=()=>{b.putText("timestamp",JSON.stringify(o??null))},g=()=>{let q0=b.getBlob("oplog");if(q0?.byteLength){let B0=HW(DW.inflate(q0));if(Array.isArray(B0))G0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},u=()=>{b.putBlob("oplog",DW.deflate(qV(G0.entries())))},m=(q0)=>{if(!q0)return;if(!o||l.compare(q0,o)>0)o=q0,$()},i=ZC(()=>f(),V),Q0=ZC(()=>u(),V),I0=()=>{let q0={...c.nodes};Y0.forEach((B0)=>B0(q0))},E0=Nt(()=>I0()),x0=async(q0)=>{if(!q0?.length||!B)return!1;try{return await B.send(q0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},L0=async(q0)=>{let B0=await x0(q0);return setTimeout(()=>x0(q0),2500),B0},Q1=async(q0)=>{let B0=!1,v0=null,T1=($0)=>{if($0&&(!v0||l.compare($0,v0)>0))v0=$0},J8=($0)=>{try{if($0 instanceof Uint8Array||$0 instanceof ArrayBuffer){let c0=HW($0);return Array.isArray(c0)?c0:[c0]}if(Array.isArray($0))return $0;if($0&&typeof $0==="object")return HW(DW.inflate(new Uint8Array(Object.values($0))))}catch(c0){console.error("\u274C decode failed",c0)}return null},w1={upsert($0){let{resolved:c0,value:j1,timestamp:y1}=gD(c.get($0.id),$0,l);if(!c0)return;c.upsert($0.id,j1,y1),l.update(y1),G0.add({type:"upsert",id:$0.id,timestamp:y1}),B0=!0,T1(y1)},remove($0){let c0=c.get($0.id);if(!c0||l.compare(c0.timestamp,$0.timestamp)>=0)return;delete c.nodes[$0.id],Object.values(c.nodes).forEach((j1)=>{j1.edges=(j1.edges??[]).filter((y1)=>y1!==$0.id)}),l.update($0.timestamp),G0.add({type:"remove",id:$0.id,timestamp:$0.timestamp}),B0=!0,T1($0.timestamp)},link($0){let c0=c.get($0.sourceId),j1=c.get($0.targetId);if(!c0||!j1||l.compare(c0.timestamp,$0.timestamp)>=0)return;c.link($0.sourceId,$0.targetId,$0.timestamp),l.update($0.timestamp),G0.add({type:"link",...$0}),B0=!0,T1($0.timestamp)},async sync({timestamp:$0}){let c0=G0.getOldest();if($0==null||c0&&l.compare($0,c0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await L0([{type:"fullStateSync",graphData:c.serialize(),timestamp:o}]);return}let y1=G0.getDelta($0,l.compare);if(!y1.length)return;let E9=y1.map((i8)=>i8.type==="upsert"?{...i8,value:c.get(i8.id)?.value}:i8);console.info("\uD83D\uDE80 Sending DELTA sync:",E9.length,"ops"),await L0([{type:"deltaSync",operations:DW.deflate(qV(E9)),timestamp:o}])},deltaSync({operations:$0}){let c0=J8($0);if(!Array.isArray(c0))return;console.info("\uD83D\uDCE5 deltaSync:",c0.length,"ops");for(let j1 of c0)if(j1&&w1[j1.type])w1[j1.type](j1)},async fullStateSync({graphData:$0,timestamp:c0}){if(o&&c0&&l.compare(o,c0)>0)return;let j1=$0;if(!(j1 instanceof Uint8Array))j1=j1&&typeof j1==="object"?new Uint8Array(Object.values(j1)):null;if(!j1)return;if(c.deserialize(j1),G0.clear(),B0=!0,console.info("\u2705 fullStateSync applied:",c.getAllNodes().length,"nodes"),c0)T1(c0),l.update(c0)}};for(let $0 of q0)if(w1[$0.type])await w1[$0.type]($0);if(v0&&(!o||l.compare(v0,o)>0))m(v0);if(B0)await Promise.all([i(),Q0()]),E0()},k1=ZC(async()=>{let q0=k.splice(0);return q0.length?await x0(q0):!1},16);Object.assign(L,{use(q0){if(typeof q0==="function")J0.push(q0)},async put(q0,B0){let v0=l.now();m(v0),B0??=crypto.randomUUID(),c.upsert(B0,q0,v0),G0.add({type:"upsert",id:B0,timestamp:v0}),i(),Q0();try{k.push({type:"upsert",id:B0,value:q0,timestamp:v0}),k1().catch(()=>{})}finally{E0()}return B0},async get(q0){if(typeof q0!=="string")return{result:null};let B0=c.get(q0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...q0){let v0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},T1=null,J8=!1;q0.forEach((c0)=>typeof c0==="function"?T1=c0:c0&&typeof c0==="object"&&(J8=J8||("realtime"in c0),Object.assign(v0,c0))),T1&&!J8&&(v0.realtime=!0);let w1=lN(c.nodes,v0),$0=null;if(T1){if(w1.forEach((c0)=>T1({id:c0.id,value:c0.value,edges:c0.edges,timestamp:c0.timestamp,action:"initial"})),v0.realtime){let c0=(j1)=>`${j1.id}:${j1.timestamp?.physical??0}:${j1.timestamp?.logical??0}:${(j1.edges??[]).join(",")}`;$0=(j1)=>{let y1=lN(j1,v0),E9=new Map(w1.map((j8)=>[j8.id,j8])),i8=new Map(y1.map((j8)=>[j8.id,j8]));if(y1.length!==w1.length||!y1.map(c0).every((j8,A8)=>j8===w1.map(c0)[A8])){for(let[j8,A8]of i8){let Z9=E9.get(j8);if(!Z9)T1({id:j8,value:A8.value,edges:A8.edges,timestamp:A8.timestamp,action:"added"});else if(c0(A8)!==c0(Z9))T1({id:j8,value:A8.value,edges:A8.edges,timestamp:A8.timestamp,action:"updated"})}for(let[j8,A8]of E9)if(!i8.has(j8))T1({id:j8,value:null,edges:A8.edges,timestamp:A8.timestamp,action:"removed"});w1=y1}},Y0.push($0)}}return{results:w1,...v0.realtime&&T1&&$0&&{unsubscribe:()=>{let c0=Y0.indexOf($0);if(c0>=0)Y0.splice(c0,1)}}}},async link(q0,B0){if(!c.nodes[q0]||!c.nodes[B0])return;let v0=l.now();c.link(q0,B0,v0),G0.add({type:"link",sourceId:q0,targetId:B0,timestamp:v0}),i(),Q0(),m(v0);try{k.push({type:"link",sourceId:q0,targetId:B0,timestamp:v0}),k1().catch(()=>{})}finally{E0()}},async remove(q0){let B0=c.get(q0);if(!B0)return;let v0=l.now();delete c.nodes[q0],Object.values(c.nodes).forEach((T1)=>{T1.edges=(T1.edges??[]).filter((J8)=>J8!==q0)}),G0.add({type:"remove",id:q0,timestamp:v0}),i(),Q0(),m(v0);try{k.push({type:"remove",id:q0,value:B0.value,timestamp:v0}),k1().catch(()=>{})}finally{E0()}},async clear(){c.nodes={},G0.clear(),b.del("graph"),b.del("oplog"),I0()},on(q0){return Y0.push(q0),()=>{let B0=Y0.indexOf(q0);if(B0>=0)Y0.splice(B0,1)}},close(){b.close()}});try{let q0=`graph-sync-room-${W}`,B0={appId:"1234",...Y&&{password:Y},...z&&{relayUrls:z},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??AK};if(R=PI(B0,q0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let v0=B.send;B={...B,send:async(T1)=>v0(await n.signOps(T1))},L.sm=n}if(!D){let v0=!1;R.channel("c0").on("message",()=>{if(v0)return;v0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)L.room=PI(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(v0)=>{console.info("\u26A1 Peer connected:",v0);for(let T1 of[0,1500,4000,9000])setTimeout(()=>x0([{type:"sync",timestamp:o}]),T1)}),R.on("peer:leave",(v0)=>console.info("\u26A1 Peer disconnected:",v0)),B.on("message",async(v0)=>{let T1;try{T1=v0 instanceof Uint8Array||v0 instanceof ArrayBuffer?(()=>{let w1=HW(v0);return Array.isArray(w1)?w1:[w1]})():Array.isArray(v0)?v0:[v0]}catch(w1){return console.error("\u274C decode failed:",w1)}let J8=new Map([...new Set(T1.flatMap((w1)=>["id","sourceId","targetId"].map(($0)=>w1?.[$0]).filter(Boolean)))].map((w1)=>c.get(w1)?[w1,QC(c.get(w1))]:null).filter(Boolean));for(let w1 of J0)try{if(T1=await w1(T1,J8),!T1?.length)return}catch($0){console.error("\u274C Middleware error:",$0);return}await Q1(T1)}),console.info("\u2705 GenosRTC sync enabled")}catch(q0){console.warn("\u26A0\uFE0F GenosRTC not available:",q0.message)}if(_(),M(),g(),n){let q0=h?.governanceRules??null;if(!q0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))q0=JSON.parse(B0);else if(B0.startsWith("{"))q0=[JSON.parse(B0)];else q0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(v0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",v0.message)}}if(Array.isArray(q0)&&q0.length)L.governance=B_(L,n,q0,{customRoles:h?.customRoles??null})}if(C)L.relay=C;return Object.defineProperties(L,{syncChannel:{get:()=>B},hybridClock:{get:()=>l},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(q0)=>c.get(q0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),L}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(Z)=>W.has(Z?.code)||W.has(Z?.errno),X=new Map,Y=null,V=(Z="UNKNOWN")=>{let Q=(X.get(Z)??0)+1;if(X.set(Z,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",Z);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,q])=>`${U} \xD7${q}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(Z)=>{if(G(Z))return V(Z?.code??Z?.errno);console.error("\u274C Fatal:",Z?.message??Z),process.exit(1)}),process.on("unhandledRejection",(Z)=>{if(G(Z))return V(Z?.code??Z?.errno);console.error("\u274C Fatal (rejection):",Z?.message??Z),process.exit(1)}),jt().catch((Z)=>{console.error("\u274C Fatal:",Z.message),process.exit(1)})}export{jt as gdbServer};
|