@libp2p/webtransport 6.0.34 → 6.0.35

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/dist/index.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PWebtransport = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PWebtransport=(()=>{var Us=Object.defineProperty;var Ql=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var td=Object.prototype.hasOwnProperty;var tt=(r,t)=>{for(var e in t)Us(r,e,{get:t[e],enumerable:!0})},ed=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Jl(t))!td.call(r,o)&&o!==e&&Us(r,o,{get:()=>t[o],enumerable:!(n=Ql(t,o))||n.enumerable});return r};var rd=r=>ed(Us({},"__esModule",{value:!0}),r);var Eg={};tt(Eg,{webTransport:()=>xg});var oo=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},yr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},Q=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},gr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var so=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},io=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var Ae=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},an=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var ao=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},co=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},fo=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var ze=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var uo=class extends Event{data;constructor(t,e){super("message",e),this.data=t}},br=class extends Event{error;local;constructor(t,e,n){super("close",n),this.error=e,this.local=t}},ho=class extends br{constructor(t,e){super(!0,t,e)}},lo=class extends br{constructor(t,e){super(!1,t,e)}};var Ps=Symbol.for("@libp2p/peer-id");var pf=Symbol.for("@libp2p/transport");var df;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(df||(df={}));function nd(r){return typeof r?.handleEvent=="function"}function od(r){return(r!==!0&&r!==!1&&r?.once)??!1}var wr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){let o=od(n);super.addEventListener(t,i=>{if(o){let a=this.#t.get(i.type);a!=null&&(a=a.filter(({callback:c})=>c!==e),this.#t.set(i.type,a))}nd(e)?e.handleEvent(i):e(i)},n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:e,once:o})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:s})=>s!==e),this.#t.set(t,o))}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var po=Symbol.for("@libp2p/service-capabilities");var Ks={};tt(Ks,{base58btc:()=>ut,base58flickr:()=>ld});var Jg=new Uint8Array(0);function yf(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Ft(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return qe(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return qe(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function gf(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var mf=4096;function bf(r){let t=r.length;if(t<=mf)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=mf));return e}function sd(r){return r?.buffer instanceof ArrayBuffer}function qe(r){return sd(r)?r:r.slice()}function id(r,t,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,e){var c=i.toLowerCase().charCodeAt(0),f=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),f!==a&&(n[f]=s)}}var u=r.length,h=r.charAt(0),y=Math.log(u)/Math.log(256),d=Math.log(256)/Math.log(u);function g(m){if(m instanceof Uint8Array||(ArrayBuffer.isView(m)?m=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):Array.isArray(m)&&(m=Uint8Array.from(m))),!(m instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(m.length===0)return"";for(var v=0,_=0,R=0,D=m.length;R!==D&&m[R]===0;)R++,v++;for(var N=(D-R)*d+1>>>0,T=new Uint8Array(N);R!==D;){for(var I=m[R],U=0,M=N-1;(I!==0||U<_)&&M!==-1;M--,U++)I+=256*T[M]>>>0,T[M]=I%u>>>0,I=I/u>>>0;if(I!==0)throw new Error("Non-zero carry");_=U,R++}for(var P=N-_;P!==N&&T[P]===0;)P++;for(var p=h.repeat(v);P<N;++P)p+=r.charAt(T[P]);return p}function S(m){if(typeof m!="string")throw new TypeError("Expected String");if(m.length===0)return new Uint8Array;var v=0;if(m[v]!==" "){for(var _=0,R=0;m[v]===h;)_++,v++;for(var D=(m.length-v)*y+1>>>0,N=new Uint8Array(D);m[v];){var T=n[m.charCodeAt(v)];if(T===255)return;for(var I=0,U=D-1;(T!==0||I<R)&&U!==-1;U--,I++)T+=u*N[U]>>>0,N[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");R=I,v++}if(m[v]!==" "){for(var M=D-R;M!==D&&N[M]===0;)M++;for(var P=new Uint8Array(_+(D-M)),p=_;M!==D;)P[p++]=N[M++];return P}}}function l(m){var v=S(m);if(v)return v;throw new Error(`Non-${t} character`)}return{encode:g,decodeUnsafe:S,decode:l}}var ad=id,cd=ad,xf=cd;var Ns=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ms=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Ef(this,t)}},ks=class{decoders;constructor(t){this.decoders=t}or(t){return Ef(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ef(r,t){return new ks({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Fs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ns(t,e,n),this.decoder=new Ms(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function xr({name:r,prefix:t,encode:e,decode:n}){return new Fs(r,t,e,n)}function ve({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:s}=xf(e,r,n);return xr({prefix:t,name:r,encode:o,decode:i=>Ft(s(i))})}function fd(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function ud(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function hd(r,t){let e={};for(let n=0;n<r.length;++n)if(e[r[n]]=n,t){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(e[o]=n),s!==r[n]&&(e[s]=n)}return e}function ft({name:r,prefix:t,bitsPerChar:e,alphabet:n,caseInsensitive:o=!1}){let s=hd(n,o);return xr({prefix:t,name:r,encode(i){return ud(i,n,e)},decode(i){return fd(i,s,e,r)}})}var ut=ve({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ld=ve({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Hs={};tt(Hs,{base32:()=>Be,base32hex:()=>yd,base32hexpad:()=>bd,base32hexpadupper:()=>wd,base32hexupper:()=>gd,base32pad:()=>pd,base32padupper:()=>md,base32upper:()=>dd,base32z:()=>xd});var Be=ft({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),dd=ft({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),pd=ft({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),md=ft({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),yd=ft({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),gd=ft({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),bd=ft({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),wd=ft({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),xd=ft({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Vs={};tt(Vs,{base36:()=>cn,base36upper:()=>Ed});var cn=ve({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Ed=ve({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var he={};tt(he,{Digest:()=>$e,create:()=>Vt,decode:()=>Ar,equals:()=>qs,hasCode:()=>Kd});var Sd=vf,Sf=128,Ad=127,vd=~Ad,Bd=Math.pow(2,31);function vf(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Bd;)t[e++]=r&255|Sf,r/=128;for(;r&vd;)t[e++]=r&255|Sf,r>>>=7;return t[e]=r|0,vf.bytes=e-n+1,t}var Ld=zs,_d=128,Af=127;function zs(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw zs.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&Af)<<o:(i&Af)*Math.pow(2,o),o+=7}while(i>=_d);return zs.bytes=s-n,e}var Id=Math.pow(2,7),Cd=Math.pow(2,14),Td=Math.pow(2,21),Dd=Math.pow(2,28),Rd=Math.pow(2,35),Od=Math.pow(2,42),Ud=Math.pow(2,49),Pd=Math.pow(2,56),Nd=Math.pow(2,63),Md=function(r){return r<Id?1:r<Cd?2:r<Td?3:r<Dd?4:r<Rd?5:r<Od?6:r<Ud?7:r<Pd?8:r<Nd?9:10},kd={encode:Sd,decode:Ld,encodingLength:Md},Fd=kd,fn=Fd;function un(r,t=0){let e=fn.decode(r,t),n=fn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[t+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[e,n]}function Er(r,t,e=0){return fn.encode(r,t,e),t}function Sr(r){return fn.encodingLength(r)}function Vt(r,t){let e=t.byteLength,n=Sr(r),o=n+Sr(e),s=new Uint8Array(o+e);return Er(r,s,0),Er(e,s,n),s.set(t,o),new $e(r,e,t,s)}function Ar(r){let t=Ft(r),[e,n]=un(t),[o,s]=un(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new $e(e,o,i,t)}function qs(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&yf(r.bytes,e.bytes)}}var $e=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=qe(n),this.bytes=qe(o)}};function Kd(r,t){return r.code===t}function Bf(r,t){let{bytes:e,version:n}=r;return n===0?Vd(e,$s(r),t??ut.encoder):zd(e,$s(r),t??Be.encoder)}var Lf=new WeakMap;function $s(r){let t=Lf.get(r);if(t==null){let e=new Map;return Lf.set(r,e),e}return t}var dt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=qe(o),this["/"]=this.bytes}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==hn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==qd)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=Vt(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&qs(t.multihash,n.multihash)}toString(t){return Bf(this,t)}toJSON(){return{"/":Bf(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??_f(n,o,s.bytes))}else if(e[$d]===!0){let{version:n,multihash:o,code:s}=e,i=Ar(o);return r.create(n,s,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==hn)throw new Error(`Version 0 CID must use dag-pb (code: ${hn}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=_f(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,hn,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=Ft(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new $e(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,y]=un(t.subarray(e));return e+=y,h},o=n(),s=hn;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=Hd(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return $s(s).set(n,t),s}};function Hd(r,t){switch(r[0]){case"Q":{let e=t??ut;return[ut.prefix,e.decode(`${ut.prefix}${r}`)]}case ut.prefix:{let e=t??ut;return[ut.prefix,e.decode(r)]}case Be.prefix:{let e=t??Be;return[Be.prefix,e.decode(r)]}case cn.prefix:{let e=t??cn;return[cn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Vd(r,t,e){let{prefix:n}=e;if(n!==ut.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function zd(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var hn=112,qd=18;function _f(r,t,e){let n=Sr(r),o=n+Sr(t),s=new Uint8Array(o+e.byteLength);return Er(r,s,0),Er(t,s,n),s.set(e,o),s}var $d=Symbol.for("@ipld/js-cid/CID");var js={};tt(js,{identity:()=>zt});var If=0,jd="identity",Cf=Ft;function Wd(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return Vt(If,Cf(r))}var zt={code:If,name:jd,encode:Cf,digest:Wd};function pt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Gd(r){return r.buffer instanceof ArrayBuffer}function xt(r){return Gd(r)?r:r.slice()}async function Tf(r,t,e,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,xt(t),xt(e.subarray()));return n?.signal?.throwIfAborted(),s}function Qt(r=0){return new Uint8Array(r)}function Bt(r=0){return new Uint8Array(r)}function Zd(r){return r?.buffer instanceof ArrayBuffer}function Ws(r){if(Zd(r))return r;let t=r.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function Jt(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=Bt(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return Ws(e)}var Rf=Symbol.for("@achingbrain/uint8arraylist");function Df(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function yo(r){return!!r?.[Rf]}var it=class r{bufs;length;[Rf]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(yo(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(yo(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Df(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Df(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(yo(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return Jt(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:Jt(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!yo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let y=f;y>=0;y--){let d=this.get(h+y);if(n[y]!==d){u=Math.max(1,y-a[d]);break}}if(u===0)return h}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Bt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=Qt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=Qt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=Qt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Bt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=Qt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=Qt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=Qt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=Qt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=Qt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!pt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((o,s)=>o+s.byteLength,0)),n.length=e,n}};var Gs={};tt(Gs,{base10:()=>Yd});var Yd=ve({prefix:"9",name:"base10",alphabet:"0123456789"});var Zs={};tt(Zs,{base16:()=>Xd,base16upper:()=>Qd});var Xd=ft({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),Qd=ft({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var Ys={};tt(Ys,{base2:()=>Jd});var Jd=ft({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Xs={};tt(Xs,{base256emoji:()=>op});var Of=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),tp=Of.reduce((r,t,e)=>(r[e]=t,r),[]),ep=Of.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function rp(r){return r.reduce((t,e)=>(t+=tp[e],t),"")}function np(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=ep[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var op=xr({prefix:"\u{1F680}",name:"base256emoji",encode:rp,decode:np});var Js={};tt(Js,{base64:()=>sp,base64pad:()=>ip,base64url:()=>Qs,base64urlpad:()=>ap});var sp=ft({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ip=ft({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Qs=ft({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ap=ft({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ti={};tt(ti,{base8:()=>cp});var cp=ft({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ei={};tt(ei,{identity:()=>fp});var fp=xr({prefix:"\0",name:"identity",encode:r=>bf(Ft(r)),decode:r=>Ft(gf(r))});var kb=new TextEncoder,Fb=new TextDecoder;var oi={};tt(oi,{sha256:()=>ln,sha512:()=>dp});var lp=20;function ni({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new ri(r,t,e,n,o)}var ri=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??lp,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Uf(n,this.code,e?.truncate):n.then(o=>Uf(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Uf(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return Vt(t,r)}function Nf(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var ln=ni({name:"sha2-256",code:18,encode:Nf("SHA-256")}),dp=ni({name:"sha2-512",code:19,encode:Nf("SHA-512")});var je={...ei,...Ys,...ti,...Gs,...Zs,...Hs,...Vs,...Ks,...Js,...Xs},Xb={...oi,...js};function kf(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Mf=kf("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),si=kf("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=Bt(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),pp={utf8:Mf,"utf-8":Mf,hex:je.base16,latin1:si,ascii:si,binary:si,...je},go=pp;function et(r,t="utf8"){let e=go[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function j(r,t="utf8"){let e=go[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var mp=parseInt("11111",2),ii=parseInt("10000000",2),yp=parseInt("01111111",2),Ff={0:dn,1:dn,2:gp,3:xp,4:Ep,5:wp,6:bp,16:dn,22:dn,48:dn};function le(r,t={offset:0}){let e=r[t.offset]&mp;if(t.offset++,Ff[e]!=null)return Ff[e](r,t);throw new Error("No decoder for tag "+e)}function pn(r,t){let e=0;if((r[t.offset]&ii)===ii){let n=r[t.offset]&yp,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++){if(t.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[t.offset].toString(16).padStart(2,"0")}e=parseInt(o,16)}else e=r[t.offset],t.offset++;if(!Number.isInteger(e)||e<0||e>r.byteLength-t.offset)throw new Error("invalid DER element length");return e}function dn(r,t){pn(r,t);let e=[];for(;!(t.offset>=r.byteLength);){let n=le(r,t);if(n===null)break;e.push(n)}return e}function gp(r,t){let e=pn(r,t),n=t.offset,o=t.offset+e,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return t.offset+=e,Uint8Array.from(s)}function bp(r,t){let e=pn(r,t),n=t.offset+e,o=r[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=r[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function wp(r,t){return t.offset++,null}function xp(r,t){let e=pn(r,t),n=r[t.offset];t.offset++;let o=r.subarray(t.offset,t.offset+e-1);if(t.offset+=e,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function Ep(r,t){let e=pn(r,t),n=r.subarray(t.offset,t.offset+e);return t.offset+=e,n}function Sp(r){let t=r.toString(16);t.length%2===1&&(t="0"+t);let e=new it;for(let n=0;n<t.length;n+=2)e.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return e}function ai(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let t=Sp(r.byteLength);return new it(Uint8Array.from([t.byteLength|ii]),t)}function Ut(r){let t=new it,e=128;return(r.subarray()[0]&e)===e&&t.append(Uint8Array.from([0])),t.append(r),new it(Uint8Array.from([2]),ai(t),t)}function bo(r){let t=Uint8Array.from([0]),e=new it(t,r);return new it(Uint8Array.from([3]),ai(e),e)}function Le(r,t=48){let e=new it;for(let n of r)e.append(n);return new it(Uint8Array.from([t]),ai(e),e)}var Ap=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),vp=Uint8Array.from([6,5,43,129,4,0,34]),Bp=Uint8Array.from([6,5,43,129,4,0,35]),Lp={ext:!0,kty:"EC",crv:"P-256"},_p={ext:!0,kty:"EC",crv:"P-384"},Ip={ext:!0,kty:"EC",crv:"P-521"},ci=32,fi=48,ui=66;function hi(r){let t=le(r);return Kf(t)}function Kf(r){let t=r[1][1][0],e=1,n,o;if(t.byteLength===ci*2+1)return n=j(t.subarray(e,e+ci),"base64url"),o=j(t.subarray(e+ci),"base64url"),new vr({...Lp,key_ops:["verify"],x:n,y:o});if(t.byteLength===fi*2+1)return n=j(t.subarray(e,e+fi),"base64url"),o=j(t.subarray(e+fi),"base64url"),new vr({..._p,key_ops:["verify"],x:n,y:o});if(t.byteLength===ui*2+1)return n=j(t.subarray(e,e+ui),"base64url"),o=j(t.subarray(e+ui),"base64url"),new vr({...Ip,key_ops:["verify"],x:n,y:o});throw new Q(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function Hf(r){return Le([Ut(Uint8Array.from([1])),Le([Cp(r.crv)],160),Le([bo(new it(Uint8Array.from([4]),et(r.x??"","base64url"),et(r.y??"","base64url")))],161)]).subarray()}function Cp(r){if(r==="P-256")return Ap;if(r==="P-384")return vp;if(r==="P-521")return Bp;throw new Q(`Invalid curve ${r}`)}var vr=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=Hf(this.jwk)),this._raw}toMultihash(){return zt.digest(_e(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ut.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:pt(this.raw,t.raw)}async verify(t,e,n){return Tf(this.jwk,e,t,n)}};function li(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}function te(r,t=""){if(typeof r!="number"){let e=t&&`"${t}" `;throw new TypeError(`${e}expected number, got ${typeof r}`)}if(!Number.isSafeInteger(r)||r<0){let e=t&&`"${t}" `;throw new RangeError(`${e}expected integer >= 0, got ${r}`)}}function Lt(r,t,e=""){let n=li(r),o=r?.length,s=t!==void 0;if(!n||s&&o!==t){let i=e&&`"${e}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof r}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return r}function We(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(te(r.outputLen),te(r.blockLen),r.outputLen<1)throw new Error('"outputLen" must be >= 1');if(r.blockLen<1)throw new Error('"blockLen" must be >= 1')}function Br(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function wo(r,t){Lt(r,void 0,"digestInto() output");let e=t.outputLen;if(r.length<e)throw new RangeError('"digestInto() output" expected to be of length >='+e)}function qt(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function xo(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function $t(r,t){return r<<32-t|r>>>t}var zf=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Tp=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function Eo(r){if(Lt(r),zf)return r.toHex();let t="";for(let e=0;e<r.length;e++)t+=Tp[r[e]];return t}var de={_0:48,_9:57,A:65,F:70,a:97,f:102};function Vf(r){if(r>=de._0&&r<=de._9)return r-de._0;if(r>=de.A&&r<=de.F)return r-(de.A-10);if(r>=de.a&&r<=de.f)return r-(de.a-10)}function mn(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(zf)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=r.length,e=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,s=0;o<e;o++,s+=2){let i=Vf(r.charCodeAt(s)),a=Vf(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function di(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];Lt(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}function pi(r,t={}){let e=(o,s)=>r(s).update(o).digest(),n=r(void 0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.canXOF=n.canXOF,e.create=o=>r(o),Object.assign(e,t),Object.freeze(e)}function qf(r=32){te(r,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return t.getRandomValues(new Uint8Array(r))}var mi=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function $f(r,t,e){return r&t^~r&e}function jf(r,t,e){return r&t^r&e^t&e}var yn=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,o){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=xo(this.buffer)}update(t){Br(this),Lt(t);let{view:e,buffer:n,blockLen:o}=this,s=t.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=xo(t);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Br(this),wo(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[i++]=128,qt(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let h=i;h<o;h++)e[h]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=xo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let f=c/4,u=this.get();if(f>u.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:e,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return t.destroyed=i,t.finished=s,t.length=o,t.pos=a,o%e&&t.buffer.set(n),t}clone(){return this._cloneInto()}},pe=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Et=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var So=BigInt(4294967295),Wf=BigInt(32);function Dp(r,t=!1){return t?{h:Number(r&So),l:Number(r>>Wf&So)}:{h:Number(r>>Wf&So)|0,l:Number(r&So)|0}}function Gf(r,t=!1){let e=r.length,n=new Uint32Array(e),o=new Uint32Array(e);for(let s=0;s<e;s++){let{h:i,l:a}=Dp(r[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var yi=(r,t,e)=>r>>>e,gi=(r,t,e)=>r<<32-e|t>>>e,Ge=(r,t,e)=>r>>>e|t<<32-e,Ze=(r,t,e)=>r<<32-e|t>>>e,gn=(r,t,e)=>r<<64-e|t>>>e-32,bn=(r,t,e)=>r>>>e-32|t<<64-e;function ee(r,t,e,n){let o=(t>>>0)+(n>>>0);return{h:r+e+(o/2**32|0)|0,l:o|0}}var Zf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Yf=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Xf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Qf=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Jf=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),tu=(r,t,e,n,o,s)=>t+e+n+o+s+(r/2**32|0)|0;var Op=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]),Ie=new Uint32Array(64),bi=class extends yn{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,e){for(let h=0;h<16;h++,e+=4)Ie[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){let y=Ie[h-15],d=Ie[h-2],g=$t(y,7)^$t(y,18)^y>>>3,S=$t(d,17)^$t(d,19)^d>>>10;Ie[h]=S+Ie[h-7]+g+Ie[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let y=$t(a,6)^$t(a,11)^$t(a,25),d=u+y+$f(a,c,f)+Op[h]+Ie[h]|0,S=($t(n,2)^$t(n,13)^$t(n,22))+jf(n,o,s)|0;u=f,f=c,c=a,a=i+d|0,i=s,s=o,o=n,n=d+S|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){qt(Ie)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),qt(this.buffer)}},wi=class extends bi{A=pe[0]|0;B=pe[1]|0;C=pe[2]|0;D=pe[3]|0;E=pe[4]|0;F=pe[5]|0;G=pe[6]|0;H=pe[7]|0;constructor(){super(32)}};var eu=Gf(["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(r=>BigInt(r))),Up=eu[0],Pp=eu[1],Ce=new Uint32Array(80),Te=new Uint32Array(80),xi=class extends yn{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:e,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:y,Gh:d,Gl:g,Hh:S,Hl:l}=this;return[t,e,n,o,s,i,a,c,f,u,h,y,d,g,S,l]}set(t,e,n,o,s,i,a,c,f,u,h,y,d,g,S,l){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=y|0,this.Gh=d|0,this.Gl=g|0,this.Hh=S|0,this.Hl=l|0}process(t,e){for(let _=0;_<16;_++,e+=4)Ce[_]=t.getUint32(e),Te[_]=t.getUint32(e+=4);for(let _=16;_<80;_++){let R=Ce[_-15]|0,D=Te[_-15]|0,N=Ge(R,D,1)^Ge(R,D,8)^yi(R,D,7),T=Ze(R,D,1)^Ze(R,D,8)^gi(R,D,7),I=Ce[_-2]|0,U=Te[_-2]|0,M=Ge(I,U,19)^gn(I,U,61)^yi(I,U,6),P=Ze(I,U,19)^bn(I,U,61)^gi(I,U,6),p=Xf(T,P,Te[_-7],Te[_-16]),A=Qf(p,N,M,Ce[_-7],Ce[_-16]);Ce[_]=A|0,Te[_]=p|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:y,Fh:d,Fl:g,Gh:S,Gl:l,Hh:m,Hl:v}=this;for(let _=0;_<80;_++){let R=Ge(h,y,14)^Ge(h,y,18)^gn(h,y,41),D=Ze(h,y,14)^Ze(h,y,18)^bn(h,y,41),N=h&d^~h&S,T=y&g^~y&l,I=Jf(v,D,T,Pp[_],Te[_]),U=tu(I,m,R,N,Up[_],Ce[_]),M=I|0,P=Ge(n,o,28)^gn(n,o,34)^gn(n,o,39),p=Ze(n,o,28)^bn(n,o,34)^bn(n,o,39),A=n&s^n&a^s&a,E=o&i^o&c^i&c;m=S|0,v=l|0,S=d|0,l=g|0,d=h|0,g=y|0,{h,l:y}=ee(f|0,u|0,U|0,M|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let w=Zf(M,p,E);n=Yf(w,U,P,A),o=w|0}({h:n,l:o}=ee(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=ee(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=ee(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=ee(this.Dh|0,this.Dl|0,f|0,u|0),{h,l:y}=ee(this.Eh|0,this.El|0,h|0,y|0),{h:d,l:g}=ee(this.Fh|0,this.Fl|0,d|0,g|0),{h:S,l}=ee(this.Gh|0,this.Gl|0,S|0,l|0),{h:m,l:v}=ee(this.Hh|0,this.Hl|0,m|0,v|0),this.set(n,o,s,i,a,c,f,u,h,y,d,g,S,l,m,v)}roundClean(){qt(Ce,Te)}destroy(){this.destroyed=!0,qt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ei=class extends xi{Ah=Et[0]|0;Al=Et[1]|0;Bh=Et[2]|0;Bl=Et[3]|0;Ch=Et[4]|0;Cl=Et[5]|0;Dh=Et[6]|0;Dl=Et[7]|0;Eh=Et[8]|0;El=Et[9]|0;Fh=Et[10]|0;Fl=Et[11]|0;Gh=Et[12]|0;Gl=Et[13]|0;Hh=Et[14]|0;Hl=Et[15]|0;constructor(){super(64)}};var re=pi(()=>new wi,mi(1));var Ao=pi(()=>new Ei,mi(3));var V=(r,t,e)=>Lt(r,t,e),Ai=te,Lr=Eo,mt=(...r)=>di(...r),_r=r=>mn(r),Ye=li,Xe=r=>qf(r),Bo=BigInt(0),Si=BigInt(1);function jt(r,t=""){if(typeof r!="boolean"){let e=t&&`"${t}" `;throw new TypeError(e+"expected boolean, got type="+typeof r)}return r}function Lo(r){if(typeof r=="bigint"){if(!vo(r))throw new RangeError("positive bigint expected, got "+r)}else Ai(r);return r}function Wt(r,t=""){if(typeof r!="number"){let e=t&&`"${t}" `;throw new TypeError(e+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let e=t&&`"${t}" `;throw new RangeError(e+"expected safe integer, got "+r)}}function wn(r){let t=Lo(r).toString(16);return t.length&1?"0"+t:t}function ru(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?Bo:BigInt("0x"+r)}function Qe(r){return ru(Eo(r))}function Pt(r){return ru(Eo(De(Lt(r)).reverse()))}function _o(r,t){if(te(t),t===0)throw new RangeError("zero length");r=Lo(r);let e=r.toString(16);if(e.length>t*2)throw new RangeError("number too large");return mn(e.padStart(t*2,"0"))}function xn(r,t){return _o(r,t).reverse()}function nu(r,t){if(r=V(r),t=V(t),r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function De(r){return Uint8Array.from(V(r))}function Io(r){if(typeof r!="string")throw new TypeError("ascii string expected, got "+typeof r);return Uint8Array.from(r,(t,e)=>{let n=t.charCodeAt(0);if(t.length!==1||n>127)throw new RangeError(`string contains non-ASCII character "${r[e]}" with code ${n} at position ${e}`);return n})}var vo=r=>typeof r=="bigint"&&Bo<=r;function Np(r,t,e){return vo(r)&&vo(t)&&vo(e)&&t<=r&&r<e}function me(r,t,e,n){if(!Np(t,e,n))throw new RangeError("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function Ir(r){if(r<Bo)throw new Error("expected non-negative bigint, got "+r);let t;for(t=0;r>Bo;r>>=Si,t+=1);return t}var En=r=>(Si<<BigInt(r))-Si;function ou(r,t,e){if(te(r,"hashLen"),te(t,"qByteLen"),typeof e!="function")throw new TypeError("hmacFn must be a function");let n=l=>new Uint8Array(l),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),f=n(r),u=0,h=()=>{c.fill(1),f.fill(0),u=0},y=(...l)=>e(f,mt(c,...l)),d=(l=o)=>{f=y(s,l),c=y(),l.length!==0&&(f=y(i,l),c=y())},g=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let l=0,m=[];for(;l<t;){c=y();let v=c.slice();m.push(v),l+=c.length}return mt(...m)};return(l,m)=>{h(),d(l);let v;for(;(v=m(g()))===void 0;)d();return h(),v}}function Nt(r,t={},e={}){if(Object.prototype.toString.call(r)!=="[object Object]")throw new TypeError("expected valid options object");function n(s,i,a){if(!a&&i!=="function"&&!Object.hasOwn(r,s))throw new TypeError(`param "${s}" is invalid: expected own property`);let c=r[s];if(a&&c===void 0)return;let f=typeof c;if(f!==i||c===null)throw new TypeError(`param "${s}" is invalid: expected ${i}, got ${f}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(t,!1),o(e,!0)}var vi=()=>{throw new Error("not implemented")};var St=BigInt(0),ht=BigInt(1),Je=BigInt(2),cu=BigInt(3),fu=BigInt(4),uu=BigInt(5),Mp=BigInt(7),hu=BigInt(8),kp=BigInt(9),lu=BigInt(16);function at(r,t){if(t<=St)throw new Error("mod: expected positive modulus, got "+t);let e=r%t;return e>=St?e:t+e}function rt(r,t,e){if(t<St)throw new Error("pow2: expected non-negative exponent, got "+t);let n=r;for(;t-- >St;)n*=n,n%=e;return n}function su(r,t){if(r===St)throw new Error("invert: expected non-zero number");if(t<=St)throw new Error("invert: expected positive modulus, got "+t);let e=at(r,t),n=t,o=St,s=ht,i=ht,a=St;for(;e!==St;){let f=n/e,u=n-e*f,h=o-i*f,y=s-a*f;n=e,e=u,o=i,s=a,i=h,a=y}if(n!==ht)throw new Error("invert: does not exist");return at(o,t)}function Bi(r,t,e){let n=r;if(!n.eql(n.sqr(t),e))throw new Error("Cannot find square root")}function du(r,t){let e=r,n=(e.ORDER+ht)/fu,o=e.pow(t,n);return Bi(e,o,t),o}function Fp(r,t){let e=r,n=(e.ORDER-uu)/hu,o=e.mul(t,Je),s=e.pow(o,n),i=e.mul(t,s),a=e.mul(e.mul(i,Je),s),c=e.mul(i,e.sub(a,e.ONE));return Bi(e,c,t),c}function Kp(r){let t=Cr(r),e=pu(r),n=e(t,t.neg(t.ONE)),o=e(t,n),s=e(t,t.neg(n)),i=(r+Mp)/lu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),y=f.mul(u,o),d=f.mul(u,s),g=f.eql(f.sqr(h),c),S=f.eql(f.sqr(y),c);u=f.cmov(u,h,g),h=f.cmov(d,y,S);let l=f.eql(f.sqr(h),c),m=f.cmov(u,h,l);return Bi(f,m,c),m})}function pu(r){if(r<cu)throw new Error("sqrt is not defined for small field");let t=r-ht,e=0;for(;t%Je===St;)t/=Je,e++;let n=Je,o=Cr(r);for(;iu(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(e===1)return du;let s=o.pow(n,t),i=(t+ht)/Je;return function(c,f){let u=c;if(u.is0(f))return f;if(iu(u,f)!==1)throw new Error("Cannot find square root");let h=e,y=u.mul(u.ONE,s),d=u.pow(f,t),g=u.pow(f,i);for(;!u.eql(d,u.ONE);){if(u.is0(d))return u.ZERO;let S=1,l=u.sqr(d);for(;!u.eql(l,u.ONE);)if(S++,l=u.sqr(l),S===h)throw new Error("Cannot find square root");let m=ht<<BigInt(h-S-1),v=u.pow(y,m);h=S,y=u.sqr(v),d=u.mul(d,y),g=u.mul(g,v)}return g}}function Hp(r){return r%fu===cu?du:r%hu===uu?Fp:r%lu===kp?Kp(r):pu(r)}var ye=(r,t)=>(at(r,t)&ht)===ht,Vp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Li(r){let t={ORDER:"bigint",BYTES:"number",BITS:"number"},e=Vp.reduce((n,o)=>(n[o]="function",n),t);if(Nt(r,e),Wt(r.BYTES,"BYTES"),Wt(r.BITS,"BITS"),r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=ht)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function zp(r,t,e){let n=r;if(e<St)throw new Error("invalid exponent, negatives unsupported");if(e===St)return n.ONE;if(e===ht)return t;let o=n.ONE,s=t;for(;e>St;)e&ht&&(o=n.mul(o,s)),s=n.sqr(s),e>>=ht;return o}function Sn(r,t,e=!1){let n=r,o=new Array(t.length).fill(e?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function iu(r,t){let e=r,n=(e.ORDER-ht)/Je,o=e.pow(t,n),s=e.eql(o,e.ONE),i=e.eql(o,e.ZERO),a=e.eql(o,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function qp(r,t){if(t!==void 0&&Ai(t),r<=St)throw new Error("invalid n length: expected positive n, got "+r);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let e=Ir(r);if(t!==void 0&&t<e)throw new Error(`invalid n length: expected bit length (${e}) >= n.length (${t})`);let n=t!==void 0?t:e,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var au=new WeakMap,Co=class{ORDER;BITS;BYTES;isLE;ZERO=St;ONE=ht;_lengths;_mod;constructor(t,e={}){if(t<=ht)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,e!=null&&typeof e=="object"&&(typeof e.BITS=="number"&&(n=e.BITS),typeof e.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:e.sqrt,enumerable:!0}),typeof e.isLE=="boolean"&&(this.isLE=e.isLE),e.allowedLengths&&(this._lengths=Object.freeze(e.allowedLengths.slice())),typeof e.modFromBytes=="boolean"&&(this._mod=e.modFromBytes));let{nBitLength:o,nByteLength:s}=qp(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return at(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return St<=t&&t<this.ORDER}is0(t){return t===St}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&ht)===ht}neg(t){return at(-t,this.ORDER)}eql(t,e){return t===e}sqr(t){return at(t*t,this.ORDER)}add(t,e){return at(t+e,this.ORDER)}sub(t,e){return at(t-e,this.ORDER)}mul(t,e){return at(t*e,this.ORDER)}pow(t,e){return zp(this,t,e)}div(t,e){return at(t*su(e,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,e){return t+e}subN(t,e){return t-e}mulN(t,e){return t*e}inv(t){return su(t,this.ORDER)}sqrt(t){let e=au.get(this);return e||au.set(this,e=Hp(this.ORDER)),e(this,t)}toBytes(t){return this.isLE?xn(t,this.BYTES):_o(t,this.BYTES)}fromBytes(t,e=!1){V(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?Pt(t):Qe(t);if(a&&(c=at(c,i)),!e&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return Sn(this,t)}cmov(t,e,n){return jt(n,"condition"),n?e:t}};Object.freeze(Co.prototype);function Cr(r,t={}){return new Co(r,t)}function mu(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=ht)throw new Error("field order must be greater than 1");let t=Ir(r-ht);return Math.ceil(t/8)}function _i(r){let t=mu(r);return t+Math.ceil(t/2)}function Ii(r,t,e=!1){V(r);let n=r.length,o=mu(t),s=Math.max(_i(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=e?Pt(r):Qe(r),a=at(i,t-ht)+ht;return e?xn(a,o):_o(a,o)}var Tr=BigInt(0),tr=BigInt(1);function An(r,t){let e=t.negate();return r?e:t}function er(r,t){let e=Sn(r.Fp,t.map(n=>n.Z));return t.map((n,o)=>r.fromAffine(n.toAffine(e[o])))}function wu(r,t){if(!Number.isSafeInteger(r)||r<=0||r>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+r)}function Ci(r,t){wu(r,t);let e=Math.ceil(t/r)+1,n=2**(r-1),o=2**r,s=En(r),i=BigInt(r);return{windows:e,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function yu(r,t,e){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=e,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=tr);let f=t*n,u=f+Math.abs(a)-1,h=a===0,y=a<0,d=t%2!==0;return{nextN:c,offset:u,isZero:h,isNeg:y,isNegF:d,offsetF:f}}var Ti=new WeakMap,xu=new WeakMap;function Di(r){return xu.get(r)||1}function gu(r){if(r!==Tr)throw new Error("invalid wNAF")}var Dr=class{BASE;ZERO;Fn;bits;constructor(t,e){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=e}_unsafeLadder(t,e,n=this.ZERO){let o=t;for(;e>Tr;)e&tr&&(n=n.add(o)),o=o.double(),e>>=tr;return n}precomputeWindow(t,e){let{windows:n,windowSize:o}=Ci(e,this.bits),s=[],i=t,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let f=1;f<o;f++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(t,e,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Ci(t,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:h,isNegF:y,offsetF:d}=yu(n,a,i);n=c,u?s=s.add(An(y,e[d])):o=o.add(An(h,e[f]))}return gu(n),{p:o,f:s}}wNAFUnsafe(t,e,n,o=this.ZERO){let s=Ci(t,this.bits);for(let i=0;i<s.windows&&n!==Tr;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=yu(n,i,s);if(n=a,!f){let h=e[c];o=o.add(u?h.negate():h)}}return gu(n),o}getPrecomputes(t,e,n){let o=Ti.get(e);return o||(o=this.precomputeWindow(e,t),t!==1&&(typeof n=="function"&&(o=n(o)),Ti.set(e,o))),o}cached(t,e,n){let o=Di(t);return this.wNAF(o,this.getPrecomputes(o,t,n),e)}unsafe(t,e,n,o){let s=Di(t);return s===1?this._unsafeLadder(t,e,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,n),e,o)}createCache(t,e){wu(e,this.bits),xu.set(t,e),Ti.delete(t)}hasCache(t){return Di(t)!==1}};function Eu(r,t,e,n){let o=t,s=r.ZERO,i=r.ZERO;for(;e>Tr||n>Tr;)e&tr&&(s=s.add(o)),n&tr&&(i=i.add(o)),o=o.double(),e>>=tr,n>>=tr;return{p1:s,p2:i}}function bu(r,t,e){if(t){if(t.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Li(t),t}else return Cr(r,{isLE:e})}function To(r,t,e={},n){if(n===void 0&&(n=r==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let f=t[c];if(!(typeof f=="bigint"&&f>Tr))throw new Error(`CURVE.${c} must be positive bigint`)}let o=bu(t.p,e.Fp,n),s=bu(t.n,e.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Rr(r,t){return function(n){let o=r(n);return{secretKey:o,publicKey:t(o)}}}var Re=BigInt(0),bt=BigInt(1),Ri=BigInt(2),$p=BigInt(8);function jp(r,t,e,n){let o=r.sqr(e),s=r.sqr(n),i=r.add(r.mul(t.a,o),s),a=r.add(r.ONE,r.mul(t.d,r.mul(o,s)));return r.eql(i,a)}function Su(r,t={}){let e=t,n=To("edwards",r,e,e.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;Nt(e,{},{uvRatio:"function"});let c=Ri<<BigInt(s.BYTES*8)-bt,f=S=>o.create(S),u=e.uvRatio===void 0?(S,l)=>{try{return{isValid:!0,value:o.sqrt(o.div(S,l))}}catch{return{isValid:!1,value:Re}}}:e.uvRatio;if(!jp(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function h(S,l,m=!1){let v=m?bt:Re;return me("coordinate "+S,l,v,c),l}function y(S){if(!(S instanceof d))throw new Error("EdwardsPoint expected")}class d{static BASE=new d(i.Gx,i.Gy,bt,f(i.Gx*i.Gy));static ZERO=new d(Re,bt,bt,Re);static Fp=o;static Fn=s;X;Y;Z;T;constructor(l,m,v,_){this.X=h("x",l),this.Y=h("y",m),this.Z=h("z",v,!0),this.T=h("t",_),Object.freeze(this)}static CURVE(){return i}static fromAffine(l){if(l instanceof d)throw new Error("extended point not allowed");let{x:m,y:v}=l||{};return h("x",m),h("y",v),new d(m,v,bt,f(m*v))}static fromBytes(l,m=!1){let v=o.BYTES,{a:_,d:R}=i;l=De(V(l,v,"point")),jt(m,"zip215");let D=De(l),N=l[v-1];D[v-1]=N&-129;let T=Pt(D),I=m?c:o.ORDER;me("point.y",T,Re,I);let U=f(T*T),M=f(U-bt),P=f(R*U-_),{isValid:p,value:A}=u(M,P);if(!p)throw new Error("bad point: invalid y coordinate");let E=(A&bt)===bt,w=(N&128)!==0;if(!m&&A===Re&&w)throw new Error("bad point: x=0 and x_0=1");return w!==E&&(A=f(-A)),d.fromAffine({x:A,y:T})}static fromHex(l,m=!1){return d.fromBytes(_r(l),m)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(l=8,m=!0){return g.createCache(this,l),m||this.multiply(Ri),this}assertValidity(){let l=this,{a:m,d:v}=i;if(l.is0())throw new Error("bad point: ZERO");let{X:_,Y:R,Z:D,T:N}=l,T=f(_*_),I=f(R*R),U=f(D*D),M=f(U*U),P=f(T*m),p=f(U*f(P+I)),A=f(M+f(v*f(T*I)));if(p!==A)throw new Error("bad point: equation left != right (1)");let E=f(_*R),w=f(D*N);if(E!==w)throw new Error("bad point: equation left != right (2)")}equals(l){y(l);let{X:m,Y:v,Z:_}=this,{X:R,Y:D,Z:N}=l,T=f(m*N),I=f(R*_),U=f(v*N),M=f(D*_);return T===I&&U===M}is0(){return this.equals(d.ZERO)}negate(){return new d(f(-this.X),this.Y,this.Z,f(-this.T))}double(){let{a:l}=i,{X:m,Y:v,Z:_}=this,R=f(m*m),D=f(v*v),N=f(Ri*f(_*_)),T=f(l*R),I=m+v,U=f(f(I*I)-R-D),M=T+D,P=M-N,p=T-D,A=f(U*P),E=f(M*p),w=f(U*p),b=f(P*M);return new d(A,E,b,w)}add(l){y(l);let{a:m,d:v}=i,{X:_,Y:R,Z:D,T:N}=this,{X:T,Y:I,Z:U,T:M}=l,P=f(_*T),p=f(R*I),A=f(N*v*M),E=f(D*U),w=f((_+R)*(T+I)-P-p),b=E-A,B=E+A,L=f(p-m*P),x=f(w*b),C=f(B*L),O=f(w*L),k=f(b*B);return new d(x,C,k,O)}subtract(l){return y(l),this.add(l.negate())}multiply(l){if(!s.isValidNot0(l))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:m,f:v}=g.cached(this,l,_=>er(d,_));return er(d,[m,v])[0]}multiplyUnsafe(l){if(!s.isValid(l))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return l===Re?d.ZERO:this.is0()||l===bt?this:g.unsafe(this,l,m=>er(d,m))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return g.unsafe(this,i.n).is0()}toAffine(l){let m=this,v=l,{X:_,Y:R,Z:D}=m,N=m.is0();v==null&&(v=N?$p:o.inv(D));let T=f(_*v),I=f(R*v),U=o.mul(D,v);if(N)return{x:Re,y:bt};if(U!==bt)throw new Error("invZ was invalid");return{x:T,y:I}}clearCofactor(){return a===bt?this:this.multiplyUnsafe(a)}toBytes(){let{x:l,y:m}=this.toAffine(),v=o.toBytes(m);return v[v.length-1]|=l&bt?128:0,v}toHex(){return Lr(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let g=new Dr(d,s.BITS);return s.BITS>=8&&d.BASE.precompute(8),Object.freeze(d.prototype),Object.freeze(d),d}var Do=class{static BASE;static ZERO;static Fp;static Fn;ep;constructor(t){this.ep=t}static fromBytes(t){vi()}static fromHex(t){vi()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return Lr(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,e){return this.ep.precompute(t,e),this}};function Au(r,t,e={}){if(typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=e;Nt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(Wt(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?Xe:o.randomBytes,y=o.adjustScalarBytes===void 0?p=>p:o.adjustScalarBytes,d=o.domain===void 0?(p,A,E)=>{if(jt(E,"phflag"),A.length||E)throw new Error("Contexts/pre-hash are not supported");return p}:o.domain;function g(p){return c.create(Pt(p))}function S(p){let A=T.secretKey;V(p,T.secretKey,"secretKey");let E=V(n(p),2*A,"hashedSecretKey"),w=y(E.slice(0,A)),b=E.slice(A,2*A),B=g(w);return{head:w,prefix:b,scalar:B}}function l(p){let{head:A,prefix:E,scalar:w}=S(p),b=i.multiply(w),B=b.toBytes();return{head:A,prefix:E,scalar:w,point:b,pointBytes:B}}function m(p){return l(p).pointBytes}function v(p=Uint8Array.of(),...A){let E=mt(...A);return g(n(d(E,V(p,void 0,"context"),!!s)))}function _(p,A,E={}){p=V(p,void 0,"message"),s&&(p=s(p));let{prefix:w,scalar:b,pointBytes:B}=l(A),L=v(E.context,w,p),x=i.multiply(L).toBytes(),C=v(E.context,x,B,p),O=c.create(L+C*b);if(!c.isValid(O))throw new Error("sign failed: invalid s");let k=mt(x,c.toBytes(O));return V(k,T.signature,"result")}let R={zip215:o.zip215};function D(p,A,E,w=R){let{context:b}=w,B=w.zip215===void 0?!!R.zip215:w.zip215,L=T.signature;p=V(p,L,"signature"),A=V(A,void 0,"message"),E=V(E,T.publicKey,"publicKey"),B!==void 0&&jt(B,"zip215"),s&&(A=s(A));let x=L/2,C=p.subarray(0,x),O=Pt(p.subarray(x,L)),k,H,K;try{k=r.fromBytes(E,B),H=r.fromBytes(C,B),K=i.multiplyUnsafe(O)}catch{return!1}if(!B&&k.isSmallOrder())return!1;let Z=v(b,C,E,A);return H.add(k.multiplyUnsafe(Z)).subtract(K).clearCofactor().is0()}let N=a.BYTES,T={secretKey:N,publicKey:N,signature:2*N,seed:N};function I(p){return p=p===void 0?h(T.seed):p,V(p,T.seed,"seed")}function U(p){return Ye(p)&&p.length===T.secretKey}function M(p,A){try{return!!r.fromBytes(p,A===void 0?R.zip215:A)}catch{return!1}}let P={getExtendedPublicKey:l,randomSecretKey:I,isValidSecretKey:U,isValidPublicKey:M,toMontgomery(p){let{y:A}=r.fromBytes(p),E=T.publicKey,w=E===32;if(!w&&E!==57)throw new Error("only defined for 25519 and 448");let b=w?a.div(bt+A,bt-A):a.div(A-bt,A+bt);return a.toBytes(b)},toMontgomerySecret(p){let A=T.secretKey;V(p,A);let E=n(p.subarray(0,A));return y(E).subarray(0,A)}};return Object.freeze(T),Object.freeze(P),Object.freeze({keygen:Rr(I,m),getPublicKey:m,sign:_,verify:D,utils:P,Point:r,lengths:T})}function vn(r,t){if(Wt(r),Wt(t),t<0||t>4)throw new Error("invalid I2OSP length: "+t);if(r<0||r>2**(8*t)-1)throw new Error("invalid I2OSP input: "+r);let e=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)e[n]=r&255,r>>>=8;return new Uint8Array(e)}function Wp(r,t){let e=new Uint8Array(r.length);for(let n=0;n<r.length;n++)e[n]=r[n]^t[n];return e}function Gp(r){if(!Ye(r)&&typeof r!="string")throw new Error("DST must be Uint8Array or ascii string");let t=typeof r=="string"?Io(r):r;if(t.length===0)throw new Error("DST must be non-empty");return t}function Oi(r,t,e,n){V(r),Wt(e),t=Gp(t),t.length>255&&(t=n(mt(Io("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:s}=n,i=Math.ceil(e/o);if(e>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=mt(t,vn(t.length,1)),c=new Uint8Array(s),f=vn(e,2),u=new Array(i),h=n(mt(c,r,f,vn(0,1),a));u[0]=n(mt(h,vn(1,1),a));for(let d=1;d<i;d++){let g=[Wp(h,u[d-1]),vn(d+1,1),a];u[d]=n(mt(...g))}return mt(...u).slice(0,e)}var vu="HashToScalar-";var Bn=BigInt(0),Or=BigInt(1),Ro=BigInt(2);function Zp(r){return Nt(r,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function"}),Object.freeze({...r})}function Bu(r){let t=Zp(r),{P:e,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let c=i===void 0?Xe:i,f=a?255:448,u=a?32:56,h=BigInt(a?9:5),y=BigInt(a?121665:39081),d=a?Ro**BigInt(254):Ro**BigInt(447),g=a?BigInt(8)*Ro**BigInt(251)-Or:BigInt(4)*Ro**BigInt(445)-Or,S=d+g+Or,l=E=>at(E,e),m=v(h);function v(E){return xn(l(E),u)}function _(E){let w=De(V(E,u,"uCoordinate"));return a&&(w[31]&=127),l(Pt(w))}function R(E){return Pt(o(De(V(E,u,"scalar"))))}function D(E,w){let b=M(_(w),R(E));if(b===Bn)throw new Error("invalid private or public key received");return v(b)}function N(E){return D(E,m)}let T=N,I=D;function U(E,w,b){let B=l(E*(w-b));return w=l(w-B),b=l(b+B),{x_2:w,x_3:b}}function M(E,w){me("u",E,Bn,e),me("scalar",w,d,S);let b=w,B=E,L=Or,x=Bn,C=E,O=Or,k=Bn;for(let K=BigInt(f-1);K>=Bn;K--){let Z=b>>K&Or;k^=Z,{x_2:L,x_3:C}=U(k,L,C),{x_2:x,x_3:O}=U(k,x,O),k=Z;let Y=L+x,X=l(Y*Y),$=L-x,st=l($*$),ue=X-st,Ve=C+O,mr=C-O,on=l(mr*Y),sn=l(Ve*$),hf=on+sn,lf=on-sn;C=l(hf*hf),O=l(B*l(lf*lf)),L=l(X*st),x=l(ue*(X+l(y*ue)))}({x_2:L,x_3:C}=U(k,L,C)),{x_2:x,x_3:O}=U(k,x,O);let H=s(x);return l(L*H)}let P={secretKey:u,publicKey:u,seed:u},p=E=>(E=E===void 0?c(u):E,V(E,P.seed,"seed"),E),A={randomSecretKey:p};return Object.freeze(P),Object.freeze(A),Object.freeze({keygen:Rr(p,T),getSharedSecret:I,getPublicKey:T,scalarMult:D,scalarMultBase:N,utils:A,GuBytes:m.slice(),lengths:P})}var Yp=BigInt(0),ge=BigInt(1),Lu=BigInt(2),Xp=BigInt(3),Qp=BigInt(5),Jp=BigInt(8),rr=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Mi={p:rr,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Jp,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Cu(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),o=BigInt(80),s=rr,a=r*r%s*r%s,c=rt(a,Lu,s)*a%s,f=rt(c,ge,s)*r%s,u=rt(f,Qp,s)*f%s,h=rt(u,t,s)*u%s,y=rt(h,e,s)*h%s,d=rt(y,n,s)*y%s,g=rt(d,o,s)*d%s,S=rt(g,o,s)*d%s,l=rt(S,t,s)*u%s;return{pow_p_5_8:rt(l,Lu,s)*r%s,b2:a}}function Tu(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Ui=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ki(r,t){let e=rr,n=at(t*t*t,e),o=at(n*n*t,e),s=Cu(r*o).pow_p_5_8,i=at(r*n*s,e),a=at(t*i*i,e),c=i,f=at(i*Ui,e),u=a===r,h=a===at(-r,e),y=a===at(-r*Ui,e);return u&&(i=c),(h||y)&&(i=f),ye(i,e)&&(i=at(-i,e)),{isValid:u||h,value:i}}var Ue=Su(Mi,{uvRatio:ki}),Oe=Ue.Fp,Du=Ue.Fn;function tm(r){return Au(Ue,Ao,Object.assign({adjustScalarBytes:Tu,zip215:!0},r))}var Ru=tm({});var Ln=(()=>{let r=rr;return Bu({P:r,type:"x25519",powPminus2:t=>{let{pow_p_5_8:e,b2:n}=Cu(t);return at(rt(e,Xp,r)*n,r)},adjustScalarBytes:Tu})})();var Pi=Ui,em=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),rm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),nm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),om=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),_u=r=>ki(ge,r),sm=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Ni=r=>Oe.create(Pt(r)&sm);function Iu(r){let{d:t}=Mi,e=rr,n=m=>Oe.create(m),o=n(Pi*r*r),s=n((o+ge)*nm),i=BigInt(-1),a=n((i-t*o)*n(o+t)),{isValid:c,value:f}=ki(s,a),u=n(f*r);ye(u,e)||(u=n(-u)),c||(f=u),c||(i=o);let h=n(i*(o-ge)*om-a),y=f*f,d=n((f+f)*a),g=n(h*em),S=n(ge-y),l=n(ge+y);return new Ue(n(d*l),n(S*g),n(g*l),n(d*S))}var Pe=class r extends Do{static BASE=new r(Ue.BASE);static ZERO=new r(Ue.ZERO);static Fp=Oe;static Fn=Du;constructor(t){super(t)}static fromAffine(t){return new r(Ue.fromAffine(t))}assertSame(t){if(!(t instanceof r))throw new Error("RistrettoPoint expected")}init(t){return new r(t)}static fromBytes(t){Lt(t,32);let{a:e,d:n}=Mi,o=rr,s=R=>Oe.create(R),i=Ni(t);if(!nu(Oe.toBytes(i),t)||ye(i,o))throw new Error("invalid ristretto255 encoding 1");let a=s(i*i),c=s(ge+e*a),f=s(ge-e*a),u=s(c*c),h=s(f*f),y=s(e*n*u-h),{isValid:d,value:g}=_u(s(y*h)),S=s(g*f),l=s(g*S*y),m=s((i+i)*S);ye(m,o)&&(m=s(-m));let v=s(c*l),_=s(m*v);if(!d||ye(_,o)||v===Yp)throw new Error("invalid ristretto255 encoding 2");return new r(new Ue(m,v,ge,_))}static fromHex(t){return r.fromBytes(mn(t))}toBytes(){let{X:t,Y:e,Z:n,T:o}=this.ep,s=rr,i=l=>Oe.create(l),a=i(i(n+e)*i(n-e)),c=i(t*e),f=i(c*c),{value:u}=_u(i(a*f)),h=i(u*a),y=i(u*c),d=i(h*y*o),g;if(ye(o*d,s)){let l=i(e*Pi),m=i(t*Pi);t=l,e=m,g=i(h*rm)}else g=y;ye(t*d,s)&&(e=i(-e));let S=i((n-e)*g);return ye(S,s)&&(S=i(-S)),Oe.toBytes(S)}equals(t){this.assertSame(t);let{X:e,Y:n}=this.ep,{X:o,Y:s}=t.ep,i=f=>Oe.create(f),a=i(e*s)===i(n*o),c=i(n*s)===i(e*o);return a||c}is0(){return this.equals(r.ZERO)}};Object.freeze(Pe.BASE);Object.freeze(Pe.ZERO);Object.freeze(Pe.prototype);Object.freeze(Pe);var im=Object.freeze({Point:Pe,hashToCurve(r,t){let e=t?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":t.DST,n=Oi(r,e,64,Ao);return im.deriveToCurve(n)},hashToScalar(r,t={DST:vu}){let e=Oi(r,t.DST,64,Ao);return Du.create(Pt(e))},deriveToCurve(r){Lt(r,64);let t=Ni(r.subarray(0,32)),e=Iu(t),n=Ni(r.subarray(32,64)),o=Iu(n);return new Pe(e.add(o))}});var _n=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Oo=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Kt={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new Oo("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var Uo=32;var Fi,am=(async()=>{try{return await Kt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function cm(r,t,e){if(r.buffer instanceof ArrayBuffer){let n=await Kt.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await Kt.get().subtle.verify({name:"Ed25519"},n,xt(t),xt(e instanceof Uint8Array?e:e.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function fm(r,t,e){return Ru.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}async function Ou(r,t,e){return Fi==null&&(Fi=await am),Fi?cm(r,t,e):fm(r,t,e)}function Po(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var No=class{type="Ed25519";raw;constructor(t){this.raw=Ki(t,Uo)}toMultihash(){return zt.digest(_e(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ut.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:pt(this.raw,t.raw)}verify(t,e,n){n?.signal?.throwIfAborted();let o=Ou(this.raw,e,t);return Po(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Hi(r){return r=Ki(r,Uo),new No(r)}function Ki(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new Q(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}var hm=Math.pow(2,7),lm=Math.pow(2,14),dm=Math.pow(2,21),Vi=Math.pow(2,28),zi=Math.pow(2,35),qi=Math.pow(2,42),$i=Math.pow(2,49),G=128,_t=127;function It(r){if(r<hm)return 1;if(r<lm)return 2;if(r<dm)return 3;if(r<Vi)return 4;if(r<zi)return 5;if(r<qi)return 6;if(r<$i)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Ur(r,t,e=0){switch(It(r)){case 8:t[e++]=r&255|G,r/=128;case 7:t[e++]=r&255|G,r/=128;case 6:t[e++]=r&255|G,r/=128;case 5:t[e++]=r&255|G,r/=128;case 4:t[e++]=r&255|G,r>>>=7;case 3:t[e++]=r&255|G,r>>>=7;case 2:t[e++]=r&255|G,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function pm(r,t,e=0){switch(It(r)){case 8:t.set(e++,r&255|G),r/=128;case 7:t.set(e++,r&255|G),r/=128;case 6:t.set(e++,r&255|G),r/=128;case 5:t.set(e++,r&255|G),r/=128;case 4:t.set(e++,r&255|G),r>>>=7;case 3:t.set(e++,r&255|G),r>>>=7;case 2:t.set(e++,r&255|G),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function ji(r,t){let e=r[t],n=0;if(n+=e&_t,e<G||(e=r[t+1],n+=(e&_t)<<7,e<G)||(e=r[t+2],n+=(e&_t)<<14,e<G)||(e=r[t+3],n+=(e&_t)<<21,e<G)||(e=r[t+4],n+=(e&_t)*Vi,e<G)||(e=r[t+5],n+=(e&_t)*zi,e<G)||(e=r[t+6],n+=(e&_t)*qi,e<G)||(e=r[t+7],n+=(e&_t)*$i,e<G))return n;throw new RangeError("Could not decode varint")}function mm(r,t){let e=r.get(t),n=0;if(n+=e&_t,e<G||(e=r.get(t+1),n+=(e&_t)<<7,e<G)||(e=r.get(t+2),n+=(e&_t)<<14,e<G)||(e=r.get(t+3),n+=(e&_t)<<21,e<G)||(e=r.get(t+4),n+=(e&_t)*Vi,e<G)||(e=r.get(t+5),n+=(e&_t)*zi,e<G)||(e=r.get(t+6),n+=(e&_t)*qi,e<G)||(e=r.get(t+7),n+=(e&_t)*$i,e<G))return n;throw new RangeError("Could not decode varint")}function Pu(r,t,e=0){return t==null&&(t=Bt(It(r))),t instanceof Uint8Array?Ur(r,t,e):pm(r,t,e)}function nr(r,t=0){return r instanceof Uint8Array?ji(r,t):mm(r,t)}var Gi=new Float32Array([-0]),Ne=new Uint8Array(Gi.buffer);function Nu(r,t,e){Gi[0]=r,t[e]=Ne[0],t[e+1]=Ne[1],t[e+2]=Ne[2],t[e+3]=Ne[3]}function Mu(r,t){return Ne[0]=r[t],Ne[1]=r[t+1],Ne[2]=r[t+2],Ne[3]=r[t+3],Gi[0]}var Zi=new Float64Array([-0]),Ct=new Uint8Array(Zi.buffer);function ku(r,t,e){Zi[0]=r,t[e]=Ct[0],t[e+1]=Ct[1],t[e+2]=Ct[2],t[e+3]=Ct[3],t[e+4]=Ct[4],t[e+5]=Ct[5],t[e+6]=Ct[6],t[e+7]=Ct[7]}function Fu(r,t){return Ct[0]=r[t],Ct[1]=r[t+1],Ct[2]=r[t+2],Ct[3]=r[t+3],Ct[4]=r[t+4],Ct[5]=r[t+5],Ct[6]=r[t+6],Ct[7]=r[t+7],Zi[0]}var ym=BigInt(Number.MAX_SAFE_INTEGER),gm=BigInt(Number.MIN_SAFE_INTEGER),Mt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return or;if(t<ym&&t>gm)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>Ku&&(o=0n,++n>Ku&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return or;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):or}},or=new Mt(0,0);or.toBigInt=function(){return 0n};or.zzEncode=or.zzDecode=function(){return this};or.length=function(){return 1};var Ku=4294967296n;function Hu(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Vu(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Yi(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Gt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Mo(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Xi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=xt(t),this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Gt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Gt(this,4);return Mo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Gt(this,4);return Mo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Gt(this,4);let t=Mu(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Gt(this,4);let t=Fu(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Gt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Vu(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Gt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Gt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Mt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Gt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Gt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Gt(this,8);let t=Mo(this.buf,this.pos+=4),e=Mo(this.buf,this.pos+=4);return new Mt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=ji(this.buf,this.pos);return this.pos+=It(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function In(r){return new Xi(r instanceof Uint8Array?r:r.subarray())}function ko(r,t,e){let n=In(r);return t.decode(n,void 0,e)}function Qi(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return Bt(i);o+i>t&&(n=Bt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var sr=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Ji(){}var ea=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},bm=Qi();function wm(r){return globalThis.Buffer!=null?Bt(r):bm(r)}var Tn=class{len;head;tail;states;constructor(){this.len=0,this.head=new sr(Ji,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new sr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new ra((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Fo,10,Mt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Mt.fromBigInt(t);return this._push(Fo,e.length(),e)}uint64Number(t){return this._push(Ur,It(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Mt.fromBigInt(t).zzEncode();return this._push(Fo,e.length(),e)}sint64Number(t){let e=Mt.fromNumber(t).zzEncode();return this._push(Fo,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(ta,1,t?1:0)}fixed32(t){return this._push(Cn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Mt.fromBigInt(t);return this._push(Cn,4,e.lo)._push(Cn,4,e.hi)}fixed64Number(t){let e=Mt.fromNumber(t);return this._push(Cn,4,e.lo)._push(Cn,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Nu,4,t)}double(t){return this._push(ku,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(ta,1,0):this.uint32(e)._push(Em,e,t)}string(t){let e=Hu(t);return e!==0?this.uint32(e)._push(Yi,e,t):this._push(ta,1,0)}fork(){return this.states=new ea(this),this.head=this.tail=new sr(Ji,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new sr(Ji,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=wm(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function ta(r,t,e){t[e]=r&255}function xm(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var ra=class extends sr{next;constructor(t,e){super(xm,t,e),this.next=void 0}};function Fo(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Cn(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Em(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Tn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Sm,t,r),this},Tn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Am,t,r),this});function Sm(r,t,e){t.set(r,e)}function Am(r,t,e){r.length<40?Yi(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(et(r),e)}function na(){return new Tn}function Ko(r,t){let e=na();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}function*Ho(r,t,e){let n=In(r);yield*t.stream(n,void 0,"$",e)}var Vo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function zo(r,t,e,n,o){return{name:r,type:t,encode:e,decode:n,stream:o}}function oa(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return zo("enum",Vo.VARINT,e,n,o)}function qo(r,t,e){return zo("message",Vo.LENGTH_DELIMITED,r,t,e)}var ct;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(ct||(ct={}));var sa;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(sa||(sa={}));(function(r){r.codec=()=>oa(sa)})(ct||(ct={}));var ne;(function(r){let t;r.codec=()=>(t==null&&(t=qo((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ct.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ct.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ct.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return Ko(s,r.codec())}r.encode=e;function n(s,i){return ko(s,r.codec(),i)}r.decode=n;function o(s,i){return Ho(s,r.codec(),i)}r.stream=o})(ne||(ne={}));var ia;(function(r){let t;r.codec=()=>(t==null&&(t=qo((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ct.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ct.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ct.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return Ko(s,r.codec())}r.encode=e;function n(s,i){return ko(s,r.codec(),i)}r.decode=n;function o(s,i){return Ho(s,r.codec(),i)}r.stream=o})(ia||(ia={}));var Rn={};tt(Rn,{MAX_RSA_KEY_SIZE:()=>aa,generateRSAKeyPair:()=>Gu,jwkToJWKKeyPair:()=>Zu,jwkToPkcs1:()=>_m,jwkToPkix:()=>ha,jwkToRSAPrivateKey:()=>ma,pkcs1MessageToJwk:()=>fa,pkcs1MessageToRSAPrivateKey:()=>la,pkcs1ToJwk:()=>Lm,pkcs1ToRSAPrivateKey:()=>Wu,pkixMessageToJwk:()=>ua,pkixMessageToRSAPublicKey:()=>pa,pkixToJwk:()=>Im,pkixToRSAPublicKey:()=>da});var Pr=class{type="RSA";jwk;_raw;_multihash;constructor(t,e){this.jwk=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Rn.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return dt.createV1(114,this._multihash)}toString(){return ut.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:pt(this.raw,t.raw)}verify(t,e,n){return ju(this.jwk,e,t,n)}},Dn=class{type="RSA";jwk;_raw;publicKey;constructor(t,e){this.jwk=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Rn.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:pt(this.raw,t.raw)}sign(t,e){return $u(this.jwk,t,e)}};var aa=8192,ca=18,vm=1062,Bm=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function Lm(r){let t=le(r);return fa(t)}function fa(r){return{n:j(r[1],"base64url"),e:j(r[2],"base64url"),d:j(r[3],"base64url"),p:j(r[4],"base64url"),q:j(r[5],"base64url"),dp:j(r[6],"base64url"),dq:j(r[7],"base64url"),qi:j(r[8],"base64url"),kty:"RSA"}}function _m(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new Q("JWK was missing components");return Le([Ut(Uint8Array.from([0])),Ut(et(r.n,"base64url")),Ut(et(r.e,"base64url")),Ut(et(r.d,"base64url")),Ut(et(r.p,"base64url")),Ut(et(r.q,"base64url")),Ut(et(r.dp,"base64url")),Ut(et(r.dq,"base64url")),Ut(et(r.qi,"base64url"))]).subarray()}function Im(r){let t=le(r,{offset:0});return ua(t)}function ua(r){let t=le(r[1],{offset:0});return{kty:"RSA",n:j(t[0],"base64url"),e:j(t[1],"base64url")}}function ha(r){if(r.n==null||r.e==null)throw new Q("JWK was missing components");return Le([Bm,bo(Le([Ut(et(r.n,"base64url")),Ut(et(r.e,"base64url"))]))]).subarray()}function Wu(r){let t=le(r);return la(t)}function la(r){let t=fa(r);return ma(t)}function da(r,t){if(r.byteLength>=vm)throw new gr("Key size is too large");let e=le(r,{offset:0});return pa(e,r,t)}function pa(r,t,e){let n=ua(r);if(e==null){let o=re(ne.encode({Type:ct.RSA,Data:t}));e=Vt(ca,o)}return new Pr(n,e)}function ma(r){if(Xu(r)>aa)throw new Q("Key size is too large");let t=Zu(r),e=re(ne.encode({Type:ct.RSA,Data:ha(t.publicKey)})),n=Vt(ca,e);return new Dn(t.privateKey,new Pr(t.publicKey,n))}async function Gu(r){if(r>aa)throw new Q("Key size is too large");let t=await Yu(r),e=re(ne.encode({Type:ct.RSA,Data:ha(t.publicKey)})),n=Vt(ca,e);return new Dn(t.privateKey,new Pr(t.publicKey,n))}function Zu(r){if(r==null)throw new Q("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function Yu(r,t){let e=await Kt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await Cm(e,t);return{privateKey:n[0],publicKey:n[1]}}async function $u(r,t,e){let n=await Kt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);e?.signal?.throwIfAborted();let o=await Kt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,xt(t instanceof Uint8Array?t:t.subarray()));return e?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function ju(r,t,e,n){let o=await Kt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await Kt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,xt(t),xt(e instanceof Uint8Array?e:e.subarray()));return n?.signal?.throwIfAborted(),s}async function Cm(r,t){if(r.privateKey==null||r.publicKey==null)throw new Q("Private and public key are required");let e=await Promise.all([Kt.get().subtle.exportKey("jwk",r.privateKey),Kt.get().subtle.exportKey("jwk",r.publicKey)]);return t?.signal?.throwIfAborted(),e}function Xu(r){if(r.kty!=="RSA")throw new Q("invalid key type");if(r.n==null)throw new Q("invalid key modulus");return et(r.n,"base64url").length*8}var $o=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,e){if(We(t),Lt(e,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(e.length>n?t.create().update(e).digest():e);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),qt(o)}update(t){return Br(this),this.iHash.update(t),this}digestInto(t){Br(this),wo(t,this),this.finished=!0;let e=t.subarray(0,this.outputLen);this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:e,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},On=(()=>{let r=((t,e,n)=>new $o(t,e).update(n).digest());return r.create=(t,e)=>new $o(t,e),r})();var Qu=(r,t)=>(r+(r>=0?t:-t)/Ju)/t;function Tm(r,t,e){me("scalar",r,oe,e);let[[n,o],[s,i]]=t,a=Qu(i*r,e),c=Qu(-o*r,e),f=r-a*n-c*s,u=-a*o-c*i,h=f<oe,y=u<oe;h&&(f=-f),y&&(u=-u);let d=En(Math.ceil(Ir(e)/2))+Me;if(f<oe||f>=d||u<oe||u>=d)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:y,k2:u}}function ga(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ya(r,t){Nt(r);let e={};for(let n of Object.keys(t))e[n]=r[n]===void 0?t[n]:r[n];return jt(e.lowS,"lowS"),jt(e.prehash,"prehash"),e.format!==void 0&&ga(e.format),e}var ba=class extends Error{constructor(t=""){super(t)}},Zt={Err:ba,_tlv:{encode:(r,t)=>{let{Err:e}=Zt;if(Wt(r,"tag"),r<0||r>255)throw new e("tlv.encode: wrong tag");if(typeof t!="string")throw new TypeError('"data" expected string, got type='+typeof t);if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,o=wn(n);if(o.length/2&128)throw new e("tlv.encode: long form length too big");let s=n>127?wn(o.length/2|128):"";return wn(r)+s+o+t},decode(r,t){let{Err:e}=Zt;t=V(t,void 0,"DER data");let n=0;if(r<0||r>255)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=Zt;if(Lo(r),r<oe)throw new t("integer: negative integers are not allowed");let e=wn(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=Zt;if(r.length<1)throw new t("invalid signature integer: empty");if(r[0]&128)throw new t("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Qe(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=Zt,o=V(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=Zt,n=t.encode(2,e.encode(r.r)),o=t.encode(2,e.encode(r.s)),s=n+o;return t.encode(48,s)}};Object.freeze(Zt._tlv);Object.freeze(Zt._int);Object.freeze(Zt);var oe=BigInt(0),Me=BigInt(1),Ju=BigInt(2),jo=BigInt(3),Dm=BigInt(4);function th(r,t={}){let e=To("weierstrass",r,t),n=e.Fp,o=e.Fn,s=e.CURVE,{h:i,n:a}=s;Nt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:f}=t;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=rh(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function y(P,p,A){if(f&&p.is0())return Uint8Array.of(0);let{x:E,y:w}=p.toAffine(),b=n.toBytes(E);if(jt(A,"isCompressed"),A){h();let B=!n.isOdd(w);return mt(eh(B),b)}else return mt(Uint8Array.of(4),b,n.toBytes(w))}function d(P){V(P,void 0,"Point");let{publicKey:p,publicKeyUncompressed:A}=u,E=P.length,w=P[0],b=P.subarray(1);if(f&&E===1&&w===0)return{x:n.ZERO,y:n.ZERO};if(E===p&&(w===2||w===3)){let B=n.fromBytes(b);if(!n.isValid(B))throw new Error("bad point: is not on curve, wrong x");let L=l(B),x;try{x=n.sqrt(L)}catch(k){let H=k instanceof Error?": "+k.message:"";throw new Error("bad point: is not on curve, sqrt error"+H)}h();let C=n.isOdd(x);return(w&1)===1!==C&&(x=n.neg(x)),{x:B,y:x}}else if(E===A&&w===4){let B=n.BYTES,L=n.fromBytes(b.subarray(0,B)),x=n.fromBytes(b.subarray(B,B*2));if(!m(L,x))throw new Error("bad point: is not on curve");return{x:L,y:x}}else throw new Error(`bad point: got length ${E}, expected compressed=${p} or uncompressed=${A}`)}let g=t.toBytes===void 0?y:t.toBytes,S=t.fromBytes===void 0?d:t.fromBytes;function l(P){let p=n.sqr(P),A=n.mul(p,P);return n.add(n.add(A,n.mul(P,s.a)),s.b)}function m(P,p){let A=n.sqr(p),E=l(P);return n.eql(A,E)}if(!m(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let v=n.mul(n.pow(s.a,jo),Dm),_=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(v,_)))throw new Error("bad curve params: a or b");function R(P,p,A=!1){if(!n.isValid(p)||A&&n.is0(p))throw new Error(`bad point coordinate ${P}`);return p}function D(P){if(!(P instanceof I))throw new Error("Weierstrass Point expected")}function N(P){if(!c||!c.basises)throw new Error("no endo");return Tm(P,c.basises,o.ORDER)}function T(P,p,A,E,w){return A=new I(n.mul(A.X,P),A.Y,A.Z),p=An(E,p),A=An(w,A),p.add(A)}class I{static BASE=new I(s.Gx,s.Gy,n.ONE);static ZERO=new I(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(p,A,E){this.X=R("x",p),this.Y=R("y",A,!0),this.Z=R("z",E),Object.freeze(this)}static CURVE(){return s}static fromAffine(p){let{x:A,y:E}=p||{};if(!p||!n.isValid(A)||!n.isValid(E))throw new Error("invalid affine point");if(p instanceof I)throw new Error("projective point not allowed");return n.is0(A)&&n.is0(E)?I.ZERO:new I(A,E,n.ONE)}static fromBytes(p){let A=I.fromAffine(S(V(p,void 0,"point")));return A.assertValidity(),A}static fromHex(p){return I.fromBytes(_r(p))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(p=8,A=!0){return M.createCache(this,p),A||this.multiply(jo),this}assertValidity(){let p=this;if(p.is0()){if(t.allowInfinityPoint&&n.is0(p.X)&&n.eql(p.Y,n.ONE)&&n.is0(p.Z))return;throw new Error("bad point: ZERO")}let{x:A,y:E}=p.toAffine();if(!n.isValid(A)||!n.isValid(E))throw new Error("bad point: x or y not field elements");if(!m(A,E))throw new Error("bad point: equation left != right");if(!p.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(p)}equals(p){D(p);let{X:A,Y:E,Z:w}=this,{X:b,Y:B,Z:L}=p,x=n.eql(n.mul(A,L),n.mul(b,w)),C=n.eql(n.mul(E,L),n.mul(B,w));return x&&C}negate(){return new I(this.X,n.neg(this.Y),this.Z)}double(){let{a:p,b:A}=s,E=n.mul(A,jo),{X:w,Y:b,Z:B}=this,L=n.ZERO,x=n.ZERO,C=n.ZERO,O=n.mul(w,w),k=n.mul(b,b),H=n.mul(B,B),K=n.mul(w,b);return K=n.add(K,K),C=n.mul(w,B),C=n.add(C,C),L=n.mul(p,C),x=n.mul(E,H),x=n.add(L,x),L=n.sub(k,x),x=n.add(k,x),x=n.mul(L,x),L=n.mul(K,L),C=n.mul(E,C),H=n.mul(p,H),K=n.sub(O,H),K=n.mul(p,K),K=n.add(K,C),C=n.add(O,O),O=n.add(C,O),O=n.add(O,H),O=n.mul(O,K),x=n.add(x,O),H=n.mul(b,B),H=n.add(H,H),O=n.mul(H,K),L=n.sub(L,O),C=n.mul(H,k),C=n.add(C,C),C=n.add(C,C),new I(L,x,C)}add(p){D(p);let{X:A,Y:E,Z:w}=this,{X:b,Y:B,Z:L}=p,x=n.ZERO,C=n.ZERO,O=n.ZERO,k=s.a,H=n.mul(s.b,jo),K=n.mul(A,b),Z=n.mul(E,B),Y=n.mul(w,L),X=n.add(A,E),$=n.add(b,B);X=n.mul(X,$),$=n.add(K,Z),X=n.sub(X,$),$=n.add(A,w);let st=n.add(b,L);return $=n.mul($,st),st=n.add(K,Y),$=n.sub($,st),st=n.add(E,w),x=n.add(B,L),st=n.mul(st,x),x=n.add(Z,Y),st=n.sub(st,x),O=n.mul(k,$),x=n.mul(H,Y),O=n.add(x,O),x=n.sub(Z,O),O=n.add(Z,O),C=n.mul(x,O),Z=n.add(K,K),Z=n.add(Z,K),Y=n.mul(k,Y),$=n.mul(H,$),Z=n.add(Z,Y),Y=n.sub(K,Y),Y=n.mul(k,Y),$=n.add($,Y),K=n.mul(Z,$),C=n.add(C,K),K=n.mul(st,$),x=n.mul(X,x),x=n.sub(x,K),K=n.mul(X,Z),O=n.mul(st,O),O=n.add(O,K),new I(x,C,O)}subtract(p){return D(p),this.add(p.negate())}is0(){return this.equals(I.ZERO)}multiply(p){let{endo:A}=t;if(!o.isValidNot0(p))throw new RangeError("invalid scalar: out of range");let E,w,b=B=>M.cached(this,B,L=>er(I,L));if(A){let{k1neg:B,k1:L,k2neg:x,k2:C}=N(p),{p:O,f:k}=b(L),{p:H,f:K}=b(C);w=k.add(K),E=T(A.beta,O,H,B,x)}else{let{p:B,f:L}=b(p);E=B,w=L}return er(I,[E,w])[0]}multiplyUnsafe(p){let{endo:A}=t,E=this,w=p;if(!o.isValid(w))throw new RangeError("invalid scalar: out of range");if(w===oe||E.is0())return I.ZERO;if(w===Me)return E;if(M.hasCache(this))return this.multiply(w);if(A){let{k1neg:b,k1:B,k2neg:L,k2:x}=N(w),{p1:C,p2:O}=Eu(I,E,B,x);return T(A.beta,C,O,b,L)}else return M.unsafe(E,w)}toAffine(p){let A=this,E=p,{X:w,Y:b,Z:B}=A;if(n.eql(B,n.ONE))return{x:w,y:b};let L=A.is0();E==null&&(E=L?n.ONE:n.inv(B));let x=n.mul(w,E),C=n.mul(b,E),O=n.mul(B,E);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x,y:C}}isTorsionFree(){let{isTorsionFree:p}=t;return i===Me?!0:p?p(I,this):M.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:p}=t;return i===Me?this:p?p(I,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===Me?this.is0():this.clearCofactor().is0()}toBytes(p=!0){return jt(p,"isCompressed"),this.assertValidity(),g(I,this,p)}toHex(p=!0){return Lr(this.toBytes(p))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let U=o.BITS,M=new Dr(I,t.endo?Math.ceil(U/2):U);return U>=8&&I.BASE.precompute(8),Object.freeze(I.prototype),Object.freeze(I),I}function eh(r){return Uint8Array.of(r?2:3)}function rh(r,t){return{secretKey:t.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Rm(r,t={}){let{Fn:e}=r,n=t.randomBytes===void 0?Xe:t.randomBytes,o=Object.assign(rh(r.Fp,e),{seed:Math.max(_i(e.ORDER),16)});function s(d){try{let g=e.fromBytes(d);return e.isValidNot0(g)}catch{return!1}}function i(d,g){let{publicKey:S,publicKeyUncompressed:l}=o;try{let m=d.length;return g===!0&&m!==S||g===!1&&m!==l?!1:!!r.fromBytes(d)}catch{return!1}}function a(d){return d=d===void 0?n(o.seed):d,Ii(V(d,o.seed,"seed"),e.ORDER)}function c(d,g=!0){return r.BASE.multiply(e.fromBytes(d)).toBytes(g)}function f(d){let{secretKey:g,publicKey:S,publicKeyUncompressed:l}=o,m=e._lengths;if(!Ye(d))return;let v=V(d,void 0,"key").length,_=v===S||v===l,R=v===g||!!m?.includes(v);if(!(_&&R))return _}function u(d,g,S=!0){if(f(d)===!0)throw new Error("first arg must be private key");if(f(g)===!1)throw new Error("second arg must be public key");let l=e.fromBytes(d);return r.fromBytes(g).multiply(l).toBytes(S)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},y=Rr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:y,Point:r,utils:h,lengths:o})}function nh(r,t,e={}){let n=t;We(n),Nt(e,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),e=Object.assign({},e);let o=e.randomBytes===void 0?Xe:e.randomBytes,s=e.hmac===void 0?(w,b)=>On(n,w,b):e.hmac,{Fp:i,Fn:a}=r,{ORDER:c,BITS:f}=a,{keygen:u,getPublicKey:h,getSharedSecret:y,utils:d,lengths:g}=Rm(r,e),S={prehash:!0,lowS:typeof e.lowS=="boolean"?e.lowS:!0,format:"compact",extraEntropy:!1},l=c*Ju+Me<i.ORDER;function m(w){let b=c>>Me;return w>b}function v(w,b){if(!a.isValidNot0(b))throw new Error(`invalid signature ${w}: out of range 1..Point.Fn.ORDER`);return b}function _(){if(l)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(w,b){ga(b);let B=g.signature,L=b==="compact"?B:b==="recovered"?B+1:void 0;return V(w,L)}class D{r;s;recovery;constructor(b,B,L){if(this.r=v("r",b),this.s=v("s",B),L!=null){if(_(),![0,1,2,3].includes(L))throw new Error("invalid recovery id");this.recovery=L}Object.freeze(this)}static fromBytes(b,B=S.format){R(b,B);let L;if(B==="der"){let{r:k,s:H}=Zt.toSig(V(b));return new D(k,H)}B==="recovered"&&(L=b[0],B="compact",b=b.subarray(1));let x=g.signature/2,C=b.subarray(0,x),O=b.subarray(x,x*2);return new D(a.fromBytes(C),a.fromBytes(O),L)}static fromHex(b,B){return this.fromBytes(_r(b),B)}assertRecovery(){let{recovery:b}=this;if(b==null)throw new Error("invalid recovery id: must be present");return b}addRecoveryBit(b){return new D(this.r,this.s,b)}recoverPublicKey(b){let{r:B,s:L}=this,x=this.assertRecovery(),C=x===2||x===3?B+c:B;if(!i.isValid(C))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let O=i.toBytes(C),k=r.fromBytes(mt(eh((x&1)===0),O)),H=a.inv(C),K=T(V(b,void 0,"msgHash")),Z=a.create(-K*H),Y=a.create(L*H),X=r.BASE.multiplyUnsafe(Z).add(k.multiplyUnsafe(Y));if(X.is0())throw new Error("invalid recovery: point at infinify");return X.assertValidity(),X}hasHighS(){return m(this.s)}toBytes(b=S.format){if(ga(b),b==="der")return _r(Zt.hexFromSig(this));let{r:B,s:L}=this,x=a.toBytes(B),C=a.toBytes(L);return b==="recovered"?(_(),mt(Uint8Array.of(this.assertRecovery()),x,C)):mt(x,C)}toHex(b){return Lr(this.toBytes(b))}}Object.freeze(D.prototype),Object.freeze(D);let N=e.bits2int===void 0?function(b){if(b.length>8192)throw new Error("input is too large");let B=Qe(b),L=b.length*8-f;return L>0?B>>BigInt(L):B}:e.bits2int,T=e.bits2int_modN===void 0?function(b){return a.create(N(b))}:e.bits2int_modN,I=En(f);function U(w){return me("num < 2^"+f,w,oe,I),a.toBytes(w)}function M(w,b){return V(w,void 0,"message"),b?V(n(w),void 0,"prehashed message"):w}function P(w,b,B){let{lowS:L,prehash:x,extraEntropy:C}=ya(B,S);w=M(w,x);let O=T(w),k=a.fromBytes(b);if(!a.isValidNot0(k))throw new Error("invalid private key");let H=[U(k),U(O)];if(C!=null&&C!==!1){let X=C===!0?o(g.secretKey):C;H.push(V(X,void 0,"extraEntropy"))}let K=mt(...H),Z=O;function Y(X){let $=N(X);if(!a.isValidNot0($))return;let st=a.inv($),ue=r.BASE.multiply($).toAffine(),Ve=a.create(ue.x);if(Ve===oe)return;let mr=a.create(st*a.create(Z+Ve*k));if(mr===oe)return;let on=(ue.x===Ve?0:2)|Number(ue.y&Me),sn=mr;return L&&m(mr)&&(sn=a.neg(mr),on^=1),new D(Ve,sn,l?void 0:on)}return{seed:K,k2sig:Y}}function p(w,b,B={}){let{seed:L,k2sig:x}=P(w,b,B);return ou(n.outputLen,a.BYTES,s)(L,x).toBytes(B.format)}function A(w,b,B,L={}){let{lowS:x,prehash:C,format:O}=ya(L,S);if(B=V(B,void 0,"publicKey"),b=M(b,C),!Ye(w)){let k=w instanceof D?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+k)}R(w,O);try{let k=D.fromBytes(w,O),H=r.fromBytes(B);if(x&&k.hasHighS())return!1;let{r:K,s:Z}=k,Y=T(b),X=a.inv(Z),$=a.create(Y*X),st=a.create(K*X),ue=r.BASE.multiplyUnsafe($).add(H.multiplyUnsafe(st));return ue.is0()?!1:a.create(ue.x)===K}catch{return!1}}function E(w,b,B={}){let{prehash:L}=ya(B,S);return b=M(b,L),D.fromBytes(w,"recovered").recoverPublicKey(b).toBytes()}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:y,utils:d,lengths:g,Point:r,sign:p,verify:A,recoverPublicKey:E,Signature:D,hash:n})}var xa={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Om={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var oh=BigInt(2);function Um(r){let t=xa.p,e=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,u=f*f*r%t,h=rt(u,e,t)*u%t,y=rt(h,e,t)*u%t,d=rt(y,oh,t)*f%t,g=rt(d,o,t)*d%t,S=rt(g,s,t)*g%t,l=rt(S,a,t)*S%t,m=rt(l,c,t)*l%t,v=rt(m,a,t)*S%t,_=rt(v,e,t)*u%t,R=rt(_,i,t)*g%t,D=rt(R,n,t)*f%t,N=rt(D,oh,t);if(!wa.eql(wa.sqr(N),r))throw new Error("Cannot find square root");return N}var wa=Cr(xa.p,{sqrt:Um}),Pm=th(xa,{Fp:wa,endo:Om}),Nr=nh(Pm,re);function sh(r,t,e,n){let o=ln.digest(e instanceof Uint8Array?e:e.subarray());if(Po(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Nr.verify(t,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new _n(String(s))});try{return n?.signal?.throwIfAborted(),Nr.verify(t,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new _n(String(s))}}var Wo=class{type="secp256k1";raw;_key;constructor(t){this._key=ah(t),this.raw=ih(this._key)}toMultihash(){return zt.digest(_e(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ut.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:pt(this.raw,t.raw)}verify(t,e,n){return sh(this._key,e,t,n)}};function Ea(r){return new Wo(r)}function ih(r){return Nr.Point.fromBytes(r).toBytes()}function ah(r){try{return Nr.Point.fromBytes(r),r}catch(t){throw new gr(String(t))}}function Un(r,t){let{Type:e,Data:n}=ne.decode(r),o=n??new Uint8Array;switch(e){case ct.RSA:return da(o,t);case ct.Ed25519:return Hi(o);case ct.secp256k1:return Ea(o);case ct.ECDSA:return hi(o);default:throw new ze}}function ch(r){let{Type:t,Data:e}=ne.decode(r.digest),n=e??new Uint8Array;switch(t){case ct.Ed25519:return Hi(n);case ct.secp256k1:return Ea(n);case ct.ECDSA:return hi(n);default:throw new ze}}function _e(r){return ne.encode({Type:ct[r.type],Data:r.raw})}var fh=Symbol.for("nodejs.util.inspect.custom"),Nm=114,Pn=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Ps]=!0;toString(){return this.string==null&&(this.string=ut.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return dt.createV1(Nm,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return pt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return pt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[fh](){return`PeerId(${this.toString()})`}},Nn=class extends Pn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Mn=class extends Pn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},kn=class extends Pn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},Mm=2336,Fn=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=zt.digest(et(this.url))}[fh](){return`PeerId(${this.url})`}[Ps]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return dt.createV1(Mm,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=j(t)),t.toString()===this.toString())}};var km=114,uh=2336;function hh(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Ar(ut.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return Fm(dt.parse(r));if(t==null)throw new Q('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Ar(t.decode(r))}return lh(e)}function Sa(r){if(r.type==="Ed25519")return new Mn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new kn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new Nn({multihash:r.toCID().multihash,publicKey:r});throw new ze}function lh(r){if(Hm(r))return new Nn({multihash:r});if(Km(r))try{let t=ch(r);if(t.type==="Ed25519")return new Mn({multihash:r,publicKey:t});if(t.type==="secp256k1")return new kn({multihash:r,publicKey:t})}catch{let e=j(r.digest);return new Fn(new URL(e))}throw new fo("Supplied PeerID Multihash is invalid")}function Fm(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==km&&r.code!==uh)throw new co("Supplied PeerID CID is invalid");if(r.code===uh){let t=j(r.multihash.digest);return new Fn(new URL(t))}return lh(r.multihash)}function Km(r){return r.code===zt.code}function Hm(r){return r.code===ln.code}function Vm(r){let t=r.getComponents(),e={},n=0;return t[n]?.name==="ip6zone"&&(e.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(e.type=t[n].name,e.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(e.type=t[n].name,e.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(e.protocol=t[n].name==="tcp"?"tcp":"udp",e.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(e.type==="ip4"?e.cidr=parseInt(`${t[n].value}`):e.type==="ip6"&&(e.cidr=`${t[n].value}`),n++),e.type==null||e.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(e.sni=t[n+1].value,n+=2),e)}function dh(r){let t=Vm(r);if(t==null)throw new Q(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Go=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let y=Number.parseInt(h,t);if(!Number.isNaN(y))return y});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let o=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[o]=i[0],e[o+1]=i[1],e[o+2]=i[2],e[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];e[o]=s>>8,e[o+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var zm=45,qm=15,Zo=new Go;function ph(r){if(!(r.length>qm))return Zo.new(r).parseWith(()=>Zo.readIPv4Addr())}function mh(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>zm))return Zo.new(r).parseWith(()=>Zo.readIPv6Addr())}function Yo(r){return!!ph(r)}function yh(r){return!!mh(r)}var At=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},be=class extends Error{static name="ValidationError";name="ValidationError"},Xo=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Qo=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function va(r){return t=>j(t,r)}function Ba(r){return t=>et(t,r)}function Mr(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function ir(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function gh(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=et(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return Jt([e,o],e.length+o.length)}function bh(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Be.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return Jt([e,o],e.length+o.length)}function La(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=j(t,"base32"),o=Mr(e);return`${n}:${o}`}var _a=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new At("Invalid byte value in IP address");t[n]=o}),t},wh=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Yo(e[n]),i;s&&(i=_a(e[n]),e[n]=j(i.subarray(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,j(i.subarray(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let s=parseInt(e[n],16);if(isNaN(s)||s<0||s>65535)throw new At("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},xh=function(r){if(r.byteLength!==4)throw new At("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Eh=function(r){if(r.byteLength!==16)throw new At("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new At(`Invalid IPv6 address "${e}"`)}};function Sh(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new At(`Invalid IPv6 address "${r}"`)}}var Aa=Object.values(je).map(r=>r.decoder),$m=(function(){let r=Aa[0].or(Aa[1]);return Aa.slice(2).forEach(t=>r=r.or(t)),r})();function Ah(r){return $m.decode(r)}function vh(r){return t=>r.encoder.encode(t)}function jm(r){if(parseInt(r).toString()!==r)throw new be("Value must be an integer")}function Wm(r){if(r<0)throw new be("Value must be a positive integer, or zero")}function Gm(r){return t=>{if(t>r)throw new be(`Value must be smaller than or equal to ${r}`)}}function Zm(...r){return t=>{for(let e of r)e(t)}}var Kn=Zm(jm,Wm,Gm(65535));var wt=-1,Ia=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new Qo(`Protocol ${t} was unknown`);return e}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(e=>{this.protocolsByName.set(e,t)})}removeProtocol(t){let e=this.protocolsByCode.get(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},xe=new Ia,f0=[{code:4,name:"ip4",size:32,valueToBytes:_a,bytesToValue:xh,validate:r=>{if(!Yo(r))throw new be(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:ir,bytesToValue:Mr,validate:Kn},{code:273,name:"udp",size:16,valueToBytes:ir,bytesToValue:Mr,validate:Kn},{code:33,name:"dccp",size:16,valueToBytes:ir,bytesToValue:Mr,validate:Kn},{code:41,name:"ip6",size:128,valueToBytes:wh,bytesToValue:Eh,stringToValue:Sh,validate:r=>{if(!yh(r))throw new be(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:wt},{code:43,name:"ipcidr",size:8,bytesToValue:va("base10"),valueToBytes:Ba("base10")},{code:53,name:"dns",size:wt},{code:54,name:"dns4",size:wt},{code:55,name:"dns6",size:wt},{code:56,name:"dnsaddr",size:wt},{code:132,name:"sctp",size:16,valueToBytes:ir,bytesToValue:Mr,validate:Kn},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:wt,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:wt,bytesToValue:va("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Ba("base58btc")(r):dt.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:La,valueToBytes:gh},{code:445,name:"onion3",size:296,bytesToValue:La,valueToBytes:bh},{code:446,name:"garlic64",size:wt},{code:447,name:"garlic32",size:wt},{code:448,name:"tls"},{code:449,name:"sni",size:wt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:wt,bytesToValue:vh(Qs),valueToBytes:Ah},{code:480,name:"http"},{code:481,name:"http-path",size:wt,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:wt}];f0.forEach(r=>{xe.addProtocol(r)});function Bh(r){let t=[],e=0;for(;e<r.length;){let n=nr(r,e),o=xe.getProtocol(n),s=It(n),i=u0(o,r,e+s),a=0;i>0&&o.size===wt&&(a=It(i));let c=s+a+i,f={code:n,name:o.name,bytes:xt(r.subarray(e,e+c))};if(i>0){let u=e+s+a,h=r.subarray(u,u+i);f.value=o.bytesToValue?.(h)??j(h)}t.push(f),e+=c}return t}function Lh(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=xe.getProtocol(n.code),s=It(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??et(n.value),a=i.byteLength,o.size===wt&&(c=It(a)));let f=new Uint8Array(s+c+a),u=0;Ur(n.code,f,u),u+=s,i!=null&&(o.size===wt&&(Ur(a,f,u),u+=c),f.set(i,u)),n.bytes=f}e.push(n.bytes),t+=n.bytes.byteLength}return Jt(e,t)}function _h(r){if(r.charAt(0)!=="/")throw new At('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(e==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=xe.getProtocol(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new At(`Component ${o} was missing value`);e="value"}else if(e==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new At(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new At("Incomplete multiaddr");return t}function Ih(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=xe.getProtocol(t.code);if(e==null)throw new At(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function u0(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:nr(t,e)}var h0=Symbol.for("nodejs.util.inspect.custom"),ja=Symbol.for("@multiformats/multiaddr");function l0(r){if(r==null&&(r="/"),Ch(r))return r.getComponents();if(r instanceof Uint8Array)return Bh(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),_h(r);if(Array.isArray(r))return r;throw new At("Must be a string, Uint8Array, Component[], or another Multiaddr")}var $a=class r{[ja]=!0;#t;#e;#r;constructor(t="/",e={}){this.#t=l0(t),e.validate!==!1&&d0(this)}get bytes(){return this.#r==null&&(this.#r=Lh(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=Ih(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let e=new r(t);return new r([...this.#t,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new Xo(`Address ${this.toString()} does not contain subaddress: ${e}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){e=n;break}return new r(this.#t.slice(0,e),{validate:!1})}equals(t){return pt(this.bytes,t.bytes)}[h0](){return`Multiaddr(${this.toString()})`}};function d0(r){r.getComponents().forEach(t=>{let e=xe.getProtocol(t.code);t.value!=null&&e.validate?.(t.value)})}function Ch(r){return!!r?.[ja]}var nt=r=>({match:t=>{let e=t[0];return e==null||e.code!==r||e.value!=null?!1:t.slice(1)}}),F=(r,t)=>({match:e=>{let n=e[0];return n?.code!==r||n.value==null||t!=null&&n.value!==t?!1:e.slice(1)}}),Th=r=>({match:t=>r.match(t)===!1?t:!1}),z=r=>({match:t=>{let e=r.match(t);return e===!1?t:e}}),Tt=(...r)=>({match:t=>{let e;for(let n of r){let o=n.match(t);o!==!1&&(e==null||o.length<e.length)&&(e=o)}return e??!1}}),W=(...r)=>({match:t=>{for(let e of r){let n=e.match(t);if(n===!1)return!1;t=n}return t}});function ot(...r){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function e(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:r,matches:e,exactMatch:n}}var p0=F(421),sS=ot(p0),ss=F(54),is=F(55),as=F(56),Ga=F(53),iS=ot(ss,z(F(421))),aS=ot(is,z(F(421))),cS=ot(as,z(F(421))),fS=ot(Tt(Ga,as,ss,is),z(F(421))),Dh=W(F(4),z(F(43))),Rh=W(z(F(42)),F(41),z(F(43))),Za=Tt(Dh,Rh),Hr=Tt(Za,Ga,ss,is,as),uS=ot(Tt(Za,W(Tt(Ga,as,ss,is),z(F(421))))),hS=ot(Dh),lS=ot(Rh),dS=ot(Za),Ya=W(Hr,F(6)),Hn=W(Hr,F(273)),pS=ot(W(Ya,z(F(421)))),mS=ot(Hn),Xa=W(Hn,nt(460),z(F(421))),cs=W(Hn,nt(461),z(F(421))),m0=Tt(Xa,cs),yS=ot(Xa),gS=ot(cs),Wa=Tt(Hr,Ya,Hn,Xa,cs),Oh=Tt(W(Wa,nt(477),z(F(421)))),bS=ot(Oh),Uh=Tt(W(Wa,nt(478),z(F(421))),W(Wa,nt(448),z(F(449)),nt(477),z(F(421)))),wS=ot(Uh),Ph=W(Hn,nt(280),z(F(466)),z(F(466)),z(F(421))),xS=ot(Ph),Nh=W(cs,nt(465),z(F(466)),z(F(466)),z(F(421))),fs=ot(Nh),os=Tt(Oh,Uh,W(Ya,z(F(421))),W(m0,z(F(421))),W(Hr,z(F(421))),Ph,Nh,F(421)),ES=ot(os),y0=W(z(os),nt(290),Th(nt(281)),z(F(421))),SS=ot(y0),g0=Tt(W(os,nt(290),nt(281),z(F(421))),W(os,nt(281),z(F(421))),W(nt(281),z(F(421)))),AS=ot(g0),b0=W(Hr,Tt(W(F(6,"80")),W(F(6),nt(480)),nt(480)),z(F(481)),z(F(421))),vS=ot(b0),w0=W(Hr,Tt(W(F(6,"443")),W(F(6,"443"),nt(480)),W(F(6),nt(443)),W(F(6),nt(448),nt(480)),W(nt(448),nt(480)),nt(448),nt(443)),z(F(481)),z(F(421))),BS=ot(w0),x0=Tt(W(F(777),z(F(421)))),LS=ot(x0),E0=Tt(W(F(400),z(F(421)))),_S=ot(E0);function us(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var hs=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Vr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new hs(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new hs(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Qa=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function ls(r={}){return S0(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function S0(r,t){t=t??{};let e=t.onEnd,n=new Vr,o,s,i,a=us(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((l,m)=>{s=v=>{s=null,n.push(v);try{l(r(n))}catch(_){m(_)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=us()})}},f=l=>s!=null?s(l):(n.push(l),o),u=l=>(n=new Vr,s!=null?s({error:l}):(n.push({error:l}),o)),h=l=>{if(i)return o;if(t?.objectMode!==!0&&l?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:l})},y=l=>i?o:(i=!0,l!=null?u(l):f({done:!0})),d=()=>(n=new Vr,y(),{done:!0}),g=l=>(y(l),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:d,throw:g,push:h,end:y,get readableLength(){return n.size},onEmpty:async l=>{let m=l?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let v,_;m!=null&&(v=new Promise((R,D)=>{_=()=>{D(new Qa)},m.addEventListener("abort",_)}));try{await Promise.race([a.promise,v])}finally{_!=null&&m!=null&&m?.removeEventListener("abort",_)}}},e==null)return o;let S=o;return o={[Symbol.asyncIterator](){return this},next(){return S.next()},throw(l){return S.throw(l),e!=null&&(e(l),e=void 0),{done:!0}},return(){return S.return(),e!=null&&(e(),e=void 0),{done:!0}},push:h,end(l){return S.end(l),e!=null&&(e(l),e=void 0),o},get readableLength(){return S.readableLength},onEmpty:l=>S.onEmpty(l)},o}var Ja=class r extends Error{name="TimeoutError";constructor(t,e){super(t,e),Error.captureStackTrace?.(this,r)}},Mh=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function tc(r,t){let{milliseconds:e,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,y)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(i?.aborted){y(Mh(i));return}if(i&&(c=()=>{y(Mh(i))},i.addEventListener("abort",c,{once:!0})),r.then(h,y),e===Number.POSITIVE_INFINITY)return;let d=new Ja;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(g){y(g)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?h():o instanceof Error?y(o):(d.message=o??`Promise timed out after ${e} milliseconds`,y(d))},e)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var A0=r=>{let t=r.addEventListener||r.on||r.addListener,e=r.removeEventListener||r.off||r.removeListener;if(!t||!e)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(r),removeListener:e.bind(r)}};function v0(r,t,e){let n,o=new Promise((s,i)=>{if(e={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...e},!(e.count>=0&&(e.count===Number.POSITIVE_INFINITY||Number.isInteger(e.count))))throw new TypeError("The `count` option should be at least 0 or more");e.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:f,removeListener:u}=A0(r),h=async(...d)=>{let g=e.multiArgs?d:d[0];if(e.filter)try{if(!await e.filter(g))return}catch(S){n(),i(S);return}c.push(g),e.count===c.length&&(n(),s(c))},y=(...d)=>{n(),i(e.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,h);for(let d of e.rejectionEvents)a.includes(d)||u(d,y)};for(let d of a)f(d,h);for(let d of e.rejectionEvents)a.includes(d)||f(d,y);e.signal&&e.signal.addEventListener("abort",()=>{y(e.signal.reason)},{once:!0}),e.resolveImmediately&&s(c)});if(o.cancel=n,typeof e.timeout=="number"){let s=tc(o,{milliseconds:e.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function ke(r,t,e){typeof e=="function"&&(e={filter:e}),e={...e,count:1,resolveImmediately:!1};let n=v0(r,t,e),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var cr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ds=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},ps=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function B0(r){return r.reason}async function Ht(r,t,e){if(t==null)return r;let n=e?.translateError??B0;if(t.aborted)return r.catch(()=>{}),Promise.reject(n(t));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var L0=Math.pow(2,20)*4,se=class extends wr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??L0,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new it,this.writeBuffer=new it,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let e=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",e);let n=o=>{this.onDrainPromise?.reject(o.error??new ps)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),Ht(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ls(),e=s=>{t.push(s.data)};this.addEventListener("message",e);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",e),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new Ae(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(t)}catch(e){this.log("failed to send reset to remote - %e",e)}this.dispatchEvent(new ho(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Ae("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Ae("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Ae(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Ae(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let t=new io;this.dispatchEvent(new lo(t))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new br))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,e=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new it(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,e,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new uo(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new an(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new an(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var ms=class extends se{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",e=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),e.error!=null?e.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):e.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function kh(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var ys=class extends wr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,e){super(),this.maConn=t,this.protocol=e.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(e.name),this.streamOptions=e.streamOptions,this.maxEarlyStreams=e.maxEarlyStreams??10,this.metrics=e.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let e=this.maConn.send(t);return e===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),e}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await Ht(Promise.all([...this.streams].map(async e=>{await e.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(e=>{e.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(e=>{e.onTransportClosed(t)})}catch(e){this.abort(e)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new so;let e=this.onCreateStream({...this.streamOptions,...t});return kh(e)&&(e=await e),this.streams.push(e),this.cleanUpStream(e),e}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ds(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let e=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",e),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(e=>{this.safeDispatchEvent("stream",{detail:e})}),this.earlyStreams=[]})}};var gs=class extends se{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await ke(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.log("closed readable end gracefully"))}};var _0=4194304,bs=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Vn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},rc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},nc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function I0(r){return typeof r?.closeRead=="function"}function C0(r){return typeof r?.close=="function"}function ec(r){return I0(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:C0(r)?r.status!=="open":!1}function T0(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function D0(r,t){let e=t?.maxBufferSize??_0,n=new it,o,s=!1;if(!T0(r))throw new Q("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>e){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${e}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new bs("Stream was unwrapped");if(ec(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new cr(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await Ht(o.promise,u?.signal),ec(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let y=u?.bytes??n.byteLength;if(n.byteLength<y){if(ec(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,y),new cr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${y} bytes`);return f.read(u)}let d=n.sublist(0,y);return n.consume(y),d},async write(u,h){if(s===!0)throw new bs("Stream was unwrapped");r.send(u)||await ke(r,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.unshift(n))),r}};return f}function oc(r,t={}){let e=D0(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??nr,o=t?.lengthEncoder??Pu;return{async read(i){let a=-1,c=new it;for(;;){let u=await e.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Vn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new nc(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new rc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await e.read({...i,bytes:a});if(f==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new cr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new cr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await e.write(new it(o(i.byteLength),i),a)},async writeV(i,a){let c=new it(...i.flatMap(f=>[o(f.byteLength),f]));await e.write(c,a)},unwrap(){return e.unwrap()}}}var R0=1024*1024*4,O0=1024*1024*4,ws=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new it,this.maxBufferSize=t.maxBufferSize??R0,this.maxDataLength=t.maxDataLength??O0,this.lengthDecoder=t.lengthDecoder??nr,this.encodingLength=t.encodingLength??It}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new Q(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let e;try{e=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(e<0||e>this.maxDataLength)throw new Vn("Invalid message length");let n=this.encodingLength(e),o=n+e;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function yt(r=0){return new Uint8Array(r)}function Dt(r=0){return new Uint8Array(r)}var zr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,sc=16;function U0(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}function xs(r){if(typeof r!="boolean")throw new TypeError(`boolean expected, not ${r}`)}function qr(r){if(typeof r!="number")throw new TypeError("number expected, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError("positive integer expected, got "+r)}function gt(r,t,e=""){let n=U0(r),o=r?.length,s=t!==void 0;if(!n||s&&o!==t){let i=e&&`"${e}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof r}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return r}function ic(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function Fh(r,t,e=!1){gt(r,void 0,"output");let n=t.outputLen;if(r.length<n)throw new RangeError("digestInto() expects output buffer of length at least "+n);if(e&&!$r(r))throw new Error("invalid output, must be aligned")}function ie(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Yt(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function P0(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var fr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,N0=r=>r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255;var M0=r=>{for(let t=0;t<r.length;t++)r[t]=N0(r[t]);return r},Ee=fr?r=>r:M0;function Kh(r,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(r,t)}function Hh(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function Vh(r,t,e){let n=t,o=e||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(r),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var zh=(r,t)=>{function e(n,...o){if(gt(n,void 0,"key"),r.nonceLength!==void 0){let u=o[0];gt(u,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let s=r.tagLength;s&&o[1]!==void 0&&gt(o[1],void 0,"AAD");let i=t(n,...o),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");gt(h,void 0,"output")}},c=!1;return{encrypt(u,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,gt(u),a(i.encrypt.length,h),i.encrypt(u,h)},decrypt(u,h){if(gt(u),s&&u.length<s)throw new Error('"ciphertext" expected length bigger than tagLength='+s);return a(i.decrypt.length,h),i.decrypt(u,h)}}}return Object.assign(e,r),e};function zn(r,t,e=!0){if(t===void 0)return new Uint8Array(r);if(gt(t,void 0,"output"),t.length!==r)throw new Error('"output" expected Uint8Array of length '+r+", got: "+t.length);if(e&&!$r(t))throw new Error("invalid output, must be aligned");return t}function qh(r,t,e){qr(r),qr(t),xs(e);let n=new Uint8Array(16),o=P0(n);return o.setBigUint64(0,BigInt(t),e),o.setBigUint64(8,BigInt(r),e),n}function $r(r){return r.byteOffset%4===0}function jr(r){return Uint8Array.from(gt(r))}var jh=r=>Uint8Array.from(r.split(""),t=>t.charCodeAt(0)),k0=Ee(ie(jh("expand 16-byte k"))),F0=Ee(ie(jh("expand 32-byte k")));function q(r,t){return r<<t|r>>>32-t}var qn=64,K0=16,ac=2**32-1,$h=Uint32Array.of();function H0(r,t,e,n,o,s,i,a){let c=o.length,f=new Uint8Array(qn),u=ie(f),h=fr&&$r(o)&&$r(s),y=h?ie(o):$h,d=h?ie(s):$h;if(!fr){for(let g=0;g<c;i++){if(r(t,e,n,u,i,a),Ee(u),i>=ac)throw new Error("arx: counter overflow");let S=Math.min(qn,c-g);for(let l=0,m;l<S;l++)m=g+l,s[m]=o[m]^f[l];g+=S}return}for(let g=0;g<c;i++){if(r(t,e,n,u,i,a),i>=ac)throw new Error("arx: counter overflow");let S=Math.min(qn,c-g);if(h&&S===qn){let l=g/4;if(g%4!==0)throw new Error("arx: invalid block position");for(let m=0,v;m<K0;m++)v=l+m,d[v]=y[v]^u[m];g+=qn;continue}for(let l=0,m;l<S;l++)m=g+l,s[m]=o[m]^f[l];g+=S}}function Wh(r,t){let{allowShortKeys:e,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=Kh({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof r!="function")throw new Error("core must be a function");return qr(o),qr(i),xs(s),xs(e),(a,c,f,u,h=0)=>{gt(a,void 0,"key"),gt(c,void 0,"nonce"),gt(f,void 0,"data");let y=f.length;if(u=zn(y,u,!1),qr(h),h<0||h>=ac)throw new Error("arx: counter overflow");let d=[],g=a.length,S,l;if(g===32)d.push(S=jr(a)),l=F0;else if(g===16&&e)S=new Uint8Array(32),S.set(a),S.set(a,16),l=k0,d.push(S);else throw gt(a,32,"arx key"),new Error("invalid key size");(!fr||!$r(c))&&d.push(c=jr(c));let m=ie(S);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let R=c.subarray(0,16);if(fr)n(l,m,ie(R),m);else{let D=Ee(Uint32Array.from(l));n(D,m,ie(R),m),Yt(D),Ee(m)}c=c.subarray(16)}else fr||Ee(m);let v=16-o;if(v!==c.length)throw new Error(`arx: nonce must be ${v} or 16 bytes`);if(v!==12){let R=new Uint8Array(12);R.set(c,s?0:12-c.length),c=R,d.push(c)}let _=Ee(ie(c));try{return H0(r,l,m,_,f,u,h,i),u}finally{Yt(...d)}}}function vt(r,t){return r[t++]&255|(r[t++]&255)<<8}var cc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=jr(gt(t,32,"key"));let e=vt(t,0),n=vt(t,2),o=vt(t,4),s=vt(t,6),i=vt(t,8),a=vt(t,10),c=vt(t,12),f=vt(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=vt(t,16+2*u)}process(t,e,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],y=i[5],d=i[6],g=i[7],S=i[8],l=i[9],m=vt(t,e+0),v=vt(t,e+2),_=vt(t,e+4),R=vt(t,e+6),D=vt(t,e+8),N=vt(t,e+10),T=vt(t,e+12),I=vt(t,e+14),U=s[0]+(m&8191),M=s[1]+((m>>>13|v<<3)&8191),P=s[2]+((v>>>10|_<<6)&8191),p=s[3]+((_>>>7|R<<9)&8191),A=s[4]+((R>>>4|D<<12)&8191),E=s[5]+(D>>>1&8191),w=s[6]+((D>>>14|N<<2)&8191),b=s[7]+((N>>>11|T<<5)&8191),B=s[8]+((T>>>8|I<<8)&8191),L=s[9]+(I>>>5|o),x=0,C=x+U*a+M*(5*l)+P*(5*S)+p*(5*g)+A*(5*d);x=C>>>13,C&=8191,C+=E*(5*y)+w*(5*h)+b*(5*u)+B*(5*f)+L*(5*c),x+=C>>>13,C&=8191;let O=x+U*c+M*a+P*(5*l)+p*(5*S)+A*(5*g);x=O>>>13,O&=8191,O+=E*(5*d)+w*(5*y)+b*(5*h)+B*(5*u)+L*(5*f),x+=O>>>13,O&=8191;let k=x+U*f+M*c+P*a+p*(5*l)+A*(5*S);x=k>>>13,k&=8191,k+=E*(5*g)+w*(5*d)+b*(5*y)+B*(5*h)+L*(5*u),x+=k>>>13,k&=8191;let H=x+U*u+M*f+P*c+p*a+A*(5*l);x=H>>>13,H&=8191,H+=E*(5*S)+w*(5*g)+b*(5*d)+B*(5*y)+L*(5*h),x+=H>>>13,H&=8191;let K=x+U*h+M*u+P*f+p*c+A*a;x=K>>>13,K&=8191,K+=E*(5*l)+w*(5*S)+b*(5*g)+B*(5*d)+L*(5*y),x+=K>>>13,K&=8191;let Z=x+U*y+M*h+P*u+p*f+A*c;x=Z>>>13,Z&=8191,Z+=E*a+w*(5*l)+b*(5*S)+B*(5*g)+L*(5*d),x+=Z>>>13,Z&=8191;let Y=x+U*d+M*y+P*h+p*u+A*f;x=Y>>>13,Y&=8191,Y+=E*c+w*a+b*(5*l)+B*(5*S)+L*(5*g),x+=Y>>>13,Y&=8191;let X=x+U*g+M*d+P*y+p*h+A*u;x=X>>>13,X&=8191,X+=E*f+w*c+b*a+B*(5*l)+L*(5*S),x+=X>>>13,X&=8191;let $=x+U*S+M*g+P*d+p*y+A*h;x=$>>>13,$&=8191,$+=E*u+w*f+b*c+B*a+L*(5*l),x+=$>>>13,$&=8191;let st=x+U*l+M*S+P*g+p*d+A*y;x=st>>>13,st&=8191,st+=E*h+w*u+b*f+B*c+L*a,x+=st>>>13,st&=8191,x=(x<<2)+x|0,x=x+C|0,C=x&8191,x=x>>>13,O+=x,s[0]=C,s[1]=O,s[2]=k,s[3]=H,s[4]=K,s[5]=Z,s[6]=Y,s[7]=X,s[8]=$,s[9]=st}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;Yt(n)}update(t){ic(this),gt(t),t=jr(t);let{buffer:e,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}e.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(e,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Yt(this.h,this.r,this.buffer,this.pad)}digestInto(t){ic(this),Fh(t,this),this.finished=!0;let{buffer:e,h:n}=this,{pos:o}=this;if(o){for(e[o++]=1;o<16;o++)e[o]=0;this.process(e,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}},Gh=Vh(32,r=>new cc(r));function V0(r,t,e,n,o,s=20){let i=r[0],a=r[1],c=r[2],f=r[3],u=t[0],h=t[1],y=t[2],d=t[3],g=t[4],S=t[5],l=t[6],m=t[7],v=o,_=e[0],R=e[1],D=e[2],N=i,T=a,I=c,U=f,M=u,P=h,p=y,A=d,E=g,w=S,b=l,B=m,L=v,x=_,C=R,O=D;for(let H=0;H<s;H+=2)N=N+M|0,L=q(L^N,16),E=E+L|0,M=q(M^E,12),N=N+M|0,L=q(L^N,8),E=E+L|0,M=q(M^E,7),T=T+P|0,x=q(x^T,16),w=w+x|0,P=q(P^w,12),T=T+P|0,x=q(x^T,8),w=w+x|0,P=q(P^w,7),I=I+p|0,C=q(C^I,16),b=b+C|0,p=q(p^b,12),I=I+p|0,C=q(C^I,8),b=b+C|0,p=q(p^b,7),U=U+A|0,O=q(O^U,16),B=B+O|0,A=q(A^B,12),U=U+A|0,O=q(O^U,8),B=B+O|0,A=q(A^B,7),N=N+P|0,O=q(O^N,16),b=b+O|0,P=q(P^b,12),N=N+P|0,O=q(O^N,8),b=b+O|0,P=q(P^b,7),T=T+p|0,L=q(L^T,16),B=B+L|0,p=q(p^B,12),T=T+p|0,L=q(L^T,8),B=B+L|0,p=q(p^B,7),I=I+A|0,x=q(x^I,16),E=E+x|0,A=q(A^E,12),I=I+A|0,x=q(x^I,8),E=E+x|0,A=q(A^E,7),U=U+M|0,C=q(C^U,16),w=w+C|0,M=q(M^w,12),U=U+M|0,C=q(C^U,8),w=w+C|0,M=q(M^w,7);let k=0;n[k++]=i+N|0,n[k++]=a+T|0,n[k++]=c+I|0,n[k++]=f+U|0,n[k++]=u+M|0,n[k++]=h+P|0,n[k++]=y+p|0,n[k++]=d+A|0,n[k++]=g+E|0,n[k++]=S+w|0,n[k++]=l+b|0,n[k++]=m+B|0,n[k++]=v+L|0,n[k++]=_+x|0,n[k++]=R+C|0,n[k++]=D+O|0}var z0=Wh(V0,{counterRight:!1,counterLength:4,allowShortKeys:!1});var q0=new Uint8Array(16),Zh=(r,t)=>{r.update(t);let e=t.length%16;e&&r.update(q0.subarray(e))},$0=new Uint8Array(32);function Yh(r,t,e,n,o){o!==void 0&&gt(o,void 0,"AAD");let s=r(t,e,$0),i=qh(n.length,o?o.length:0,!0),a=Gh.create(s);o&&Zh(a,o),Zh(a,n),a.update(i);let c=a.digest();return Yt(s,i),c}var j0=r=>(t,e,n)=>({encrypt(s,i){let a=s.length;i=zn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);r(t,e,c,c,1);let f=Yh(r,t,e,c,n);return i.set(f,a),Yt(f),i},decrypt(s,i){i=zn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=Yh(r,t,e,a,n);if(!Hh(c,f))throw Yt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),r(t,e,i,i,1),Yt(f),i}}),fc=zh({blockSize:64,nonceLength:12,tagLength:16},j0(z0));function Qh(r,t,e){return We(r),e===void 0&&(e=new Uint8Array(r.outputLen)),On(r,e,t)}var uc=Uint8Array.of(0),Xh=Uint8Array.of();function Jh(r,t,e,n=32){We(r),te(n,"length"),Lt(t,void 0,"prk");let o=r.outputLen;if(t.length<o)throw new Error('"prk" must be at least HashLen octets');if(n>255*o)throw new Error("Length must be <= 255*HashLen");let s=Math.ceil(n/o);e===void 0?e=Xh:Lt(e,void 0,"info");let i=new Uint8Array(s*o),a=On.create(r,t),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let u=0;u<s;u++)uc[0]=u+1,c.update(u===0?Xh:f).update(e).update(uc).digestInto(f),i.set(f,o*u),a._cloneInto(c);return a.destroy(),c.destroy(),qt(f,uc),i.slice(0,n)}var hc={hashSHA256(r){return re(r.subarray())},getHKDF(r,t){let e=Qh(re,t,r),o=Jh(re,e,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let r=Ln.utils.randomSecretKey();return{publicKey:Ln.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:Ln.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,t){return Ln.getSharedSecret(r.subarray(),t.subarray())},chaCha20Poly1305Encrypt(r,t,e,n){return fc(n,t,e).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,t,e,n,o){return fc(n,t,e).decrypt(r.subarray(),o)}};var tl=hc;function el(r){return{generateKeypair:r.generateX25519KeyPair,dh:(t,e)=>r.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var Wr=r=>{let t=Dt(2);return t[0]=r>>8,t[1]=r,t};Wr.bytes=2;var Gr=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};Gr.bytes=2;function rl(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var yc={};tt(yc,{base10:()=>J0});var s8=new Uint8Array(0);function nl(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Se(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function ol(r){return new TextEncoder().encode(r)}function sl(r){return new TextDecoder().decode(r)}function W0(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=o}var a=r.length,c=r.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(g){if(g instanceof Uint8Array||(ArrayBuffer.isView(g)?g=new Uint8Array(g.buffer,g.byteOffset,g.byteLength):Array.isArray(g)&&(g=Uint8Array.from(g))),!(g instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(g.length===0)return"";for(var S=0,l=0,m=0,v=g.length;m!==v&&g[m]===0;)m++,S++;for(var _=(v-m)*u+1>>>0,R=new Uint8Array(_);m!==v;){for(var D=g[m],N=0,T=_-1;(D!==0||N<l)&&T!==-1;T--,N++)D+=256*R[T]>>>0,R[T]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=N,m++}for(var I=_-l;I!==_&&R[I]===0;)I++;for(var U=c.repeat(S);I<_;++I)U+=r.charAt(R[I]);return U}function y(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var S=0;if(g[S]!==" "){for(var l=0,m=0;g[S]===c;)l++,S++;for(var v=(g.length-S)*f+1>>>0,_=new Uint8Array(v);g[S];){var R=e[g.charCodeAt(S)];if(R===255)return;for(var D=0,N=v-1;(R!==0||D<m)&&N!==-1;N--,D++)R+=a*_[N]>>>0,_[N]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");m=D,S++}if(g[S]!==" "){for(var T=v-m;T!==v&&_[T]===0;)T++;for(var I=new Uint8Array(l+(v-T)),U=l;T!==v;)I[U++]=_[T++];return I}}}function d(g){var S=y(g);if(S)return S;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:y,decode:d}}var G0=W0,Z0=G0,al=Z0;var lc=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},dc=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return cl(this,t)}},pc=class{decoders;constructor(t){this.decoders=t}or(t){return cl(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function cl(r,t){return new pc({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var mc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new lc(t,e,n),this.decoder=new dc(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Zr({name:r,prefix:t,encode:e,decode:n}){return new mc(r,t,e,n)}function Fe({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=al(e,r);return Zr({prefix:t,name:r,encode:n,decode:s=>Se(o(s))})}function Y0(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function X0(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function Q0(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function lt({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=Q0(n);return Zr({prefix:t,name:r,encode(s){return X0(s,n,e)},decode(s){return Y0(s,o,e,r)}})}var J0=Fe({prefix:"9",name:"base10",alphabet:"0123456789"});var gc={};tt(gc,{base16:()=>ty,base16upper:()=>ey});var ty=lt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ey=lt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var bc={};tt(bc,{base2:()=>ry});var ry=lt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var wc={};tt(wc,{base256emoji:()=>ay});var fl=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),ny=fl.reduce((r,t,e)=>(r[e]=t,r),[]),oy=fl.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function sy(r){return r.reduce((t,e)=>(t+=ny[e],t),"")}function iy(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=oy[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var ay=Zr({prefix:"\u{1F680}",name:"base256emoji",encode:sy,decode:iy});var xc={};tt(xc,{base32:()=>Yr,base32hex:()=>hy,base32hexpad:()=>dy,base32hexpadupper:()=>py,base32hexupper:()=>ly,base32pad:()=>fy,base32padupper:()=>uy,base32upper:()=>cy,base32z:()=>my});var Yr=lt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),cy=lt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),fy=lt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),uy=lt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),hy=lt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),ly=lt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),dy=lt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),py=lt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),my=lt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ec={};tt(Ec,{base36:()=>$n,base36upper:()=>yy});var $n=Fe({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),yy=Fe({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Sc={};tt(Sc,{base58btc:()=>ae,base58flickr:()=>gy});var ae=Fe({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),gy=Fe({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ac={};tt(Ac,{base64:()=>by,base64pad:()=>wy,base64url:()=>xy,base64urlpad:()=>Ey});var by=lt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),wy=lt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),xy=lt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ey=lt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var vc={};tt(vc,{base8:()=>Sy});var Sy=lt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Bc={};tt(Bc,{identity:()=>Ay});var Ay=Zr({prefix:"\0",name:"identity",encode:r=>sl(r),decode:r=>ol(r)});var E8=new TextEncoder,S8=new TextDecoder;var _c={};tt(_c,{identity:()=>jy});var Ly=ll,ul=128,_y=127,Iy=~_y,Cy=Math.pow(2,31);function ll(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Cy;)t[e++]=r&255|ul,r/=128;for(;r&Iy;)t[e++]=r&255|ul,r>>>=7;return t[e]=r|0,ll.bytes=e-n+1,t}var Ty=Lc,Dy=128,hl=127;function Lc(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Lc.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&hl)<<o:(i&hl)*Math.pow(2,o),o+=7}while(i>=Dy);return Lc.bytes=s-n,e}var Ry=Math.pow(2,7),Oy=Math.pow(2,14),Uy=Math.pow(2,21),Py=Math.pow(2,28),Ny=Math.pow(2,35),My=Math.pow(2,42),ky=Math.pow(2,49),Fy=Math.pow(2,56),Ky=Math.pow(2,63),Hy=function(r){return r<Ry?1:r<Oy?2:r<Uy?3:r<Py?4:r<Ny?5:r<My?6:r<ky?7:r<Fy?8:r<Ky?9:10},Vy={encode:Ly,decode:Ty,encodingLength:Hy},zy=Vy,jn=zy;function Wn(r,t=0){return[jn.decode(r,t),jn.decode.bytes]}function Xr(r,t,e=0){return jn.encode(r,t,e),t}function Qr(r){return jn.encodingLength(r)}function tn(r,t){let e=t.byteLength,n=Qr(r),o=n+Qr(e),s=new Uint8Array(o+e);return Xr(r,s,0),Xr(e,s,n),s.set(t,o),new Jr(r,e,t,s)}function dl(r){let t=Se(r),[e,n]=Wn(t),[o,s]=Wn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Jr(e,o,i,t)}function pl(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&nl(r.bytes,e.bytes)}}var Jr=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var ml=0,qy="identity",yl=Se;function $y(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return tn(ml,yl(r))}var jy={code:ml,name:qy,encode:yl,digest:$y};var Tc={};tt(Tc,{sha256:()=>Gy,sha512:()=>Zy});var Wy=20;function Cc({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new Ic(r,t,e,n,o)}var Ic=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??Wy,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?gl(n,this.code,e?.truncate):n.then(o=>gl(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function gl(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return tn(t,r)}function wl(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var Gy=Cc({name:"sha2-256",code:18,encode:wl("SHA-256")}),Zy=Cc({name:"sha2-512",code:19,encode:wl("SHA-512")});function xl(r,t){let{bytes:e,version:n}=r;return n===0?Xy(e,Dc(r),t??ae.encoder):Qy(e,Dc(r),t??Yr.encoder)}var El=new WeakMap;function Dc(r){let t=El.get(r);if(t==null){let e=new Map;return El.set(r,e),e}return t}var Ss=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==Zn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==Jy)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=tn(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&pl(t.multihash,n.multihash)}toString(t){return xl(this,t)}toJSON(){return{"/":xl(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Sl(n,o,s.bytes))}else if(e[tg]===!0){let{version:n,multihash:o,code:s}=e,i=dl(o);return r.create(n,s,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==Zn)throw new Error(`Version 0 CID must use dag-pb (code: ${Zn}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Sl(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Zn,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=Se(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Jr(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,y]=Wn(t.subarray(e));return e+=y,h},o=n(),s=Zn;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=Yy(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Dc(s).set(n,t),s}};function Yy(r,t){switch(r[0]){case"Q":{let e=t??ae;return[ae.prefix,e.decode(`${ae.prefix}${r}`)]}case ae.prefix:{let e=t??ae;return[ae.prefix,e.decode(r)]}case Yr.prefix:{let e=t??Yr;return[Yr.prefix,e.decode(r)]}case $n.prefix:{let e=t??$n;return[$n.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Xy(r,t,e){let{prefix:n}=e;if(n!==ae.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function Qy(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var Zn=112,Jy=18;function Sl(r,t,e){let n=Qr(r),o=n+Qr(t),s=new Uint8Array(o+e.byteLength);return Xr(r,s,0),Xr(t,s,n),s.set(e,o),s}var tg=Symbol.for("@ipld/js-cid/CID");var Rc={...Bc,...bc,...vc,...yc,...gc,...xc,...Ec,...Sc,...Ac,...wc},q8={...Tc,..._c};function vl(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Al=vl("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Oc=vl("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=Dt(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),eg={utf8:Al,"utf-8":Al,hex:Rc.base16,latin1:Oc,ascii:Oc,binary:Oc,...Rc},As=eg;function ce(r,t="utf8"){let e=As[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Uc(r,t){!t.enabled||!zr||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${ce(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${ce(r.privateKey,"hex")}`)):t("Missing local static keys."))}function Pc(r,t){!t.enabled||!zr||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${ce(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${ce(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Bl(r,t){!t.enabled||!zr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${ce(r.subarray(),"hex")}`:"Missing remote static public key.")}function Nc(r,t){!t.enabled||!zr||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${ce(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Mc(r,t,e){!e.enabled||!zr||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&ce(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&ce(t.k,"hex")}`))}function en(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=Dt(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}function kc(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var _l=Symbol.for("@achingbrain/uint8arraylist");function Ll(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function vs(r){return!!r?.[_l]}var fe=class r{bufs;length;[_l]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(vs(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(vs(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Ll(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Ll(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(vs(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return en(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:en(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!vs(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let y=f;y>=0;y--){let d=this.get(h+y);if(n[y]!==d){u=Math.max(1,y-a[d]);break}}if(u===0)return h}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=yt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=yt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=yt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=yt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=yt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=yt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=yt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=yt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!kc(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((o,s)=>o+s.byteLength,0)),n.length=e,n}};function ur(r,t="utf8"){let e=As[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var rn=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var ng=0,og=4294967295,sg="Cipherstate has reached maximum n, a new handshake must be performed",Bs=class{n;bytes;view;constructor(t=ng){this.n=t,this.bytes=yt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>og)throw new Error(sg)}};var hr=yt(0),nn=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Bs(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let o=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Fc=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=ur(e,"utf-8");this.h=ig(t,n),this.ck=this.h,this.cs=new nn(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new nn(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new fe(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,hr);return[new nn(this.crypto,t),new nn(this.crypto,e)]}},Kc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=e,this.ss=new Fc(e,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<e+32)throw new Error("message is not long enough");this.re=t.sublist(e,e+32),this.ss.mixHash(this.re)}readS(t,e=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<e+n)throw new Error("message is not long enough");let o=t.sublist(e,e+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},Yn=class extends Kc{writeMessageA(t){return new fe(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let e=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new fe(e,n,this.ss.encryptAndHash(t))}writeMessageC(t){let e=this.writeS();return this.writeSE(),new fe(e,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(e){throw new rn(`handshake stage 0 validation fail: ${e.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let e=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+e))}catch(e){throw new rn(`handshake stage 1 validation fail: ${e.message}`)}}readMessageC(t){try{let e=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(e))}catch(e){throw new rn(`handshake stage 2 validation fail: ${e.message}`)}}};function ig(r,t){if(t.length<=32){let e=yt(32);return e.set(t),e}else return r.hash(t)}var ag=Math.pow(2,7),cg=Math.pow(2,14),fg=Math.pow(2,21),Il=Math.pow(2,28),Cl=Math.pow(2,35),Tl=Math.pow(2,42),Dl=Math.pow(2,49),Ot=128,Ke=127;function Xn(r){if(r<ag)return 1;if(r<cg)return 2;if(r<fg)return 3;if(r<Il)return 4;if(r<Cl)return 5;if(r<Tl)return 6;if(r<Dl)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Rl(r,t,e=0){switch(Xn(r)){case 8:t[e++]=r&255|Ot,r/=128;case 7:t[e++]=r&255|Ot,r/=128;case 6:t[e++]=r&255|Ot,r/=128;case 5:t[e++]=r&255|Ot,r/=128;case 4:t[e++]=r&255|Ot,r>>>=7;case 3:t[e++]=r&255|Ot,r>>>=7;case 2:t[e++]=r&255|Ot,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Ol(r,t){let e=r[t],n=0;if(n+=e&Ke,e<Ot||(e=r[t+1],n+=(e&Ke)<<7,e<Ot)||(e=r[t+2],n+=(e&Ke)<<14,e<Ot)||(e=r[t+3],n+=(e&Ke)<<21,e<Ot)||(e=r[t+4],n+=(e&Ke)*Il,e<Ot)||(e=r[t+5],n+=(e&Ke)*Cl,e<Ot)||(e=r[t+6],n+=(e&Ke)*Tl,e<Ot)||(e=r[t+7],n+=(e&Ke)*Dl,e<Ot))return n;throw new RangeError("Could not decode varint")}var Hc=new Float32Array([-0]),He=new Uint8Array(Hc.buffer);function Ul(r,t,e){Hc[0]=r,t[e]=He[0],t[e+1]=He[1],t[e+2]=He[2],t[e+3]=He[3]}function Pl(r,t){return He[0]=r[t],He[1]=r[t+1],He[2]=r[t+2],He[3]=r[t+3],Hc[0]}var Vc=new Float64Array([-0]),Rt=new Uint8Array(Vc.buffer);function Nl(r,t,e){Vc[0]=r,t[e]=Rt[0],t[e+1]=Rt[1],t[e+2]=Rt[2],t[e+3]=Rt[3],t[e+4]=Rt[4],t[e+5]=Rt[5],t[e+6]=Rt[6],t[e+7]=Rt[7]}function Ml(r,t){return Rt[0]=r[t],Rt[1]=r[t+1],Rt[2]=r[t+2],Rt[3]=r[t+3],Rt[4]=r[t+4],Rt[5]=r[t+5],Rt[6]=r[t+6],Rt[7]=r[t+7],Vc[0]}var ug=BigInt(Number.MAX_SAFE_INTEGER),hg=BigInt(Number.MIN_SAFE_INTEGER),kt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return lr;if(t<ug&&t>hg)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>kl&&(o=0n,++n>kl&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return lr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):lr}},lr=new kt(0,0);lr.toBigInt=function(){return 0n};lr.zzEncode=lr.zzDecode=function(){return this};lr.length=function(){return 1};var kl=4294967296n;function Fl(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Kl(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function zc(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Xt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Ls(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var qc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Xt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Xt(this,4);return Ls(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Xt(this,4);return Ls(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Xt(this,4);let t=Pl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Xt(this,4);let t=Ml(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Xt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Kl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Xt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Xt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new kt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Xt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Xt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Xt(this,8);let t=Ls(this.buf,this.pos+=4),e=Ls(this.buf,this.pos+=4);return new kt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Ol(this.buf,this.pos);return this.pos+=Xn(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function $c(r){return new qc(r instanceof Uint8Array?r:r.subarray())}function _s(r,t,e){let n=$c(r);return t.decode(n,void 0,e)}function jc(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return Dt(i);o+i>t&&(n=Dt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Wc(){}var Zc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},lg=jc();function dg(r){return globalThis.Buffer!=null?Dt(r):lg(r)}var Jn=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(Wc,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new dr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Yc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Is,10,kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=kt.fromBigInt(t);return this._push(Is,e.length(),e)}uint64Number(t){return this._push(Rl,Xn(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=kt.fromBigInt(t).zzEncode();return this._push(Is,e.length(),e)}sint64Number(t){let e=kt.fromNumber(t).zzEncode();return this._push(Is,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Gc,1,t?1:0)}fixed32(t){return this._push(Qn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=kt.fromBigInt(t);return this._push(Qn,4,e.lo)._push(Qn,4,e.hi)}fixed64Number(t){let e=kt.fromNumber(t);return this._push(Qn,4,e.lo)._push(Qn,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ul,4,t)}double(t){return this._push(Nl,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Gc,1,0):this.uint32(e)._push(mg,e,t)}string(t){let e=Fl(t);return e!==0?this.uint32(e)._push(zc,e,t):this._push(Gc,1,0)}fork(){return this.states=new Zc(this),this.head=this.tail=new dr(Wc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new dr(Wc,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=dg(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Gc(r,t,e){t[e]=r&255}function pg(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Yc=class extends dr{next;constructor(t,e){super(pg,t,e),this.next=void 0}};function Is(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Qn(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function mg(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Jn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(yg,t,r),this},Jn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(gg,t,r),this});function yg(r,t,e){t.set(r,e)}function gg(r,t,e){r.length<40?zc(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(ur(r),e)}function Xc(){return new Jn}function Cs(r,t){let e=Xc();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var to;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(to||(to={}));function Qc(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ts(r,t){return Qc("message",to.LENGTH_DELIMITED,r,t)}var eo=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Ds;(function(r){let t;r.codec=()=>(t==null&&(t=Ts((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let s of e.webtransportCerthashes)n.uint32(10),n.bytes(s);if(e.streamMuxers!=null)for(let s of e.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new eo('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(e.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new eo('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(e.string());break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Cs(e,r.codec()),r.decode=(e,n)=>_s(e,r.codec(),n)})(Ds||(Ds={}));var ro;(function(r){let t;r.codec=()=>(t==null&&(t=Ts((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Ds.codec().encode(e.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={identityKey:yt(0),identitySig:yt(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Ds.codec().decode(e,e.uint32(),{limits:o.limits?.extensions});break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Cs(e,r.codec()),r.decode=(e,n)=>_s(e,r.codec(),n)})(ro||(ro={}));async function tf(r,t,e){let n=await r.sign(zl(t));return ro.encode({identityKey:_e(r.publicKey),identitySig:n,extensions:e})}async function ef(r,t,e){try{let n=ro.decode(r),o=Un(n.identityKey);if(e?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${e}`);if(!t)throw new Error("Remote static does not exist");let s=zl(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new oo(n.message)}}function zl(r){let t=ur("noise-libp2p-static-key:");return r instanceof Uint8Array?en([t,r],t.length+r.length):(r.prepend(t),r)}var Jc=class extends se{stream;handshake;metrics;decoder;constructor(t,e,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=e,this.metrics=n,this.decoder=new ws({lengthDecoder:Gr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let e=new fe;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),e.append(Wr(s.byteLength)),e.append(s)}return e}decrypt(t){let e=new fe;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-sc<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-sc);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),e.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return e}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function rf(r,t,e){return new Jc(r,t,e)}async function ql(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await tf(s,a.publicKey,f),h=new Yn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Uc(h.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(hr),t),e.trace("Stage 0 - Initiator finished sending first message."),Pc(h.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=h.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),Nc(h.re,e),Bl(h.rs,e),e.trace("Initiator going to check remote's signature...");let d=await ef(y,h.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[g,S]=h.ss.split();return Mc(g,S,e),{payload:d,encrypt:l=>g.encryptWithAd(hr,l),decrypt:(l,m)=>S.decryptWithAd(hr,l,m)}}async function $l(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await tf(s,a.publicKey,f),h=new Yn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Uc(h.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),Nc(h.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Pc(h.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let y=h.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let d=await ef(y,h.rs,c),[g,S]=h.ss.split();return Mc(g,S,e),{payload:d,encrypt:l=>S.encryptWithAd(hr,l),decrypt:(l,m)=>g.decryptWithAd(hr,l,m)}}var Rs=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,e={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=e,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??tl;this.crypto=el(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?rl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??yt(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[po]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,e){let n=t.log?.newScope("noise")??this.log,o=oc(t,{lengthEncoder:Wr,lengthDecoder:Gr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Un(s.payload.identityKey);return{connection:rf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:Sa(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let e=this.components.upgrader.getStreamMuxers();if(e!=null)for(let n of t){let o=e.get(n);if(o!=null)return o}if(t.length)throw new yr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,e){let n=t.log?.newScope("noise")??this.log,o=oc(t,{lengthEncoder:Wr,lengthDecoder:Gr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Un(s.payload.identityKey);return{connection:rf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:Sa(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await ql({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await $l({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function jl(r={}){return t=>new Rs(t,r)}var pr=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};function nf(r){throw new Error("Not implemented")}var of=class extends gs{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(e=>{e.message.includes("STOP_SENDING")||e.message.includes("StopSending")?this.onRemoteCloseRead():e.message.includes("RESET_STREAM")||e.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",e)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let e=this.writer.desiredSize>0;return e||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:e}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("error aborting writer - %e",e)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await Ht(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await Ht(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function sf(r,t,e,n,o){return new of({...o,stream:r,id:t,direction:e,log:n.newScope(`${e}:${t}`),protocol:""})}var Wl="/webtransport",af=class extends ys{webTransport;streamIDCounter;reader;constructor(t,e){super(e,{protocol:Wl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(sf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let e=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),sf(e,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function Gl(r){return{protocol:Wl,createStreamMuxer(t){return new af(r,t)}}}var cf=class extends ms{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},Zl=r=>new cf(r);function Yl(r,t){return t.filter(n=>!!r.find(o=>pt(n,o))).length===t.length}var bg=Object.values(je).map(r=>r.decoder).reduce((r,t)=>r.or(t));function wg(r){return he.decode(bg.decode(r))}function ff(r){if(!fs.matches(r))throw new ao("Invalid multiaddr, was not a WebTransport address");let t=[],e;for(let s of r.getComponents())s.name==="certhash"&&t.push(wg(s.value??"")),s.name==="p2p"&&e==null&&(e=hh(s.value??""));let n=dh(r),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:e}}var Os=class extends se{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:e,value:n}=await this.reader.read();if(n!=null&&this.onData(n),e)break}}).catch(e=>{this.abort(e)})}async close(t){await Ht(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(e=>{this.abort(e)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("could not send reset - %e",e)})}sendPause(){}sendResume(){}};var Xl=globalThis.WebTransport;var uf=class{log;components;config;metrics;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...e,certificates:e.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[pf]=!0;[po]=["@libp2p/transport"];async dial(t,e){e.signal.throwIfAborted(),this.log("dialing %s",t),e=e??{};let{url:n,certhashes:o,remotePeer:s}=ff(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let y=new Xl(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(g=>({algorithm:"sha-256",value:xt(g.digest)}))});c=g=>{if(!f)try{this.metrics?.dialerEvents.increment({[g]:!0}),y.close()}catch(S){this.log.error("error closing wt session - %e",S)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},e.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),e.onProgress?.(new pr("webtransport:wait-for-session")),await Promise.race([y.closed,y.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),y.closed.catch(g=>{this.log.error("error on remote wt session close - %e",g)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=Zl({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let d=await this.authenticateWebTransport({wt:y,maConn:a,remotePeer:s,certhashes:o,...e});if(h=!0,s!=null&&(h=s.equals(d)),!h)throw new yr("Failed to authenticate webtransport");return await e.upgrader.upgradeOutbound(a,{...e,skipEncryption:!0,remotePeer:d,muxerFactory:Gl(y),skipProtection:!0})}catch(y){throw this.log.error("caught wt session err - %e",y),c(h?"upgrade_error":u?"noise_error":"ready_error"),y}finally{i!=null&&e.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:e,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new pr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new Os({stream:a,log:e.log.newScope("muxer")}),f=jl()(this.components);s?.(new pr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new pr("webtransport:close-authentication-stream")),await c.close({signal:i}),!Yl(u?.webtransportCerthashes??[],o.map(y=>y.bytes)))throw new Q("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(t){return nf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(e=>{if(!fs.exactMatch(e))return!1;let{url:n,certhashes:o}=ff(e);return n!=null&&o.length>0})}};function xg(r={}){return t=>new uf(t,r)}return rd(Eg);})();
2
+ "use strict";var Libp2PWebtransport=(()=>{var ks=Object.defineProperty;var ad=Object.getOwnPropertyDescriptor;var cd=Object.getOwnPropertyNames;var fd=Object.prototype.hasOwnProperty;var rt=(r,t)=>{for(var e in t)ks(r,e,{get:t[e],enumerable:!0})},ud=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of cd(t))!fd.call(r,o)&&o!==e&&ks(r,o,{get:()=>t[o],enumerable:!(n=ad(t,o))||n.enumerable});return r};var hd=r=>ud(ks({},"__esModule",{value:!0}),r);var Hg={};rt(Hg,{webTransport:()=>Fg});var to=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},yr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},tt=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},gr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var eo=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},ro=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var Be=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},en=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var no=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},oo=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},so=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var je=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var io=class extends Event{data;constructor(t,e){super("message",e),this.data=t}},br=class extends Event{error;local;constructor(t,e,n){super("close",n),this.error=e,this.local=t}},ao=class extends br{constructor(t,e){super(!0,t,e)}},co=class extends br{constructor(t,e){super(!1,t,e)}};var Ks=Symbol.for("@libp2p/peer-id");var pf=Symbol.for("@libp2p/transport");var df;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(df||(df={}));function ld(r){return typeof r?.handleEvent=="function"}function dd(r){return r===!0||r===!1}function pd(r){return dd(r)?r:r?.capture??!1}function Fs(r){let t={capture:pd(r),once:!!r?.once};return r?.passive!=null&&(t.passive=r?.passive),r?.signal!=null&&(t.signal=r?.signal),t}function mf(r,t){return Fs(r).capture===Fs(t).capture}var wr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){let o=Fs(n);if(o?.signal?.aborted===!0)return;let s=f=>{o.once&&this.removeEventListener(t,e,o),ld(e)?e.handleEvent(f):e(f)},i=this.#t.get(t);if(i==null&&(i=[],this.#t.set(t,i)),i.some(f=>f.callback!==e?!1:mf(f.options,o)))return;super.addEventListener(t,s,o);let c=()=>{this.removeEventListener(t,e,o)};o.signal?.addEventListener("abort",c),i.push({callback:e,wrapper:s,options:o,onAbort:c})}removeEventListener(t,e,n){let o=this.#t.get(t);if(o==null){super.removeEventListener(t,e??null,n);return}this.#t.set(t,o.filter(s=>s.callback===e&&mf(s.options,n)?(super.removeEventListener(t,s.wrapper,n),s.options?.signal?.removeEventListener("abort",s.onAbort),!1):!0))}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};var fo=Symbol.for("@libp2p/service-capabilities");var $s={};rt($s,{base58btc:()=>lt,base58flickr:()=>Sd});var wb=new Uint8Array(0);function gf(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Ft(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return We(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return We(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function bf(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var yf=4096;function wf(r){let t=r.length;if(t<=yf)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=yf));return e}function md(r){return r?.buffer instanceof ArrayBuffer}function We(r){return md(r)?r:r.slice()}function yd(r,t,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,e){var c=i.toLowerCase().charCodeAt(0),f=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),f!==a&&(n[f]=s)}}var u=r.length,h=r.charAt(0),l=Math.log(u)/Math.log(256),p=Math.log(256)/Math.log(u);function m(w){if(w instanceof Uint8Array||(ArrayBuffer.isView(w)?w=new Uint8Array(w.buffer,w.byteOffset,w.byteLength):Array.isArray(w)&&(w=Uint8Array.from(w))),!(w instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(w.length===0)return"";for(var S=0,x=0,I=0,_=w.length;I!==_&&w[I]===0;)I++,S++;for(var N=(_-I)*p+1>>>0,M=new Uint8Array(N);I!==_;){for(var P=w[I],R=0,U=N-1;(P!==0||R<x)&&U!==-1;U--,R++)P+=256*M[U]>>>0,M[U]=P%u>>>0,P=P/u>>>0;if(P!==0)throw new Error("Non-zero carry");x=R,I++}for(var k=N-x;k!==N&&M[k]===0;)k++;for(var D=h.repeat(S);k<N;++k)D+=r.charAt(M[k]);return D}function b(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return new Uint8Array;var S=0;if(w[S]!==" "){for(var x=0,I=0;w[S]===h;)x++,S++;for(var _=(w.length-S)*l+1>>>0,N=new Uint8Array(_);w[S];){var M=n[w.charCodeAt(S)];if(M===255)return;for(var P=0,R=_-1;(M!==0||P<I)&&R!==-1;R--,P++)M+=u*N[R]>>>0,N[R]=M%256>>>0,M=M/256>>>0;if(M!==0)throw new Error("Non-zero carry");I=P,S++}if(w[S]!==" "){for(var U=_-I;U!==_&&N[U]===0;)U++;for(var k=new Uint8Array(x+(_-U)),D=x;U!==_;)k[D++]=N[U++];return k}}}function g(w){var S=b(w);if(S)return S;throw new Error(`Non-${t} character`)}return{encode:m,decodeUnsafe:b,decode:g}}var gd=yd,bd=gd,Ef=bd;var Hs=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},zs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Sf(this,t)}},Vs=class{decoders;constructor(t){this.decoders=t}or(t){return Sf(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Sf(r,t){return new Vs({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var qs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new Hs(t,e,n),this.decoder=new zs(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function xr({name:r,prefix:t,encode:e,decode:n}){return new qs(r,t,e,n)}function Le({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:s}=Ef(e,r,n);return xr({prefix:t,name:r,encode:o,decode:i=>Ft(s(i))})}function wd(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function xd(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function Ed(r,t){let e={};for(let n=0;n<r.length;++n)if(e[r[n]]=n,t){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(e[o]=n),s!==r[n]&&(e[s]=n)}return e}function ht({name:r,prefix:t,bitsPerChar:e,alphabet:n,caseInsensitive:o=!1}){let s=Ed(n,o);return xr({prefix:t,name:r,encode(i){return xd(i,n,e)},decode(i){return wd(i,s,e,r)}})}var lt=Le({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Sd=Le({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var js={};rt(js,{base32:()=>Ie,base32hex:()=>Ld,base32hexpad:()=>Cd,base32hexpadupper:()=>Td,base32hexupper:()=>Id,base32pad:()=>vd,base32padupper:()=>Bd,base32upper:()=>Ad,base32z:()=>_d});var Ie=ht({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),Ad=ht({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),vd=ht({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),Bd=ht({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),Ld=ht({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),Id=ht({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),Cd=ht({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),Td=ht({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),_d=ht({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ws={};rt(Ws,{base36:()=>rn,base36upper:()=>Dd});var rn=Le({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Dd=Le({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var pe={};rt(pe,{Digest:()=>Ge,create:()=>jt,decode:()=>Ar,equals:()=>Ys,hasCode:()=>Zd});var Rd=Bf,Af=128,Od=127,Pd=~Od,Ud=Math.pow(2,31);function Bf(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Ud;)t[e++]=r&255|Af,r/=128;for(;r&Pd;)t[e++]=r&255|Af,r>>>=7;return t[e]=r|0,Bf.bytes=e-n+1,t}var Nd=Gs,Md=128,vf=127;function Gs(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Gs.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&vf)<<o:(i&vf)*Math.pow(2,o),o+=7}while(i>=Md);return Gs.bytes=s-n,e}var kd=Math.pow(2,7),Kd=Math.pow(2,14),Fd=Math.pow(2,21),Hd=Math.pow(2,28),zd=Math.pow(2,35),Vd=Math.pow(2,42),qd=Math.pow(2,49),$d=Math.pow(2,56),jd=Math.pow(2,63),Wd=function(r){return r<kd?1:r<Kd?2:r<Fd?3:r<Hd?4:r<zd?5:r<Vd?6:r<qd?7:r<$d?8:r<jd?9:10},Gd={encode:Rd,decode:Nd,encodingLength:Wd},Yd=Gd,nn=Yd;function on(r,t=0){let e=nn.decode(r,t),n=nn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[t+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[e,n]}function Er(r,t,e=0){return nn.encode(r,t,e),t}function Sr(r){return nn.encodingLength(r)}function jt(r,t){let e=t.byteLength,n=Sr(r),o=n+Sr(e),s=new Uint8Array(o+e);return Er(r,s,0),Er(e,s,n),s.set(t,o),new Ge(r,e,t,s)}function Ar(r){let t=Ft(r),[e,n]=on(t),[o,s]=on(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Ge(e,o,i,t)}function Ys(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&gf(r.bytes,e.bytes)}}var Ge=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=We(n),this.bytes=We(o)}};function Zd(r,t){return r.code===t}function Lf(r,t){let{bytes:e,version:n}=r;return n===0?Qd(e,Zs(r),t??lt.encoder):Jd(e,Zs(r),t??Ie.encoder)}var If=new WeakMap;function Zs(r){let t=If.get(r);if(t==null){let e=new Map;return If.set(r,e),e}return t}var yt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=We(o),this["/"]=this.bytes}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==sn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==tp)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=jt(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&Ys(t.multihash,n.multihash)}toString(t){return Lf(this,t)}toJSON(){return{"/":Lf(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cf(n,o,s.bytes))}else if(e[ep]===!0){let{version:n,multihash:o,code:s}=e,i=Ar(o);return r.create(n,s,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==sn)throw new Error(`Version 0 CID must use dag-pb (code: ${sn}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cf(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,sn,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=Ft(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Ge(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=on(t.subarray(e));return e+=l,h},o=n(),s=sn;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=Xd(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Zs(s).set(n,t),s}};function Xd(r,t){switch(r[0]){case"Q":{let e=t??lt;return[lt.prefix,e.decode(`${lt.prefix}${r}`)]}case lt.prefix:{let e=t??lt;return[lt.prefix,e.decode(r)]}case Ie.prefix:{let e=t??Ie;return[Ie.prefix,e.decode(r)]}case rn.prefix:{let e=t??rn;return[rn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Qd(r,t,e){let{prefix:n}=e;if(n!==lt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function Jd(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var sn=112,tp=18;function Cf(r,t,e){let n=Sr(r),o=n+Sr(t),s=new Uint8Array(o+e.byteLength);return Er(r,s,0),Er(t,s,n),s.set(e,o),s}var ep=Symbol.for("@ipld/js-cid/CID");var Xs={};rt(Xs,{identity:()=>Wt});var Tf=0,rp="identity",_f=Ft;function np(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return jt(Tf,_f(r))}var Wt={code:Tf,name:rp,encode:_f,digest:np};function gt(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function op(r){return r.buffer instanceof ArrayBuffer}function Et(r){return op(r)?r:r.slice()}async function Df(r,t,e,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,Et(t),Et(e.subarray()));return n?.signal?.throwIfAborted(),s}function te(r=0){return new Uint8Array(r)}function vt(r=0){return new Uint8Array(r)}function sp(r){return r?.buffer instanceof ArrayBuffer}function Qs(r){if(sp(r))return r;let t=r.slice();return new Uint8Array(t.buffer,0,t.byteLength)}function ee(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=vt(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return Qs(e)}var Of=Symbol.for("@achingbrain/uint8arraylist");function Rf(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function ho(r){return!!r?.[Of]}var ft=class r{bufs;length;[Of]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(ho(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(ho(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Rf(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rf(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(ho(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return ee(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:ee(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!ho(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=vt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=vt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=te(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=te(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=te(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!gt(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((o,s)=>o+s.byteLength,0)),n.length=e,n}};var Js={};rt(Js,{base10:()=>ip});var ip=Le({prefix:"9",name:"base10",alphabet:"0123456789"});var ti={};rt(ti,{base16:()=>ap,base16upper:()=>cp});var ap=ht({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),cp=ht({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ei={};rt(ei,{base2:()=>fp});var fp=ht({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ri={};rt(ri,{base256emoji:()=>pp});var Pf=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),up=Pf.reduce((r,t,e)=>(r[e]=t,r),[]),hp=Pf.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function lp(r){return r.reduce((t,e)=>(t+=up[e],t),"")}function dp(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=hp[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var pp=xr({prefix:"\u{1F680}",name:"base256emoji",encode:lp,decode:dp});var oi={};rt(oi,{base64:()=>mp,base64pad:()=>yp,base64url:()=>ni,base64urlpad:()=>gp});var mp=ht({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),yp=ht({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ni=ht({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),gp=ht({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var si={};rt(si,{base8:()=>bp});var bp=ht({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ii={};rt(ii,{identity:()=>wp});var wp=xr({prefix:"\0",name:"identity",encode:r=>wf(Ft(r)),decode:r=>Ft(bf(r))});var ow=new TextEncoder,sw=new TextDecoder;var fi={};rt(fi,{sha256:()=>an,sha512:()=>Ap});var Sp=20;function ci({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new ai(r,t,e,n,o)}var ai=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??Sp,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Uf(n,this.code,e?.truncate):n.then(o=>Uf(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Uf(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return jt(t,r)}function Mf(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var an=ci({name:"sha2-256",code:18,encode:Mf("SHA-256")}),Ap=ci({name:"sha2-512",code:19,encode:Mf("SHA-512")});var Ye={...ii,...ei,...si,...Js,...ti,...js,...Ws,...$s,...oi,...ri},gw={...fi,...Xs};function Kf(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var kf=Kf("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ui=Kf("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=vt(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),vp={utf8:kf,"utf-8":kf,hex:Ye.base16,latin1:ui,ascii:ui,binary:ui,...Ye},lo=vp;function nt(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function Y(r,t="utf8"){let e=lo[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}var Bp=parseInt("11111",2),hi=parseInt("10000000",2),Lp=parseInt("01111111",2),Ff={0:cn,1:cn,2:Ip,3:_p,4:Dp,5:Tp,6:Cp,16:cn,22:cn,48:cn};function me(r,t={offset:0}){let e=r[t.offset]&Bp;if(t.offset++,Ff[e]!=null)return Ff[e](r,t);throw new Error("No decoder for tag "+e)}function fn(r,t){let e=0;if((r[t.offset]&hi)===hi){let n=r[t.offset]&Lp,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++){if(t.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[t.offset].toString(16).padStart(2,"0")}e=parseInt(o,16)}else e=r[t.offset],t.offset++;if(!Number.isInteger(e)||e<0||e>r.byteLength-t.offset)throw new Error("invalid DER element length");return e}function cn(r,t){fn(r,t);let e=[];for(;!(t.offset>=r.byteLength);){let n=me(r,t);if(n===null)break;e.push(n)}return e}function Ip(r,t){let e=fn(r,t),n=t.offset,o=t.offset+e,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return t.offset+=e,Uint8Array.from(s)}function Cp(r,t){let e=fn(r,t),n=t.offset+e,o=r[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=r[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function Tp(r,t){return t.offset++,null}function _p(r,t){let e=fn(r,t),n=r[t.offset];t.offset++;let o=r.subarray(t.offset,t.offset+e-1);if(t.offset+=e,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function Dp(r,t){let e=fn(r,t),n=r.subarray(t.offset,t.offset+e);return t.offset+=e,n}function Rp(r){let t=r.toString(16);t.length%2===1&&(t="0"+t);let e=new ft;for(let n=0;n<t.length;n+=2)e.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return e}function li(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let t=Rp(r.byteLength);return new ft(Uint8Array.from([t.byteLength|hi]),t)}function Pt(r){let t=new ft,e=128;return(r.subarray()[0]&e)===e&&t.append(Uint8Array.from([0])),t.append(r),new ft(Uint8Array.from([2]),li(t),t)}function po(r){let t=Uint8Array.from([0]),e=new ft(t,r);return new ft(Uint8Array.from([3]),li(e),e)}function Ce(r,t=48){let e=new ft;for(let n of r)e.append(n);return new ft(Uint8Array.from([t]),li(e),e)}var Op=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Pp=Uint8Array.from([6,5,43,129,4,0,34]),Up=Uint8Array.from([6,5,43,129,4,0,35]),Np={ext:!0,kty:"EC",crv:"P-256"},Mp={ext:!0,kty:"EC",crv:"P-384"},kp={ext:!0,kty:"EC",crv:"P-521"},di=32,pi=48,mi=66;function yi(r){let t=me(r);return Hf(t)}function Hf(r){let t=r[1][1][0],e=1,n,o;if(t.byteLength===di*2+1)return n=Y(t.subarray(e,e+di),"base64url"),o=Y(t.subarray(e+di),"base64url"),new vr({...Np,key_ops:["verify"],x:n,y:o});if(t.byteLength===pi*2+1)return n=Y(t.subarray(e,e+pi),"base64url"),o=Y(t.subarray(e+pi),"base64url"),new vr({...Mp,key_ops:["verify"],x:n,y:o});if(t.byteLength===mi*2+1)return n=Y(t.subarray(e,e+mi),"base64url"),o=Y(t.subarray(e+mi),"base64url"),new vr({...kp,key_ops:["verify"],x:n,y:o});throw new tt(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function zf(r){return Ce([Pt(Uint8Array.from([1])),Ce([Kp(r.crv)],160),Ce([po(new ft(Uint8Array.from([4]),nt(r.x??"","base64url"),nt(r.y??"","base64url")))],161)]).subarray()}function Kp(r){if(r==="P-256")return Op;if(r==="P-384")return Pp;if(r==="P-521")return Up;throw new tt(`Invalid curve ${r}`)}var vr=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=zf(this.jwk)),this._raw}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}async verify(t,e,n){return Df(this.jwk,e,t,n)}};var mo=BigInt(4294967295),Vf=BigInt(32);function Fp(r,t=!1){return t?{h:Number(r&mo),l:Number(r>>Vf&mo)}:{h:Number(r>>Vf&mo)|0,l:Number(r&mo)|0}}function qf(r,t=!1){let e=r.length,n=new Uint32Array(e),o=new Uint32Array(e);for(let s=0;s<e;s++){let{h:i,l:a}=Fp(r[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var Hp=r=>r/2**32|0,zp=r=>r>>>0;function $f(r,t,e,n){let o=Hp(e),s=zp(e);r.setUint32(t,n?s:o,n),r.setUint32(t+4,n?o:s,n)}var gi=(r,t,e)=>r>>>e,bi=(r,t,e)=>r<<32-e|t>>>e,Ze=(r,t,e)=>r>>>e|t<<32-e,Xe=(r,t,e)=>r<<32-e|t>>>e,un=(r,t,e)=>r<<64-e|t>>>e-32,hn=(r,t,e)=>r>>>e-32|t<<64-e;function re(r,t,e,n){let o=(t>>>0)+(n>>>0);return{h:r+e+(o/2**32|0)|0,l:o|0}}var jf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),Wf=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,Gf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Yf=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Zf=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Xf=(r,t,e,n,o,s)=>t+e+n+o+s+(r/2**32|0)|0;function yo(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var wi=r=>r?`"${r}" `:"";function Gt(r,t=""){if(typeof r!="number")throw new TypeError(wi(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(wi(t)+"expected integer >= 0, got "+r);return r}function Rt(r,t,e=""){if(yo(r)&&(t===void 0||r.length===t))return r;t!==void 0&&Gt(t,"length");let n=yo(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=wi(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}function Qe(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(Gt(r.outputLen),Gt(r.blockLen),r.outputLen<1||r.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}var Qf=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError((t==="object"?"":`"${t}" `)+"expected object, got type="+typeof r)};function Br(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function go(r,t){Rt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function Ht(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function bo(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Yt(r,t){return r<<32-t|r>>>t}var tu=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",qp=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function wo(r){if(Rt(r),tu)return r.toHex();let t="";for(let e=0;e<r.length;e++)t+=qp[r[e]];return t}function Jf(r){return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void 0}function xo(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(tu)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=r.length,e=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let o=0,s=0;o<e;o++,s+=2){let i=Jf(r.charCodeAt(s)),a=Jf(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function xi(...r){let t=0;for(let n=0;n<r.length;n++){let o=r[n];Rt(o),t+=o.length}let e=new Uint8Array(t);for(let n=0,o=0;n<r.length;n++){let s=r[n];e.set(s,o),o+=s.length}return e}function $p(r,t,e="opts"){return Qf(r,"defaults"),t!==void 0&&Qf(t,e),Object.assign(r,t)}function Ei(r,t={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);t=$p({},t,"info");let e=(o,s)=>r(s).update(o).digest(),n=r(void 0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.canXOF=n.canXOF,e.create=o=>r(o),Object.assign(e,t),Object.freeze(e)}function eu(r=32){Gt(r,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return t.getRandomValues(new Uint8Array(r))}var Si=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function ru(r,t,e){return r&t^~r&e}function nu(r,t,e){return r&t^r&e^t&e}var ln=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,n,o){this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=bo(this.buffer)}update(t){Br(this),Rt(t);let{view:e,buffer:n,blockLen:o}=this,s=t.length,i=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let f=bo(t);for(;o<=s-a;a+=o)this.process(f,a);i=!0;continue}n.set(a===0&&c===s?t:t.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(e,0),this.pos=0,i=!0)}return this.length+=t.length,i&&this.roundClean(),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;e[i++]=128,e.fill(0,i),this.padOffset>o-i&&(this.process(n,0),e.fill(0)),$f(n,o-8,this.length*8,s),this.process(n,0),this.roundClean();let a=t===e?n:bo(t),c=this.outputLen,f=c/4,u=this.get();if(c%4||f>u.length)throw new Error("invalid outputLen");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneIntoMeta(t){let{buffer:e,length:n,finished:o,destroyed:s,pos:i}=this;return t.destroyed=s,t.finished=o,t.length=n,t.pos=i,i&&t.buffer.set(e),t}clone(){return this._cloneInto()}},ou=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var su=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jp=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]),_e=new Uint32Array(64),Ai=class extends ln{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(t,e){super(64,t,8,!1),this.A=e[0]|0,this.B=e[1]|0,this.C=e[2]|0,this.D=e[3]|0,this.E=e[4]|0,this.F=e[5]|0,this.G=e[6]|0,this.H=e[7]|0}get(){let{A:t,B:e,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,e,n,o,s,i,a,c]}set(t,e,n,o,s,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let h=0;h<16;h++,e+=4)_e[h]=t.getUint32(e,!1);for(let h=16;h<64;h++){let l=_e[h-15],p=_e[h-2],m=Yt(l,7)^Yt(l,18)^l>>>3,b=Yt(p,17)^Yt(p,19)^p>>>10;_e[h]=b+_e[h-7]+m+_e[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let l=Yt(a,6)^Yt(a,11)^Yt(a,25),p=u+l+ru(a,c,f)+jp[h]+_e[h]|0,b=(Yt(n,2)^Yt(n,13)^Yt(n,22))+nu(n,o,s)|0;u=f,f=c,c=a,a=i+p|0,i=s,s=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){Ht(_e)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ht(this.buffer)}},vi=class extends Ai{constructor(){super(32,ou)}};var iu=qf(["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(r=>BigInt(r))),Wp=iu[0],Gp=iu[1],De=new Uint32Array(80),Re=new Uint32Array(80),Bi=class extends ln{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(t,e){super(128,t,16,!1),this.Ah=e[0]|0,this.Al=e[1]|0,this.Bh=e[2]|0,this.Bl=e[3]|0,this.Ch=e[4]|0,this.Cl=e[5]|0,this.Dh=e[6]|0,this.Dl=e[7]|0,this.Eh=e[8]|0,this.El=e[9]|0,this.Fh=e[10]|0,this.Fl=e[11]|0,this.Gh=e[12]|0,this.Gl=e[13]|0,this.Hh=e[14]|0,this.Hl=e[15]|0}get(){let{Ah:t,Al:e,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:l,Gh:p,Gl:m,Hh:b,Hl:g}=this;return[t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g]}set(t,e,n,o,s,i,a,c,f,u,h,l,p,m,b,g){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=l|0,this.Gh=p|0,this.Gl=m|0,this.Hh=b|0,this.Hl=g|0}_cloneInto(t){return(t||=new this.constructor).set(...this.get()),this._cloneIntoMeta(t)}process(t,e){for(let x=0;x<16;x++,e+=4)De[x]=t.getUint32(e),Re[x]=t.getUint32(e+=4);for(let x=16;x<80;x++){let I=De[x-15]|0,_=Re[x-15]|0,N=Ze(I,_,1)^Ze(I,_,8)^gi(I,_,7),M=Xe(I,_,1)^Xe(I,_,8)^bi(I,_,7),P=De[x-2]|0,R=Re[x-2]|0,U=Ze(P,R,19)^un(P,R,61)^gi(P,R,6),k=Xe(P,R,19)^hn(P,R,61)^bi(P,R,6),D=Gf(M,k,Re[x-7],Re[x-16]),H=Yf(D,N,U,De[x-7],De[x-16]);De[x]=H|0,Re[x]=D|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:l,Fh:p,Fl:m,Gh:b,Gl:g,Hh:w,Hl:S}=this;for(let x=0;x<80;x++){let I=Ze(h,l,14)^Ze(h,l,18)^un(h,l,41),_=Xe(h,l,14)^Xe(h,l,18)^hn(h,l,41),N=h&p^~h&b,M=l&m^~l&g,P=Zf(S,_,M,Gp[x],Re[x]),R=Xf(P,w,I,N,Wp[x],De[x]),U=P|0,k=Ze(n,o,28)^un(n,o,34)^un(n,o,39),D=Xe(n,o,28)^hn(n,o,34)^hn(n,o,39),H=n&s^n&a^s&a,T=o&i^o&c^i&c;w=b|0,S=g|0,b=p|0,g=m|0,p=h|0,m=l|0,{h,l}=re(f|0,u|0,R|0,U|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let C=jf(U,D,T);n=Wf(C,R,k,H),o=C|0}({h:n,l:o}=re(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=re(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=re(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=re(this.Dh|0,this.Dl|0,f|0,u|0),{h,l}=re(this.Eh|0,this.El|0,h|0,l|0),{h:p,l:m}=re(this.Fh|0,this.Fl|0,p|0,m|0),{h:b,l:g}=re(this.Gh|0,this.Gl|0,b|0,g|0),{h:w,l:S}=re(this.Hh|0,this.Hl|0,w|0,S|0),this.set(n,o,s,i,a,c,f,u,h,l,p,m,b,g,w,S)}roundClean(){Ht(De,Re)}destroy(){this.destroyed=!0,Ht(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Li=class extends Bi{constructor(){super(64,su)}};var ne=Ei(()=>new vi,Si(1));var Ii=Ei(()=>new Li,Si(3));function So(r,t,e=()=>{}){if(!Array.isArray(r))throw new TypeError(`"${t}" expected array, got type=${typeof r}`);for(let n=0;n<r.length;n++)e(r[n],`${t}[${n}]`);return r}var j=(r,t,e)=>Rt(r,t,e),Ci=Gt;function cu(r,t=""){if(typeof r!="string"){let e=t&&`"${t}" `;throw new TypeError(e+"expected string, got type="+typeof r)}return r}function Oe(r,t="object"){if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`);return r}function Je(r,t){if(typeof r!="function")throw new TypeError(`"${t}" is invalid: expected function, got ${typeof r}`);return r}var dn=wo,zt=(...r)=>xi(...r),Lr=r=>xo(r),Ue=yo,ye=r=>eu(r),Eo=BigInt(0),au=BigInt(1),Yp=r=>r?`"${r}" `:"";function Ut(r,t=""){if(typeof r!="boolean")throw new TypeError(Yp(t)+"expected boolean, got type="+typeof r);return r}function Ao(r){if(typeof r=="bigint"){if(!Pe(r))throw new RangeError("positive bigint expected, got "+r)}else Ci(r);return r}function Ne(r,t=""){if(typeof r!="number"){let e=t&&`"${t}" `;throw new TypeError(e+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let e=t&&`"${t}" `;throw new RangeError(e+"expected safe integer, got "+r)}}function pn(r){let t=Ao(r).toString(16);return t.length&1?"0"+t:t}function fu(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?Eo:BigInt("0x"+r)}function oe(r){return fu(wo(r))}function se(r){return fu(wo(tr(Rt(r)).reverse()))}function vo(r,t){if(Gt(t),t===0)throw new Error("zero output length is invalid");r=Ao(r);let e=t*2,n=r.toString(16);if(n.length>e)throw new RangeError("number is too large");return xo(n.padStart(e,"0"))}function mn(r,t){return vo(r,t).reverse()}function tr(r){return Uint8Array.from(j(r))}function Pe(r){return typeof r=="bigint"&&Eo<=r}function Ti(r,t,e){return Pe(r)&&Pe(t)&&Pe(e)&&t<=r&&r<e}function ie(r,t,e,n){if(!Ti(t,e,n))throw new RangeError("expected valid "+r+": "+e+" <= n < "+n+", got "+t)}function Ir(r){if(r<Eo)throw new Error("expected non-negative bigint, got "+r);return r===Eo?0:r.toString(2).length}var yn=r=>(Ne(r,"n"),(au<<BigInt(r))-au);function uu(r,t,e){if(Gt(r,"hashLen"),Gt(t,"qByteLen"),typeof e!="function")throw new TypeError("hmacFn must be a function");let n=g=>new Uint8Array(g),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),f=n(r),u=0,h=()=>{c.fill(1),f.fill(0),u=0},l=(...g)=>e(f,zt(c,...g)),p=(g=o)=>{f=l(s,g),c=l(),g.length!==0&&(f=l(i,g),c=l())},m=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let g=0,w=[];for(;g<t;){c=l();let S=c.slice();w.push(S),g+=c.length}return zt(...w)};return(g,w)=>{h(),p(g);let S;for(;(S=w(m()))===void 0;)p();return h(),S}}function Bt(r,t={},e={},n="object"){Oe(r,n),Oe(t,"fields"),Oe(e,"optFields");function o(i,a,c){let f=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,u=r[i];if(!Object.hasOwn(r,i)&&(c?u!==void 0:a!=="function"))throw new TypeError(`${f} is invalid: expected own property`);if(c&&u===void 0)return;let h=typeof u;if(h!==a||u===null)throw new TypeError(`${f} is invalid: expected ${a}, got ${h}`)}let s=(i,a)=>Object.entries(i).forEach(([c,f])=>o(c,f,a));s(t,!1),s(e,!0)}var bt=BigInt(0),X=BigInt(1),Me=BigInt(2),du=BigInt(3),_i=BigInt(4),pu=BigInt(5),Zp=BigInt(7),mu=BigInt(8),Xp=BigInt(9),Qp=BigInt(15),yu=BigInt(16),Jp=BigInt("0x10000000000000000");function J(r,t){if(t<=bt)throw new Error("mod: expected positive modulus, got "+t);let e=r%t;return e>=bt?e:t+e}function gu(r,t,e){if(e<=X)throw new Error("pow: expected modulus > 1, got "+e);if(typeof t!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof t);if(t<bt)throw new Error("invalid exponent, negatives unsupported");if(t===bt)return X;if(t===X)return r;let n=r%e;if(n<bt&&(n+=e),t<Jp){let a=X;for(;t>bt;)t&X&&(a=a*n%e),n=n*n%e,t>>=X;return a}let o=[];for(;t>bt;)o.push(Number(t&Qp)),t>>=_i;let s=new Array(16);s[0]=X,s[1]=n;for(let a=2;a<16;a++)s[a]=s[a-1]*n%e;let i=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){i=i*i%e,i=i*i%e,i=i*i%e,i=i*i%e;let c=o[a];c!==0&&(i=i*s[c]%e)}return i}function it(r,t,e){if(e<=X)throw new Error("pow2: expected modulus > 1, got "+e);if(t<bt)throw new Error("pow2: expected non-negative exponent, got "+t);let n=r;for(;t-- >bt;)n*=n,n%=e;return n}function hu(r,t){if(r===bt)throw new Error("invert: expected non-zero number");if(t<=X)throw new Error("invert: expected modulus > 1, got "+t);let e=J(r,t),n=t,o=bt,s=X;for(;e!==bt;){let a=n/e,c=n-e*a,f=o-s*a;n=e,e=c,o=s,s=f}if(n!==X)throw new Error("invert: does not exist");return J(o,t)}function bu(r,t){if(t<=X)throw new Error("invertCt: expected prime modulus > 1, got "+t);let e=J(r,t);if(e===bt)throw new Error("invertCt: expected non-zero number");let n=gu(e,t-Me,t);if(J(e*n,t)!==X)throw new Error("invertCt: does not exist");return n}function Di(r,t,e){let n=r;if(!n.eql(n.sqr(t),e))throw new Error("Cannot find square root")}function Ri(r,t){if((r&X)===bt)throw new Error(t+": expected odd modulus, got "+r)}function wu(r,t){let e=r,n=(e.ORDER+X)/_i,o=e.pow(t,n);return Di(e,o,t),o}function tm(r,t){let e=r,n=(e.ORDER-pu)/mu,o=e.mul(t,Me),s=e.pow(o,n),i=e.mul(t,s),a=e.mul(e.mul(i,Me),s),c=e.mul(i,e.sub(a,e.ONE));return Di(e,c,t),c}function em(r){let t=Tr(r),e=xu(r),n=e(t,t.neg(t.ONE)),o=e(t,n),s=e(t,t.neg(n)),i=(r+Zp)/yu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),l=f.mul(u,o),p=f.mul(u,s),m=f.eql(f.sqr(h),c),b=f.eql(f.sqr(l),c);u=f.cmov(u,h,m),h=f.cmov(p,l,b);let g=f.eql(f.sqr(h),c),w=f.cmov(u,h,g);return Di(f,w,c),w})}function xu(r){if(r<du)throw new Error("sqrt is not defined for small field");Ri(r,"tonelliShanks");let t=r-X,e=0;for(;t%Me===bt;)t/=Me,e++;let n=Me,o=Tr(r);for(;gn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(e===1)return wu;let s=o.pow(n,t),i=(t+X)/Me;return function(c,f){let u=c;if(u.is0(f))return f;if(gn(u,f)!==1)throw new Error("Cannot find square root");let h=e,l=u.mul(u.ONE,s),p=u.pow(f,t),m=u.pow(f,i);for(;!u.eql(p,u.ONE);){if(u.is0(p))throw new Error("Cannot find square root: probably non-prime P");let b=1,g=u.sqr(p);for(;!u.eql(g,u.ONE);)if(b++,g=u.sqr(g),b===h)throw new Error("Cannot find square root");let w=X<<BigInt(h-b-1),S=u.pow(l,w);h=b,l=u.sqr(S),p=u.mul(p,l),m=u.mul(m,S)}return m}}function rm(r){return Ri(r,"Fp.sqrt"),r%_i===du?wu:r%mu===pu?tm:r%yu===Xp?em(r):xu(r)}var Eu=(r,t)=>(J(r,t)&X)===X,nm=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cr(r){if(Oe(r,"field"),typeof r.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof r.ORDER);Ne(r.BYTES,"BYTES"),Ne(r.BITS,"BITS");for(let t of nm)Je(r[t],"field."+t);if(r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=X)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function Lo(r,t,e=!1){Cr(r),So(t,"nums"),Ut(e,"passZero");let n=r,o=new Array(t.length).fill(e?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function gn(r,t){Cr(r);let e=r;Ri(e.ORDER,"FpLegendre");let n=(e.ORDER-X)/Me,o=e.pow(t,n),s=e.eql(o,e.ONE),i=e.eql(o,e.ZERO),a=e.eql(o,e.neg(e.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function om(r,t){if(t!==void 0&&Ci(t),r<=bt)throw new Error("invalid n length: expected positive n, got "+r);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let e=Ir(r);if(t!==void 0&&t<e)throw new Error(`invalid n length: expected nBitLength (${t}) >= bitLen(n) (${e})`);let n=t!==void 0?t:e,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var lu=new WeakMap,Bo=class{ORDER;BITS;BYTES;isLE;ZERO=bt;ONE=X;_lengths;_mod;constructor(t,e={}){if(t<=X)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,e!=null&&typeof e=="object"&&(typeof e.BITS=="number"&&(n=e.BITS),typeof e.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:e.sqrt,enumerable:!0}),typeof e.isLE=="boolean"&&(this.isLE=e.isLE),e.allowedLengths&&(this._lengths=Object.freeze(e.allowedLengths.slice())),typeof e.modFromBytes=="boolean"&&(this._mod=e.modFromBytes));let{nBitLength:o,nByteLength:s}=om(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return J(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return bt<=t&&t<this.ORDER}is0(t){return t===bt}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&X)===X}neg(t){return J(-t,this.ORDER)}eql(t,e){return t===e}sqr(t){return J(t*t,this.ORDER)}add(t,e){return J(t+e,this.ORDER)}sub(t,e){return J(t-e,this.ORDER)}mul(t,e){return J(t*e,this.ORDER)}pow(t,e){return gu(t,e,this.ORDER)}div(t,e){return J(t*hu(e,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,e){return t+e}subN(t,e){return t-e}mulN(t,e){return t*e}inv(t){return hu(t,this.ORDER)}sqrt(t){let e=lu.get(this);return e||lu.set(this,e=rm(this.ORDER)),e(this,t)}toBytes(t){return this.isLE?mn(t,this.BYTES):vo(t,this.BYTES)}fromBytes(t,e=!1){j(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?se(t):oe(t);if(a&&(c=J(c,i)),!e&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return Lo(this,t,!0)}cmov(t,e,n){return Ut(n,"condition"),n?e:t}};function Tr(r,t={}){return Object.freeze(Bo.prototype),new Bo(r,t)}function Su(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=X)throw new Error("field order must be greater than 1");let t=Ir(r-X);return Math.ceil(t/8)}function Io(r){let t=Su(r);return t+Math.ceil(t/2)}function Co(r,t,e=!1){j(r);let n=r.length,o=Su(t),s=Math.max(Io(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=e?se(r):oe(r),a=J(i,t-X)+X;return e?mn(a,o):vo(a,o)}var Ui=BigInt(0),bn=BigInt(1),sm=BigInt(4),Oi=16,Au=128,im=5,vu=2**31;function ke(r){let t=r;if(typeof t!="function")throw new TypeError('"Point" expected constructor, got type='+typeof r);Je(t.fromAffine,"Point.fromAffine"),Je(t.fromBytes,"Point.fromBytes"),Je(t.fromHex,"Point.fromHex"),Oe(t.BASE,"Point.BASE"),Oe(t.ZERO,"Point.ZERO"),Cr(t.Fp),Cr(t.Fn)}function To(r,t){ke(r),Lu(t,r);let e=Lo(r.Fp,t.map(n=>n.Z));return t.map((n,o)=>r.fromAffine(n.toAffine(e[o])))}function am(r,t,e=1){if(!Number.isSafeInteger(r)||r<e||r>t)throw new Error("invalid window size, expected ["+e+".."+t+"], got W="+r)}function cm(r,t){let e=r*(4*t+128);if(e>vu)throw new Error("invalid window size: table would need ~"+Math.ceil(e/2**20)+" MiB, max "+vu/2**20+" MiB")}function Ni(r,t){if(r!==void 0){Je(r,"randomBytes");try{let e=r(t);if(!Ue(e)||e.length!==t)return}catch{return}return r}}function Lu(r,t){So(r,"points"),r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function fm(r,t,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((n,o)=>{if(!(e===void 0?t.isValid(n):Pe(n)&&n<e))throw new Error("invalid scalar at index "+o)})}var Iu=new WeakMap;function Pi(r){return Iu.get(r)||1}function um(r,t){let e=r.double(),n=[r];for(let o=1;o<t;o++)n.push(n[o-1].add(e));return n}function hm(r,t){let e=2**t,n=e/2,o=BigInt(e-1),s=[];for(;r>Ui;){let i=0;r&bn&&(i=Number(r&o),i>=n&&(i-=e),r-=BigInt(i)),s.push(i),r>>=bn}return s}function lm(r,t,e){let n=2**t,o=n/2,s=BigInt(n-1),i=BigInt(t),a=[];for(let c=0;c<e;c++){let f=Number(r&s);r>>=i,f>o&&(f-=n,r+=bn),a.push(f)}if(r!==Ui)throw new Error("invalid wnaf");return a}function dm(r,t,e){let n=0;for(let s of e)n=Math.max(n,s.length);let o=r;for(let s=n-1;s>=0;s--){s!==n-1&&(o=o.double());for(let i=0;i<e.length;i++){let a=e[i][s];if(a){let c=t[i][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}var _r=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(t,e){ke(t),this.randomBytes=Ni(e,Oi),this.Point=t,this.BASE=t.BASE,this.ZERO=t.ZERO,this.bits=t.Fn.BITS}buildWnafTable(t,e,n){let o=Math.ceil(n/e)+1,s=2**(e-1),i=[],a=t;for(let c=0;c<o;c++){let f=a;for(let u=0;u<s;u++)i.push(f),f=f.add(a);a=i[i.length-1].double()}return{W:e,bits:n,windows:o,comp:i}}wnafCachedCT(t,e){let{W:n,windows:o,comp:s}=t,i=2**(n-1),a=lm(e,n,o),c=this.ZERO,f=this.BASE;for(let u=0;u<o;u++){let h=a[u],l=u*i,p=Math.abs(h)-1,m=s[l];for(let g=1;g<i;g++)m=g===p?s[l+g]:m;let b=m.negate();h===0?f=f.add(s[l]):c=c.add(h<0?b:m)}return{p:c,f}}getWnafPrecomputes(t,e,n,o){let s=this.wnafPrecomputes.get(e),i=s?.find(a=>a.W===t&&a.bits===n);return i||(i=this.buildWnafTable(e,t,n),typeof o=="function"&&(i={...i,comp:o(i.comp)}),s||(s=[],this.wnafPrecomputes.set(e,s)),s.push(i)),i}assertPoint(t){if(!(t instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof t)}validateMulInput(t,e){if(this.assertPoint(t),!Ti(e,bn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(t,e,n,o){let s=Pi(t);return s===1?this.fixedWindowCT(t,e,n):this.wnafCachedCT(this.getWnafPrecomputes(s,t,n,o),e)}mulCT(t,e,n){return this.validateMulInput(t,e),this.runCT(t,e,this.bits,n)}mulCTBlinded(t,e,n){if(this.validateMulInput(t,e),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+Au,s=this.randomBytes(Oi);if(!Ue(s)||s.length!==Oi)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=e+oe(s)*this.Point.Fn.ORDER;return this.runCT(t,i,o,n)}fixedWindowCT(t,e,n){let o=im,s=1<<o,i=yn(o),a=new Array(s);a[0]=this.ZERO;for(let u=1;u<s;u++)a[u]=a[u-1].add(t);let c=Math.ceil(n/o),f=this.ZERO;for(let u=c-1;u>=0;u--){if(u!==c-1)for(let p=0;p<o;p++)f=f.double();let h=Number(e>>BigInt(u*o)&i),l=a[0];for(let p=1;p<s;p++)l=p===h?a[p]:l;f=f.add(l)}return{p:f,f}}shouldBlind(t,e){return this.randomBytes===void 0?!1:e===bn?!0:t!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(t,e,n,o){return this.shouldBlind(t,n)?this.mulCTBlinded(t,e,o):this.mulCT(t,e,o)}mulUnsafe(t,e,n){if(this.assertPoint(t),!Pe(e))throw new Error("invalid scalar");let o=Pi(t);if(o===1||e>=this.Point.Fn.ORDER)return _o(this.Point,[t],[e],!0);let s=this.getWnafPrecomputes(o,t,this.bits,n);return this.wnafCachedCT(s,e).p}setWindowSize(t,e){this.assertPoint(t),am(e,this.bits);let n=Math.ceil((this.bits+Au)/e)+1;cm(n*2**(e-1),this.Point.Fp.BYTES),Iu.set(t,e),this.wnafPrecomputes.delete(t)}hasWindowSize(t){return Pi(t)!==1}};function _o(r,t,e,n=!1){if(ke(r),Lu(t,r),Ut(n,"allowOversized"),fm(e,r.Fn,n?r.Fn.ORDER**sm:void 0),t.length!==e.length)throw new Error("arrays of points and scalars must have equal length");let o=t.map(i=>um(i,4)),s=e.map(i=>hm(i,4));return dm(r.ZERO,o,s)}function Bu(r,t,e){if(t){if(t.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Cr(t),t}else return Tr(r,{isLE:e})}function Do(r,t,e={},n){if(r!=="weierstrass"&&r!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=r==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${r} CURVE object`);Bt(e);for(let c of["p","n","h"]){let f=t[c];if(!(Pe(f)&&f!==Ui))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Bu(t.p,e.Fp,n),s=Bu(t.n,e.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Dr(r,t){return function(n){let o=r(n);return{secretKey:o,publicKey:t(o)}}}var Ro=BigInt(0),Oo=BigInt(1),Po=BigInt(2),pm=BigInt(4),Cu=BigInt(8);function mm(r,t,e,n){let o=r.sqr(e),s=r.sqr(n),i=r.add(r.mul(t.a,o),s),a=r.add(r.ONE,r.mul(t.d,r.mul(o,s)));return r.eql(i,a)}function Tu(r,t={}){Bt(t,{},{},"extraOpts");let e=t,n=Do("edwards",r,e,e.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;if(gn(o,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(gn(o,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Bt(e,{},{uvRatio:"function",randomBytes:"function"});let c=e.randomBytes===void 0?ye:e.randomBytes,f=Po<<BigInt(o.BYTES*8)-Oo;function u(S){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(S)}let h=e.uvRatio===void 0?(S,x)=>{try{return{isValid:!0,value:o.sqrt(o.div(S,x))}}catch{return{isValid:!1,value:Ro}}}:e.uvRatio;if(!mm(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let l=o.eql(i.a,o.neg(o.ONE))?S=>o.neg(S):o.eql(i.a,o.ONE)?S=>S:S=>o.mul(i.a,S);function p(S,x,I=!1){let _=I?Oo:Ro;return ie("coordinate "+S,x,_,f),x}function m(S){if(!(S instanceof b))throw new Error("EdwardsPoint expected")}class b{static BASE=new b(i.Gx,i.Gy,o.ONE,o.mul(i.Gx,i.Gy));static ZERO=new b(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(x,I,_,N){this.X=p("x",x),this.Y=p("y",I),this.Z=p("z",_,!0),this.T=p("t",N),Object.freeze(this)}static CURVE(){return i}static fromAffine(x){if(x instanceof b)throw new Error("extended point not allowed");let{x:I,y:_}=x||{};return p("x",I),p("y",_),new b(I,_,o.ONE,o.mul(I,_))}static fromBytes(x,I=!1){let _=o.BYTES,{a:N,d:M}=i;x=tr(j(x,_,"point")),Ut(I,"zip215");let P=tr(x),R=x[_-1];P[_-1]=R&-129;let U=se(P),k=I?f:o.ORDER;ie("point.y",U,Ro,k);let D=o.sqr(U),H=o.sub(D,o.ONE),T=o.sub(o.mulN(M,D),N),{isValid:C,value:d}=h(H,T);if(!C)throw new Error("bad point: invalid y coordinate");let E=u(d),B=(R&128)!==0;if(!I&&o.is0(d)&&B)throw new Error("bad point: x=0 and x_0=1");return B!==E&&(d=o.neg(d)),b.fromAffine({x:d,y:U})}static fromHex(x,I=!1){return b.fromBytes(Lr(x),I)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=6,I=!0){return w.setWindowSize(this,x),I||this.multiply(Po),this}assertValidity(){let x=this,{a:I,d:_}=i;if(x.is0())throw new Error("bad point: ZERO");let{X:N,Y:M,Z:P,T:R}=x,U=o.sqr(N),k=o.sqr(M),D=o.sqr(P),H=o.sqr(D),T=o.mul(U,I),C=o.mul(o.add(T,k),D),d=o.add(H,o.mul(_,o.mul(U,k)));if(!o.eql(C,d))throw new Error("bad point: equation left != right (1)");let E=o.mul(N,M),B=o.mul(P,R);if(!o.eql(E,B))throw new Error("bad point: equation left != right (2)")}equals(x){m(x);let{X:I,Y:_,Z:N}=this,{X:M,Y:P,Z:R}=x,U=o.mul(I,R),k=o.mul(M,N),D=o.mul(_,R),H=o.mul(P,N);return o.eql(U,k)&&o.eql(D,H)}is0(){return this.equals(b.ZERO)}negate(){return new b(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:x,Y:I,Z:_}=this,N=o.sqr(x),M=o.sqr(I),P=o.mul(o.sqr(_),Po),R=l(N),U=o.addN(x,I),k=o.sub(o.subN(o.sqr(U),N),M),D=o.addN(R,M),H=o.subN(D,P),T=o.subN(R,M),C=o.mul(k,H),d=o.mul(D,T),E=o.mul(k,T),B=o.mul(H,D);return new b(C,d,B,E)}add(x){m(x);let{d:I}=i,{X:_,Y:N,Z:M,T:P}=this,{X:R,Y:U,Z:k,T:D}=x,H=o.mul(_,R),T=o.mul(N,U),C=o.mul(o.mulN(P,I),D),d=o.mul(M,k),E=o.sub(o.subN(o.mulN(o.addN(_,N),o.addN(R,U)),H),T),B=o.subN(d,C),A=o.addN(d,C),v=o.sub(T,l(H)),y=o.mul(E,B),L=o.mul(A,v),O=o.mul(E,v),F=o.mul(B,A);return new b(y,L,F,O)}subtract(x){return m(x),this.add(x.negate())}multiply(x){if(!s.isValidNot0(x))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:I,f:_}=w.mulSecret(this,x,a,g);return g([I,_])[0]}multiplyUnsafe(x){if(!s.isValid(x))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return x===Ro?b.ZERO:this.is0()||x===Oo?this:w.mulUnsafe(this,x,g)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return w.mulUnsafe(this,i.n).is0()}toAffine(x){let I=this,_=x;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:N,Y:M,Z:P}=I,R=I.is0();_==null&&(_=R?o.create(Cu):o.inv(P));let U=o.mul(N,_),k=o.mul(M,_),D=o.mul(P,_);if(R)return{x:o.ZERO,y:o.ONE};if(!o.eql(D,o.ONE))throw new Error("invZ was invalid");return{x:U,y:k}}clearCofactor(){return a===Oo?this:a===Po?this.double():a===pm?this.double().double():a===Cu?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x,y:I}=this.toAffine(),_=o.toBytes(I);return _[_.length-1]|=u(x)?128:0,_}toHex(){return dn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let g=S=>To(b,S),w=new _r(b,c);return w.bits>=6&&b.BASE.precompute(6),Object.freeze(b.prototype),Object.freeze(b),b}function _u(r,t,e={}){if(ke(r),typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=e;Bt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(Ne(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?ye:o.randomBytes,l=o.toMontgomery,p=o.toMontgomerySecret,m=o.adjustScalarBytes===void 0?T=>T:o.adjustScalarBytes,b=o.domain===void 0?(T,C,d)=>{if(Ut(d,"phflag"),C.length||d)throw new Error("Contexts/pre-hash are not supported");return T}:o.domain;function g(T){return c.create(se(T))}function w(T){let C=R.secretKey;j(T,R.secretKey,"secretKey");let d=j(n(T),2*C,"hashedSecretKey"),E=m(d.slice(0,C)),B=d.slice(C,2*C),A=g(E);return{head:E,prefix:B,scalar:A}}function S(T){let{head:C,prefix:d,scalar:E}=w(T),B=i.multiply(E),A=B.toBytes();return{head:C,prefix:d,scalar:E,point:B,pointBytes:A}}function x(T){return S(T).pointBytes}function I(T=Uint8Array.of(),...C){let d=zt(...C);return g(n(b(d,j(T,void 0,"context"),!!s)))}function _(T,C,d={}){Bt(d,{},{},"options"),T=j(T,void 0,"message"),s&&(T=s(T));let{prefix:E,scalar:B,pointBytes:A}=S(C),v=I(d.context,E,T),y=i.multiply(v).toBytes(),L=I(d.context,y,A,T),O=c.create(v+L*B);if(!c.isValid(O))throw new Error("sign failed: invalid s");let F=zt(y,c.toBytes(O));return j(F,R.signature,"result")}let N={zip215:o.zip215};function M(T,C,d,E=N){Bt(E);let{context:B}=E,A=E.zip215===void 0?!!N.zip215:E.zip215,v=R.signature;T=j(T,v,"signature"),C=j(C,void 0,"message"),d=j(d,R.publicKey,"publicKey"),A!==void 0&&Ut(A,"zip215"),s&&(C=s(C));let y=v/2,L=T.subarray(0,y),O=se(T.subarray(y,v)),F,K,q;try{F=r.fromBytes(d,A),K=r.fromBytes(L,A),q=i.multiplyUnsafe(O)}catch{return!1}if(!A&&F.isSmallOrder())return!1;let V=I(B,L,d,C);return K.add(F.multiplyUnsafe(V)).subtract(q).clearCofactor().is0()}let P=a.BYTES,R={secretKey:P,publicKey:P,signature:2*P,seed:P};function U(T){return T=T===void 0?h(R.seed):T,j(T,R.seed,"seed")}function k(T){return Ue(T)&&T.length===R.secretKey}function D(T,C){try{return!!r.fromBytes(T,C===void 0?N.zip215:C)}catch{return!1}}let H={getExtendedPublicKey:S,randomSecretKey:U,isValidSecretKey:k,isValidPublicKey:D,toMontgomery(T){if(l===void 0)throw new Error("Montgomery conversion is not supported for this curve");return l(r.fromBytes(T))},toMontgomerySecret(T){if(p===void 0)throw new Error("Montgomery conversion is not supported for this curve");return p(T)}};return Object.freeze(R),Object.freeze(H),Object.freeze({keygen:Dr(U,x),getPublicKey:x,sign:_,verify:M,utils:H,Point:r,lengths:R})}var er=BigInt(0),Vt=BigInt(1),Uo=BigInt(2);function Du(r,t){return r+t-(t>>Vt<<Vt)}function ym(r){let t=BigInt(6)*r;return(e,n,o)=>{let s=n+o,a=((t+o-n)*e+n)%r;return{x_2:a,x_3:s-a}}}function gm(r){return Bt(r,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...r})}function Ru(r){let t=gm(r),{P:e,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=t.scalarMultBase,c=n==="x25519";if(!c&&n!=="x448")throw new Error("invalid type");let f=i===void 0?ye:i,u=c?255:448,h=ym(e),l=c?32:56,p=BigInt(c?9:5),m=BigInt(c?121665:39081),b=c?Uo**BigInt(254):Uo**BigInt(447),g=c?BigInt(8)*(Uo**BigInt(251)-Vt):BigInt(4)*(Uo**BigInt(445)-Vt),w=b+g+Vt,S=d=>J(d,e),x=I(p);function I(d){return mn(S(d),l)}function _(d){let E=tr(j(d,l,"uCoordinate"));return c&&(E[31]&=127),S(se(E))}function N(d){return se(o(tr(j(d,l,"scalar"))))}let M=new Set(c?[er,Vt,e-Vt,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[er,Vt,e-Vt]);function P(d,E){let B=_(E);if(M.has(B))throw new Error("invalid private or public key received");let A=D(B,N(d));if(A===er)throw new Error("invalid private or public key received");return I(A)}function R(d){if(a===void 0)return P(d,x);let E=N(d);ie("scalar",E,b,w);let B=S(a(E));if(B===er)throw new Error("invalid private or public key received");return I(B)}let U=R,k=P;function D(d,E){ie("u",d,er,e),ie("scalar",E,b,w);let B=E,A=d,v=Vt,y=er,L=d,O=Vt,F=B^B>>Vt;for(let V=BigInt(u-1);V>=er;V--){let G=Du(e,F>>V);({x_2:v,x_3:L}=h(G,v,L)),{x_2:y,x_3:O}=h(G,y,O);let ot=v+y,st=S(ot*ot),mt=v-y,Nt=S(mt*mt),de=st-Nt,$e=L+O,Jt=L-O,Mt=S(Jt*ot),mr=S($e*mt),tn=Mt+mr,ve=Mt-mr;L=S(tn*tn),O=S(A*S(ve*ve)),v=S(st*Nt),y=S(de*(st+S(m*de)))}let K=Du(e,B);({x_2:v,x_3:L}=h(K,v,L)),{x_2:y,x_3:O}=h(K,y,O);let q=s(y);return S(v*q)}let H={secretKey:l,publicKey:l,seed:l},T=d=>(d=d===void 0?f(l):d,j(d,H.seed,"seed"),d),C={randomSecretKey:T};return Object.freeze(H),Object.freeze(C),Object.freeze({keygen:Dr(T,U),getSharedSecret:k,getPublicKey:U,scalarMult:P,scalarMultBase:R,utils:C,GuBytes:x.slice(),lengths:H})}var Ou=BigInt(0),Mi=BigInt(1),Pu=BigInt(2),bm=BigInt(3),wm=BigInt(5),xm=BigInt(8),No=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Em={p:No,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:xm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Mu(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),o=BigInt(80),s=No,a=r*r%s*r%s,c=it(a,Pu,s)*a%s,f=it(c,Mi,s)*r%s,u=it(f,wm,s)*f%s,h=it(u,t,s)*u%s,l=it(h,e,s)*h%s,p=it(l,n,s)*l%s,m=it(p,o,s)*p%s,b=it(m,o,s)*p%s,g=it(b,t,s)*u%s;return{pow_p_5_8:it(g,Pu,s)*r%s,b2:a}}function ki(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Uu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Sm(r,t){let e=No,n=J(t*t*t,e),o=J(n*n*t,e),s=Mu(r*o).pow_p_5_8,i=J(r*n*s,e),a=J(t*i*i,e),c=i,f=J(i*Uu,e),u=a===r,h=a===J(-r,e),l=a===J(-r*Uu,e);return u&&(i=c),(h||l)&&(i=f),Eu(i,e)&&(i=J(-i,e)),{isValid:u||h,value:i}}var wn=Tu(Em,{uvRatio:Sm}),Nu=wn.Fp;function Am(r){let{y:t}=r;return Nu.toBytes(Nu.div(Mi+t,Mi-t))}function vm(r){let t=wn.Fp.BYTES;return Rt(r,t),ki(Ii(r.subarray(0,t))).subarray(0,t)}function Bm(r){return _u(wn,Ii,Object.assign({adjustScalarBytes:ki,toMontgomery:Am,toMontgomerySecret:vm,zip215:!0},r))}var ku=Bm({});var xn=(()=>{let r=No,t=e=>{let{pow_p_5_8:n,b2:o}=Mu(e);return J(it(n,bm,r)*o,r)};return Ru({P:r,type:"x25519",powPminus2:t,adjustScalarBytes:ki,scalarMultBase:e=>{let n=J(e,wn.Fn.ORDER);if(n===Ou)return Ou;let o=wn.BASE.multiply(n);return J((o.Z+o.Y)*t(J(o.Z-o.Y,r)),r)}})})();var En=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Mo=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var qt={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new Mo("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var ko=32;var Ki,Lm=(async()=>{try{return await qt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function Im(r,t,e){if(r.buffer instanceof ArrayBuffer){let n=await qt.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await qt.get().subtle.verify({name:"Ed25519"},n,Et(t),Et(e instanceof Uint8Array?e:e.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function Cm(r,t,e){return ku.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}async function Ku(r,t,e){return Ki==null&&(Ki=await Lm),Ki?Im(r,t,e):Cm(r,t,e)}function Ko(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var Fo=class{type="Ed25519";raw;constructor(t){this.raw=Fi(t,ko)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){n?.signal?.throwIfAborted();let o=Ku(this.raw,e,t);return Ko(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Hi(r){return r=Fi(r,ko),new Fo(r)}function Fi(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new tt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}var _m=Math.pow(2,7),Dm=Math.pow(2,14),Rm=Math.pow(2,21),zi=Math.pow(2,28),Vi=Math.pow(2,35),qi=Math.pow(2,42),$i=Math.pow(2,49),Q=128,Lt=127;function It(r){if(r<_m)return 1;if(r<Dm)return 2;if(r<Rm)return 3;if(r<zi)return 4;if(r<Vi)return 5;if(r<qi)return 6;if(r<$i)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Rr(r,t,e=0){switch(It(r)){case 8:t[e++]=r&255|Q,r/=128;case 7:t[e++]=r&255|Q,r/=128;case 6:t[e++]=r&255|Q,r/=128;case 5:t[e++]=r&255|Q,r/=128;case 4:t[e++]=r&255|Q,r>>>=7;case 3:t[e++]=r&255|Q,r>>>=7;case 2:t[e++]=r&255|Q,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Om(r,t,e=0){switch(It(r)){case 8:t.set(e++,r&255|Q),r/=128;case 7:t.set(e++,r&255|Q),r/=128;case 6:t.set(e++,r&255|Q),r/=128;case 5:t.set(e++,r&255|Q),r/=128;case 4:t.set(e++,r&255|Q),r>>>=7;case 3:t.set(e++,r&255|Q),r>>>=7;case 2:t.set(e++,r&255|Q),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function ji(r,t){let e=r[t],n=0;if(n+=e&Lt,e<Q||(e=r[t+1],n+=(e&Lt)<<7,e<Q)||(e=r[t+2],n+=(e&Lt)<<14,e<Q)||(e=r[t+3],n+=(e&Lt)<<21,e<Q)||(e=r[t+4],n+=(e&Lt)*zi,e<Q)||(e=r[t+5],n+=(e&Lt)*Vi,e<Q)||(e=r[t+6],n+=(e&Lt)*qi,e<Q)||(e=r[t+7],n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Pm(r,t){let e=r.get(t),n=0;if(n+=e&Lt,e<Q||(e=r.get(t+1),n+=(e&Lt)<<7,e<Q)||(e=r.get(t+2),n+=(e&Lt)<<14,e<Q)||(e=r.get(t+3),n+=(e&Lt)<<21,e<Q)||(e=r.get(t+4),n+=(e&Lt)*zi,e<Q)||(e=r.get(t+5),n+=(e&Lt)*Vi,e<Q)||(e=r.get(t+6),n+=(e&Lt)*qi,e<Q)||(e=r.get(t+7),n+=(e&Lt)*$i,e<Q))return n;throw new RangeError("Could not decode varint")}function Hu(r,t,e=0){return t==null&&(t=vt(It(r))),t instanceof Uint8Array?Rr(r,t,e):Om(r,t,e)}function rr(r,t=0){return r instanceof Uint8Array?ji(r,t):Pm(r,t)}var Gi=new Float32Array([-0]),Ke=new Uint8Array(Gi.buffer);function zu(r,t,e){Gi[0]=r,t[e]=Ke[0],t[e+1]=Ke[1],t[e+2]=Ke[2],t[e+3]=Ke[3]}function Vu(r,t){return Ke[0]=r[t],Ke[1]=r[t+1],Ke[2]=r[t+2],Ke[3]=r[t+3],Gi[0]}var Yi=new Float64Array([-0]),Ct=new Uint8Array(Yi.buffer);function qu(r,t,e){Yi[0]=r,t[e]=Ct[0],t[e+1]=Ct[1],t[e+2]=Ct[2],t[e+3]=Ct[3],t[e+4]=Ct[4],t[e+5]=Ct[5],t[e+6]=Ct[6],t[e+7]=Ct[7]}function $u(r,t){return Ct[0]=r[t],Ct[1]=r[t+1],Ct[2]=r[t+2],Ct[3]=r[t+3],Ct[4]=r[t+4],Ct[5]=r[t+5],Ct[6]=r[t+6],Ct[7]=r[t+7],Yi[0]}var Um=BigInt(Number.MAX_SAFE_INTEGER),Nm=BigInt(Number.MIN_SAFE_INTEGER),kt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return nr;if(t<Um&&t>Nm)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ju&&(o=0n,++n>ju&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return nr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):nr}},nr=new kt(0,0);nr.toBigInt=function(){return 0n};nr.zzEncode=nr.zzDecode=function(){return this};nr.length=function(){return 1};var ju=4294967296n;function Wu(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Gu(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Zi(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Zt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Ho(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var Xi=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=Et(t),this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Zt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Zt(this,4);return Ho(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Zt(this,4);return Ho(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Zt(this,4);let t=Vu(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Zt(this,4);let t=$u(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Zt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Gu(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Zt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Zt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new kt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Zt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Zt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Zt(this,8);let t=Ho(this.buf,this.pos+=4),e=Ho(this.buf,this.pos+=4);return new kt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=ji(this.buf,this.pos);return this.pos+=It(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Sn(r){return new Xi(r instanceof Uint8Array?r:r.subarray())}function zo(r,t,e){let n=Sn(r);return t.decode(n,void 0,e)}function Qi(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return vt(i);o+i>t&&(n=vt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var or=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Ji(){}var ea=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Mm=Qi();function km(r){return globalThis.Buffer!=null?vt(r):Mm(r)}var vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new or(Ji,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new or(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new ra((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Vo,10,kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=kt.fromBigInt(t);return this._push(Vo,e.length(),e)}uint64Number(t){return this._push(Rr,It(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=kt.fromBigInt(t).zzEncode();return this._push(Vo,e.length(),e)}sint64Number(t){let e=kt.fromNumber(t).zzEncode();return this._push(Vo,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(ta,1,t?1:0)}fixed32(t){return this._push(An,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=kt.fromBigInt(t);return this._push(An,4,e.lo)._push(An,4,e.hi)}fixed64Number(t){let e=kt.fromNumber(t);return this._push(An,4,e.lo)._push(An,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(zu,4,t)}double(t){return this._push(qu,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(ta,1,0):this.uint32(e)._push(Fm,e,t)}string(t){let e=Wu(t);return e!==0?this.uint32(e)._push(Zi,e,t):this._push(ta,1,0)}fork(){return this.states=new ea(this),this.head=this.tail=new or(Ji,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new or(Ji,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=km(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function ta(r,t,e){t[e]=r&255}function Km(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var ra=class extends or{next;constructor(t,e){super(Km,t,e),this.next=void 0}};function Vo(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function An(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Fm(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(vn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Hm,t,r),this},vn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(zm,t,r),this});function Hm(r,t,e){t.set(r,e)}function zm(r,t,e){r.length<40?Zi(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(nt(r),e)}function na(){return new vn}function qo(r,t){let e=na();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}function*$o(r,t,e){let n=Sn(r);yield*t.stream(n,void 0,"$",e)}var jo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Wo(r,t,e,n,o){return{name:r,type:t,encode:e,decode:n,stream:o}}function oa(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return Wo("enum",jo.VARINT,e,n,o)}function Go(r,t,e){return Wo("message",jo.LENGTH_DELIMITED,r,t,e)}var ut;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(ut||(ut={}));var sa;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(sa||(sa={}));(function(r){r.codec=()=>oa(sa)})(ut||(ut={}));var ae;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ae||(ae={}));var ia;(function(r){let t;r.codec=()=>(t==null&&(t=Go((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ut.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=ut.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:ut.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function e(s){return qo(s,r.codec())}r.encode=e;function n(s,i){return zo(s,r.codec(),i)}r.decode=n;function o(s,i){return $o(s,r.codec(),i)}r.stream=o})(ia||(ia={}));var Ln={};rt(Ln,{MAX_RSA_KEY_SIZE:()=>aa,generateRSAKeyPair:()=>th,jwkToJWKKeyPair:()=>eh,jwkToPkcs1:()=>jm,jwkToPkix:()=>ha,jwkToRSAPrivateKey:()=>ma,pkcs1MessageToJwk:()=>fa,pkcs1MessageToRSAPrivateKey:()=>la,pkcs1ToJwk:()=>$m,pkcs1ToRSAPrivateKey:()=>Ju,pkixMessageToJwk:()=>ua,pkixMessageToRSAPublicKey:()=>pa,pkixToJwk:()=>Wm,pkixToRSAPublicKey:()=>da});var Or=class{type="RSA";jwk;_raw;_multihash;constructor(t,e){this.jwk=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return yt.createV1(114,this._multihash)}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return Qu(this.jwk,e,t,n)}},Bn=class{type="RSA";jwk;_raw;publicKey;constructor(t,e){this.jwk=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Ln.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}sign(t,e){return Xu(this.jwk,t,e)}};var aa=8192,ca=18,Vm=1062,qm=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function $m(r){let t=me(r);return fa(t)}function fa(r){return{n:Y(r[1],"base64url"),e:Y(r[2],"base64url"),d:Y(r[3],"base64url"),p:Y(r[4],"base64url"),q:Y(r[5],"base64url"),dp:Y(r[6],"base64url"),dq:Y(r[7],"base64url"),qi:Y(r[8],"base64url"),kty:"RSA"}}function jm(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new tt("JWK was missing components");return Ce([Pt(Uint8Array.from([0])),Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url")),Pt(nt(r.d,"base64url")),Pt(nt(r.p,"base64url")),Pt(nt(r.q,"base64url")),Pt(nt(r.dp,"base64url")),Pt(nt(r.dq,"base64url")),Pt(nt(r.qi,"base64url"))]).subarray()}function Wm(r){let t=me(r,{offset:0});return ua(t)}function ua(r){let t=me(r[1],{offset:0});return{kty:"RSA",n:Y(t[0],"base64url"),e:Y(t[1],"base64url")}}function ha(r){if(r.n==null||r.e==null)throw new tt("JWK was missing components");return Ce([qm,po(Ce([Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url"))]))]).subarray()}function Ju(r){let t=me(r);return la(t)}function la(r){let t=fa(r);return ma(t)}function da(r,t){if(r.byteLength>=Vm)throw new gr("Key size is too large");let e=me(r,{offset:0});return pa(e,r,t)}function pa(r,t,e){let n=ua(r);if(e==null){let o=ne(ae.encode({Type:ut.RSA,Data:t}));e=jt(ca,o)}return new Or(n,e)}function ma(r){if(nh(r)>aa)throw new tt("Key size is too large");let t=eh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}async function th(r){if(r>aa)throw new tt("Key size is too large");let t=await rh(r),e=ne(ae.encode({Type:ut.RSA,Data:ha(t.publicKey)})),n=jt(ca,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}function eh(r){if(r==null)throw new tt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function rh(r,t){let e=await qt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await Gm(e,t);return{privateKey:n[0],publicKey:n[1]}}async function Xu(r,t,e){let n=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);e?.signal?.throwIfAborted();let o=await qt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Et(t instanceof Uint8Array?t:t.subarray()));return e?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Qu(r,t,e,n){let o=await qt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await qt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Et(t),Et(e instanceof Uint8Array?e:e.subarray()));return n?.signal?.throwIfAborted(),s}async function Gm(r,t){if(r.privateKey==null||r.publicKey==null)throw new tt("Private and public key are required");let e=await Promise.all([qt.get().subtle.exportKey("jwk",r.privateKey),qt.get().subtle.exportKey("jwk",r.publicKey)]);return t?.signal?.throwIfAborted(),e}function nh(r){if(r.kty!=="RSA")throw new tt("invalid key type");if(r.n==null)throw new tt("invalid key modulus");return nt(r.n,"base64url").length*8}var Yo=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,e){if(Qe(t),Rt(e,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(e.length>n?t.create().update(e).digest():e);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),Ht(o)}update(t){return Br(this),this.iHash.update(t),this}digestInto(t){Br(this),go(t,this),this.finished=!0;let e=t.subarray(0,this.outputLen);this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:e,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a,canXOF:c}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.canXOF=c,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},In=(()=>{let r=((t,e,n)=>new Yo(t,e).update(n).digest());return r.create=(t,e)=>new Yo(t,e),r})();var Ym=BigInt(0),ya=class extends Error{constructor(t=""){super(t)}},ge={Err:ya,_tlv:{encode:(r,t)=>{let{Err:e}=ge;if(Ne(r,"tag"),r<0||r>255)throw new e("tlv.encode: wrong tag");if(cu(t,"data"),t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,o=pn(n);if(o.length/2&128)throw new e("tlv.encode: long form length too big");let s=n>127?pn(o.length/2|128):"";return pn(r)+s+o+t},decode(r,t){let{Err:e}=ge;t=j(t,void 0,"DER data");let n=0;if(r<0||r>255)throw new e("tlv.decode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=ge;if(Ao(r),r<Ym)throw new t("integer: negative integers are not allowed");let e=pn(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=ge;if(r.length<1)throw new t("invalid signature integer: empty");if(r[0]&128)throw new t("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return oe(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ge,o=j(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(f)}},hexFromSig(r){let{_tlv:t,_int:e}=ge;Bt(r,{r:"bigint",s:"bigint"},{},"sig");let n=t.encode(2,e.encode(r.r)),o=t.encode(2,e.encode(r.s)),s=n+o;return t.encode(48,s)}},ga=(Object.freeze(ge._tlv),Object.freeze(ge._int),Object.freeze(ge));var oh=(r,t)=>(r+(r>=0?t:-t)/sh)/t;function Zm(r,t,e){ie("scalar",r,be,e);let[[n,o],[s,i]]=t,a=oh(i*r,e),c=oh(-o*r,e),f=r-a*n-c*s,u=-a*o-c*i,h=f<be,l=u<be;h&&(f=-f),l&&(u=-u);let p=yn(Math.ceil(Ir(e)/2))+sr;if(f<be||f>=p||u<be||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:l,k2:u}}function xa(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ba(r,t){Bt(r);let e={};for(let n of Object.keys(t))e[n]=r[n]===void 0?t[n]:r[n];return Ut(e.lowS,"lowS"),Ut(e.prehash,"prehash"),e.format!==void 0&&xa(e.format),e}var be=BigInt(0),sr=BigInt(1),sh=BigInt(2),wa=BigInt(3),Xm=BigInt(4);function ih(r,t={}){let e=Do("weierstrass",r,t),n=e.Fp,o=e.Fn,s=e.CURVE,{h:i,n:a}=s;Bt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",randomBytes:"function"});let{endo:c,allowInfinityPoint:f}=t,u=t.randomBytes===void 0?ye:t.randomBytes;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let h=ch(n,o);function l(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function p(C,d,E){if(f&&d.is0())return Uint8Array.of(0);let{x:B,y:A}=d.toAffine(),v=n.toBytes(B);if(Ut(E,"isCompressed"),E){l();let y=!n.isOdd(A);return zt(ah(y),v)}else return zt(Uint8Array.of(4),v,n.toBytes(A))}function m(C){j(C,void 0,"Point");let{publicKey:d,publicKeyUncompressed:E}=h,B=C.length,A=C[0],v=C.subarray(1);if(f&&B===1&&A===0)return{x:n.ZERO,y:n.ZERO};if(B===d&&(A===2||A===3)){let y=n.fromBytes(v);if(!n.isValid(y))throw new Error("bad point: is not on curve, wrong x");let L=x(y),O;try{O=n.sqrt(L)}catch(q){let V=q instanceof Error?": "+q.message:"";throw new Error("bad point: is not on curve, sqrt error"+V)}l();let F=n.isOdd(O);return(A&1)===1!==F&&(O=n.neg(O)),{x:y,y:O}}else if(B===E&&A===4){let y=n.BYTES,L=n.fromBytes(v.subarray(0,y)),O=n.fromBytes(v.subarray(y,y*2));if(!I(L,O))throw new Error("bad point: is not on curve");return{x:L,y:O}}else throw new Error(`bad point: got length ${B}, expected compressed=${d} or uncompressed=${E}`)}let b=t.toBytes===void 0?p:t.toBytes,g=t.fromBytes===void 0?m:t.fromBytes,w=n.mul(s.b,wa),S=n.is0(s.a)?C=>n.ZERO:C=>n.mul(s.a,C);function x(C){let d=n.sqr(C),E=n.mul(d,C);return n.add(n.add(E,n.mul(C,s.a)),s.b)}function I(C,d){let E=n.sqr(d),B=x(C);return n.eql(E,B)}if(!I(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let _=n.mul(n.pow(s.a,wa),Xm),N=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(_,N)))throw new Error("bad curve params: a or b");function M(C,d,E=!1){if(!n.isValid(d)||E&&n.is0(d))throw new Error(`bad point coordinate ${C}`);return d}function P(C){if(!(C instanceof D))throw new Error("Weierstrass Point expected")}function R(C){if(!c||!c.basises)throw new Error("no endo");return Zm(C,c.basises,o.ORDER)}function U(C,d,E,B){if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(c){let{k1neg:A,k1:v,k2neg:y,k2:L}=R(B),O=new D(n.mul(E.X,c.beta),E.Y,E.Z);C.push(A?E.negate():E,y?O.negate():O),d.push(v,L)}else C.push(E),d.push(B)}let k=new WeakSet;class D{static BASE=new D(s.Gx,s.Gy,n.ONE);static ZERO=new D(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(d,E,B){this.X=M("x",d),this.Y=M("y",E,!0),this.Z=M("z",B),Object.freeze(this)}static CURVE(){return s}static fromAffine(d){let{x:E,y:B}=d||{};if(!d||!n.isValid(E)||!n.isValid(B))throw new Error("invalid affine point");if(d instanceof D)throw new Error("projective point not allowed");return n.is0(E)&&n.is0(B)?D.ZERO:new D(E,B,n.ONE)}static fromBytes(d){let E=D.fromAffine(g(j(d,void 0,"point")));return E.assertValidity(),E}static fromHex(d){return D.fromBytes(Lr(d))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(d=6,E=!0){return T.setWindowSize(this,d),E||this.multiply(wa),this}assertValidity(){let d=this;if(d.is0()){if(t.allowInfinityPoint&&n.is0(d.X)&&n.eql(d.Y,n.ONE)&&n.is0(d.Z))return;throw new Error("bad point: ZERO")}if(k.has(d))return;let{x:E,y:B}=d.toAffine();if(!n.isValid(E)||!n.isValid(B))throw new Error("bad point: x or y not field elements");if(!I(E,B))throw new Error("bad point: equation left != right");if(!d.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");k.add(d)}hasEvenY(){let{y:d}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(d)}equals(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.eql(n.mul(E,L),n.mul(v,A)),F=n.eql(n.mul(B,L),n.mul(y,A));return O&&F}negate(){return new D(this.X,n.neg(this.Y),this.Z)}double(){let{X:d,Y:E,Z:B}=this,A=n.ZERO,v=n.ZERO,y=n.ZERO,L=n.mul(d,d),O=n.mul(E,E),F=n.mul(B,B),K=n.mul(d,E);return K=n.add(K,K),y=n.mul(d,B),y=n.add(y,y),A=S(y),v=n.mul(w,F),v=n.add(A,v),A=n.sub(O,v),v=n.add(O,v),v=n.mul(A,v),A=n.mul(K,A),y=n.mul(w,y),F=S(F),K=n.sub(L,F),K=S(K),K=n.add(K,y),y=n.add(L,L),L=n.add(y,L),L=n.add(L,F),L=n.mul(L,K),v=n.add(v,L),F=n.mul(E,B),F=n.add(F,F),L=n.mul(F,K),A=n.sub(A,L),y=n.mul(F,O),y=n.add(y,y),y=n.add(y,y),new D(A,v,y)}add(d){P(d);let{X:E,Y:B,Z:A}=this,{X:v,Y:y,Z:L}=d,O=n.ZERO,F=n.ZERO,K=n.ZERO,q=n.mul(E,v),V=n.mul(B,y),G=n.mul(A,L),ot=n.add(E,B),st=n.add(v,y);ot=n.mul(ot,st),st=n.add(q,V),ot=n.sub(ot,st),st=n.add(E,A);let mt=n.add(v,L);return st=n.mul(st,mt),mt=n.add(q,G),st=n.sub(st,mt),mt=n.add(B,A),O=n.add(y,L),mt=n.mul(mt,O),O=n.add(V,G),mt=n.sub(mt,O),K=S(st),O=n.mul(w,G),K=n.add(O,K),O=n.sub(V,K),K=n.add(V,K),F=n.mul(O,K),V=n.add(q,q),V=n.add(V,q),G=S(G),st=n.mul(w,st),V=n.add(V,G),G=n.sub(q,G),G=S(G),st=n.add(st,G),q=n.mul(V,st),F=n.add(F,q),q=n.mul(mt,st),O=n.mul(ot,O),O=n.sub(O,q),q=n.mul(ot,V),K=n.mul(mt,K),K=n.add(K,q),new D(O,F,K)}subtract(d){return P(d),this.add(d.negate())}is0(){return this.equals(D.ZERO)}multiply(d){if(!o.isValidNot0(d))throw new RangeError("invalid scalar: out of range");let{p:E,f:B}=T.mulSecret(this,d,i,H);return H([E,B])[0]}multiplyUnsafe(d){let E=this,B=d;if(!o.isValid(B))throw new RangeError("invalid scalar: out of range");if(B===be||E.is0())return D.ZERO;if(B===sr)return E;if(T.hasWindowSize(this))return T.mulUnsafe(E,B,H);let A=[],v=[];return U(A,v,E,B),_o(D,A,v)}mulAddUnsafe(d,E,B){P(E);let A=[],v=[];return U(A,v,this,d),U(A,v,E,B),_o(D,A,v)}toAffine(d){let E=this,B=d;if(B!=null&&!n.isValid(B))throw new RangeError('"invertedZ" expected valid field element');let{X:A,Y:v,Z:y}=E;if(n.eql(y,n.ONE))return{x:A,y:v};let L=E.is0();B==null&&(B=L?n.ONE:n.inv(y));let O=n.mul(A,B),F=n.mul(v,B),K=n.mul(y,B);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:O,y:F}}isTorsionFree(){let{isTorsionFree:d}=t;return i===sr?!0:d?d(D,this):T.mulUnsafe(this,a).is0()}clearCofactor(){let{clearCofactor:d}=t;return i===sr?this:d?d(D,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===sr?this.is0():this.clearCofactor().is0()}toBytes(d=!0){return Ut(d,"isCompressed"),this.assertValidity(),b(D,this,d)}toHex(d=!0){return dn(this.toBytes(d))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let H=C=>To(D,C),T=new _r(D,u);return T.bits>=6&&D.BASE.precompute(6),Object.freeze(D.prototype),Object.freeze(D),D}function ah(r){return Uint8Array.of(r?2:3)}function ch(r,t){return{secretKey:t.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Qm(r,t={}){ke(r);let{Fn:e}=r,n=t.randomBytes===void 0?ye:t.randomBytes,o=Object.assign(ch(r.Fp,e),{seed:Math.max(Io(e.ORDER),16)});function s(p){try{let m=e.fromBytes(p);return e.isValidNot0(m)}catch{return!1}}function i(p,m){let{publicKey:b,publicKeyUncompressed:g}=o;try{let w=p.length;return m===!0&&w!==b||m===!1&&w!==g?!1:!!r.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,Co(j(p,o.seed,"seed"),e.ORDER)}function c(p,m=!0){return r.BASE.multiply(e.fromBytes(p)).toBytes(m)}function f(p){let{secretKey:m,publicKey:b,publicKeyUncompressed:g}=o,w=e._lengths;if(!Ue(p))return;let S=j(p,void 0,"key").length,x=S===b||S===g,I=S===m||!!w?.includes(S);if(!(x&&I))return x}function u(p,m,b=!0){if(f(p)===!0)throw new Error("first arg must be private key");if(f(m)===!1)throw new Error("second arg must be public key");let g=e.fromBytes(p);return r.fromBytes(m).multiply(g).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},l=Dr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:l,Point:r,utils:h,lengths:o})}function fh(r,t,e={}){ke(r);let n=t;Qe(n),Bt(e,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let o=Object.assign({},e),s=o.randomBytes===void 0?ye:o.randomBytes,i=o.hmac===void 0?(v,y)=>In(n,v,y):o.hmac,{Fp:a,Fn:c}=r,{ORDER:f,BITS:u}=c,h=Io(f),l=Ni(s,h),{keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w}=Qm(r,o),S={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=f*sh+sr<a.ORDER;function I(v){let y=f>>sr;return v>y}function _(v,y){if(!c.isValidNot0(y))throw new Error(`invalid signature ${v}: out of range 1..Point.Fn.ORDER`);return y}function N(){if(!a.isOdd)throw new Error("Field doesn't support isOdd")}function M(v,y,L){return N(),(v===L?0:2)|Number(a.isOdd(y))}function P(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(v,y){xa(y);let L=w.signature,O=y==="compact"?L:y==="recovered"?L+1:void 0;return j(v,O)}class U{r;s;recovery;constructor(y,L,O){if(this.r=_("r",y),this.s=_("s",L),O!=null){if(P(),![0,1,2,3].includes(O))throw new Error("invalid recovery id");this.recovery=O}Object.freeze(this)}static fromBytes(y,L=S.format){R(y,L);let O;if(L==="der"){let{r:V,s:G}=ga.toSig(j(y));return new U(V,G)}L==="recovered"&&(O=y[0],L="compact",y=y.subarray(1));let F=w.signature/2,K=y.subarray(0,F),q=y.subarray(F,F*2);return new U(c.fromBytes(K),c.fromBytes(q),O)}static fromHex(y,L){return this.fromBytes(Lr(y),L)}assertRecovery(){let{recovery:y}=this;if(y==null)throw new Error("invalid recovery id: must be present");return y}addRecoveryBit(y){return new U(this.r,this.s,y)}recoverPublicKey(y){let{r:L,s:O}=this,F=this.assertRecovery(),K=F===2||F===3?L+f:L;if(!a.isValid(K))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let q=a.toBytes(K),V=r.fromBytes(zt(ah((F&1)===0),q)),G=c.inv(K),ot=D(j(y,void 0,"msgHash")),st=c.create(-ot*G),mt=c.create(O*G),Nt=r.BASE.mulAddUnsafe(st,V,mt);if(Nt.is0())throw new Error("invalid recovery: point at infinify");return Nt.assertValidity(),Nt}hasHighS(){return I(this.s)}toBytes(y=S.format){if(xa(y),y==="der")return Lr(ga.hexFromSig(this));let{r:L,s:O}=this,F=c.toBytes(L),K=c.toBytes(O);return y==="recovered"?(P(),zt(Uint8Array.of(this.assertRecovery()),F,K)):zt(F,K)}toHex(y){return dn(this.toBytes(y))}}Object.freeze(U.prototype),Object.freeze(U);let k=o.bits2int===void 0?function(y){if(y.length>8192)throw new Error("input is too large");let L=oe(y),O=y.length*8-u;return O>0?L>>BigInt(O):L}:o.bits2int,D=o.bits2int_modN===void 0?function(y){return c.create(k(y))}:o.bits2int_modN,H=yn(u);function T(v){return ie("num < 2^"+u,v,be,H),c.toBytes(v)}function C(v,y){return j(v,void 0,"message"),y?j(n(v),void 0,"prehashed message"):v}function d(v,y,L){let{lowS:O,prehash:F,extraEntropy:K}=ba(L,S);v=C(v,F);let q=D(v),V=c.fromBytes(y);if(!c.isValidNot0(V))throw new Error("invalid private key");let G=[T(V),T(q)];if(K!=null&&K!==!1){let Nt=K===!0?s(w.secretKey):K;G.push(j(Nt,void 0,"extraEntropy"))}let ot=zt(...G),st=q;function mt(Nt){let de=k(Nt);if(!c.isValidNot0(de))return;let $e=r.BASE.multiply(de).toAffine(),Jt=c.create($e.x);if(Jt===be)return;let Mt;if(l!==void 0){let ve=oe(Co(l(h),f)),od=c.inv(c.mul(ve,de)),sd=c.mul(ve,st),id=c.mul(ve,V);Mt=c.create(od*c.create(sd+id*Jt))}else{let ve=bu(de,f);Mt=c.create(ve*c.create(st+Jt*V))}if(Mt===be)return;let mr=M($e.x,$e.y,Jt),tn=Mt;return O&&I(Mt)&&(tn=c.neg(Mt),mr^=1),new U(Jt,tn,x?void 0:mr)}return{seed:ot,k2sig:mt}}function E(v,y,L={}){let{seed:O,k2sig:F}=d(v,y,L);return uu(n.outputLen,c.BYTES,i)(O,F).toBytes(L.format)}function B(v,y,L,O={}){let{lowS:F,prehash:K,format:q}=ba(O,S);if(L=j(L,void 0,"publicKey"),y=C(y,K),!Ue(v)){let V=v instanceof U?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+V)}R(v,q);try{let V=U.fromBytes(v,q),G=r.fromBytes(L);if(F&&V.hasHighS())return!1;let{r:ot,s:st}=V,mt=D(y),Nt=c.inv(st),de=c.create(mt*Nt),$e=c.create(ot*Nt),Jt=r.BASE.mulAddUnsafe(de,G,$e);if(Jt.is0())return!1;let Mt=Jt.toAffine();return!(c.create(Mt.x)!==ot||q==="recovered"&&V.recovery!==M(Mt.x,Mt.y,ot))}catch{return!1}}function A(v,y,L={}){let{prehash:O}=ba(L,S);return y=C(y,O),U.fromBytes(v,"recovered").recoverPublicKey(y).toBytes()}return Object.freeze({keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w,Point:r,sign:E,verify:B,recoverPublicKey:A,Signature:U,hash:n})}var Sa={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Jm={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var uh=BigInt(2);function t0(r){let t=Sa.p,e=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%t,u=f*f*r%t,h=it(u,e,t)*u%t,l=it(h,e,t)*u%t,p=it(l,uh,t)*f%t,m=it(p,o,t)*p%t,b=it(m,s,t)*m%t,g=it(b,a,t)*b%t,w=it(g,c,t)*g%t,S=it(w,a,t)*b%t,x=it(S,e,t)*u%t,I=it(x,i,t)*m%t,_=it(I,n,t)*f%t,N=it(_,uh,t);if(!Ea.eql(Ea.sqr(N),r))throw new Error("Cannot find square root");return N}var Ea=Tr(Sa.p,{sqrt:t0}),e0=ih(Sa,{Fp:Ea,endo:Jm}),Pr=fh(e0,ne);function hh(r,t,e,n){let o=an.digest(e instanceof Uint8Array?e:e.subarray());if(Ko(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Pr.verify(t,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new En(String(s))});try{return n?.signal?.throwIfAborted(),Pr.verify(t,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new En(String(s))}}var Zo=class{type="secp256k1";raw;_key;constructor(t){this._key=dh(t),this.raw=lh(this._key)}toMultihash(){return Wt.digest(Te(this))}toCID(){return yt.createV1(114,this.toMultihash())}toString(){return lt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:gt(this.raw,t.raw)}verify(t,e,n){return hh(this._key,e,t,n)}};function Aa(r){return new Zo(r)}function lh(r){return Pr.Point.fromBytes(r).toBytes()}function dh(r){try{return Pr.Point.fromBytes(r),r}catch(t){throw new gr(String(t))}}function Cn(r,t){let{Type:e,Data:n}=ae.decode(r),o=n??new Uint8Array;switch(e){case ut.RSA:return da(o,t);case ut.Ed25519:return Hi(o);case ut.secp256k1:return Aa(o);case ut.ECDSA:return yi(o);default:throw new je}}function ph(r){let{Type:t,Data:e}=ae.decode(r.digest),n=e??new Uint8Array;switch(t){case ut.Ed25519:return Hi(n);case ut.secp256k1:return Aa(n);case ut.ECDSA:return yi(n);default:throw new je}}function Te(r){return ae.encode({Type:ut[r.type],Data:r.raw})}var mh=Symbol.for("nodejs.util.inspect.custom"),r0=114,Tn=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Ks]=!0;toString(){return this.string==null&&(this.string=lt.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return yt.createV1(r0,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return gt(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return gt(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[mh](){return`PeerId(${this.toString()})`}},_n=class extends Tn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Dn=class extends Tn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Rn=class extends Tn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},n0=2336,On=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Wt.digest(nt(this.url))}[mh](){return`PeerId(${this.url})`}[Ks]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return yt.createV1(n0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=Y(t)),t.toString()===this.toString())}};var o0=114,yh=2336;function gh(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Ar(lt.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return s0(yt.parse(r));if(t==null)throw new tt('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Ar(t.decode(r))}return bh(e)}function va(r){if(r.type==="Ed25519")return new Dn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new Rn({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new _n({multihash:r.toCID().multihash,publicKey:r});throw new je}function bh(r){if(a0(r))return new _n({multihash:r});if(i0(r))try{let t=ph(r);if(t.type==="Ed25519")return new Dn({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Rn({multihash:r,publicKey:t})}catch{let e=Y(r.digest);return new On(new URL(e))}throw new so("Supplied PeerID Multihash is invalid")}function s0(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==o0&&r.code!==yh)throw new oo("Supplied PeerID CID is invalid");if(r.code===yh){let t=Y(r.multihash.digest);return new On(new URL(t))}return bh(r.multihash)}function i0(r){return r.code===Wt.code}function a0(r){return r.code===an.code}function c0(r){let t=r.getComponents(),e={},n=0;return t[n]?.name==="ip6zone"&&(e.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(e.type=t[n].name,e.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(e.type=t[n].name,e.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(e.protocol=t[n].name==="tcp"?"tcp":"udp",e.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(e.type==="ip4"?e.cidr=parseInt(`${t[n].value}`):e.type==="ip6"&&(e.cidr=`${t[n].value}`),n++),e.type==null||e.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(e.sni=t[n+1].value,n+=2),e)}function wh(r){let t=c0(r);if(t==null)throw new tt(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Xo=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let l=Number.parseInt(h,t);if(!Number.isNaN(l))return l});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let o=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[o]=i[0],e[o+1]=i[1],e[o+2]=i[2],e[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];e[o]=s>>8,e[o+1]=s&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,o]=t(e);if(n===16)return e;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return e.set(s.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var f0=45,u0=15,Qo=new Xo;function xh(r){if(!(r.length>u0))return Qo.new(r).parseWith(()=>Qo.readIPv4Addr())}function Eh(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>f0))return Qo.new(r).parseWith(()=>Qo.readIPv6Addr())}function Jo(r){return!!xh(r)}function Sh(r){return!!Eh(r)}var St=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},we=class extends Error{static name="ValidationError";name="ValidationError"},ts=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},es=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function La(r){return t=>Y(t,r)}function Ia(r){return t=>nt(t,r)}function Ur(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function ir(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(t)}function Ah(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=nt(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return ee([e,o],e.length+o.length)}function vh(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=Ie.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=ir(n);return ee([e,o],e.length+o.length)}function Ca(r){let t=r.subarray(0,r.length-2),e=r.subarray(r.length-2),n=Y(t,"base32"),o=Ur(e);return`${n}:${o}`}var Ta=function(r){r=r.toString().trim();let t=new Uint8Array(4);return r.split(/\./g).forEach((e,n)=>{let o=parseInt(e,10);if(isNaN(o)||o<0||o>255)throw new St("Invalid byte value in IP address");t[n]=o}),t},Bh=function(r){let t=0;r=r.toString().trim();let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Jo(e[n]),i;s&&(i=Ta(e[n]),e[n]=Y(i.subarray(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,Y(i.subarray(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let s=[n,1];for(n=9-e.length;n>0;n--)s.push("0");e.splice.apply(e,s)}let o=new Uint8Array(t+16);for(n=0;n<e.length;n++){e[n]===""&&(e[n]="0");let s=parseInt(e[n],16);if(isNaN(s)||s<0||s>65535)throw new St("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},Lh=function(r){if(r.byteLength!==4)throw new St("IPv4 address was incorrect length");let t=[];for(let e=0;e<r.byteLength;e++)t.push(r[e]);return t.join(".")},Ih=function(r){if(r.byteLength!==16)throw new St("IPv6 address was incorrect length");let t=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let e=t.join(":");try{let n=new URL(`http://[${e}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${e}"`)}};function Ch(r){try{let t=new URL(`http://[${r}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new St(`Invalid IPv6 address "${r}"`)}}var Ba=Object.values(Ye).map(r=>r.decoder),h0=(function(){let r=Ba[0].or(Ba[1]);return Ba.slice(2).forEach(t=>r=r.or(t)),r})();function Th(r){return h0.decode(r)}function _h(r){return t=>r.encoder.encode(t)}function l0(r){if(parseInt(r).toString()!==r)throw new we("Value must be an integer")}function d0(r){if(r<0)throw new we("Value must be a positive integer, or zero")}function p0(r){return t=>{if(t>r)throw new we(`Value must be smaller than or equal to ${r}`)}}function m0(...r){return t=>{for(let e of r)e(t)}}var Pn=m0(l0,d0,p0(65535));var xt=-1,_a=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let e;if(typeof t=="string"?e=this.protocolsByName.get(t):e=this.protocolsByCode.get(t),e==null)throw new es(`Protocol ${t} was unknown`);return e}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(e=>{this.protocolsByName.set(e,t)})}removeProtocol(t){let e=this.protocolsByCode.get(t);e!=null&&(this.protocolsByCode.delete(e.code),this.protocolsByName.delete(e.name),e.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Ee=new _a,T0=[{code:4,name:"ip4",size:32,valueToBytes:Ta,bytesToValue:Lh,validate:r=>{if(!Jo(r))throw new we(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:273,name:"udp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:33,name:"dccp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:41,name:"ip6",size:128,valueToBytes:Bh,bytesToValue:Ih,stringToValue:Ch,validate:r=>{if(!Sh(r))throw new we(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:xt},{code:43,name:"ipcidr",size:8,bytesToValue:La("base10"),valueToBytes:Ia("base10")},{code:53,name:"dns",size:xt},{code:54,name:"dns4",size:xt},{code:55,name:"dns6",size:xt},{code:56,name:"dnsaddr",size:xt},{code:132,name:"sctp",size:16,valueToBytes:ir,bytesToValue:Ur,validate:Pn},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:xt,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:xt,bytesToValue:La("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Ia("base58btc")(r):yt.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ca,valueToBytes:Ah},{code:445,name:"onion3",size:296,bytesToValue:Ca,valueToBytes:vh},{code:446,name:"garlic64",size:xt},{code:447,name:"garlic32",size:xt},{code:448,name:"tls"},{code:449,name:"sni",size:xt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:xt,bytesToValue:_h(ni),valueToBytes:Th},{code:480,name:"http"},{code:481,name:"http-path",size:xt,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:xt}];T0.forEach(r=>{Ee.addProtocol(r)});function Dh(r){let t=[],e=0;for(;e<r.length;){let n=rr(r,e),o=Ee.getProtocol(n),s=It(n),i=_0(o,r,e+s),a=0;i>0&&o.size===xt&&(a=It(i));let c=s+a+i,f={code:n,name:o.name,bytes:Et(r.subarray(e,e+c))};if(i>0){let u=e+s+a,h=r.subarray(u,u+i);f.value=o.bytesToValue?.(h)??Y(h)}t.push(f),e+=c}return t}function Rh(r){let t=0,e=[];for(let n of r){if(n.bytes==null){let o=Ee.getProtocol(n.code),s=It(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??nt(n.value),a=i.byteLength,o.size===xt&&(c=It(a)));let f=new Uint8Array(s+c+a),u=0;Rr(n.code,f,u),u+=s,i!=null&&(o.size===xt&&(Rr(a,f,u),u+=c),f.set(i,u)),n.bytes=f}e.push(n.bytes),t+=n.bytes.byteLength}return ee(e,t)}function Oh(r){if(r.charAt(0)!=="/")throw new St('String multiaddr must start with "/"');let t=[],e="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(e==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=Ee.getProtocol(o);if(e==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",e="protocol";continue}else if(a)throw new St(`Component ${o} was missing value`);e="value"}else if(e==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new St(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",e="protocol"}}}if(o!==""&&n!=="")throw new St("Incomplete multiaddr");return t}function Ph(r){return`/${r.flatMap(t=>{if(t.value==null)return t.name;let e=Ee.getProtocol(t.code);if(e==null)throw new St(`Unknown protocol code ${t.code}`);return[t.name,e.valueToString?.(t.value)??t.value]}).join("/")}`}function _0(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:rr(t,e)}var D0=Symbol.for("nodejs.util.inspect.custom"),Ga=Symbol.for("@multiformats/multiaddr");function R0(r){if(r==null&&(r="/"),Uh(r))return r.getComponents();if(r instanceof Uint8Array)return Dh(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Oh(r);if(Array.isArray(r))return r;throw new St("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Wa=class r{[Ga]=!0;#t;#e;#r;constructor(t="/",e={}){this.#t=R0(t),e.validate!==!1&&O0(this)}get bytes(){return this.#r==null&&(this.#r=Rh(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=Ph(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let e=new r(t);return new r([...this.#t,...e.getComponents()],{validate:!1})}decapsulate(t){let e=t.toString(),n=this.toString(),o=n.lastIndexOf(e);if(o<0)throw new ts(`Address ${this.toString()} does not contain subaddress: ${e}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(t){let e;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){e=n;break}return new r(this.#t.slice(0,e),{validate:!1})}equals(t){return gt(this.bytes,t.bytes)}[D0](){return`Multiaddr(${this.toString()})`}};function O0(r){r.getComponents().forEach(t=>{let e=Ee.getProtocol(t.code);t.value!=null&&e.validate?.(t.value)})}function Uh(r){return!!r?.[Ga]}var at=r=>({match:t=>{let e=t[0];return e==null||e.code!==r||e.value!=null?!1:t.slice(1)}}),z=(r,t)=>({match:e=>{let n=e[0];return n?.code!==r||n.value==null||t!=null&&n.value!==t?!1:e.slice(1)}}),Nh=r=>({match:t=>r.match(t)===!1?t:!1}),$=r=>({match:t=>{let e=r.match(t);return e===!1?t:e}}),Tt=(...r)=>({match:t=>{let e;for(let n of r){let o=n.match(t);o!==!1&&(e==null||o.length<e.length)&&(e=o)}return e??!1}}),Z=(...r)=>({match:t=>{for(let e of r){let n=e.match(t);if(n===!1)return!1;t=n}return t}});function ct(...r){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function e(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:r,matches:e,exactMatch:n}}var P0=z(421),BS=ct(P0),cs=z(54),fs=z(55),us=z(56),Za=z(53),LS=ct(cs,$(z(421))),IS=ct(fs,$(z(421))),CS=ct(us,$(z(421))),TS=ct(Tt(Za,us,cs,fs),$(z(421))),Mh=Z(z(4),$(z(43))),kh=Z($(z(42)),z(41),$(z(43))),Xa=Tt(Mh,kh),Kr=Tt(Xa,Za,cs,fs,us),_S=ct(Tt(Xa,Z(Tt(Za,us,cs,fs),$(z(421))))),DS=ct(Mh),RS=ct(kh),OS=ct(Xa),Qa=Z(Kr,z(6)),Un=Z(Kr,z(273)),PS=ct(Z(Qa,$(z(421)))),US=ct(Un),Ja=Z(Un,at(460),$(z(421))),hs=Z(Un,at(461),$(z(421))),U0=Tt(Ja,hs),NS=ct(Ja),MS=ct(hs),Ya=Tt(Kr,Qa,Un,Ja,hs),Kh=Tt(Z(Ya,at(477),$(z(421)))),kS=ct(Kh),Fh=Tt(Z(Ya,at(478),$(z(421))),Z(Ya,at(448),$(z(449)),at(477),$(z(421)))),KS=ct(Fh),Hh=Z(Un,at(280),$(z(466)),$(z(466)),$(z(421))),FS=ct(Hh),zh=Z(hs,at(465),$(z(466)),$(z(466)),$(z(421))),ls=ct(zh),as=Tt(Kh,Fh,Z(Qa,$(z(421))),Z(U0,$(z(421))),Z(Kr,$(z(421))),Hh,zh,z(421)),HS=ct(as),N0=Z($(as),at(290),Nh(at(281)),$(z(421))),zS=ct(N0),M0=Tt(Z(as,at(290),at(281),$(z(421))),Z(as,at(281),$(z(421))),Z(at(281),$(z(421)))),VS=ct(M0),k0=Z(Kr,Tt(Z(z(6,"80")),Z(z(6),at(480)),at(480)),$(z(481)),$(z(421))),qS=ct(k0),K0=Z(Kr,Tt(Z(z(6,"443")),Z(z(6,"443"),at(480)),Z(z(6),at(443)),Z(z(6),at(448),at(480)),Z(at(448),at(480)),at(448),at(443)),$(z(481)),$(z(421))),$S=ct(K0),F0=Tt(Z(z(777),$(z(421)))),jS=ct(F0),H0=Tt(Z(z(400),$(z(421)))),WS=ct(H0);function ds(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var ps=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Fr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ps(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new ps(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var tc=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function ms(r={}){return z0(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function z0(r,t){t=t??{};let e=t.onEnd,n=new Fr,o,s,i,a=ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((g,w)=>{s=S=>{s=null,n.push(S);try{g(r(n))}catch(x){w(x)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ds()})}},f=g=>s!=null?s(g):(n.push(g),o),u=g=>(n=new Fr,s!=null?s({error:g}):(n.push({error:g}),o)),h=g=>{if(i)return o;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:g})},l=g=>i?o:(i=!0,g!=null?u(g):f({done:!0})),p=()=>(n=new Fr,l(),{done:!0}),m=g=>(l(g),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:m,push:h,end:l,get readableLength(){return n.size},onEmpty:async g=>{let w=g?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let S,x;w!=null&&(S=new Promise((I,_)=>{x=()=>{_(new tc)},w.addEventListener("abort",x)}));try{await Promise.race([a.promise,S])}finally{x!=null&&w!=null&&w?.removeEventListener("abort",x)}}},e==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(g){return b.throw(g),e!=null&&(e(g),e=void 0),{done:!0}},return(){return b.return(),e!=null&&(e(),e=void 0),{done:!0}},push:h,end(g){return b.end(g),e!=null&&(e(g),e=void 0),o},get readableLength(){return b.readableLength},onEmpty:g=>b.onEmpty(g)},o}var ec=class r extends Error{name="TimeoutError";constructor(t,e){super(t,e),Error.captureStackTrace?.(this,r)}},Vh=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function rc(r,t){let{milliseconds:e,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,l)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(i?.aborted){l(Vh(i));return}if(i&&(c=()=>{l(Vh(i))},i.addEventListener("abort",c,{once:!0})),r.then(h,l),e===Number.POSITIVE_INFINITY)return;let p=new ec;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(m){l(m)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?h():o instanceof Error?l(o):(p.message=o??`Promise timed out after ${e} milliseconds`,l(p))},e)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var V0=r=>{let t=r.addEventListener||r.on||r.addListener,e=r.removeEventListener||r.off||r.removeListener;if(!t||!e)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(r),removeListener:e.bind(r)}};function q0(r,t,e){let n,o=new Promise((s,i)=>{if(e={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...e},!(e.count>=0&&(e.count===Number.POSITIVE_INFINITY||Number.isInteger(e.count))))throw new TypeError("The `count` option should be at least 0 or more");e.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:f,removeListener:u}=V0(r),h=async(...p)=>{let m=e.multiArgs?p:p[0];if(e.filter)try{if(!await e.filter(m))return}catch(b){n(),i(b);return}c.push(m),e.count===c.length&&(n(),s(c))},l=(...p)=>{n(),i(e.rejectionMultiArgs?p:p[0])};n=()=>{for(let p of a)u(p,h);for(let p of e.rejectionEvents)a.includes(p)||u(p,l)};for(let p of a)f(p,h);for(let p of e.rejectionEvents)a.includes(p)||f(p,l);e.signal&&e.signal.addEventListener("abort",()=>{l(e.signal.reason)},{once:!0}),e.resolveImmediately&&s(c)});if(o.cancel=n,typeof e.timeout=="number"){let s=rc(o,{milliseconds:e.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Fe(r,t,e){typeof e=="function"&&(e={filter:e}),e={...e,count:1,resolveImmediately:!1};let n=q0(r,t,e),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var cr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ys=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},gs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function $0(r){return r.reason}async function $t(r,t,e){if(t==null)return r;let n=e?.translateError??$0;if(t.aborted)return r.catch(()=>{}),Promise.reject(n(t));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var j0=Math.pow(2,20)*4,ce=class extends wr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??j0,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new ft,this.writeBuffer=new ft,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let e=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",e);let n=o=>{this.onDrainPromise?.reject(o.error??new gs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),$t(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ms(),e=s=>{t.push(s.data)};this.addEventListener("message",e);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",e),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new Be(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(t)}catch(e){this.log("failed to send reset to remote - %e",e)}this.dispatchEvent(new ao(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Be(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let t=new ro;this.dispatchEvent(new co(t))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new br))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,e=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new ft(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,e,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new io(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new en(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new en(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var bs=class extends ce{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",e=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),e.error!=null?e.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):e.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function qh(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var ws=class extends wr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,e){super(),this.maConn=t,this.protocol=e.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(e.name),this.streamOptions=e.streamOptions,this.maxEarlyStreams=e.maxEarlyStreams??10,this.metrics=e.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let e=this.maConn.send(t);return e===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),e}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await $t(Promise.all([...this.streams].map(async e=>{await e.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(e=>{e.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(e=>{e.onTransportClosed(t)})}catch(e){this.abort(e)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new eo;let e=this.onCreateStream({...this.streamOptions,...t});return qh(e)&&(e=await e),this.streams.push(e),this.cleanUpStream(e),e}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ys(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let e=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",e),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(e=>{this.safeDispatchEvent("stream",{detail:e})}),this.earlyStreams=[]})}};var xs=class extends ce{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Fe(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await Fe(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.log("closed readable end gracefully"))}};var W0=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Nn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},oc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},sc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function G0(r){return typeof r?.closeRead=="function"}function Y0(r){return typeof r?.close=="function"}function nc(r){return G0(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Y0(r)?r.status!=="open":!1}function Z0(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function X0(r,t){let e=t?.maxBufferSize??W0,n=new ft,o,s=!1;if(!Z0(r))throw new tt("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>e){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${e}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Es("Stream was unwrapped");if(nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new cr(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await $t(o.promise,u?.signal),nc(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let l=u?.bytes??n.byteLength;if(n.byteLength<l){if(nc(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,l),new cr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${l} bytes`);return f.read(u)}let p=n.sublist(0,l);return n.consume(l),p},async write(u,h){if(s===!0)throw new Es("Stream was unwrapped");r.send(u)||await Fe(r,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.unshift(n))),r}};return f}function ic(r,t={}){let e=X0(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??rr,o=t?.lengthEncoder??Hu;return{async read(i){let a=-1,c=new ft;for(;;){let u=await e.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Nn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new sc(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new oc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await e.read({...i,bytes:a});if(f==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new cr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new cr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await e.write(new ft(o(i.byteLength),i),a)},async writeV(i,a){let c=new ft(...i.flatMap(f=>[o(f.byteLength),f]));await e.write(c,a)},unwrap(){return e.unwrap()}}}var Q0=1024*1024*4,J0=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new ft,this.maxBufferSize=t.maxBufferSize??Q0,this.maxDataLength=t.maxDataLength??J0,this.lengthDecoder=t.lengthDecoder??rr,this.encodingLength=t.encodingLength??It}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new tt(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let e;try{e=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(e<0||e>this.maxDataLength)throw new Nn("Invalid message length");let n=this.encodingLength(e),o=n+e;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function wt(r=0){return new Uint8Array(r)}function _t(r=0){return new Uint8Array(r)}var Hr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,ac=16;function cc(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var As=r=>r?`"${r}" `:"";function vs(r,t=""){if(typeof r!="boolean")throw new TypeError(As(t)+"expected boolean, got type="+typeof r);return r}function fr(r,t=""){if(typeof r!="number")throw new TypeError(As(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(As(t)+"expected integer >= 0, got "+r);return r}function pt(r,t,e=""){if(cc(r)&&(t===void 0||r.length===t))return r;t!==void 0&&fr(t,"length");let n=cc(r),o=t!==void 0?` of length ${t}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=As(e)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}var $h=(r,t)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof r}`)};function fc(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function jh(r,t){pt(r,void 0,"output");let e=t.outputLen;if(!(r.length>=e))throw new RangeError('"output" expected length >= '+e)}function fe(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Xt(...r){for(let t=0;t<r.length;t++)r[t].fill(0)}function ty(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var He=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ey(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function ry(r){for(let t=0;t<r.length;t++)r[t]=ey(r[t]);return r}var Se=He?r=>r:ry;function Wh(r,t){return $h(r,"defaults"),$h(t,"opts"),Object.assign(r,t)}function Gh(r,t){if(r=pt(r),t=pt(t),r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function Yh(r,t,e){let n=t,o=e||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(r),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var Zh=(r,t)=>{function e(n,...o){if(pt(n,void 0,"key"),r.nonceLength!==void 0){let h=o[0];pt(h,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let s=r.tagLength,i=r.nonceLength!==void 0?1:0;if(!r.withAAD){for(let h=i;h<o.length;h++)if(cc(o[h]))throw new Error("AAD not supported")}r.withAAD&&o[i]!==void 0&&pt(o[i],void 0,"AAD");let a=t(n,...o),c=(h,l)=>{if(l!==void 0){if(h!==2)throw new Error("cipher output not supported");pt(l,void 0,"output")}},f=!1;return{encrypt(h,l){if(f)throw new Error("cannot encrypt() twice with same key + nonce");return f=!0,pt(h,void 0,"data"),c(a.encrypt.length,l),a.encrypt(h,l)},decrypt(h,l){if(pt(h,void 0,"data"),s&&h.length<s)throw new Error('"ciphertext" expected length >= tagLength='+s);return c(a.decrypt.length,l),a.decrypt(h,l)}}}return Object.assign(e,r),e};function Mn(r,t,e=!0){if(t===void 0)return new Uint8Array(r);if(pt(t,r,"output"),e&&!kn(t))throw new Error("invalid output, must be aligned");return t}function Xh(r,t,e){fr(r),fr(t),vs(e);let n=new Uint8Array(16),o=ty(n);return o.setBigUint64(0,BigInt(t),e),o.setBigUint64(8,BigInt(r),e),n}function kn(r){return r.byteOffset%4===0}function zr(r){return Uint8Array.from(pt(r))}var Jh=r=>Uint8Array.from(r.split(""),t=>t.charCodeAt(0)),ny=Se(fe(Jh("expand 16-byte k"))),oy=Se(fe(Jh("expand 32-byte k")));function W(r,t){return r<<t|r>>>32-t}var Kn=64,sy=16,uc=2**32-1,Qh=Uint32Array.of();function iy(r,t,e,n,o,s,i,a){let c=o.length,f=new Uint8Array(Kn),u=fe(f),h=He&&kn(o)&&kn(s),l=h?fe(o):Qh,p=h?fe(s):Qh;if(!He){for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),Se(u),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}return}for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),i>=uc)throw new Error("arx: counter overflow");let b=Math.min(Kn,c-m);if(h&&b===Kn){let g=m/4;if(m%4!==0)throw new Error("arx: invalid block position");for(let w=0,S;w<sy;w++)S=g+w,p[S]=l[S]^u[w];m+=Kn;continue}for(let g=0,w;g<b;g++)w=m+g,s[w]=o[w]^f[g];m+=b}}function tl(r,t){let{allowShortKeys:e,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=Wh({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof r!="function")throw new Error("core must be a function");return fr(o),fr(i),vs(s),vs(e),(a,c,f,u,h=0)=>{pt(a,void 0,"key"),pt(c,void 0,"nonce"),pt(f,void 0,"data");let l=f.length;if(u=Mn(l,u,!1),fr(h),h<0||h>=uc)throw new Error("arx: counter overflow");let p=[],m=a.length,b,g;if(m===32)p.push(b=zr(a)),g=oy;else if(m===16&&e)b=new Uint8Array(32),b.set(a),b.set(a,16),g=ny,p.push(b);else throw pt(a,32,"arx key"),new Error("invalid key size");(!He||!kn(c))&&p.push(c=zr(c));let w=fe(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let I=c.subarray(0,16);if(He)n(g,w,fe(I),w);else{let _=Se(Uint32Array.from(g));n(_,w,fe(I),w),Xt(_),Se(w)}c=c.subarray(16)}else He||Se(w);let S=16-o;if(S!==c.length)throw new Error(`arx: nonce must be ${S} or 16 bytes`);if(S!==12){let I=new Uint8Array(12);I.set(c,s?0:12-c.length),c=I,p.push(c)}let x=Se(fe(c));try{return iy(r,g,w,x,f,u,h,i),u}finally{Xt(...p)}}}function At(r,t){return r[t++]&255|(r[t++]&255)<<8}var hc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=zr(pt(t,32,"key"));let e=At(t,0),n=At(t,2),o=At(t,4),s=At(t,6),i=At(t,8),a=At(t,10),c=At(t,12),f=At(t,14);this.r[0]=e&8191,this.r[1]=(e>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=At(t,16+2*u)}process(t,e,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],l=i[5],p=i[6],m=i[7],b=i[8],g=i[9],w=At(t,e+0),S=At(t,e+2),x=At(t,e+4),I=At(t,e+6),_=At(t,e+8),N=At(t,e+10),M=At(t,e+12),P=At(t,e+14),R=s[0]+(w&8191),U=s[1]+((w>>>13|S<<3)&8191),k=s[2]+((S>>>10|x<<6)&8191),D=s[3]+((x>>>7|I<<9)&8191),H=s[4]+((I>>>4|_<<12)&8191),T=s[5]+(_>>>1&8191),C=s[6]+((_>>>14|N<<2)&8191),d=s[7]+((N>>>11|M<<5)&8191),E=s[8]+((M>>>8|P<<8)&8191),B=s[9]+(P>>>5|o),A=0,v=A+R*a+U*(5*g)+k*(5*b)+D*(5*m)+H*(5*p);A=v>>>13,v&=8191,v+=T*(5*l)+C*(5*h)+d*(5*u)+E*(5*f)+B*(5*c),A+=v>>>13,v&=8191;let y=A+R*c+U*a+k*(5*g)+D*(5*b)+H*(5*m);A=y>>>13,y&=8191,y+=T*(5*p)+C*(5*l)+d*(5*h)+E*(5*u)+B*(5*f),A+=y>>>13,y&=8191;let L=A+R*f+U*c+k*a+D*(5*g)+H*(5*b);A=L>>>13,L&=8191,L+=T*(5*m)+C*(5*p)+d*(5*l)+E*(5*h)+B*(5*u),A+=L>>>13,L&=8191;let O=A+R*u+U*f+k*c+D*a+H*(5*g);A=O>>>13,O&=8191,O+=T*(5*b)+C*(5*m)+d*(5*p)+E*(5*l)+B*(5*h),A+=O>>>13,O&=8191;let F=A+R*h+U*u+k*f+D*c+H*a;A=F>>>13,F&=8191,F+=T*(5*g)+C*(5*b)+d*(5*m)+E*(5*p)+B*(5*l),A+=F>>>13,F&=8191;let K=A+R*l+U*h+k*u+D*f+H*c;A=K>>>13,K&=8191,K+=T*a+C*(5*g)+d*(5*b)+E*(5*m)+B*(5*p),A+=K>>>13,K&=8191;let q=A+R*p+U*l+k*h+D*u+H*f;A=q>>>13,q&=8191,q+=T*c+C*a+d*(5*g)+E*(5*b)+B*(5*m),A+=q>>>13,q&=8191;let V=A+R*m+U*p+k*l+D*h+H*u;A=V>>>13,V&=8191,V+=T*f+C*c+d*a+E*(5*g)+B*(5*b),A+=V>>>13,V&=8191;let G=A+R*b+U*m+k*p+D*l+H*h;A=G>>>13,G&=8191,G+=T*u+C*f+d*c+E*a+B*(5*g),A+=G>>>13,G&=8191;let ot=A+R*g+U*b+k*m+D*p+H*l;A=ot>>>13,ot&=8191,ot+=T*h+C*u+d*f+E*c+B*a,A+=ot>>>13,ot&=8191,A=(A<<2)+A|0,A=A+v|0,v=A&8191,A=A>>>13,y+=A,s[0]=v,s[1]=y,s[2]=L,s[3]=O,s[4]=F,s[5]=K,s[6]=q,s[7]=V,s[8]=G,s[9]=ot}finalize(){let{h:t,pad:e}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+e[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+e[a]|0)+(i>>>16)|0,t[a]=i&65535;Xt(n)}update(t){fc(this),pt(t),t=zr(t);let{buffer:e,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}e.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(e,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Xt(this.h,this.r,this.buffer,this.pad)}digestInto(t){fc(this),jh(t,this),this.finished=!0;let{buffer:e,h:n}=this,{pos:o}=this;if(o){for(e[o++]=1;o<16;o++)e[o]=0;this.process(e,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}},el=Yh(32,r=>new hc(r));function ay(r,t,e,n,o,s=20){let i=r[0],a=r[1],c=r[2],f=r[3],u=t[0],h=t[1],l=t[2],p=t[3],m=t[4],b=t[5],g=t[6],w=t[7],S=o,x=e[0],I=e[1],_=e[2],N=i,M=a,P=c,R=f,U=u,k=h,D=l,H=p,T=m,C=b,d=g,E=w,B=S,A=x,v=I,y=_;for(let O=0;O<s;O+=2)N=N+U|0,B=W(B^N,16),T=T+B|0,U=W(U^T,12),N=N+U|0,B=W(B^N,8),T=T+B|0,U=W(U^T,7),M=M+k|0,A=W(A^M,16),C=C+A|0,k=W(k^C,12),M=M+k|0,A=W(A^M,8),C=C+A|0,k=W(k^C,7),P=P+D|0,v=W(v^P,16),d=d+v|0,D=W(D^d,12),P=P+D|0,v=W(v^P,8),d=d+v|0,D=W(D^d,7),R=R+H|0,y=W(y^R,16),E=E+y|0,H=W(H^E,12),R=R+H|0,y=W(y^R,8),E=E+y|0,H=W(H^E,7),N=N+k|0,y=W(y^N,16),d=d+y|0,k=W(k^d,12),N=N+k|0,y=W(y^N,8),d=d+y|0,k=W(k^d,7),M=M+D|0,B=W(B^M,16),E=E+B|0,D=W(D^E,12),M=M+D|0,B=W(B^M,8),E=E+B|0,D=W(D^E,7),P=P+H|0,A=W(A^P,16),T=T+A|0,H=W(H^T,12),P=P+H|0,A=W(A^P,8),T=T+A|0,H=W(H^T,7),R=R+U|0,v=W(v^R,16),C=C+v|0,U=W(U^C,12),R=R+U|0,v=W(v^R,8),C=C+v|0,U=W(U^C,7);let L=0;n[L++]=i+N|0,n[L++]=a+M|0,n[L++]=c+P|0,n[L++]=f+R|0,n[L++]=u+U|0,n[L++]=h+k|0,n[L++]=l+D|0,n[L++]=p+H|0,n[L++]=m+T|0,n[L++]=b+C|0,n[L++]=g+d|0,n[L++]=w+E|0,n[L++]=S+B|0,n[L++]=x+A|0,n[L++]=I+v|0,n[L++]=_+y|0}var cy=tl(ay,{counterRight:!1,counterLength:4,allowShortKeys:!1});var fy=new Uint8Array(16),rl=(r,t)=>{r.update(t);let e=t.length%16;e&&r.update(fy.subarray(e))},uy=new Uint8Array(32);function nl(r,t,e,n,o){o!==void 0&&pt(o,void 0,"AAD");let s=r(t,e,uy),i=Xh(n.length,o?o.length:0,!0),a=el.create(s);o&&rl(a,o),rl(a,n),a.update(i);let c=a.digest();return Xt(s,i),c}var hy=r=>(t,e,n)=>({encrypt(s,i){let a=s.length;i=Mn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);r(t,e,c,c,1);let f=nl(r,t,e,c,n);return i.set(f,a),Xt(f),i},decrypt(s,i){i=Mn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=nl(r,t,e,a,n);if(!Gh(c,f))throw Xt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),r(t,e,i,i,1),Xt(f),i}}),lc=Zh({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},hy(cy));function ol(r,t,e){return Qe(r),e===void 0&&(e=new Uint8Array(r.outputLen)),In(r,e,t)}var Fn=Uint8Array.of(0),ly=Uint8Array.of();function sl(r,t,e,n=32,o){Qe(r),Gt(n,"length"),Rt(t,void 0,"prk");let s=r.outputLen;if(t.length<s)throw new Error('"prk" must be at least HashLen octets');if(n>255*s)throw new Error("Length must be <= 255*HashLen");let i=Math.ceil(n/s);if(e===void 0?e=ly:Rt(e,void 0,"info"),!i)return o&&Ht(t),new Uint8Array;let a=o&&i===1?t:new Uint8Array(i*s),{iHash:c,oHash:f}=In.create(r,t),u=o?t:new Uint8Array(s),h=i>1?o?.iHash||r.create():void 0;for(let p=0;p<i-1;p++){Fn[0]=p+1;let m=c._cloneInto(h);p&&m.update(u),m.update(e).update(Fn).digestInto(u),f._cloneInto(h).update(u).digestInto(u),a.set(u,s*p)}if(Fn[0]=i,i>1&&c.update(u),c.update(e).update(Fn).digestInto(u),f.update(u).digestInto(u),a.set(u,s*(i-1)),c.destroy(),f.destroy(),h?.destroy(),u!==a&&Ht(u),Ht(Fn),n===a.length)return a;let l=a.slice(0,n);return Ht(a),l}var dc={hashSHA256(r){return ne(r.subarray())},getHKDF(r,t){let e=ol(ne,t,r),o=sl(ne,e,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let r=xn.utils.randomSecretKey();return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:xn.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,t){return xn.getSharedSecret(r.subarray(),t.subarray())},chaCha20Poly1305Encrypt(r,t,e,n){return lc(n,t,e).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,t,e,n,o){return lc(n,t,e).decrypt(r.subarray(),o)}};var il=dc;function al(r){return{generateKeypair:r.generateX25519KeyPair,dh:(t,e)=>r.generateX25519SharedKey(t.privateKey,e).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var Vr=r=>{let t=_t(2);return t[0]=r>>8,t[1]=r,t};Vr.bytes=2;var qr=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let t=0;return t+=r[0]<<8,t+=r[1],t}return r.getUint16(0)};qr.bytes=2;function cl(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var bc={};rt(bc,{base10:()=>wy});var x8=new Uint8Array(0);function fl(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function Ae(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function ul(r){return new TextEncoder().encode(r)}function hl(r){return new TextDecoder().decode(r)}function dy(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(e[i]!==255)throw new TypeError(s+" is ambiguous");e[i]=o}var a=r.length,c=r.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(m){if(m instanceof Uint8Array||(ArrayBuffer.isView(m)?m=new Uint8Array(m.buffer,m.byteOffset,m.byteLength):Array.isArray(m)&&(m=Uint8Array.from(m))),!(m instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(m.length===0)return"";for(var b=0,g=0,w=0,S=m.length;w!==S&&m[w]===0;)w++,b++;for(var x=(S-w)*u+1>>>0,I=new Uint8Array(x);w!==S;){for(var _=m[w],N=0,M=x-1;(_!==0||N<g)&&M!==-1;M--,N++)_+=256*I[M]>>>0,I[M]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");g=N,w++}for(var P=x-g;P!==x&&I[P]===0;)P++;for(var R=c.repeat(b);P<x;++P)R+=r.charAt(I[P]);return R}function l(m){if(typeof m!="string")throw new TypeError("Expected String");if(m.length===0)return new Uint8Array;var b=0;if(m[b]!==" "){for(var g=0,w=0;m[b]===c;)g++,b++;for(var S=(m.length-b)*f+1>>>0,x=new Uint8Array(S);m[b];){var I=e[m.charCodeAt(b)];if(I===255)return;for(var _=0,N=S-1;(I!==0||_<w)&&N!==-1;N--,_++)I+=a*x[N]>>>0,x[N]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");w=_,b++}if(m[b]!==" "){for(var M=S-w;M!==S&&x[M]===0;)M++;for(var P=new Uint8Array(g+(S-M)),R=g;M!==S;)P[R++]=x[M++];return P}}}function p(m){var b=l(m);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:l,decode:p}}var py=dy,my=py,dl=my;var pc=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},mc=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){this.name=t,this.prefix=e;let o=e.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return pl(this,t)}},yc=class{decoders;constructor(t){this.decoders=t}or(t){return pl(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function pl(r,t){return new yc({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var gc=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,o){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=o,this.encoder=new pc(t,e,n),this.decoder=new mc(t,e,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function $r({name:r,prefix:t,encode:e,decode:n}){return new gc(r,t,e,n)}function ze({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=dl(e,r);return $r({prefix:t,name:r,encode:n,decode:s=>Ae(o(s))})}function yy(r,t,e,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*e/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<e|u,i+=e,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=e||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function gy(r,t,e){let n=t[t.length-1]==="=",o=(1<<e)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<e-i]),n)for(;(s.length*e&7)!==0;)s+="=";return s}function by(r){let t={};for(let e=0;e<r.length;++e)t[r[e]]=e;return t}function dt({name:r,prefix:t,bitsPerChar:e,alphabet:n}){let o=by(n);return $r({prefix:t,name:r,encode(s){return gy(s,n,e)},decode(s){return yy(s,o,e,r)}})}var wy=ze({prefix:"9",name:"base10",alphabet:"0123456789"});var wc={};rt(wc,{base16:()=>xy,base16upper:()=>Ey});var xy=dt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ey=dt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var xc={};rt(xc,{base2:()=>Sy});var Sy=dt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ec={};rt(Ec,{base256emoji:()=>Iy});var ml=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Ay=ml.reduce((r,t,e)=>(r[e]=t,r),[]),vy=ml.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function By(r){return r.reduce((t,e)=>(t+=Ay[e],t),"")}function Ly(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=vy[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var Iy=$r({prefix:"\u{1F680}",name:"base256emoji",encode:By,decode:Ly});var Sc={};rt(Sc,{base32:()=>jr,base32hex:()=>Dy,base32hexpad:()=>Oy,base32hexpadupper:()=>Py,base32hexupper:()=>Ry,base32pad:()=>Ty,base32padupper:()=>_y,base32upper:()=>Cy,base32z:()=>Uy});var jr=dt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cy=dt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ty=dt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),_y=dt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Dy=dt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ry=dt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Oy=dt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Py=dt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Uy=dt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ac={};rt(Ac,{base36:()=>Hn,base36upper:()=>Ny});var Hn=ze({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ny=ze({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var vc={};rt(vc,{base58btc:()=>ue,base58flickr:()=>My});var ue=ze({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),My=ze({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bc={};rt(Bc,{base64:()=>ky,base64pad:()=>Ky,base64url:()=>Fy,base64urlpad:()=>Hy});var ky=dt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ky=dt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fy=dt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Hy=dt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Lc={};rt(Lc,{base8:()=>zy});var zy=dt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ic={};rt(Ic,{identity:()=>Vy});var Vy=$r({prefix:"\0",name:"identity",encode:r=>hl(r),decode:r=>ul(r)});var N8=new TextEncoder,M8=new TextDecoder;var Tc={};rt(Tc,{identity:()=>lg});var jy=bl,yl=128,Wy=127,Gy=~Wy,Yy=Math.pow(2,31);function bl(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Yy;)t[e++]=r&255|yl,r/=128;for(;r&Gy;)t[e++]=r&255|yl,r>>>=7;return t[e]=r|0,bl.bytes=e-n+1,t}var Zy=Cc,Xy=128,gl=127;function Cc(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Cc.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&gl)<<o:(i&gl)*Math.pow(2,o),o+=7}while(i>=Xy);return Cc.bytes=s-n,e}var Qy=Math.pow(2,7),Jy=Math.pow(2,14),tg=Math.pow(2,21),eg=Math.pow(2,28),rg=Math.pow(2,35),ng=Math.pow(2,42),og=Math.pow(2,49),sg=Math.pow(2,56),ig=Math.pow(2,63),ag=function(r){return r<Qy?1:r<Jy?2:r<tg?3:r<eg?4:r<rg?5:r<ng?6:r<og?7:r<sg?8:r<ig?9:10},cg={encode:jy,decode:Zy,encodingLength:ag},fg=cg,zn=fg;function Vn(r,t=0){return[zn.decode(r,t),zn.decode.bytes]}function Wr(r,t,e=0){return zn.encode(r,t,e),t}function Gr(r){return zn.encodingLength(r)}function Zr(r,t){let e=t.byteLength,n=Gr(r),o=n+Gr(e),s=new Uint8Array(o+e);return Wr(r,s,0),Wr(e,s,n),s.set(t,o),new Yr(r,e,t,s)}function wl(r){let t=Ae(r),[e,n]=Vn(t),[o,s]=Vn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Yr(e,o,i,t)}function xl(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&fl(r.bytes,e.bytes)}}var Yr=class{code;size;digest;bytes;constructor(t,e,n,o){this.code=t,this.size=e,this.digest=n,this.bytes=o}};var El=0,ug="identity",Sl=Ae;function hg(r,t){if(t?.truncate!=null&&t.truncate!==r.byteLength){if(t.truncate<0||t.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t.truncate)}return Zr(El,Sl(r))}var lg={code:El,name:ug,encode:Sl,digest:hg};var Rc={};rt(Rc,{sha256:()=>pg,sha512:()=>mg});var dg=20;function Dc({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new _c(r,t,e,n,o)}var _c=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??dg,this.maxDigestLength=s}digest(t,e){if(e?.truncate!=null){if(e.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&e.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Al(n,this.code,e?.truncate):n.then(o=>Al(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Al(r,t,e){if(e!=null&&e!==r.byteLength){if(e>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e)}return Zr(t,r)}function Bl(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var pg=Dc({name:"sha2-256",code:18,encode:Bl("SHA-256")}),mg=Dc({name:"sha2-512",code:19,encode:Bl("SHA-512")});function Ll(r,t){let{bytes:e,version:n}=r;return n===0?gg(e,Oc(r),t??ue.encoder):bg(e,Oc(r),t??jr.encoder)}var Il=new WeakMap;function Oc(r){let t=Il.get(r);if(t==null){let e=new Map;return Il.set(r,e),e}return t}var Ls=class r{code;version;multihash;bytes;"/";constructor(t,e,n,o){this.code=e,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:e}=this;if(t!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==wg)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:e}=this.multihash,n=Zr(t,e);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&xl(t.multihash,n.multihash)}toString(t){return Ll(this,t)}toJSON(){return{"/":Ll(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:o,multihash:s,bytes:i}=e;return new r(n,o,s,i??Cl(n,o,s.bytes))}else if(e[xg]===!0){let{version:n,multihash:o,code:s}=e,i=wl(o);return r.create(n,s,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==$n)throw new Error(`Version 0 CID must use dag-pb (code: ${$n}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let o=Cl(t,e,n.bytes);return new r(t,e,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,$n,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,o=Ae(t.subarray(n,n+e.multihashSize));if(o.byteLength!==e.multihashSize)throw new Error("Incorrect length");let s=o.subarray(e.multihashSize-e.digestSize),i=new Yr(e.multihashCode,e.digestSize,s,o);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[h,l]=Vn(t.subarray(e));return e+=l,h},o=n(),s=$n;if(o===18?(o=0,e=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=e,a=n(),c=n(),f=e+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,e){let[n,o]=yg(t,e),s=r.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oc(s).set(n,t),s}};function yg(r,t){switch(r[0]){case"Q":{let e=t??ue;return[ue.prefix,e.decode(`${ue.prefix}${r}`)]}case ue.prefix:{let e=t??ue;return[ue.prefix,e.decode(r)]}case jr.prefix:{let e=t??jr;return[jr.prefix,e.decode(r)]}case Hn.prefix:{let e=t??Hn;return[Hn.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function gg(r,t,e){let{prefix:n}=e;if(n!==ue.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let o=t.get(n);if(o==null){let s=e.encode(r).slice(1);return t.set(n,s),s}else return o}function bg(r,t,e){let{prefix:n}=e,o=t.get(n);if(o==null){let s=e.encode(r);return t.set(n,s),s}else return o}var $n=112,wg=18;function Cl(r,t,e){let n=Gr(r),o=n+Gr(t),s=new Uint8Array(o+e.byteLength);return Wr(r,s,0),Wr(t,s,n),s.set(e,o),s}var xg=Symbol.for("@ipld/js-cid/CID");var Pc={...Ic,...xc,...Lc,...bc,...wc,...Sc,...Ac,...vc,...Bc,...Ec},s4={...Rc,...Tc};function _l(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Tl=_l("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Uc=_l("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=_t(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),Eg={utf8:Tl,"utf-8":Tl,hex:Pc.base16,latin1:Uc,ascii:Uc,binary:Uc,...Pc},Is=Eg;function he(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Nc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_STATIC_PUBLIC_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${he(r.privateKey,"hex")}`)):t("Missing local static keys."))}function Mc(r,t){!t.enabled||!Hr||(r?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${he(r.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${he(r.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Dl(r,t){!t.enabled||!Hr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote static public key.")}function kc(r,t){!t.enabled||!Hr||t(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Kc(r,t,e){!e.enabled||!Hr||(e(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&he(r.k,"hex")}`),e(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&he(t.k,"hex")}`))}function Xr(r,t){t==null&&(t=r.reduce((o,s)=>o+s.length,0));let e=_t(t),n=0;for(let o of r)e.set(o,n),n+=o.length;return e}function Fc(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}var Ol=Symbol.for("@achingbrain/uint8arraylist");function Rl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let o=e+n.byteLength;if(t<o)return{buf:n,index:t-e};e=o}throw new RangeError("index is out of bounds")}function Cs(r){return!!r?.[Ol]}var le=class r{bufs;length;[Ol]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Cs(n)){e+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Cs(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Rl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Rl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(Cs(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:o}=this._subList(t,e);return Xr(n,o)}subarray(t,e){let{bufs:n,length:o}=this._subList(t,e);return n.length===1?n[0]:Xr(n,o)}sublist(t,e){let{bufs:n,length:o}=this._subList(t,e),s=new r;return s.length=o,s.bufs=n,s}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=e>a&&e<=c;if(f&&u){if(t===a&&e===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(e-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Cs(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=e;h<=c;h+=u){u=0;for(let l=f;l>=0;l--){let p=this.get(h+l);if(n[l]!==p){u=Math.max(1,l-a[p]);break}}if(u===0)return h}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=_t(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,e,n),this.write(o,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,e,n),this.write(o,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,e,n),this.write(o,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=_t(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let o=wt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,e,n),this.write(o,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,e,n),this.write(o,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,e,n),this.write(o,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let o=wt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,e,n),this.write(o,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let o=wt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,e,n),this.write(o,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!Fc(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((o,s)=>o+s.byteLength,0)),n.length=e,n}};function ur(r,t="utf8"){let e=Is[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}var Qr=class r extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Ag=0,vg=4294967295,Bg="Cipherstate has reached maximum n, a new handshake must be performed",Ts=class{n;bytes;view;constructor(t=Ag){this.n=t,this.bytes=wt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>vg)throw new Error(Bg)}};var hr=wt(0),Jr=class{k;n;crypto;constructor(t,e=void 0,n=0){this.crypto=t,this.k=e,this.n=new Ts(n)}hasKey(){return!!this.k}encryptWithAd(t,e){if(!this.hasKey())return e;this.n.assertValue();let n=this.crypto.encrypt(e,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,e,n){if(!this.hasKey())return e;this.n.assertValue();let o=this.crypto.decrypt(e,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Hc=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=ur(e,"utf-8");this.h=Lg(t,n),this.ck=this.h,this.cs=new Jr(t)}mixKey(t){let[e,n]=this.crypto.hkdf(this.ck,t);this.ck=e,this.cs=new Jr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new le(this.h,t))}encryptAndHash(t){let e=this.cs.encryptWithAd(this.h,t);return this.mixHash(e),e}decryptAndHash(t){let e=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),e}split(){let[t,e]=this.crypto.hkdf(this.ck,hr);return[new Jr(this.crypto,t),new Jr(this.crypto,e)]}},zc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:e,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=e,this.ss=new Hc(e,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,e=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<e+32)throw new Error("message is not long enough");this.re=t.sublist(e,e+32),this.ss.mixHash(this.re)}readS(t,e=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<e+n)throw new Error("message is not long enough");let o=t.sublist(e,e+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},jn=class extends zc{writeMessageA(t){return new le(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let e=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new le(e,n,this.ss.encryptAndHash(t))}writeMessageC(t){let e=this.writeS();return this.writeSE(),new le(e,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(e){throw new Qr(`handshake stage 0 validation fail: ${e.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let e=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+e))}catch(e){throw new Qr(`handshake stage 1 validation fail: ${e.message}`)}}readMessageC(t){try{let e=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(e))}catch(e){throw new Qr(`handshake stage 2 validation fail: ${e.message}`)}}};function Lg(r,t){if(t.length<=32){let e=wt(32);return e.set(t),e}else return r.hash(t)}var Ig=Math.pow(2,7),Cg=Math.pow(2,14),Tg=Math.pow(2,21),Pl=Math.pow(2,28),Ul=Math.pow(2,35),Nl=Math.pow(2,42),Ml=Math.pow(2,49),Ot=128,Ve=127;function Wn(r){if(r<Ig)return 1;if(r<Cg)return 2;if(r<Tg)return 3;if(r<Pl)return 4;if(r<Ul)return 5;if(r<Nl)return 6;if(r<Ml)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function kl(r,t,e=0){switch(Wn(r)){case 8:t[e++]=r&255|Ot,r/=128;case 7:t[e++]=r&255|Ot,r/=128;case 6:t[e++]=r&255|Ot,r/=128;case 5:t[e++]=r&255|Ot,r/=128;case 4:t[e++]=r&255|Ot,r>>>=7;case 3:t[e++]=r&255|Ot,r>>>=7;case 2:t[e++]=r&255|Ot,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function Kl(r,t){let e=r[t],n=0;if(n+=e&Ve,e<Ot||(e=r[t+1],n+=(e&Ve)<<7,e<Ot)||(e=r[t+2],n+=(e&Ve)<<14,e<Ot)||(e=r[t+3],n+=(e&Ve)<<21,e<Ot)||(e=r[t+4],n+=(e&Ve)*Pl,e<Ot)||(e=r[t+5],n+=(e&Ve)*Ul,e<Ot)||(e=r[t+6],n+=(e&Ve)*Nl,e<Ot)||(e=r[t+7],n+=(e&Ve)*Ml,e<Ot))return n;throw new RangeError("Could not decode varint")}var Vc=new Float32Array([-0]),qe=new Uint8Array(Vc.buffer);function Fl(r,t,e){Vc[0]=r,t[e]=qe[0],t[e+1]=qe[1],t[e+2]=qe[2],t[e+3]=qe[3]}function Hl(r,t){return qe[0]=r[t],qe[1]=r[t+1],qe[2]=r[t+2],qe[3]=r[t+3],Vc[0]}var qc=new Float64Array([-0]),Dt=new Uint8Array(qc.buffer);function zl(r,t,e){qc[0]=r,t[e]=Dt[0],t[e+1]=Dt[1],t[e+2]=Dt[2],t[e+3]=Dt[3],t[e+4]=Dt[4],t[e+5]=Dt[5],t[e+6]=Dt[6],t[e+7]=Dt[7]}function Vl(r,t){return Dt[0]=r[t],Dt[1]=r[t+1],Dt[2]=r[t+2],Dt[3]=r[t+3],Dt[4]=r[t+4],Dt[5]=r[t+5],Dt[6]=r[t+6],Dt[7]=r[t+7],qc[0]}var _g=BigInt(Number.MAX_SAFE_INTEGER),Dg=BigInt(Number.MIN_SAFE_INTEGER),Kt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return lr;if(t<_g&&t>Dg)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,o=t-(n<<32n);return e&&(n=~n|0n,o=~o|0n,++o>ql&&(o=0n,++n>ql&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(t){if(t===0)return lr;let e=t<0;e&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return e&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):lr}},lr=new Kt(0,0);lr.toBigInt=function(){return 0n};lr.zzEncode=lr.zzDecode=function(){return this};lr.length=function(){return 1};var ql=4294967296n;function $l(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function jl(r,t,e){if(e-t<1)return"";let o,s=[],i=0,a;for(;t<e;)a=r[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function $c(r,t,e){let n=e,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?t[e++]=o:o<2048?(t[e++]=o>>6|192,t[e++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[e++]=o>>18|240,t[e++]=o>>12&63|128,t[e++]=o>>6&63|128,t[e++]=o&63|128):(t[e++]=o>>12|224,t[e++]=o>>6&63|128,t[e++]=o&63|128);return e-n}function Qt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function _s(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var jc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Qt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Qt(this,4);return _s(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qt(this,4);return _s(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qt(this,4);let t=Hl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Qt(this,4);let t=Vl(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Qt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return jl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Qt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Qt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Kt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Qt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Qt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Qt(this,8);let t=_s(this.buf,this.pos+=4),e=_s(this.buf,this.pos+=4);return new Kt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Kl(this.buf,this.pos);return this.pos+=Wn(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Wc(r){return new jc(r instanceof Uint8Array?r:r.subarray())}function Ds(r,t,e){let n=Wc(r);return t.decode(n,void 0,e)}function Gc(r){let t=r??8192,e=t>>>1,n,o=t;return function(i){if(i<1||i>e)return _t(i);o+i>t&&(n=_t(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function Yc(){}var Xc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Rg=Gc();function Og(r){return globalThis.Buffer!=null?_t(r):Rg(r)}var Yn=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(Yc,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new dr(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Rs,10,Kt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Kt.fromBigInt(t);return this._push(Rs,e.length(),e)}uint64Number(t){return this._push(kl,Wn(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Kt.fromBigInt(t).zzEncode();return this._push(Rs,e.length(),e)}sint64Number(t){let e=Kt.fromNumber(t).zzEncode();return this._push(Rs,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Zc,1,t?1:0)}fixed32(t){return this._push(Gn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Kt.fromBigInt(t);return this._push(Gn,4,e.lo)._push(Gn,4,e.hi)}fixed64Number(t){let e=Kt.fromNumber(t);return this._push(Gn,4,e.lo)._push(Gn,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Fl,4,t)}double(t){return this._push(zl,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Zc,1,0):this.uint32(e)._push(Ug,e,t)}string(t){let e=$l(t);return e!==0?this.uint32(e)._push($c,e,t):this._push(Zc,1,0)}fork(){return this.states=new Xc(this),this.head=this.tail=new dr(Yc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new dr(Yc,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Og(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Zc(r,t,e){t[e]=r&255}function Pg(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Qc=class extends dr{next;constructor(t,e){super(Pg,t,e),this.next=void 0}};function Rs(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Gn(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Ug(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Yn.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Ng,t,r),this},Yn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Mg,t,r),this});function Ng(r,t,e){t.set(r,e)}function Mg(r,t,e){r.length<40?$c(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(ur(r),e)}function Jc(){return new Yn}function Os(r,t){let e=Jc();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var Zn;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Zn||(Zn={}));function tf(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ps(r,t){return tf("message",Zn.LENGTH_DELIMITED,r,t)}var Xn=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Us;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),e.webtransportCerthashes!=null)for(let s of e.webtransportCerthashes)n.uint32(10),n.bytes(s);if(e.streamMuxers!=null)for(let s of e.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new Xn('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(e.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new Xn('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(e.string());break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Us||(Us={}));var Qn;(function(r){let t;r.codec=()=>(t==null&&(t=Ps((e,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),e.identityKey!=null&&e.identityKey.byteLength>0&&(n.uint32(10),n.bytes(e.identityKey)),e.identitySig!=null&&e.identitySig.byteLength>0&&(n.uint32(18),n.bytes(e.identitySig)),e.extensions!=null&&(n.uint32(34),Us.codec().encode(e.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(e,n,o={})=>{let s={identityKey:wt(0),identitySig:wt(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{s.identityKey=e.bytes();break}case 2:{s.identitySig=e.bytes();break}case 4:{s.extensions=Us.codec().decode(e,e.uint32(),{limits:o.limits?.extensions});break}default:{e.skipType(a&7);break}}}return s})),t),r.encode=e=>Os(e,r.codec()),r.decode=(e,n)=>Ds(e,r.codec(),n)})(Qn||(Qn={}));async function rf(r,t,e){let n=await r.sign(Yl(t));return Qn.encode({identityKey:Te(r.publicKey),identitySig:n,extensions:e})}async function nf(r,t,e){try{let n=Qn.decode(r),o=Cn(n.identityKey);if(e?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${e}`);if(!t)throw new Error("Remote static does not exist");let s=Yl(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new to(n.message)}}function Yl(r){let t=ur("noise-libp2p-static-key:");return r instanceof Uint8Array?Xr([t,r],t.length+r.length):(r.prepend(t),r)}var ef=class extends ce{stream;handshake;metrics;decoder;constructor(t,e,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=e,this.metrics=n,this.decoder=new Ss({lengthDecoder:qr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),e.append(Vr(s.byteLength)),e.append(s)}return e}decrypt(t){let e=new le;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-ac<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-ac);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),e.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return e}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function of(r,t,e){return new ef(r,t,e)}async function Zl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(hr),t),e.trace("Stage 0 - Initiator finished sending first message."),Mc(h.e,e),e.trace("Stage 1 - Initiator waiting to receive first message from responder...");let l=h.readMessageB(await n.read(t));e.trace("Stage 1 - Initiator received the message."),kc(h.re,e),Dl(h.rs,e),e.trace("Initiator going to check remote's signature...");let p=await nf(l,h.rs,c);e.trace("All good with the signature!"),e.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),e.trace("Stage 2 - Initiator sent message with signed payload.");let[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>m.encryptWithAd(hr,g),decrypt:(g,w)=>b.decryptWithAd(hr,g,w)}}async function Xl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await rf(s,a.publicKey,f),h=new jn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Nc(h.s,e),e.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),e.trace("Stage 0 - Responder received first message."),kc(h.re,e),e.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),e.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Mc(h.e,e),e.trace("Stage 2 - Responder waiting for third handshake message...");let l=h.readMessageC(await n.read(t));e.trace("Stage 2 - Responder received the message, finished handshake.");let p=await nf(l,h.rs,c),[m,b]=h.ss.split();return Kc(m,b,e),{payload:p,encrypt:g=>b.encryptWithAd(hr,g),decrypt:(g,w)=>m.decryptWithAd(hr,g,w)}}var Ns=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,e={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=e,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??il;this.crypto=al(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?cl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??wt(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[fo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let e=this.components.upgrader.getStreamMuxers();if(e!=null)for(let n of t){let o=e.get(n);if(o!=null)return o}if(t.length)throw new yr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,e){let n=t.log?.newScope("noise")??this.log,o=ic(t,{lengthEncoder:Vr,lengthDecoder:qr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,e?.remotePeer?.publicKey,e),i=Cn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:va(i),streamMuxer:e?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Zl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,e,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Xl({connection:t,privateKey:e,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function Ql(r={}){return t=>new Ns(t,r)}var pr=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};function sf(r){throw new Error("Not implemented")}var af=class extends xs{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(e=>{e.message.includes("STOP_SENDING")||e.message.includes("StopSending")?this.onRemoteCloseRead():e.message.includes("RESET_STREAM")||e.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",e)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let e=this.writer.desiredSize>0;return e||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:e}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("error aborting writer - %e",e)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await $t(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await $t(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function cf(r,t,e,n,o){return new af({...o,stream:r,id:t,direction:e,log:n.newScope(`${e}:${t}`),protocol:""})}var Jl="/webtransport",ff=class extends ws{webTransport;streamIDCounter;reader;constructor(t,e){super(e,{protocol:Jl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(cf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let e=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),cf(e,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function td(r){return{protocol:Jl,createStreamMuxer(t){return new ff(r,t)}}}var uf=class extends bs{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},ed=r=>new uf(r);function rd(r,t){return t.filter(n=>!!r.find(o=>gt(n,o))).length===t.length}var kg=Object.values(Ye).map(r=>r.decoder).reduce((r,t)=>r.or(t));function Kg(r){return pe.decode(kg.decode(r))}function hf(r){if(!ls.matches(r))throw new no("Invalid multiaddr, was not a WebTransport address");let t=[],e;for(let s of r.getComponents())s.name==="certhash"&&t.push(Kg(s.value??"")),s.name==="p2p"&&e==null&&(e=gh(s.value??""));let n=wh(r),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:e}}var Ms=class extends ce{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:e,value:n}=await this.reader.read();if(n!=null&&this.onData(n),e)break}}).catch(e=>{this.abort(e)})}async close(t){await $t(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(e=>{this.abort(e)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(e=>{this.log.error("could not send reset - %e",e)})}sendPause(){}sendResume(){}};var nd=globalThis.WebTransport;var lf=class{log;components;config;metrics;constructor(t,e={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...e,certificates:e.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[pf]=!0;[fo]=["@libp2p/transport"];async dial(t,e){e.signal.throwIfAborted(),this.log("dialing %s",t),e=e??{};let{url:n,certhashes:o,remotePeer:s}=hf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let l=new nd(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(m=>({algorithm:"sha-256",value:Et(m.digest)}))});c=m=>{if(!f)try{this.metrics?.dialerEvents.increment({[m]:!0}),l.close()}catch(b){this.log.error("error closing wt session - %e",b)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},e.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),e.onProgress?.(new pr("webtransport:wait-for-session")),await Promise.race([l.closed,l.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),l.closed.catch(m=>{this.log.error("error on remote wt session close - %e",m)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=ed({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:l,maConn:a,remotePeer:s,certhashes:o,...e});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new yr("Failed to authenticate webtransport");return await e.upgrader.upgradeOutbound(a,{...e,skipEncryption:!0,remotePeer:p,muxerFactory:td(l),skipProtection:!0})}catch(l){throw this.log.error("caught wt session err - %e",l),c(h?"upgrade_error":u?"noise_error":"ready_error"),l}finally{i!=null&&e.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:e,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new pr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new Ms({stream:a,log:e.log.newScope("muxer")}),f=Ql()(this.components);s?.(new pr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new pr("webtransport:close-authentication-stream")),await c.close({signal:i}),!rd(u?.webtransportCerthashes??[],o.map(l=>l.bytes)))throw new tt("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(t){return sf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(e=>{if(!ls.exactMatch(e))return!1;let{url:n,certhashes:o}=hf(e);return n!=null&&o.length>0})}};function Fg(r={}){return t=>new lf(t,r)}return hd(Hg);})();
3
3
  //! TODO unclear how to add backpressure here?
4
4
  /*! Bundled license information:
5
5
 
@@ -9,6 +9,7 @@
9
9
  @noble/curves/abstract/edwards.js:
10
10
  @noble/curves/abstract/montgomery.js:
11
11
  @noble/curves/ed25519.js:
12
+ @noble/curves/abstract/der.js:
12
13
  @noble/curves/abstract/weierstrass.js:
13
14
  @noble/curves/secp256k1.js:
14
15
  (*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)