@libp2p/webtransport 6.0.34-47cf9cdc1 → 6.0.34-d5534174d

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 ks=Object.defineProperty;var sd=Object.getOwnPropertyDescriptor;var id=Object.getOwnPropertyNames;var ad=Object.prototype.hasOwnProperty;var rt=(r,t)=>{for(var e in t)ks(r,e,{get:t[e],enumerable:!0})},cd=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of id(t))!ad.call(r,o)&&o!==e&&ks(r,o,{get:()=>t[o],enumerable:!(n=sd(t,o))||n.enumerable});return r};var fd=r=>cd(ks({},"__esModule",{value:!0}),r);var kg={};rt(kg,{webTransport:()=>Mg});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 df=Symbol.for("@libp2p/transport");var lf;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(lf||(lf={}));function ud(r){return typeof r?.handleEvent=="function"}function hd(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=hd(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))}ud(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 fo=Symbol.for("@libp2p/service-capabilities");var qs={};rt(qs,{base58btc:()=>lt,base58flickr:()=>wd});var yb=new Uint8Array(0);function mf(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 yf(r){let t=new Uint8Array(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}var pf=4096;function gf(r){let t=r.length;if(t<=pf)return String.fromCharCode.apply(String,r);let e="",n=0;for(;n<t;)e+=String.fromCharCode.apply(String,r.subarray(n,n+=pf));return e}function ld(r){return r?.buffer instanceof ArrayBuffer}function We(r){return ld(r)?r:r.slice()}function dd(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 pd=dd,md=pd,wf=md;var Fs=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")}},Hs=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 xf(this,t)}},zs=class{decoders;constructor(t){this.decoders=t}or(t){return xf(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 xf(r,t){return new zs({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Vs=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 Fs(t,e,n),this.decoder=new Hs(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 Vs(r,t,e,n)}function Le({name:r,prefix:t,alphabet:e,caseInsensitive:n=!1}){let{encode:o,decode:s}=wf(e,r,n);return xr({prefix:t,name:r,encode:o,decode:i=>Ft(s(i))})}function yd(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 gd(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 bd(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=bd(n,o);return xr({prefix:t,name:r,encode(i){return gd(i,n,e)},decode(i){return yd(i,s,e,r)}})}var lt=Le({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),wd=Le({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var $s={};rt($s,{base32:()=>Ie,base32hex:()=>Ad,base32hexpad:()=>Bd,base32hexpadupper:()=>Ld,base32hexupper:()=>vd,base32pad:()=>Ed,base32padupper:()=>Sd,base32upper:()=>xd,base32z:()=>Id});var Ie=ht({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),xd=ht({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),Ed=ht({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),Sd=ht({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),Ad=ht({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),vd=ht({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),Bd=ht({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),Ld=ht({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),Id=ht({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var js={};rt(js,{base36:()=>rn,base36upper:()=>Cd});var rn=Le({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),Cd=Le({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var pe={};rt(pe,{Digest:()=>Ge,create:()=>jt,decode:()=>Ar,equals:()=>Gs,hasCode:()=>Wd});var Td=Af,Ef=128,_d=127,Dd=~_d,Rd=Math.pow(2,31);function Af(r,t,e){t=t||[],e=e||0;for(var n=e;r>=Rd;)t[e++]=r&255|Ef,r/=128;for(;r&Dd;)t[e++]=r&255|Ef,r>>>=7;return t[e]=r|0,Af.bytes=e-n+1,t}var Od=Ws,Pd=128,Sf=127;function Ws(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Ws.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&Sf)<<o:(i&Sf)*Math.pow(2,o),o+=7}while(i>=Pd);return Ws.bytes=s-n,e}var Ud=Math.pow(2,7),Nd=Math.pow(2,14),Md=Math.pow(2,21),kd=Math.pow(2,28),Kd=Math.pow(2,35),Fd=Math.pow(2,42),Hd=Math.pow(2,49),zd=Math.pow(2,56),Vd=Math.pow(2,63),qd=function(r){return r<Ud?1:r<Nd?2:r<Md?3:r<kd?4:r<Kd?5:r<Fd?6:r<Hd?7:r<zd?8:r<Vd?9:10},$d={encode:Td,decode:Od,encodingLength:qd},jd=$d,nn=jd;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 Gs(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&mf(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 Wd(r,t){return r.code===t}function vf(r,t){let{bytes:e,version:n}=r;return n===0?Yd(e,Ys(r),t??lt.encoder):Zd(e,Ys(r),t??Ie.encoder)}var Bf=new WeakMap;function Ys(r){let t=Bf.get(r);if(t==null){let e=new Map;return Bf.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!==Xd)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&&Gs(t.multihash,n.multihash)}toString(t){return vf(this,t)}toJSON(){return{"/":vf(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??Lf(n,o,s.bytes))}else if(e[Qd]===!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=Lf(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]=Gd(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 Ys(s).set(n,t),s}};function Gd(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 Yd(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 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 sn=112,Xd=18;function Lf(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 Qd=Symbol.for("@ipld/js-cid/CID");var Zs={};rt(Zs,{identity:()=>Wt});var If=0,Jd="identity",Cf=Ft;function tp(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(If,Cf(r))}var Wt={code:If,name:Jd,encode:Cf,digest:tp};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 ep(r){return r.buffer instanceof ArrayBuffer}function Et(r){return ep(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,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 rp(r){return r?.buffer instanceof ArrayBuffer}function Xs(r){if(rp(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 Xs(e)}var Df=Symbol.for("@achingbrain/uint8arraylist");function _f(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?.[Df]}var ft=class r{bufs;length;[Df]=!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=_f(this.bufs,t);return e.buf[e.index]}set(t,e){let n=_f(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 Qs={};rt(Qs,{base10:()=>np});var np=Le({prefix:"9",name:"base10",alphabet:"0123456789"});var Js={};rt(Js,{base16:()=>op,base16upper:()=>sp});var op=ht({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),sp=ht({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ti={};rt(ti,{base2:()=>ip});var ip=ht({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ei={};rt(ei,{base256emoji:()=>hp});var Rf=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}"),ap=Rf.reduce((r,t,e)=>(r[e]=t,r),[]),cp=Rf.reduce((r,t,e)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return r[n]=e,r},[]);function fp(r){return r.reduce((t,e)=>(t+=ap[e],t),"")}function up(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=cp[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var hp=xr({prefix:"\u{1F680}",name:"base256emoji",encode:fp,decode:up});var ni={};rt(ni,{base64:()=>lp,base64pad:()=>dp,base64url:()=>ri,base64urlpad:()=>pp});var lp=ht({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),dp=ht({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ri=ht({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),pp=ht({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var oi={};rt(oi,{base8:()=>mp});var mp=ht({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var si={};rt(si,{identity:()=>yp});var yp=xr({prefix:"\0",name:"identity",encode:r=>gf(Ft(r)),decode:r=>Ft(yf(r))});var ew=new TextEncoder,rw=new TextDecoder;var ci={};rt(ci,{sha256:()=>an,sha512:()=>xp});var wp=20;function ai({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new ii(r,t,e,n,o)}var ii=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??wp,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?Of(n,this.code,e?.truncate):n.then(o=>Of(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function Of(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 Uf(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var an=ai({name:"sha2-256",code:18,encode:Uf("SHA-256")}),xp=ai({name:"sha2-512",code:19,encode:Uf("SHA-512")});var Ye={...si,...ti,...oi,...Qs,...Js,...$s,...js,...qs,...ni,...ei},pw={...ci,...Zs};function Mf(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Nf=Mf("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),fi=Mf("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}),Ep={utf8:Nf,"utf-8":Nf,hex:Ye.base16,latin1:fi,ascii:fi,binary:fi,...Ye},lo=Ep;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 Sp=parseInt("11111",2),ui=parseInt("10000000",2),Ap=parseInt("01111111",2),kf={0:cn,1:cn,2:vp,3:Ip,4:Cp,5:Lp,6:Bp,16:cn,22:cn,48:cn};function me(r,t={offset:0}){let e=r[t.offset]&Sp;if(t.offset++,kf[e]!=null)return kf[e](r,t);throw new Error("No decoder for tag "+e)}function fn(r,t){let e=0;if((r[t.offset]&ui)===ui){let n=r[t.offset]&Ap,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 vp(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 Bp(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 Lp(r,t){return t.offset++,null}function Ip(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 Cp(r,t){let e=fn(r,t),n=r.subarray(t.offset,t.offset+e);return t.offset+=e,n}function Tp(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 hi(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let t=Tp(r.byteLength);return new ft(Uint8Array.from([t.byteLength|ui]),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]),hi(t),t)}function po(r){let t=Uint8Array.from([0]),e=new ft(t,r);return new ft(Uint8Array.from([3]),hi(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]),hi(e),e)}var _p=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Dp=Uint8Array.from([6,5,43,129,4,0,34]),Rp=Uint8Array.from([6,5,43,129,4,0,35]),Op={ext:!0,kty:"EC",crv:"P-256"},Pp={ext:!0,kty:"EC",crv:"P-384"},Up={ext:!0,kty:"EC",crv:"P-521"},li=32,di=48,pi=66;function mi(r){let t=me(r);return Kf(t)}function Kf(r){let t=r[1][1][0],e=1,n,o;if(t.byteLength===li*2+1)return n=Y(t.subarray(e,e+li),"base64url"),o=Y(t.subarray(e+li),"base64url"),new vr({...Op,key_ops:["verify"],x:n,y: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({...Pp,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({...Up,key_ops:["verify"],x:n,y:o});throw new tt(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function Ff(r){return Ce([Pt(Uint8Array.from([1])),Ce([Np(r.crv)],160),Ce([po(new ft(Uint8Array.from([4]),nt(r.x??"","base64url"),nt(r.y??"","base64url")))],161)]).subarray()}function Np(r){if(r==="P-256")return _p;if(r==="P-384")return Dp;if(r==="P-521")return Rp;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=Ff(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 Tf(this.jwk,e,t,n)}};var mo=BigInt(4294967295),Hf=BigInt(32);function Mp(r,t=!1){return t?{h:Number(r&mo),l:Number(r>>Hf&mo)}:{h:Number(r>>Hf&mo)|0,l:Number(r&mo)|0}}function zf(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}=Mp(r[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var kp=r=>r/2**32|0,Kp=r=>r>>>0;function Vf(r,t,e,n){let o=kp(e),s=Kp(e);r.setUint32(t,n?s:o,n),r.setUint32(t+4,n?o:s,n)}var yi=(r,t,e)=>r>>>e,gi=(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 qf=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),$f=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,jf=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),Wf=(r,t,e,n,o)=>t+e+n+o+(r/2**32|0)|0,Gf=(r,t,e,n,o)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(o>>>0),Yf=(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 bi=r=>r?`"${r}" `:"";function Gt(r,t=""){if(typeof r!="number")throw new TypeError(bi(t)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(bi(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=bi(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 Zf=(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 Qf=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Hp=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function wo(r){if(Rt(r),Qf)return r.toHex();let t="";for(let e=0;e<r.length;e++)t+=Hp[r[e]];return t}function Xf(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(Qf)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=Xf(r.charCodeAt(s)),a=Xf(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 wi(...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 zp(r,t,e="opts"){return Zf(r,"defaults"),t!==void 0&&Zf(t,e),Object.assign(r,t)}function xi(r,t={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);t=zp({},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 Jf(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 Ei=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function tu(r,t,e){return r&t^~r&e}function eu(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)),Vf(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()}},ru=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var nu=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Vp=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),Si=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+tu(a,c,f)+Vp[h]+_e[h]|0,b=(Yt(n,2)^Yt(n,13)^Yt(n,22))+eu(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)}},Ai=class extends Si{constructor(){super(32,ru)}};var ou=zf(["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))),qp=ou[0],$p=ou[1],De=new Uint32Array(80),Re=new Uint32Array(80),vi=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)^yi(I,_,7),M=Xe(I,_,1)^Xe(I,_,8)^gi(I,_,7),P=De[x-2]|0,R=Re[x-2]|0,U=Ze(P,R,19)^un(P,R,61)^yi(P,R,6),k=Xe(P,R,19)^hn(P,R,61)^gi(P,R,6),D=jf(M,k,Re[x-7],Re[x-16]),H=Wf(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=Gf(S,_,M,$p[x],Re[x]),R=Yf(P,w,I,N,qp[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=qf(U,D,T);n=$f(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)}},Bi=class extends vi{constructor(){super(64,nu)}};var ne=xi(()=>new Ai,Ei(1));var Li=xi(()=>new Bi,Ei(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),Ii=Gt;function iu(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)=>wi(...r),Lr=r=>xo(r),Ue=yo,ye=r=>Jf(r),Eo=BigInt(0),su=BigInt(1),jp=r=>r?`"${r}" `:"";function Ut(r,t=""){if(typeof r!="boolean")throw new TypeError(jp(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 Ii(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 au(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?Eo:BigInt("0x"+r)}function oe(r){return au(wo(r))}function se(r){return au(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 Ci(r,t,e){return Pe(r)&&Pe(t)&&Pe(e)&&t<=r&&r<e}function ie(r,t,e,n){if(!Ci(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"),(su<<BigInt(r))-su);function cu(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),hu=BigInt(3),Ti=BigInt(4),lu=BigInt(5),Wp=BigInt(7),du=BigInt(8),Gp=BigInt(9),Yp=BigInt(15),pu=BigInt(16),Zp=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 mu(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<Zp){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&Yp)),t>>=Ti;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 fu(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 yu(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=mu(e,t-Me,t);if(J(e*n,t)!==X)throw new Error("invertCt: does not exist");return n}function _i(r,t,e){let n=r;if(!n.eql(n.sqr(t),e))throw new Error("Cannot find square root")}function Di(r,t){if((r&X)===bt)throw new Error(t+": expected odd modulus, got "+r)}function gu(r,t){let e=r,n=(e.ORDER+X)/Ti,o=e.pow(t,n);return _i(e,o,t),o}function Xp(r,t){let e=r,n=(e.ORDER-lu)/du,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 _i(e,c,t),c}function Qp(r){let t=Tr(r),e=bu(r),n=e(t,t.neg(t.ONE)),o=e(t,n),s=e(t,t.neg(n)),i=(r+Wp)/pu;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 _i(f,w,c),w})}function bu(r){if(r<hu)throw new Error("sqrt is not defined for small field");Di(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 gu;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 Jp(r){return Di(r,"Fp.sqrt"),r%Ti===hu?gu:r%du===lu?Xp:r%pu===Gp?Qp(r):bu(r)}var wu=(r,t)=>(J(r,t)&X)===X,tm=["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 tm)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;Di(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 em(r,t){if(t!==void 0&&Ii(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 uu=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}=em(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 mu(t,e,this.ORDER)}div(t,e){return J(t*fu(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 fu(t,this.ORDER)}sqrt(t){let e=uu.get(this);return e||uu.set(this,e=Jp(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 xu(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=xu(r);return t+Math.ceil(t/2)}function Co(r,t,e=!1){j(r);let n=r.length,o=xu(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 Pi=BigInt(0),bn=BigInt(1),rm=BigInt(4),Ri=16,Eu=128,nm=5,Su=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),vu(t,r);let e=Lo(r.Fp,t.map(n=>n.Z));return t.map((n,o)=>r.fromAffine(n.toAffine(e[o])))}function om(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 sm(r,t){let e=r*(4*t+128);if(e>Su)throw new Error("invalid window size: table would need ~"+Math.ceil(e/2**20)+" MiB, max "+Su/2**20+" MiB")}function Ui(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 vu(r,t){So(r,"points"),r.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}function im(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 Bu=new WeakMap;function Oi(r){return Bu.get(r)||1}function am(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 cm(r,t){let e=2**t,n=e/2,o=BigInt(e-1),s=[];for(;r>Pi;){let i=0;r&bn&&(i=Number(r&o),i>=n&&(i-=e),r-=BigInt(i)),s.push(i),r>>=bn}return s}function fm(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!==Pi)throw new Error("invalid wnaf");return a}function um(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=Ui(e,Ri),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=fm(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),!Ci(e,bn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(t,e,n,o){let s=Oi(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+Eu,s=this.randomBytes(Ri);if(!Ue(s)||s.length!==Ri)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=nm,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=Oi(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),om(e,this.bits);let n=Math.ceil((this.bits+Eu)/e)+1;sm(n*2**(e-1),this.Point.Fp.BYTES),Bu.set(t,e),this.wnafPrecomputes.delete(t)}hasWindowSize(t){return Oi(t)!==1}};function _o(r,t,e,n=!1){if(ke(r),vu(t,r),Ut(n,"allowOversized"),im(e,r.Fn,n?r.Fn.ORDER**rm:void 0),t.length!==e.length)throw new Error("arrays of points and scalars must have equal length");let o=t.map(i=>am(i,4)),s=e.map(i=>cm(i,4));return um(r.ZERO,o,s)}function Au(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!==Pi))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Au(t.p,e.Fp,n),s=Au(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),hm=BigInt(4),Lu=BigInt(8);function lm(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 Iu(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(!lm(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(Lu):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===hm?this.double().double():a===Lu?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 Cu(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 Tu(r,t){return r+t-(t>>Vt<<Vt)}function dm(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 pm(r){return Bt(r,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...r})}function _u(r){let t=pm(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=dm(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=Tu(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=Tu(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 Du=BigInt(0),Ni=BigInt(1),Ru=BigInt(2),mm=BigInt(3),ym=BigInt(5),gm=BigInt(8),No=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),bm={p:No,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:gm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Uu(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,Ru,s)*a%s,f=it(c,Ni,s)*r%s,u=it(f,ym,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,Ru,s)*r%s,b2:a}}function Mi(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Ou=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function wm(r,t){let e=No,n=J(t*t*t,e),o=J(n*n*t,e),s=Uu(r*o).pow_p_5_8,i=J(r*n*s,e),a=J(t*i*i,e),c=i,f=J(i*Ou,e),u=a===r,h=a===J(-r,e),l=a===J(-r*Ou,e);return u&&(i=c),(h||l)&&(i=f),wu(i,e)&&(i=J(-i,e)),{isValid:u||h,value:i}}var wn=Iu(bm,{uvRatio:wm}),Pu=wn.Fp;function xm(r){let{y:t}=r;return Pu.toBytes(Pu.div(Ni+t,Ni-t))}function Em(r){let t=wn.Fp.BYTES;return Rt(r,t),Mi(Li(r.subarray(0,t))).subarray(0,t)}function Sm(r){return Cu(wn,Li,Object.assign({adjustScalarBytes:Mi,toMontgomery:xm,toMontgomerySecret:Em,zip215:!0},r))}var Nu=Sm({});var xn=(()=>{let r=No,t=e=>{let{pow_p_5_8:n,b2:o}=Uu(e);return J(it(n,mm,r)*o,r)};return _u({P:r,type:"x25519",powPminus2:t,adjustScalarBytes:Mi,scalarMultBase:e=>{let n=J(e,wn.Fn.ORDER);if(n===Du)return Du;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,Am=(async()=>{try{return await qt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function vm(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 Bm(r,t,e){return Nu.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}async function Mu(r,t,e){return ki==null&&(ki=await Am),ki?vm(r,t,e):Bm(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=Ki(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=Mu(this.raw,e,t);return Ko(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Fi(r){return r=Ki(r,ko),new Fo(r)}function Ki(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 Im=Math.pow(2,7),Cm=Math.pow(2,14),Tm=Math.pow(2,21),Hi=Math.pow(2,28),zi=Math.pow(2,35),Vi=Math.pow(2,42),qi=Math.pow(2,49),Q=128,Lt=127;function It(r){if(r<Im)return 1;if(r<Cm)return 2;if(r<Tm)return 3;if(r<Hi)return 4;if(r<zi)return 5;if(r<Vi)return 6;if(r<qi)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 _m(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 $i(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)*Hi,e<Q)||(e=r[t+5],n+=(e&Lt)*zi,e<Q)||(e=r[t+6],n+=(e&Lt)*Vi,e<Q)||(e=r[t+7],n+=(e&Lt)*qi,e<Q))return n;throw new RangeError("Could not decode varint")}function Dm(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)*Hi,e<Q)||(e=r.get(t+5),n+=(e&Lt)*zi,e<Q)||(e=r.get(t+6),n+=(e&Lt)*Vi,e<Q)||(e=r.get(t+7),n+=(e&Lt)*qi,e<Q))return n;throw new RangeError("Could not decode varint")}function Ku(r,t,e=0){return t==null&&(t=vt(It(r))),t instanceof Uint8Array?Rr(r,t,e):_m(r,t,e)}function rr(r,t=0){return r instanceof Uint8Array?$i(r,t):Dm(r,t)}var Wi=new Float32Array([-0]),Ke=new Uint8Array(Wi.buffer);function Fu(r,t,e){Wi[0]=r,t[e]=Ke[0],t[e+1]=Ke[1],t[e+2]=Ke[2],t[e+3]=Ke[3]}function Hu(r,t){return Ke[0]=r[t],Ke[1]=r[t+1],Ke[2]=r[t+2],Ke[3]=r[t+3],Wi[0]}var Gi=new Float64Array([-0]),Ct=new Uint8Array(Gi.buffer);function zu(r,t,e){Gi[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 Vu(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],Gi[0]}var Rm=BigInt(Number.MAX_SAFE_INTEGER),Om=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<Rm&&t>Om)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>qu&&(o=0n,++n>qu&&(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 qu=4294967296n;function $u(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 ju(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 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 Zi=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=Hu(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Zt(this,4);let t=Vu(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 ju(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=$i(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 Zi(r instanceof Uint8Array?r:r.subarray())}function zo(r,t,e){let n=Sn(r);return t.decode(n,void 0,e)}function Xi(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 Qi(){}var ta=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Pm=Xi();function Um(r){return globalThis.Buffer!=null?vt(r):Pm(r)}var vn=class{len;head;tail;states;constructor(){this.len=0,this.head=new or(Qi,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 ea((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(Ji,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(Fu,4,t)}double(t){return this._push(zu,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Ji,1,0):this.uint32(e)._push(Mm,e,t)}string(t){let e=$u(t);return e!==0?this.uint32(e)._push(Yi,e,t):this._push(Ji,1,0)}fork(){return this.states=new ta(this),this.head=this.tail=new or(Qi,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(Qi,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=Um(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Ji(r,t,e){t[e]=r&255}function Nm(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var ea=class extends or{next;constructor(t,e){super(Nm,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 Mm(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(km,t,r),this},vn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Km,t,r),this});function km(r,t,e){t.set(r,e)}function Km(r,t,e){r.length<40?Yi(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(nt(r),e)}function ra(){return new vn}function qo(r,t){let e=ra();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 na(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 oa;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(oa||(oa={}));(function(r){r.codec=()=>na(oa)})(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 sa;(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})(sa||(sa={}));var Ln={};rt(Ln,{MAX_RSA_KEY_SIZE:()=>ia,generateRSAKeyPair:()=>Qu,jwkToJWKKeyPair:()=>Ju,jwkToPkcs1:()=>Vm,jwkToPkix:()=>ua,jwkToRSAPrivateKey:()=>pa,pkcs1MessageToJwk:()=>ca,pkcs1MessageToRSAPrivateKey:()=>ha,pkcs1ToJwk:()=>zm,pkcs1ToRSAPrivateKey:()=>Xu,pkixMessageToJwk:()=>fa,pkixMessageToRSAPublicKey:()=>da,pkixToJwk:()=>qm,pkixToRSAPublicKey:()=>la});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 Zu(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 Yu(this.jwk,t,e)}};var ia=8192,aa=18,Fm=1062,Hm=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function zm(r){let t=me(r);return ca(t)}function ca(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 Vm(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 qm(r){let t=me(r,{offset:0});return fa(t)}function fa(r){let t=me(r[1],{offset:0});return{kty:"RSA",n:Y(t[0],"base64url"),e:Y(t[1],"base64url")}}function ua(r){if(r.n==null||r.e==null)throw new tt("JWK was missing components");return Ce([Hm,po(Ce([Pt(nt(r.n,"base64url")),Pt(nt(r.e,"base64url"))]))]).subarray()}function Xu(r){let t=me(r);return ha(t)}function ha(r){let t=ca(r);return pa(t)}function la(r,t){if(r.byteLength>=Fm)throw new gr("Key size is too large");let e=me(r,{offset:0});return da(e,r,t)}function da(r,t,e){let n=fa(r);if(e==null){let o=ne(ae.encode({Type:ut.RSA,Data:t}));e=jt(aa,o)}return new Or(n,e)}function pa(r){if(eh(r)>ia)throw new tt("Key size is too large");let t=Ju(r),e=ne(ae.encode({Type:ut.RSA,Data:ua(t.publicKey)})),n=jt(aa,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}async function Qu(r){if(r>ia)throw new tt("Key size is too large");let t=await th(r),e=ne(ae.encode({Type:ut.RSA,Data:ua(t.publicKey)})),n=jt(aa,e);return new Bn(t.privateKey,new Or(t.publicKey,n))}function Ju(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 th(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 $m(e,t);return{privateKey:n[0],publicKey:n[1]}}async function Yu(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 Zu(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 $m(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 eh(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 jm=BigInt(0),ma=class extends Error{constructor(t=""){super(t)}},ge={Err:ma,_tlv:{encode:(r,t)=>{let{Err:e}=ge;if(Ne(r,"tag"),r<0||r>255)throw new e("tlv.encode: wrong tag");if(iu(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<jm)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)}},ya=(Object.freeze(ge._tlv),Object.freeze(ge._int),Object.freeze(ge));var rh=(r,t)=>(r+(r>=0?t:-t)/nh)/t;function Wm(r,t,e){ie("scalar",r,be,e);let[[n,o],[s,i]]=t,a=rh(i*r,e),c=rh(-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 wa(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ga(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&&wa(e.format),e}var be=BigInt(0),sr=BigInt(1),nh=BigInt(2),ba=BigInt(3),Gm=BigInt(4);function oh(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=ih(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(sh(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,ba),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,ba),Gm),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 Wm(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(ba),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 sh(r){return Uint8Array.of(r?2:3)}function ih(r,t){return{secretKey:t.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function Ym(r,t={}){ke(r);let{Fn:e}=r,n=t.randomBytes===void 0?ye:t.randomBytes,o=Object.assign(ih(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 ah(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=Ui(s,h),{keygen:p,getPublicKey:m,getSharedSecret:b,utils:g,lengths:w}=Ym(r,o),S={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=f*nh+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){wa(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}=ya.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(sh((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(wa(y),y==="der")return Lr(ya.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}=ga(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)),rd=c.inv(c.mul(ve,de)),nd=c.mul(ve,st),od=c.mul(ve,V);Mt=c.create(rd*c.create(nd+od*Jt))}else{let ve=yu(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 cu(n.outputLen,c.BYTES,i)(O,F).toBytes(L.format)}function B(v,y,L,O={}){let{lowS:F,prehash:K,format:q}=ga(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}=ga(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 Ea={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Zm={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var ch=BigInt(2);function Xm(r){let t=Ea.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,ch,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(_,ch,t);if(!xa.eql(xa.sqr(N),r))throw new Error("Cannot find square root");return N}var xa=Tr(Ea.p,{sqrt:Xm}),Qm=oh(Ea,{Fp:xa,endo:Zm}),Pr=ah(Qm,ne);function fh(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=hh(t),this.raw=uh(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 fh(this._key,e,t,n)}};function Sa(r){return new Zo(r)}function uh(r){return Pr.Point.fromBytes(r).toBytes()}function hh(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 la(o,t);case ut.Ed25519:return Fi(o);case ut.secp256k1:return Sa(o);case ut.ECDSA:return mi(o);default:throw new je}}function lh(r){let{Type:t,Data:e}=ae.decode(r.digest),n=e??new Uint8Array;switch(t){case ut.Ed25519:return Fi(n);case ut.secp256k1:return Sa(n);case ut.ECDSA:return mi(n);default:throw new je}}function Te(r){return ae.encode({Type:ut[r.type],Data:r.raw})}var dh=Symbol.for("nodejs.util.inspect.custom"),Jm=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(Jm,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")}[dh](){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}},t0=2336,On=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Wt.digest(nt(this.url))}[dh](){return`PeerId(${this.url})`}[Ks]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return yt.createV1(t0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=Y(t)),t.toString()===this.toString())}};var e0=114,ph=2336;function mh(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 r0(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 yh(e)}function Aa(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 yh(r){if(o0(r))return new _n({multihash:r});if(n0(r))try{let t=lh(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 r0(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==e0&&r.code!==ph)throw new oo("Supplied PeerID CID is invalid");if(r.code===ph){let t=Y(r.multihash.digest);return new On(new URL(t))}return yh(r.multihash)}function n0(r){return r.code===Wt.code}function o0(r){return r.code===an.code}function s0(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 gh(r){let t=s0(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 i0=45,a0=15,Qo=new Xo;function bh(r){if(!(r.length>a0))return Qo.new(r).parseWith(()=>Qo.readIPv4Addr())}function wh(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>i0))return Qo.new(r).parseWith(()=>Qo.readIPv6Addr())}function Jo(r){return!!bh(r)}function xh(r){return!!wh(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 Ba(r){return t=>Y(t,r)}function La(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 Eh(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 Sh(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 Ia(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 Ca=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},Ah=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=Ca(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},vh=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(".")},Bh=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 Lh(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 va=Object.values(Ye).map(r=>r.decoder),c0=(function(){let r=va[0].or(va[1]);return va.slice(2).forEach(t=>r=r.or(t)),r})();function Ih(r){return c0.decode(r)}function Ch(r){return t=>r.encoder.encode(t)}function f0(r){if(parseInt(r).toString()!==r)throw new we("Value must be an integer")}function u0(r){if(r<0)throw new we("Value must be a positive integer, or zero")}function h0(r){return t=>{if(t>r)throw new we(`Value must be smaller than or equal to ${r}`)}}function l0(...r){return t=>{for(let e of r)e(t)}}var Pn=l0(f0,u0,h0(65535));var xt=-1,Ta=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 Ta,L0=[{code:4,name:"ip4",size:32,valueToBytes:Ca,bytesToValue:vh,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:Ah,bytesToValue:Bh,stringToValue:Lh,validate:r=>{if(!xh(r))throw new we(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:xt},{code:43,name:"ipcidr",size:8,bytesToValue:Ba("base10"),valueToBytes:La("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:Ba("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?La("base58btc")(r):yt.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ia,valueToBytes:Eh},{code:445,name:"onion3",size:296,bytesToValue:Ia,valueToBytes:Sh},{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:Ch(ri),valueToBytes:Ih},{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}];L0.forEach(r=>{Ee.addProtocol(r)});function Th(r){let t=[],e=0;for(;e<r.length;){let n=rr(r,e),o=Ee.getProtocol(n),s=It(n),i=I0(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 _h(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 Dh(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 Rh(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 I0(r,t,e){return r.size==null||r.size===0?0:r.size>0?r.size/8:rr(t,e)}var C0=Symbol.for("nodejs.util.inspect.custom"),Wa=Symbol.for("@multiformats/multiaddr");function T0(r){if(r==null&&(r="/"),Oh(r))return r.getComponents();if(r instanceof Uint8Array)return Th(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Dh(r);if(Array.isArray(r))return r;throw new St("Must be a string, Uint8Array, Component[], or another Multiaddr")}var ja=class r{[Wa]=!0;#t;#e;#r;constructor(t="/",e={}){this.#t=T0(t),e.validate!==!1&&_0(this)}get bytes(){return this.#r==null&&(this.#r=_h(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=Rh(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)}[C0](){return`Multiaddr(${this.toString()})`}};function _0(r){r.getComponents().forEach(t=>{let e=Ee.getProtocol(t.code);t.value!=null&&e.validate?.(t.value)})}function Oh(r){return!!r?.[Wa]}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)}}),Ph=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 D0=z(421),SS=ct(D0),cs=z(54),fs=z(55),us=z(56),Ya=z(53),AS=ct(cs,$(z(421))),vS=ct(fs,$(z(421))),BS=ct(us,$(z(421))),LS=ct(Tt(Ya,us,cs,fs),$(z(421))),Uh=Z(z(4),$(z(43))),Nh=Z($(z(42)),z(41),$(z(43))),Za=Tt(Uh,Nh),Kr=Tt(Za,Ya,cs,fs,us),IS=ct(Tt(Za,Z(Tt(Ya,us,cs,fs),$(z(421))))),CS=ct(Uh),TS=ct(Nh),_S=ct(Za),Xa=Z(Kr,z(6)),Un=Z(Kr,z(273)),DS=ct(Z(Xa,$(z(421)))),RS=ct(Un),Qa=Z(Un,at(460),$(z(421))),hs=Z(Un,at(461),$(z(421))),R0=Tt(Qa,hs),OS=ct(Qa),PS=ct(hs),Ga=Tt(Kr,Xa,Un,Qa,hs),Mh=Tt(Z(Ga,at(477),$(z(421)))),US=ct(Mh),kh=Tt(Z(Ga,at(478),$(z(421))),Z(Ga,at(448),$(z(449)),at(477),$(z(421)))),NS=ct(kh),Kh=Z(Un,at(280),$(z(466)),$(z(466)),$(z(421))),MS=ct(Kh),Fh=Z(hs,at(465),$(z(466)),$(z(466)),$(z(421))),ls=ct(Fh),as=Tt(Mh,kh,Z(Xa,$(z(421))),Z(R0,$(z(421))),Z(Kr,$(z(421))),Kh,Fh,z(421)),kS=ct(as),O0=Z($(as),at(290),Ph(at(281)),$(z(421))),KS=ct(O0),P0=Tt(Z(as,at(290),at(281),$(z(421))),Z(as,at(281),$(z(421))),Z(at(281),$(z(421)))),FS=ct(P0),U0=Z(Kr,Tt(Z(z(6,"80")),Z(z(6),at(480)),at(480)),$(z(481)),$(z(421))),HS=ct(U0),N0=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))),zS=ct(N0),M0=Tt(Z(z(777),$(z(421)))),VS=ct(M0),k0=Tt(Z(z(400),$(z(421)))),qS=ct(k0);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 Ja=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 K0(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 K0(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 Ja)},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 tc=class r extends Error{name="TimeoutError";constructor(t,e){super(t,e),Error.captureStackTrace?.(this,r)}},Hh=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function ec(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(Hh(i));return}if(i&&(c=()=>{l(Hh(i))},i.addEventListener("abort",c,{once:!0})),r.then(h,l),e===Number.POSITIVE_INFINITY)return;let p=new tc;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 F0=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 H0(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}=F0(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=ec(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=H0(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 z0(r){return r.reason}async function $t(r,t,e){if(t==null)return r;let n=e?.translateError??z0;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 V0=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??V0,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 zh(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 zh(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 q0=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Nn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},nc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},oc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function $0(r){return typeof r?.closeRead=="function"}function j0(r){return typeof r?.close=="function"}function rc(r){return $0(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:j0(r)?r.status!=="open":!1}function W0(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function G0(r,t){let e=t?.maxBufferSize??q0,n=new ft,o,s=!1;if(!W0(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(rc(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),rc(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(rc(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 sc(r,t={}){let e=G0(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=It(t.maxDataLength));let n=t?.lengthDecoder??rr,o=t?.lengthEncoder??Ku;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 oc(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new nc(`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 Y0=1024*1024*4,Z0=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new ft,this.maxBufferSize=t.maxBufferSize??Y0,this.maxDataLength=t.maxDataLength??Z0,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,ic=16;function ac(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(ac(r)&&(t===void 0||r.length===t))return r;t!==void 0&&fr(t,"length");let n=ac(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 Vh=(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 cc(r,t=!0){if(r.destroyed)throw new Error("hash was destroyed");if(t&&r.finished)throw new Error("digest() was already called")}function qh(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 X0(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var He=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Q0(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function J0(r){for(let t=0;t<r.length;t++)r[t]=Q0(r[t]);return r}var Se=He?r=>r:J0;function $h(r,t){return Vh(r,"defaults"),Vh(t,"opts"),Object.assign(r,t)}function jh(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 Wh(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 Gh=(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(ac(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 Yh(r,t,e){fr(r),fr(t),vs(e);let n=new Uint8Array(16),o=X0(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 Xh=r=>Uint8Array.from(r.split(""),t=>t.charCodeAt(0)),ty=Se(fe(Xh("expand 16-byte k"))),ey=Se(fe(Xh("expand 32-byte k")));function W(r,t){return r<<t|r>>>32-t}var Kn=64,ry=16,fc=2**32-1,Zh=Uint32Array.of();function ny(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):Zh,p=h?fe(s):Zh;if(!He){for(let m=0;m<c;i++){if(r(t,e,n,u,i,a),Se(u),i>=fc)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>=fc)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<ry;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 Qh(r,t){let{allowShortKeys:e,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=$h({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>=fc)throw new Error("arx: counter overflow");let p=[],m=a.length,b,g;if(m===32)p.push(b=zr(a)),g=ey;else if(m===16&&e)b=new Uint8Array(32),b.set(a),b.set(a,16),g=ty,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 ny(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 uc=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){cc(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){cc(this),qh(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}},Jh=Wh(32,r=>new uc(r));function oy(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 sy=Qh(oy,{counterRight:!1,counterLength:4,allowShortKeys:!1});var iy=new Uint8Array(16),tl=(r,t)=>{r.update(t);let e=t.length%16;e&&r.update(iy.subarray(e))},ay=new Uint8Array(32);function el(r,t,e,n,o){o!==void 0&&pt(o,void 0,"AAD");let s=r(t,e,ay),i=Yh(n.length,o?o.length:0,!0),a=Jh.create(s);o&&tl(a,o),tl(a,n),a.update(i);let c=a.digest();return Xt(s,i),c}var cy=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=el(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=el(r,t,e,a,n);if(!jh(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}}),hc=Gh({blockSize:64,nonceLength:12,tagLength:16,withAAD:!0},cy(sy));function rl(r,t,e){return Qe(r),e===void 0&&(e=new Uint8Array(r.outputLen)),In(r,e,t)}var Fn=Uint8Array.of(0),fy=Uint8Array.of();function nl(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=fy: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 lc={hashSHA256(r){return ne(r.subarray())},getHKDF(r,t){let e=rl(ne,t,r),o=nl(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 hc(n,t,e).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,t,e,n,o){return hc(n,t,e).decrypt(r.subarray(),o)}};var ol=lc;function sl(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 il(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 gc={};rt(gc,{base10:()=>yy});var g8=new Uint8Array(0);function al(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 cl(r){return new TextEncoder().encode(r)}function fl(r){return new TextDecoder().decode(r)}function uy(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 hy=uy,ly=hy,hl=ly;var dc=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")}},pc=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 ll(this,t)}},mc=class{decoders;constructor(t){this.decoders=t}or(t){return ll(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 ll(r,t){return new mc({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var yc=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 dc(t,e,n),this.decoder=new pc(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 yc(r,t,e,n)}function ze({name:r,prefix:t,alphabet:e}){let{encode:n,decode:o}=hl(e,r);return $r({prefix:t,name:r,encode:n,decode:s=>Ae(o(s))})}function dy(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 py(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 my(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=my(n);return $r({prefix:t,name:r,encode(s){return py(s,n,e)},decode(s){return dy(s,o,e,r)}})}var yy=ze({prefix:"9",name:"base10",alphabet:"0123456789"});var bc={};rt(bc,{base16:()=>gy,base16upper:()=>by});var gy=dt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),by=dt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var wc={};rt(wc,{base2:()=>wy});var wy=dt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var xc={};rt(xc,{base256emoji:()=>vy});var dl=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}"),xy=dl.reduce((r,t,e)=>(r[e]=t,r),[]),Ey=dl.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+=xy[e],t),"")}function Ay(r){let t=[];for(let e of r){let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);let o=Ey[n];if(o==null)throw new Error(`Non-base256emoji character: ${e}`);t.push(o)}return new Uint8Array(t)}var vy=$r({prefix:"\u{1F680}",name:"base256emoji",encode:Sy,decode:Ay});var Ec={};rt(Ec,{base32:()=>jr,base32hex:()=>Cy,base32hexpad:()=>_y,base32hexpadupper:()=>Dy,base32hexupper:()=>Ty,base32pad:()=>Ly,base32padupper:()=>Iy,base32upper:()=>By,base32z:()=>Ry});var jr=dt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),By=dt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ly=dt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Iy=dt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Cy=dt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ty=dt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),_y=dt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Dy=dt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ry=dt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Sc={};rt(Sc,{base36:()=>Hn,base36upper:()=>Oy});var Hn=ze({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Oy=ze({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ac={};rt(Ac,{base58btc:()=>ue,base58flickr:()=>Py});var ue=ze({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Py=ze({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var vc={};rt(vc,{base64:()=>Uy,base64pad:()=>Ny,base64url:()=>My,base64urlpad:()=>ky});var Uy=dt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Ny=dt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),My=dt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ky=dt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Bc={};rt(Bc,{base8:()=>Ky});var Ky=dt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Lc={};rt(Lc,{identity:()=>Fy});var Fy=$r({prefix:"\0",name:"identity",encode:r=>fl(r),decode:r=>cl(r)});var O8=new TextEncoder,P8=new TextDecoder;var Cc={};rt(Cc,{identity:()=>fg});var Vy=yl,pl=128,qy=127,$y=~qy,jy=Math.pow(2,31);function yl(r,t,e){t=t||[],e=e||0;for(var n=e;r>=jy;)t[e++]=r&255|pl,r/=128;for(;r&$y;)t[e++]=r&255|pl,r>>>=7;return t[e]=r|0,yl.bytes=e-n+1,t}var Wy=Ic,Gy=128,ml=127;function Ic(r,n){var e=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Ic.bytes=0,new RangeError("Could not decode varint");i=r[s++],e+=o<28?(i&ml)<<o:(i&ml)*Math.pow(2,o),o+=7}while(i>=Gy);return Ic.bytes=s-n,e}var Yy=Math.pow(2,7),Zy=Math.pow(2,14),Xy=Math.pow(2,21),Qy=Math.pow(2,28),Jy=Math.pow(2,35),tg=Math.pow(2,42),eg=Math.pow(2,49),rg=Math.pow(2,56),ng=Math.pow(2,63),og=function(r){return r<Yy?1:r<Zy?2:r<Xy?3:r<Qy?4:r<Jy?5:r<tg?6:r<eg?7:r<rg?8:r<ng?9:10},sg={encode:Vy,decode:Wy,encodingLength:og},ig=sg,zn=ig;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 gl(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 bl(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&al(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 wl=0,ag="identity",xl=Ae;function cg(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(wl,xl(r))}var fg={code:wl,name:ag,encode:xl,digest:cg};var Dc={};rt(Dc,{sha256:()=>hg,sha512:()=>lg});var ug=20;function _c({name:r,code:t,encode:e,minDigestLength:n,maxDigestLength:o}){return new Tc(r,t,e,n,o)}var Tc=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,e,n,o,s){this.name=t,this.code=e,this.encode=n,this.minDigestLength=o??ug,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?El(n,this.code,e?.truncate):n.then(o=>El(o,this.code,e?.truncate))}else throw Error("Unknown type, must be binary type")}};function El(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 Al(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var hg=_c({name:"sha2-256",code:18,encode:Al("SHA-256")}),lg=_c({name:"sha2-512",code:19,encode:Al("SHA-512")});function vl(r,t){let{bytes:e,version:n}=r;return n===0?pg(e,Rc(r),t??ue.encoder):mg(e,Rc(r),t??jr.encoder)}var Bl=new WeakMap;function Rc(r){let t=Bl.get(r);if(t==null){let e=new Map;return Bl.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!==yg)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&&bl(t.multihash,n.multihash)}toString(t){return vl(this,t)}toJSON(){return{"/":vl(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??Ll(n,o,s.bytes))}else if(e[gg]===!0){let{version:n,multihash:o,code:s}=e,i=gl(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=Ll(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]=dg(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 Rc(s).set(n,t),s}};function dg(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 pg(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 mg(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,yg=18;function Ll(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 gg=Symbol.for("@ipld/js-cid/CID");var Oc={...Lc,...wc,...Bc,...gc,...bc,...Ec,...Sc,...Ac,...vc,...xc},r4={...Dc,...Cc};function Cl(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Il=Cl("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Pc=Cl("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}),bg={utf8:Il,"utf-8":Il,hex:Oc.base16,latin1:Pc,ascii:Pc,binary:Pc,...Oc},Is=bg;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 Uc(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 Nc(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 Tl(r,t){!t.enabled||!Hr||t(r?`REMOTE_STATIC_PUBLIC_KEY ${he(r.subarray(),"hex")}`:"Missing remote static public key.")}function Mc(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 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 Dl=Symbol.for("@achingbrain/uint8arraylist");function _l(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?.[Dl]}var le=class r{bufs;length;[Dl]=!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=_l(this.bufs,t);return e.buf[e.index]}set(t,e){let n=_l(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(!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=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 xg=0,Eg=4294967295,Sg="Cipherstate has reached maximum n, a new handshake must be performed",Ts=class{n;bytes;view;constructor(t=xg){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>Eg)throw new Error(Sg)}};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}},Fc=class{cs;ck;h;crypto;constructor(t,e){this.crypto=t;let n=ur(e,"utf-8");this.h=Ag(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)]}},Hc=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()}},jn=class extends Hc{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 Ag(r,t){if(t.length<=32){let e=wt(32);return e.set(t),e}else return r.hash(t)}var vg=Math.pow(2,7),Bg=Math.pow(2,14),Lg=Math.pow(2,21),Rl=Math.pow(2,28),Ol=Math.pow(2,35),Pl=Math.pow(2,42),Ul=Math.pow(2,49),Ot=128,Ve=127;function Wn(r){if(r<vg)return 1;if(r<Bg)return 2;if(r<Lg)return 3;if(r<Rl)return 4;if(r<Ol)return 5;if(r<Pl)return 6;if(r<Ul)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Nl(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 Ml(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)*Rl,e<Ot)||(e=r[t+5],n+=(e&Ve)*Ol,e<Ot)||(e=r[t+6],n+=(e&Ve)*Pl,e<Ot)||(e=r[t+7],n+=(e&Ve)*Ul,e<Ot))return n;throw new RangeError("Could not decode varint")}var zc=new Float32Array([-0]),qe=new Uint8Array(zc.buffer);function kl(r,t,e){zc[0]=r,t[e]=qe[0],t[e+1]=qe[1],t[e+2]=qe[2],t[e+3]=qe[3]}function Kl(r,t){return qe[0]=r[t],qe[1]=r[t+1],qe[2]=r[t+2],qe[3]=r[t+3],zc[0]}var Vc=new Float64Array([-0]),Dt=new Uint8Array(Vc.buffer);function Fl(r,t,e){Vc[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 Hl(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],Vc[0]}var Ig=BigInt(Number.MAX_SAFE_INTEGER),Cg=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<Ig&&t>Cg)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>zl&&(o=0n,++n>zl&&(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 zl=4294967296n;function Vl(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 ql(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 qc(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 $c=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=Kl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Qt(this,4);let t=Hl(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 ql(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=Ml(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 jc(r){return new $c(r instanceof Uint8Array?r:r.subarray())}function Ds(r,t,e){let n=jc(r);return t.decode(n,void 0,e)}function Wc(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 Gc(){}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}},Tg=Wc();function _g(r){return globalThis.Buffer!=null?_t(r):Tg(r)}var Yn=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(Gc,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 Xc((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(Nl,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(Yc,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(kl,4,t)}double(t){return this._push(Fl,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(Yc,1,0):this.uint32(e)._push(Rg,e,t)}string(t){let e=Vl(t);return e!==0?this.uint32(e)._push(qc,e,t):this._push(Yc,1,0)}fork(){return this.states=new Zc(this),this.head=this.tail=new dr(Gc,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(Gc,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=_g(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function Yc(r,t,e){t[e]=r&255}function Dg(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var Xc=class extends dr{next;constructor(t,e){super(Dg,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 Rg(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(Og,t,r),this},Yn.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Pg,t,r),this});function Og(r,t,e){t.set(r,e)}function Pg(r,t,e){r.length<40?qc(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(ur(r),e)}function Qc(){return new Yn}function Os(r,t){let e=Qc();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 Jc(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Ps(r,t){return Jc("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 ef(r,t,e){let n=await r.sign(Wl(t));return Qn.encode({identityKey:Te(r.publicKey),identitySig:n,extensions:e})}async function rf(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=Wl(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new to(n.message)}}function Wl(r){let t=ur("noise-libp2p-static-key:");return r instanceof Uint8Array?Xr([t,r],t.length+r.length):(r.prepend(t),r)}var tf=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-ic<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-ic);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 nf(r,t,e){return new tf(r,t,e)}async function Gl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await ef(s,a.publicKey,f),h=new jn({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."),Nc(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."),Mc(h.re,e),Tl(h.rs,e),e.trace("Initiator going to check remote's signature...");let p=await rf(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 Yl(r,t){let{log:e,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=r,u=await ef(s,a.publicKey,f),h=new jn({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."),Mc(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."),Nc(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 rf(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??ol;this.crypto=sl(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?il(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=sc(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:nf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:Aa(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=sc(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:nf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:Aa(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 Gl({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 Yl({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 Zl(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 of(r){throw new Error("Not implemented")}var sf=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 af(r,t,e,n,o){return new sf({...o,stream:r,id:t,direction:e,log:n.newScope(`${e}:${t}`),protocol:""})}var Xl="/webtransport",cf=class extends ws{webTransport;streamIDCounter;reader;constructor(t,e){super(e,{protocol:Xl,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(af(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(),af(e,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function Ql(r){return{protocol:Xl,createStreamMuxer(t){return new cf(r,t)}}}var ff=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(){}},Jl=r=>new ff(r);function td(r,t){return t.filter(n=>!!r.find(o=>gt(n,o))).length===t.length}var Ug=Object.values(Ye).map(r=>r.decoder).reduce((r,t)=>r.or(t));function Ng(r){return pe.decode(Ug.decode(r))}function uf(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(Ng(s.value??"")),s.name==="p2p"&&e==null&&(e=mh(s.value??""));let n=gh(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 ed=globalThis.WebTransport;var hf=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";[df]=!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}=uf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let l=new ed(`${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=Jl({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:Ql(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=Zl()(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}),!td(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 of(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}=uf(e);return n!=null&&o.length>0})}};function Mg(r={}){return t=>new hf(t,r)}return fd(kg);})();
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