@libp2p/daemon-server 9.0.8 → 9.0.9-8cebf6322
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 +13 -9
- package/dist/index.min.js.map +4 -4
- package/package.json +10 -10
- package/dist/typedoc-urls.json +0 -12
package/dist/index.min.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PDaemonServer = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PDaemonServer=(()=>{var fu=Object.create;var Pr=Object.defineProperty;var du=Object.getOwnPropertyDescriptor;var hu=Object.getOwnPropertyNames;var pu=Object.getPrototypeOf,mu=Object.prototype.hasOwnProperty;var oe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Le=(r,e)=>{for(var t in e)Pr(r,t,{get:e[t],enumerable:!0})},Oi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of hu(e))!mu.call(r,o)&&o!==t&&Pr(r,o,{get:()=>e[o],enumerable:!(n=du(e,o))||n.enumerable});return r};var Te=(r,e,t)=>(t=r!=null?fu(pu(r)):{},Oi(e||!r||!r.__esModule?Pr(t,"default",{value:r,enumerable:!0}):t,r)),bu=r=>Oi(Pr({},"__esModule",{value:!0}),r);var Wd={};Le(Wd,{Server:()=>go,createServer:()=>zd});var xo=oe("node:buffer");function pt(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Ze(r=0){return pt(xo.Buffer.alloc(r))}function Se(r=0){return pt(xo.Buffer.allocUnsafe(r))}var yu=Math.pow(2,7),gu=Math.pow(2,14),xu=Math.pow(2,21),Eo=Math.pow(2,28),wo=Math.pow(2,35),vo=Math.pow(2,42),So=Math.pow(2,49),k=128,me=127;function ae(r){if(r<yu)return 1;if(r<gu)return 2;if(r<xu)return 3;if(r<Eo)return 4;if(r<wo)return 5;if(r<vo)return 6;if(r<So)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Ot(r,e,t=0){switch(ae(r)){case 8:e[t++]=r&255|k,r/=128;case 7:e[t++]=r&255|k,r/=128;case 6:e[t++]=r&255|k,r/=128;case 5:e[t++]=r&255|k,r/=128;case 4:e[t++]=r&255|k,r>>>=7;case 3:e[t++]=r&255|k,r>>>=7;case 2:e[t++]=r&255|k,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Eu(r,e,t=0){switch(ae(r)){case 8:e.set(t++,r&255|k),r/=128;case 7:e.set(t++,r&255|k),r/=128;case 6:e.set(t++,r&255|k),r/=128;case 5:e.set(t++,r&255|k),r/=128;case 4:e.set(t++,r&255|k),r>>>=7;case 3:e.set(t++,r&255|k),r>>>=7;case 2:e.set(t++,r&255|k),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Io(r,e){let t=r[e],n=0;if(n+=t&me,t<k||(t=r[e+1],n+=(t&me)<<7,t<k)||(t=r[e+2],n+=(t&me)<<14,t<k)||(t=r[e+3],n+=(t&me)<<21,t<k)||(t=r[e+4],n+=(t&me)*Eo,t<k)||(t=r[e+5],n+=(t&me)*wo,t<k)||(t=r[e+6],n+=(t&me)*vo,t<k)||(t=r[e+7],n+=(t&me)*So,t<k))return n;throw new RangeError("Could not decode varint")}function wu(r,e){let t=r.get(e),n=0;if(n+=t&me,t<k||(t=r.get(e+1),n+=(t&me)<<7,t<k)||(t=r.get(e+2),n+=(t&me)<<14,t<k)||(t=r.get(e+3),n+=(t&me)<<21,t<k)||(t=r.get(e+4),n+=(t&me)*Eo,t<k)||(t=r.get(e+5),n+=(t&me)*wo,t<k)||(t=r.get(e+6),n+=(t&me)*vo,t<k)||(t=r.get(e+7),n+=(t&me)*So,t<k))return n;throw new RangeError("Could not decode varint")}function Rr(r,e,t=0){return e==null&&(e=Se(ae(r))),e instanceof Uint8Array?Ot(r,e,t):Eu(r,e,t)}function mt(r,e=0){return r instanceof Uint8Array?Io(r,e):wu(r,e)}var Ao=new Float32Array([-0]),ot=new Uint8Array(Ao.buffer);function Pi(r,e,t){Ao[0]=r,e[t]=ot[0],e[t+1]=ot[1],e[t+2]=ot[2],e[t+3]=ot[3]}function Ri(r,e){return ot[0]=r[e],ot[1]=r[e+1],ot[2]=r[e+2],ot[3]=r[e+3],Ao[0]}var Lo=new Float64Array([-0]),be=new Uint8Array(Lo.buffer);function Ni(r,e,t){Lo[0]=r,e[t]=be[0],e[t+1]=be[1],e[t+2]=be[2],e[t+3]=be[3],e[t+4]=be[4],e[t+5]=be[5],e[t+6]=be[6],e[t+7]=be[7]}function ki(r,e){return be[0]=r[e],be[1]=r[e+1],be[2]=r[e+2],be[3]=r[e+3],be[4]=r[e+4],be[5]=r[e+5],be[6]=r[e+6],be[7]=r[e+7],Lo[0]}var vu=BigInt(Number.MAX_SAFE_INTEGER),Su=BigInt(Number.MIN_SAFE_INTEGER),De=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return bt;if(e<vu&&e>Su)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Ui&&(o=0n,++n>Ui&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return bt;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):bt}},bt=new De(0,0);bt.toBigInt=function(){return 0n};bt.zzEncode=bt.zzDecode=function(){return this};bt.length=function(){return 1};var Ui=4294967296n;function Mi(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Ki(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&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 To(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function Me(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function kr(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Do=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Me(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Me(this,4);return kr(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Me(this,4);return kr(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Me(this,4);let e=Ri(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Me(this,4);let e=ki(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Me(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Ki(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Me(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Me(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new De(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Me(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Me(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Me(this,8);let e=kr(this.buf,this.pos+=4),t=kr(this.buf,this.pos+=4);return new De(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Io(this.buf,this.pos);return this.pos+=ae(e),e}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 Co(r){return new Do(r instanceof Uint8Array?r:r.subarray())}function W(r,e,t){let n=Co(r);return e.decode(n,void 0,t)}var aa=oe("node:buffer");var Ro={};Le(Ro,{base10:()=>_u});var ih=new Uint8Array(0);function Vi(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Re(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 $i(r){return new TextEncoder().encode(r)}function Gi(r){return new TextDecoder().decode(r)}function Iu(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(g){if(g instanceof Uint8Array||(ArrayBuffer.isView(g)?g=new Uint8Array(g.buffer,g.byteOffset,g.byteLength):Array.isArray(g)&&(g=Uint8Array.from(g))),!(g instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(g.length===0)return"";for(var w=0,b=0,E=0,C=g.length;E!==C&&g[E]===0;)E++,w++;for(var P=(C-E)*u+1>>>0,N=new Uint8Array(P);E!==C;){for(var V=g[E],X=0,le=P-1;(V!==0||X<b)&&le!==-1;le--,X++)V+=256*N[le]>>>0,N[le]=V%a>>>0,V=V/a>>>0;if(V!==0)throw new Error("Non-zero carry");b=X,E++}for(var ie=P-b;ie!==P&&N[ie]===0;)ie++;for(var _=c.repeat(w);ie<P;++ie)_+=r.charAt(N[ie]);return _}function p(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var w=0;if(g[w]!==" "){for(var b=0,E=0;g[w]===c;)b++,w++;for(var C=(g.length-w)*l+1>>>0,P=new Uint8Array(C);g[w];){var N=t[g.charCodeAt(w)];if(N===255)return;for(var V=0,X=C-1;(N!==0||V<E)&&X!==-1;X--,V++)N+=a*P[X]>>>0,P[X]=N%256>>>0,N=N/256>>>0;if(N!==0)throw new Error("Non-zero carry");E=V,w++}if(g[w]!==" "){for(var le=C-E;le!==C&&P[le]===0;)le++;for(var ie=new Uint8Array(b+(C-le)),_=b;le!==C;)ie[_++]=P[le++];return ie}}}function d(g){var w=p(g);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:p,decode:d}}var Au=Iu,Lu=Au,zi=Lu;var _o=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Bo=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Wi(this,e)}},Oo=class{decoders;constructor(e){this.decoders=e}or(e){return Wi(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Wi(r,e){return new Oo({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Po=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new _o(e,t,n),this.decoder=new Bo(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Pt({name:r,prefix:e,encode:t,decode:n}){return new Po(r,e,t,n)}function st({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=zi(t,r);return Pt({prefix:e,name:r,encode:n,decode:s=>Re(o(s))})}function Tu(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,c=0;for(let l=0;l<o;++l){let u=e[r[l]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function Du(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function Cu(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function J({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Cu(n);return Pt({prefix:e,name:r,encode(s){return Du(s,n,t)},decode(s){return Tu(s,o,t,r)}})}var _u=st({prefix:"9",name:"base10",alphabet:"0123456789"});var No={};Le(No,{base16:()=>Bu,base16upper:()=>Ou});var Bu=J({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ou=J({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ko={};Le(ko,{base2:()=>Pu});var Pu=J({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Uo={};Le(Uo,{base256emoji:()=>Mu});var qi=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}"),Ru=qi.reduce((r,e,t)=>(r[t]=e,r),[]),Nu=qi.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function ku(r){return r.reduce((e,t)=>(e+=Ru[t],e),"")}function Uu(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Nu[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Mu=Pt({prefix:"\u{1F680}",name:"base256emoji",encode:ku,decode:Uu});var Mo={};Le(Mo,{base32:()=>ze,base32hex:()=>$u,base32hexpad:()=>Fu,base32hexpadupper:()=>zu,base32hexupper:()=>Gu,base32pad:()=>Hu,base32padupper:()=>Vu,base32upper:()=>Ku,base32z:()=>Wu});var ze=J({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ku=J({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Hu=J({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Vu=J({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$u=J({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Gu=J({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Fu=J({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),zu=J({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Wu=J({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ko={};Le(Ko,{base36:()=>nr,base36upper:()=>qu});var nr=st({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),qu=st({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ho={};Le(Ho,{base58btc:()=>ee,base58flickr:()=>Yu});var ee=st({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Yu=st({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Go={};Le(Go,{base64:()=>Vo,base64pad:()=>Zu,base64url:()=>$o,base64urlpad:()=>Xu});var Vo=J({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zu=J({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),$o=J({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Xu=J({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Fo={};Le(Fo,{base8:()=>Qu});var Qu=J({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var zo={};Le(zo,{identity:()=>ju});var ju=Pt({prefix:"\0",name:"identity",encode:r=>Gi(r),decode:r=>$i(r)});var vh=new TextEncoder,Sh=new TextDecoder;var qo={};Le(qo,{identity:()=>Ke});var tl=Xi,Yi=128,rl=127,nl=~rl,ol=Math.pow(2,31);function Xi(r,e,t){e=e||[],t=t||0;for(var n=t;r>=ol;)e[t++]=r&255|Yi,r/=128;for(;r&nl;)e[t++]=r&255|Yi,r>>>=7;return e[t]=r|0,Xi.bytes=t-n+1,e}var sl=Wo,il=128,Zi=127;function Wo(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw Wo.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Zi)<<o:(i&Zi)*Math.pow(2,o),o+=7}while(i>=il);return Wo.bytes=s-n,t}var al=Math.pow(2,7),cl=Math.pow(2,14),ul=Math.pow(2,21),ll=Math.pow(2,28),fl=Math.pow(2,35),dl=Math.pow(2,42),hl=Math.pow(2,49),pl=Math.pow(2,56),ml=Math.pow(2,63),bl=function(r){return r<al?1:r<cl?2:r<ul?3:r<ll?4:r<fl?5:r<dl?6:r<hl?7:r<pl?8:r<ml?9:10},yl={encode:tl,decode:sl,encodingLength:bl},gl=yl,or=gl;function sr(r,e=0){return[or.decode(r,e),or.decode.bytes]}function Rt(r,e,t=0){return or.encode(r,e,t),e}function Nt(r){return or.encodingLength(r)}function Ut(r,e){let t=e.byteLength,n=Nt(r),o=n+Nt(t),s=new Uint8Array(o+t);return Rt(r,s,0),Rt(t,s,n),s.set(e,o),new kt(r,t,e,s)}function Xe(r){let e=Re(r),[t,n]=sr(e),[o,s]=sr(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new kt(t,o,i,e)}function Qi(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Vi(r.bytes,t.bytes)}}var kt=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var ji=0,xl="identity",Ji=Re;function El(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Ut(ji,Ji(r))}var Ke={code:ji,name:xl,encode:Ji,digest:El};var jo={};Le(jo,{sha256:()=>Qo,sha512:()=>vl});var Xo=Te(oe("crypto"),1);var wl=20;function Zo({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new Yo(r,e,t,n,o)}var Yo=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??wl,this.maxDigestLength=s}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?ea(n,this.code,t?.truncate):n.then(o=>ea(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function ea(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Ut(e,r)}var Qo=Zo({name:"sha2-256",code:18,encode:r=>Re(Xo.default.createHash("sha256").update(r).digest())}),vl=Zo({name:"sha2-512",code:19,encode:r=>Re(Xo.default.createHash("sha512").update(r).digest())});function ra(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Il(t,Jo(r),e??ee.encoder);default:return Al(t,Jo(r),e??ze.encoder)}}var na=new WeakMap;function Jo(r){let e=na.get(r);if(e==null){let t=new Map;return na.set(r,t),t}return e}var se=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,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:e,multihash:t}=this;if(e!==ir)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Ll)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}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:e,digest:t}=this.multihash,n=Ut(e,t);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(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Qi(e.multihash,n.multihash)}toString(e){return ra(this,e)}toJSON(){return{"/":ra(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??oa(n,o,s.bytes))}else if(t[Tl]===!0){let{version:n,multihash:o,code:s}=t,i=Xe(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==ir)throw new Error(`Version 0 CID must use dag-pb (code: ${ir}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=oa(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,ir,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Re(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new kt(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,p]=sr(e.subarray(t));return t+=p,f},o=n(),s=ir;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),l=t+c,u=l-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(e,t){let[n,o]=Sl(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Jo(s).set(n,e),s}};function Sl(r,e){switch(r[0]){case"Q":{let t=e??ee;return[ee.prefix,t.decode(`${ee.prefix}${r}`)]}case ee.prefix:{let t=e??ee;return[ee.prefix,t.decode(r)]}case ze.prefix:{let t=e??ze;return[ze.prefix,t.decode(r)]}case nr.prefix:{let t=e??nr;return[nr.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function Il(r,e,t){let{prefix:n}=t;if(n!==ee.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function Al(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var ir=112,Ll=18;function oa(r,e,t){let n=Nt(r),o=n+Nt(e),s=new Uint8Array(o+t.byteLength);return Rt(r,s,0),Rt(e,s,n),s.set(t,o),s}var Tl=Symbol.for("@ipld/js-cid/CID");var ar={...zo,...ko,...Fo,...Ro,...No,...Mo,...Ko,...Ho,...Go,...Uo},Wh={...jo,...qo};function ia(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var sa=ia("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),es=ia("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Se(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Dl={utf8:sa,"utf-8":sa,hex:ar.base16,latin1:es,ascii:es,binary:es,...ar},Mr=Dl;function ye(r,e="utf8"){let t=Mr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?pt(aa.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function ts(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Se(i);o+i>e&&(n=Se(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var gt=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function rs(){}var os=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Cl=ts();function _l(r){return globalThis.Buffer!=null?Se(r):Cl(r)}var ur=class{len;head;tail;states;constructor(){this.len=0,this.head=new gt(rs,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new gt(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new ss((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Kr,10,De.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=De.fromBigInt(e);return this._push(Kr,t.length(),t)}uint64Number(e){return this._push(Ot,ae(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=De.fromBigInt(e).zzEncode();return this._push(Kr,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Kr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(ns,1,e?1:0)}fixed32(e){return this._push(cr,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(cr,4,t.lo)._push(cr,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(cr,4,t.lo)._push(cr,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Pi,4,e)}double(e){return this._push(Ni,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(ns,1,0):this.uint32(t)._push(Ol,t,e)}string(e){let t=Mi(e);return t!==0?this.uint32(t)._push(To,t,e):this._push(ns,1,0)}fork(){return this.states=new os(this),this.head=this.tail=new gt(rs,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 gt(rs,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=_l(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function ns(r,e,t){e[t]=r&255}function Bl(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var ss=class extends gt{next;constructor(e,t){super(Bl,e,t),this.next=void 0}};function Kr(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function cr(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function Ol(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(ur.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Pl,e,r),this},ur.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(Rl,e,r),this});function Pl(r,e,t){e.set(r,t)}function Rl(r,e,t){r.length<40?To(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(ye(r),t)}function is(){return new ur}function q(r,e){let t=is();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Mt;(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"})(Mt||(Mt={}));function Hr(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function He(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return Hr("enum",Mt.VARINT,t,n)}function Y(r,e){return Hr("message",Mt.LENGTH_DELIMITED,r,e)}var Ne;(function(r){let e;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.connect!=null&&(s.uint32(18),$r.codec().encode(o.connect,s)),o.streamOpen!=null&&(s.uint32(26),Gr.codec().encode(o.streamOpen,s)),o.streamHandler!=null&&(s.uint32(34),Fr.codec().encode(o.streamHandler,s)),o.dht!=null&&(s.uint32(42),ke.codec().encode(o.dht,s)),o.connManager!=null&&(s.uint32(50),Wr.codec().encode(o.connManager,s)),o.disconnect!=null&&(s.uint32(58),qr.codec().encode(o.disconnect,s)),o.pubsub!=null&&(s.uint32(66),Qe.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(74),xt.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.connect=$r.codec().decode(o,o.uint32());break;case 3:i.streamOpen=Gr.codec().decode(o,o.uint32());break;case 4:i.streamHandler=Fr.codec().decode(o,o.uint32());break;case 5:i.dht=ke.codec().decode(o,o.uint32());break;case 6:i.connManager=Wr.codec().decode(o,o.uint32());break;case 7:i.disconnect=qr.codec().decode(o,o.uint32());break;case 8:i.pubsub=Qe.codec().decode(o,o.uint32());break;case 9:i.peerStore=xt.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Ne||(Ne={}));var te;(function(r){let e;(function(o){o.OK="OK",o.ERROR="ERROR"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.error!=null&&(s.uint32(18),zr.codec().encode(o.error,s)),o.streamInfo!=null&&(s.uint32(26),Kt.codec().encode(o.streamInfo,s)),o.identify!=null&&(s.uint32(34),Vr.codec().encode(o.identify,s)),o.dht!=null&&(s.uint32(42),de.codec().encode(o.dht,s)),o.peers!=null)for(let a of o.peers)s.uint32(50),it.codec().encode(a,s);o.pubsub!=null&&(s.uint32(58),Yr.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(66),Zr.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={peers:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.error=zr.codec().decode(o,o.uint32());break;case 3:i.streamInfo=Kt.codec().decode(o,o.uint32());break;case 4:i.identify=Vr.codec().decode(o,o.uint32());break;case 5:i.dht=de.codec().decode(o,o.uint32());break;case 6:i.peers.push(it.codec().decode(o,o.uint32()));break;case 7:i.pubsub=Yr.codec().decode(o,o.uint32());break;case 8:i.peerStore=Zr.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(te||(te={}));var Vr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Vr||(Vr={}));var $r;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addrs.push(t.bytes());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})($r||($r={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.proto.push(t.string());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Gr||(Gr={}));var Fr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(10),n.bytes(t.addr)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={addr:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.addr=t.bytes();break;case 2:o.proto.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Fr||(Fr={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.msg!=null&&t.msg!==""&&(n.uint32(10),n.string(t.msg)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={msg:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.msg=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(zr||(zr={}));var Kt;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(18),n.bytes(t.addr)),t.proto!=null&&t.proto!==""&&(n.uint32(26),n.string(t.proto)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addr=t.bytes();break;case 3:o.proto=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Kt||(Kt={}));var ke;(function(r){let e;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.cid!=null&&(s.uint32(26),s.bytes(o.cid)),o.key!=null&&(s.uint32(34),s.bytes(o.key)),o.value!=null&&(s.uint32(42),s.bytes(o.value)),o.count!=null&&(s.uint32(48),s.int32(o.count)),o.timeout!=null&&(s.uint32(56),s.int64(o.timeout)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.cid=o.bytes();break;case 4:i.key=o.bytes();break;case 5:i.value=o.bytes();break;case 6:i.count=o.int32();break;case 7:i.timeout=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ke||(ke={}));var de;(function(r){let e;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),it.codec().encode(o.peer,s)),o.value!=null&&(s.uint32(26),s.bytes(o.value)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=it.codec().decode(o,o.uint32());break;case 3:i.value=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(de||(de={}));var it;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(it||(it={}));var Wr;(function(r){let e;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.tag!=null&&(s.uint32(26),s.string(o.tag)),o.weight!=null&&(s.uint32(32),s.int64(o.weight)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.tag=o.string();break;case 4:i.weight=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Wr||(Wr={}));var qr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(qr||(qr={}));var Qe;(function(r){let e;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.topic!=null&&(s.uint32(18),s.string(o.topic)),o.data!=null&&(s.uint32(26),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.topic=o.string();break;case 3:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Qe||(Qe={}));var lr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.from!=null&&(n.uint32(10),n.bytes(t.from)),t.data!=null&&(n.uint32(18),n.bytes(t.data)),t.seqno!=null&&(n.uint32(26),n.bytes(t.seqno)),t.topicIDs!=null)for(let s of t.topicIDs)n.uint32(34),n.string(s);t.signature!=null&&(n.uint32(42),n.bytes(t.signature)),t.key!=null&&(n.uint32(50),n.bytes(t.key)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topicIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.from=t.bytes();break;case 2:o.data=t.bytes();break;case 3:o.seqno=t.bytes();break;case 4:o.topicIDs.push(t.string());break;case 5:o.signature=t.bytes();break;case 6:o.key=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(lr||(lr={}));var Yr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.topics!=null)for(let s of t.topics)n.uint32(10),n.string(s);if(t.peerIDs!=null)for(let s of t.peerIDs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topics:[],peerIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.topics.push(t.string());break;case 2:o.peerIDs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Yr||(Yr={}));var xt;(function(r){let e;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.id!=null&&(s.uint32(18),s.bytes(o.id)),o.protos!=null)for(let a of o.protos)s.uint32(26),s.string(a);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={protos:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.id=o.bytes();break;case 3:i.protos.push(o.string());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(xt||(xt={}));var Zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&(n.uint32(10),it.codec().encode(t.peer,n)),t.protos!=null)for(let s of t.protos)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={protos:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=it.codec().decode(t,t.uint32());break;case 2:o.protos.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Zr||(Zr={}));function ca(r){let e=new globalThis.AbortController;function t(){e.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var fr=class{onConnection;constructor(e){this.onConnection=e}async upgradeInbound(e){this.onConnection?.(e)}async upgradeOutbound(e){return e}createInboundAbortSignal(e){return ca([e])}getStreamMuxers(){return new Map}getConnectionEncrypters(){return new Map}};var fa=Te(oe("node:tty"),1),en=Te(oe("node:util"),1);function Nl(r,e){if(typeof r=="string")return kl(r);if(typeof r=="number")return Kl(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var Xr=Nl;function kl(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,o=parseFloat(t),s=n.toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return o*315576e5;case"months":case"month":case"mo":return o*26298e5;case"weeks":case"week":case"w":return o*6048e5;case"days":case"day":case"d":return o*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return o*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return o*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return o*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:throw Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function Ul(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Ml(r){let e=Math.abs(r);return e>=315576e5?Et(r,e,315576e5,"year"):e>=26298e5?Et(r,e,26298e5,"month"):e>=6048e5?Et(r,e,6048e5,"week"):e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function Kl(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Ml(r):Ul(r)}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}var jr=Te(oe("node:process"),1),la=Te(oe("node:os"),1),as=Te(oe("node:tty"),1);function Ue(r,e=globalThis.Deno?globalThis.Deno.args:jr.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),o=e.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:z}=jr.default,Qr;Ue("no-color")||Ue("no-colors")||Ue("color=false")||Ue("color=never")?Qr=0:(Ue("color")||Ue("colors")||Ue("color=true")||Ue("color=always"))&&(Qr=1);function Hl(){if(!("FORCE_COLOR"in z))return;if(z.FORCE_COLOR==="true")return 1;if(z.FORCE_COLOR==="false")return 0;if(z.FORCE_COLOR.length===0)return 1;let r=Math.min(Number.parseInt(z.FORCE_COLOR,10),3);if([0,1,2,3].includes(r))return r}function Vl(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function $l(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Hl();n!==void 0&&(Qr=n);let o=t?Qr:n;if(o===0)return 0;if(t){if(Ue("color=16m")||Ue("color=full")||Ue("color=truecolor"))return 3;if(Ue("color=256"))return 2}if("TF_BUILD"in z&&"AGENT_NAME"in z)return 1;if(r&&!e&&o===void 0)return 0;let s=o||0;if(z.TERM==="dumb")return s;if(jr.default.platform==="win32"){let i=la.default.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in z)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in z)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in z)||z.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in z)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(z.TEAMCITY_VERSION)?1:0;if(z.COLORTERM==="truecolor"||z.TERM==="xterm-kitty"||z.TERM==="xterm-ghostty"||z.TERM==="wezterm")return 3;if("TERM_PROGRAM"in z){let i=Number.parseInt((z.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(z.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(z.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(z.TERM)||"COLORTERM"in z?1:s}function ua(r,e={}){let t=$l(r,{streamIsTTY:r&&r.isTTY,...e});return Vl(t)}var Gl={stdout:ua({isTTY:as.default.isatty(1)}),stderr:ua({isTTY:as.default.isatty(2)})},Jr=Gl;function cs(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Xr,t.destroy=l,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let f=0;for(let p=0;p<u.length;p++)f=(f<<5)-f+u.charCodeAt(p),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u,f){let p,d=null,g,w;function b(...E){if(!b.enabled)return;let C=b,P=Number(new Date),N=P-(p||P);C.diff=N,C.prev=p,C.curr=P,p=P,E[0]=t.coerce(E[0]),typeof E[0]!="string"&&E.unshift("%O");let V=0;E[0]=E[0].replace(/%([a-zA-Z%])/g,(X,le)=>{if(X==="%%")return"%";V++;let ie=t.formatters[le];if(typeof ie=="function"){let _=E[V];X=ie.call(C,_),E.splice(V,1),V--}return X}),t.formatArgs.call(C,E),f?.onLog!=null?f.onLog(...E):(C.log||t.log).apply(C,E)}return b.namespace=u,b.useColors=t.useColors(),b.color=t.selectColor(u),b.extend=n,b.destroy=t.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(g!==t.namespaces&&(g=t.namespaces,w=t.enabled(u)),w),set:E=>{d=E}}),typeof t.init=="function"&&t.init(b),b}function n(u,f){let p=t(this.namespace+(typeof f>"u"?":":f)+u);return p.log=this.log,p}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,p=(typeof u=="string"?u:"").split(/[\s,]+/),d=p.length;for(f=0;f<d;f++)p[f]&&(u=p[f].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let f,p;for(f=0,p=t.skips.length;f<p;f++)if(t.skips[f].test(u))return!1;for(f=0,p=t.names.length;f<p;f++)if(t.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack??u.message:u}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var da=[6,2,3,4,5,1];Jr.stderr!==!1&&(Jr.stderr??Jr).level>=2&&(da=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]);var Ht=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function Fl(){return"colors"in Ht?!!Ht.colors:fa.default.isatty(process.stderr.fd)}function zl(r){let{namespace:e,useColors:t}=this;if(t===!0){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
|
|
2
|
+
"use strict";var Libp2PDaemonServer=(()=>{var Iu=Object.create;var Nr=Object.defineProperty;var Au=Object.getOwnPropertyDescriptor;var Lu=Object.getOwnPropertyNames;var Tu=Object.getPrototypeOf,Du=Object.prototype.hasOwnProperty;var oe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Le=(r,e)=>{for(var t in e)Nr(r,t,{get:e[t],enumerable:!0})},Mi=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Lu(e))!Du.call(r,o)&&o!==t&&Nr(r,o,{get:()=>e[o],enumerable:!(n=Au(e,o))||n.enumerable});return r};var Te=(r,e,t)=>(t=r!=null?Iu(Tu(r)):{},Mi(e||!r||!r.__esModule?Nr(t,"default",{value:r,enumerable:!0}):t,r)),Cu=r=>Mi(Nr({},"__esModule",{value:!0}),r);var uh={};Le(uh,{Server:()=>Eo,createServer:()=>ch});var xo=oe("node:buffer");function ht(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Ye(r=0){return ht(xo.Buffer.alloc(r))}function Se(r=0){return ht(xo.Buffer.allocUnsafe(r))}var Ou=Math.pow(2,7),_u=Math.pow(2,14),Bu=Math.pow(2,21),wo=Math.pow(2,28),vo=Math.pow(2,35),So=Math.pow(2,42),Io=Math.pow(2,49),k=128,me=127;function ae(r){if(r<Ou)return 1;if(r<_u)return 2;if(r<Bu)return 3;if(r<wo)return 4;if(r<vo)return 5;if(r<So)return 6;if(r<Io)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Bt(r,e,t=0){switch(ae(r)){case 8:e[t++]=r&255|k,r/=128;case 7:e[t++]=r&255|k,r/=128;case 6:e[t++]=r&255|k,r/=128;case 5:e[t++]=r&255|k,r/=128;case 4:e[t++]=r&255|k,r>>>=7;case 3:e[t++]=r&255|k,r>>>=7;case 2:e[t++]=r&255|k,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Pu(r,e,t=0){switch(ae(r)){case 8:e.set(t++,r&255|k),r/=128;case 7:e.set(t++,r&255|k),r/=128;case 6:e.set(t++,r&255|k),r/=128;case 5:e.set(t++,r&255|k),r/=128;case 4:e.set(t++,r&255|k),r>>>=7;case 3:e.set(t++,r&255|k),r>>>=7;case 2:e.set(t++,r&255|k),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Ao(r,e){let t=r[e],n=0;if(n+=t&me,t<k||(t=r[e+1],n+=(t&me)<<7,t<k)||(t=r[e+2],n+=(t&me)<<14,t<k)||(t=r[e+3],n+=(t&me)<<21,t<k)||(t=r[e+4],n+=(t&me)*wo,t<k)||(t=r[e+5],n+=(t&me)*vo,t<k)||(t=r[e+6],n+=(t&me)*So,t<k)||(t=r[e+7],n+=(t&me)*Io,t<k))return n;throw new RangeError("Could not decode varint")}function Nu(r,e){let t=r.get(e),n=0;if(n+=t&me,t<k||(t=r.get(e+1),n+=(t&me)<<7,t<k)||(t=r.get(e+2),n+=(t&me)<<14,t<k)||(t=r.get(e+3),n+=(t&me)<<21,t<k)||(t=r.get(e+4),n+=(t&me)*wo,t<k)||(t=r.get(e+5),n+=(t&me)*vo,t<k)||(t=r.get(e+6),n+=(t&me)*So,t<k)||(t=r.get(e+7),n+=(t&me)*Io,t<k))return n;throw new RangeError("Could not decode varint")}function Rr(r,e,t=0){return e==null&&(e=Se(ae(r))),e instanceof Uint8Array?Bt(r,e,t):Pu(r,e,t)}function pt(r,e=0){return r instanceof Uint8Array?Ao(r,e):Nu(r,e)}var Lo=new Float32Array([-0]),nt=new Uint8Array(Lo.buffer);function Ki(r,e,t){Lo[0]=r,e[t]=nt[0],e[t+1]=nt[1],e[t+2]=nt[2],e[t+3]=nt[3]}function Hi(r,e){return nt[0]=r[e],nt[1]=r[e+1],nt[2]=r[e+2],nt[3]=r[e+3],Lo[0]}var To=new Float64Array([-0]),be=new Uint8Array(To.buffer);function Vi(r,e,t){To[0]=r,e[t]=be[0],e[t+1]=be[1],e[t+2]=be[2],e[t+3]=be[3],e[t+4]=be[4],e[t+5]=be[5],e[t+6]=be[6],e[t+7]=be[7]}function $i(r,e){return be[0]=r[e],be[1]=r[e+1],be[2]=r[e+2],be[3]=r[e+3],be[4]=r[e+4],be[5]=r[e+5],be[6]=r[e+6],be[7]=r[e+7],To[0]}var Ru=BigInt(Number.MAX_SAFE_INTEGER),ku=BigInt(Number.MIN_SAFE_INTEGER),De=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return mt;if(e<Ru&&e>ku)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Gi&&(o=0n,++n>Gi&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return mt;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):mt}},mt=new De(0,0);mt.toBigInt=function(){return 0n};mt.zzEncode=mt.zzDecode=function(){return this};mt.length=function(){return 1};var Gi=4294967296n;function Fi(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function zi(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&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 Do(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function Ue(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ur(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Co=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Ue(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ue(this,4);return Ur(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ue(this,4);return Ur(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ue(this,4);let e=Hi(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ue(this,4);let e=$i(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Ue(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return zi(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ue(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ue(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new De(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Ue(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Ue(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ue(this,8);let e=Ur(this.buf,this.pos+=4),t=Ur(this.buf,this.pos+=4);return new De(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Ao(this.buf,this.pos);return this.pos+=ae(e),e}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 Oo(r){return new Co(r instanceof Uint8Array?r:r.subarray())}function W(r,e,t){let n=Oo(r);return e.decode(n,void 0,t)}var ha=oe("node:buffer");var Ro={};Le(Ro,{base10:()=>Gu});var Sh=new Uint8Array(0);function qi(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Pe(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 Yi(r){return new TextEncoder().encode(r)}function Zi(r){return new TextDecoder().decode(r)}function Uu(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[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 l(b){if(b instanceof Uint8Array||(ArrayBuffer.isView(b)?b=new Uint8Array(b.buffer,b.byteOffset,b.byteLength):Array.isArray(b)&&(b=Uint8Array.from(b))),!(b instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(b.length===0)return"";for(var x=0,y=0,w=0,O=b.length;w!==O&&b[w]===0;)w++,x++;for(var P=(O-w)*u+1>>>0,R=new Uint8Array(P);w!==O;){for(var V=b[w],ie=0,re=P-1;(V!==0||ie<y)&&re!==-1;re--,ie++)V+=256*R[re]>>>0,R[re]=V%a>>>0,V=V/a>>>0;if(V!==0)throw new Error("Non-zero carry");y=ie,w++}for(var le=P-y;le!==P&&R[le]===0;)le++;for(var C=c.repeat(x);le<P;++le)C+=r.charAt(R[le]);return C}function h(b){if(typeof b!="string")throw new TypeError("Expected String");if(b.length===0)return new Uint8Array;var x=0;if(b[x]!==" "){for(var y=0,w=0;b[x]===c;)y++,x++;for(var O=(b.length-x)*f+1>>>0,P=new Uint8Array(O);b[x];){var R=t[b.charCodeAt(x)];if(R===255)return;for(var V=0,ie=O-1;(R!==0||V<w)&&ie!==-1;ie--,V++)R+=a*P[ie]>>>0,P[ie]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");w=V,x++}if(b[x]!==" "){for(var re=O-w;re!==O&&P[re]===0;)re++;for(var le=new Uint8Array(y+(O-re)),C=y;re!==O;)le[C++]=P[re++];return le}}}function d(b){var x=h(b);if(x)return x;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:h,decode:d}}var Mu=Uu,Ku=Mu,Xi=Ku;var _o=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Bo=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Qi(this,e)}},Po=class{decoders;constructor(e){this.decoders=e}or(e){return Qi(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Qi(r,e){return new Po({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var No=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new _o(e,t,n),this.decoder=new Bo(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Pt({name:r,prefix:e,encode:t,decode:n}){return new No(r,e,t,n)}function ot({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Xi(t,r);return Pt({prefix:e,name:r,encode:n,decode:s=>Pe(o(s))})}function Hu(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=e[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function Vu(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function $u(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function Q({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=$u(n);return Pt({prefix:e,name:r,encode(s){return Vu(s,n,t)},decode(s){return Hu(s,o,t,r)}})}var Gu=ot({prefix:"9",name:"base10",alphabet:"0123456789"});var ko={};Le(ko,{base16:()=>Fu,base16upper:()=>zu});var Fu=Q({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),zu=Q({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Uo={};Le(Uo,{base2:()=>Wu});var Wu=Q({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Mo={};Le(Mo,{base256emoji:()=>Xu});var Ji=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}"),qu=Ji.reduce((r,e,t)=>(r[t]=e,r),[]),Yu=Ji.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Zu(r){return r.reduce((e,t)=>(e+=qu[t],e),"")}function ju(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Yu[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Xu=Pt({prefix:"\u{1F680}",name:"base256emoji",encode:Zu,decode:ju});var Ko={};Le(Ko,{base32:()=>Fe,base32hex:()=>tl,base32hexpad:()=>nl,base32hexpadupper:()=>ol,base32hexupper:()=>rl,base32pad:()=>Ju,base32padupper:()=>el,base32upper:()=>Qu,base32z:()=>sl});var Fe=Q({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Qu=Q({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ju=Q({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),el=Q({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),tl=Q({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),rl=Q({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),nl=Q({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ol=Q({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),sl=Q({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ho={};Le(Ho,{base36:()=>or,base36upper:()=>il});var or=ot({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),il=ot({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Vo={};Le(Vo,{base58btc:()=>J,base58flickr:()=>al});var J=ot({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),al=ot({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Fo={};Le(Fo,{base64:()=>$o,base64pad:()=>cl,base64url:()=>Go,base64urlpad:()=>ul});var $o=Q({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),cl=Q({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Go=Q({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ul=Q({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var zo={};Le(zo,{base8:()=>ll});var ll=Q({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Wo={};Le(Wo,{identity:()=>fl});var fl=Pt({prefix:"\0",name:"identity",encode:r=>Zi(r),decode:r=>Yi(r)});var Kh=new TextEncoder,Hh=new TextDecoder;var Yo={};Le(Yo,{identity:()=>Me});var pl=ra,ea=128,ml=127,bl=~ml,yl=Math.pow(2,31);function ra(r,e,t){e=e||[],t=t||0;for(var n=t;r>=yl;)e[t++]=r&255|ea,r/=128;for(;r&bl;)e[t++]=r&255|ea,r>>>=7;return e[t]=r|0,ra.bytes=t-n+1,e}var gl=qo,El=128,ta=127;function qo(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw qo.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&ta)<<o:(i&ta)*Math.pow(2,o),o+=7}while(i>=El);return qo.bytes=s-n,t}var xl=Math.pow(2,7),wl=Math.pow(2,14),vl=Math.pow(2,21),Sl=Math.pow(2,28),Il=Math.pow(2,35),Al=Math.pow(2,42),Ll=Math.pow(2,49),Tl=Math.pow(2,56),Dl=Math.pow(2,63),Cl=function(r){return r<xl?1:r<wl?2:r<vl?3:r<Sl?4:r<Il?5:r<Al?6:r<Ll?7:r<Tl?8:r<Dl?9:10},Ol={encode:pl,decode:gl,encodingLength:Cl},_l=Ol,sr=_l;function ir(r,e=0){return[sr.decode(r,e),sr.decode.bytes]}function Nt(r,e,t=0){return sr.encode(r,e,t),e}function Rt(r){return sr.encodingLength(r)}function Ut(r,e){let t=e.byteLength,n=Rt(r),o=n+Rt(t),s=new Uint8Array(o+t);return Nt(r,s,0),Nt(t,s,n),s.set(e,o),new kt(r,t,e,s)}function Ze(r){let e=Pe(r),[t,n]=ir(e),[o,s]=ir(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new kt(t,o,i,e)}function na(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&qi(r.bytes,t.bytes)}}var kt=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var oa=0,Bl="identity",sa=Pe;function Pl(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Ut(oa,sa(r))}var Me={code:oa,name:Bl,encode:sa,digest:Pl};var Jo={};Le(Jo,{sha256:()=>Qo,sha512:()=>Rl});var Xo=Te(oe("crypto"),1);var Nl=20;function jo({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new Zo(r,e,t,n,o)}var Zo=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??Nl,this.maxDigestLength=s}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?ia(n,this.code,t?.truncate):n.then(o=>ia(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function ia(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Ut(e,r)}var Qo=jo({name:"sha2-256",code:18,encode:r=>Pe(Xo.default.createHash("sha256").update(r).digest())}),Rl=jo({name:"sha2-512",code:19,encode:r=>Pe(Xo.default.createHash("sha512").update(r).digest())});function ca(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Ul(t,es(r),e??J.encoder);default:return Ml(t,es(r),e??Fe.encoder)}}var ua=new WeakMap;function es(r){let e=ua.get(r);if(e==null){let t=new Map;return ua.set(r,t),t}return e}var se=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,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:e,multihash:t}=this;if(e!==ar)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Kl)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}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:e,digest:t}=this.multihash,n=Ut(e,t);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(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&na(e.multihash,n.multihash)}toString(e){return ca(this,e)}toJSON(){return{"/":ca(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??la(n,o,s.bytes))}else if(t[Hl]===!0){let{version:n,multihash:o,code:s}=t,i=Ze(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==ar)throw new Error(`Version 0 CID must use dag-pb (code: ${ar}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=la(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,ar,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Pe(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new kt(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,h]=ir(e.subarray(t));return t+=h,l},o=n(),s=ar;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),f=t+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(e,t){let[n,o]=kl(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return es(s).set(n,e),s}};function kl(r,e){switch(r[0]){case"Q":{let t=e??J;return[J.prefix,t.decode(`${J.prefix}${r}`)]}case J.prefix:{let t=e??J;return[J.prefix,t.decode(r)]}case Fe.prefix:{let t=e??Fe;return[Fe.prefix,t.decode(r)]}case or.prefix:{let t=e??or;return[or.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function Ul(r,e,t){let{prefix:n}=t;if(n!==J.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function Ml(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var ar=112,Kl=18;function la(r,e,t){let n=Rt(r),o=n+Rt(e),s=new Uint8Array(o+t.byteLength);return Nt(r,s,0),Nt(e,s,n),s.set(t,o),s}var Hl=Symbol.for("@ipld/js-cid/CID");var cr={...Wo,...Uo,...zo,...Ro,...ko,...Ko,...Ho,...Vo,...Fo,...Mo},up={...Jo,...Yo};function da(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var fa=da("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),ts=da("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Se(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Vl={utf8:fa,"utf-8":fa,hex:cr.base16,latin1:ts,ascii:ts,binary:ts,...cr},Kr=Vl;function ye(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?ht(ha.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function rs(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Se(i);o+i>e&&(n=Se(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var yt=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function ns(){}var ss=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},$l=rs();function Gl(r){return globalThis.Buffer!=null?Se(r):$l(r)}var lr=class{len;head;tail;states;constructor(){this.len=0,this.head=new yt(ns,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new yt(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new is((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Hr,10,De.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=De.fromBigInt(e);return this._push(Hr,t.length(),t)}uint64Number(e){return this._push(Bt,ae(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=De.fromBigInt(e).zzEncode();return this._push(Hr,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Hr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(os,1,e?1:0)}fixed32(e){return this._push(ur,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(ur,4,t.lo)._push(ur,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(ur,4,t.lo)._push(ur,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Ki,4,e)}double(e){return this._push(Vi,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(os,1,0):this.uint32(t)._push(zl,t,e)}string(e){let t=Fi(e);return t!==0?this.uint32(t)._push(Do,t,e):this._push(os,1,0)}fork(){return this.states=new ss(this),this.head=this.tail=new yt(ns,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 yt(ns,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=Gl(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function os(r,e,t){e[t]=r&255}function Fl(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var is=class extends yt{next;constructor(e,t){super(Fl,e,t),this.next=void 0}};function Hr(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function ur(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function zl(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(lr.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Wl,e,r),this},lr.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(ql,e,r),this});function Wl(r,e,t){e.set(r,t)}function ql(r,e,t){r.length<40?Do(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(ye(r),t)}function as(){return new lr}function q(r,e){let t=as();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Mt;(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"})(Mt||(Mt={}));function Vr(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function Ke(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return Vr("enum",Mt.VARINT,t,n)}function Y(r,e){return Vr("message",Mt.LENGTH_DELIMITED,r,e)}var Ne;(function(r){let e;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.connect!=null&&(s.uint32(18),Gr.codec().encode(o.connect,s)),o.streamOpen!=null&&(s.uint32(26),Fr.codec().encode(o.streamOpen,s)),o.streamHandler!=null&&(s.uint32(34),zr.codec().encode(o.streamHandler,s)),o.dht!=null&&(s.uint32(42),Re.codec().encode(o.dht,s)),o.connManager!=null&&(s.uint32(50),qr.codec().encode(o.connManager,s)),o.disconnect!=null&&(s.uint32(58),Yr.codec().encode(o.disconnect,s)),o.pubsub!=null&&(s.uint32(66),je.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(74),gt.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.connect=Gr.codec().decode(o,o.uint32());break;case 3:i.streamOpen=Fr.codec().decode(o,o.uint32());break;case 4:i.streamHandler=zr.codec().decode(o,o.uint32());break;case 5:i.dht=Re.codec().decode(o,o.uint32());break;case 6:i.connManager=qr.codec().decode(o,o.uint32());break;case 7:i.disconnect=Yr.codec().decode(o,o.uint32());break;case 8:i.pubsub=je.codec().decode(o,o.uint32());break;case 9:i.peerStore=gt.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Ne||(Ne={}));var ee;(function(r){let e;(function(o){o.OK="OK",o.ERROR="ERROR"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.error!=null&&(s.uint32(18),Wr.codec().encode(o.error,s)),o.streamInfo!=null&&(s.uint32(26),Kt.codec().encode(o.streamInfo,s)),o.identify!=null&&(s.uint32(34),$r.codec().encode(o.identify,s)),o.dht!=null&&(s.uint32(42),de.codec().encode(o.dht,s)),o.peers!=null)for(let a of o.peers)s.uint32(50),st.codec().encode(a,s);o.pubsub!=null&&(s.uint32(58),Zr.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(66),jr.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={peers:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.error=Wr.codec().decode(o,o.uint32());break;case 3:i.streamInfo=Kt.codec().decode(o,o.uint32());break;case 4:i.identify=$r.codec().decode(o,o.uint32());break;case 5:i.dht=de.codec().decode(o,o.uint32());break;case 6:i.peers.push(st.codec().decode(o,o.uint32()));break;case 7:i.pubsub=Zr.codec().decode(o,o.uint32());break;case 8:i.peerStore=jr.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ee||(ee={}));var $r;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})($r||($r={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addrs.push(t.bytes());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Gr||(Gr={}));var Fr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.proto.push(t.string());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Fr||(Fr={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(10),n.bytes(t.addr)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={addr:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.addr=t.bytes();break;case 2:o.proto.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(zr||(zr={}));var Wr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.msg!=null&&t.msg!==""&&(n.uint32(10),n.string(t.msg)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={msg:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.msg=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Wr||(Wr={}));var Kt;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(18),n.bytes(t.addr)),t.proto!=null&&t.proto!==""&&(n.uint32(26),n.string(t.proto)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addr=t.bytes();break;case 3:o.proto=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Kt||(Kt={}));var Re;(function(r){let e;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.cid!=null&&(s.uint32(26),s.bytes(o.cid)),o.key!=null&&(s.uint32(34),s.bytes(o.key)),o.value!=null&&(s.uint32(42),s.bytes(o.value)),o.count!=null&&(s.uint32(48),s.int32(o.count)),o.timeout!=null&&(s.uint32(56),s.int64(o.timeout)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.cid=o.bytes();break;case 4:i.key=o.bytes();break;case 5:i.value=o.bytes();break;case 6:i.count=o.int32();break;case 7:i.timeout=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Re||(Re={}));var de;(function(r){let e;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),st.codec().encode(o.peer,s)),o.value!=null&&(s.uint32(26),s.bytes(o.value)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=st.codec().decode(o,o.uint32());break;case 3:i.value=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(de||(de={}));var st;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(st||(st={}));var qr;(function(r){let e;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.tag!=null&&(s.uint32(26),s.string(o.tag)),o.weight!=null&&(s.uint32(32),s.int64(o.weight)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.tag=o.string();break;case 4:i.weight=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(qr||(qr={}));var Yr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Yr||(Yr={}));var je;(function(r){let e;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.topic!=null&&(s.uint32(18),s.string(o.topic)),o.data!=null&&(s.uint32(26),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.topic=o.string();break;case 3:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(je||(je={}));var fr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.from!=null&&(n.uint32(10),n.bytes(t.from)),t.data!=null&&(n.uint32(18),n.bytes(t.data)),t.seqno!=null&&(n.uint32(26),n.bytes(t.seqno)),t.topicIDs!=null)for(let s of t.topicIDs)n.uint32(34),n.string(s);t.signature!=null&&(n.uint32(42),n.bytes(t.signature)),t.key!=null&&(n.uint32(50),n.bytes(t.key)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topicIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.from=t.bytes();break;case 2:o.data=t.bytes();break;case 3:o.seqno=t.bytes();break;case 4:o.topicIDs.push(t.string());break;case 5:o.signature=t.bytes();break;case 6:o.key=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(fr||(fr={}));var Zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.topics!=null)for(let s of t.topics)n.uint32(10),n.string(s);if(t.peerIDs!=null)for(let s of t.peerIDs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topics:[],peerIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.topics.push(t.string());break;case 2:o.peerIDs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Zr||(Zr={}));var gt;(function(r){let e;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(t||(t={})),(function(o){o.codec=()=>Ke(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.id!=null&&(s.uint32(18),s.bytes(o.id)),o.protos!=null)for(let a of o.protos)s.uint32(26),s.string(a);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={protos:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.id=o.bytes();break;case 3:i.protos.push(o.string());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(gt||(gt={}));var jr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&(n.uint32(10),st.codec().encode(t.peer,n)),t.protos!=null)for(let s of t.protos)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={protos:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=st.codec().decode(t,t.uint32());break;case 2:o.protos.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(jr||(jr={}));function pa(r){let e=new globalThis.AbortController;function t(){e.abort();for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var dr=class{onConnection;constructor(e){this.onConnection=e}async upgradeInbound(e){this.onConnection?.(e)}async upgradeOutbound(e){return e}createInboundAbortSignal(e){return pa([e])}getStreamMuxers(){return new Map}getConnectionEncrypters(){return new Map}};var ya=Te(oe("node:tty"),1),tn=Te(oe("node:util"),1);function Yl(r,e){if(typeof r=="string")return Zl(r);if(typeof r=="number")return Ql(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var Xr=Yl;function Zl(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,o=parseFloat(t),s=n.toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return o*315576e5;case"months":case"month":case"mo":return o*26298e5;case"weeks":case"week":case"w":return o*6048e5;case"days":case"day":case"d":return o*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return o*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return o*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return o*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:throw Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function jl(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Xl(r){let e=Math.abs(r);return e>=315576e5?Et(r,e,315576e5,"year"):e>=26298e5?Et(r,e,26298e5,"month"):e>=6048e5?Et(r,e,6048e5,"week"):e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function Ql(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Xl(r):jl(r)}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}var Jr=Te(oe("node:process"),1),ba=Te(oe("node:os"),1),cs=Te(oe("node:tty"),1);function ke(r,e=globalThis.Deno?globalThis.Deno.args:Jr.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),o=e.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:z}=Jr.default,Qr;ke("no-color")||ke("no-colors")||ke("color=false")||ke("color=never")?Qr=0:(ke("color")||ke("colors")||ke("color=true")||ke("color=always"))&&(Qr=1);function Jl(){if(!("FORCE_COLOR"in z))return;if(z.FORCE_COLOR==="true")return 1;if(z.FORCE_COLOR==="false")return 0;if(z.FORCE_COLOR.length===0)return 1;let r=Math.min(Number.parseInt(z.FORCE_COLOR,10),3);if([0,1,2,3].includes(r))return r}function ef(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function tf(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Jl();n!==void 0&&(Qr=n);let o=t?Qr:n;if(o===0)return 0;if(t){if(ke("color=16m")||ke("color=full")||ke("color=truecolor"))return 3;if(ke("color=256"))return 2}if("TF_BUILD"in z&&"AGENT_NAME"in z)return 1;if(r&&!e&&o===void 0)return 0;let s=o||0;if(z.TERM==="dumb")return s;if(Jr.default.platform==="win32"){let i=ba.default.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in z)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in z)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in z)||z.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in z)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(z.TEAMCITY_VERSION)?1:0;if(z.COLORTERM==="truecolor"||z.TERM==="xterm-kitty"||z.TERM==="xterm-ghostty"||z.TERM==="wezterm")return 3;if("TERM_PROGRAM"in z){let i=Number.parseInt((z.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(z.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(z.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(z.TERM)||"COLORTERM"in z?1:s}function ma(r,e={}){let t=tf(r,{streamIsTTY:r&&r.isTTY,...e});return ef(t)}var rf={stdout:ma({isTTY:cs.default.isatty(1)}),stderr:ma({isTTY:cs.default.isatty(2)})},en=rf;function us(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Xr,t.destroy=f,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let l=0;for(let h=0;h<u.length;h++)l=(l<<5)-l+u.charCodeAt(h),l|=0;return t.colors[Math.abs(l)%t.colors.length]}t.selectColor=e;function t(u,l){let h,d=null,b,x;function y(...w){if(!y.enabled)return;let O=y,P=Number(new Date),R=P-(h||P);O.diff=R,O.prev=h,O.curr=P,h=P,w[0]=t.coerce(w[0]),typeof w[0]!="string"&&w.unshift("%O");let V=0;w[0]=w[0].replace(/%([a-zA-Z%])/g,(re,le)=>{if(re==="%%")return"%";V++;let C=t.formatters[le];if(typeof C=="function"){let _t=w[V];re=C.call(O,_t),w.splice(V,1),V--}return re}),t.formatArgs.call(O,w),l?.onLog!=null&&l.onLog(...w),(O.log||t.log).apply(O,w)}return y.namespace=u,y.useColors=t.useColors(),y.color=t.selectColor(u),y.extend=n,y.destroy=t.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(b!==t.namespaces&&(b=t.namespaces,x=t.enabled(u)),x),set:w=>{d=w}}),typeof t.init=="function"&&t.init(y),y}function n(u,l){let h=t(this.namespace+(typeof l>"u"?":":l)+u);return h.log=this.log,h}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let l,h=(typeof u=="string"?u:"").split(/[\s,]+/),d=h.length;for(l=0;l<d;l++)h[l]&&(u=h[l].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(l=>"-"+l)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let l,h;for(l=0,h=t.skips.length;l<h;l++)if(t.skips[l].test(u))return!1;for(l=0,h=t.names.length;l<h;l++)if(t.names[l].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack??u.message:u}function f(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return t.setupFormatters(t.formatters),t.enable(t.load()),t}var ga=[6,2,3,4,5,1];en.stderr!==!1&&(en.stderr??en).level>=2&&(ga=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]);var Ht=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function nf(){return"colors"in Ht?!!Ht.colors:ya.default.isatty(process.stderr.fd)}function of(r){let{namespace:e,useColors:t}=this;if(t===!0){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
|
|
3
3
|
`).join(`
|
|
4
|
-
`+s),r.push(o+"m+"+Xr(this.diff)+"\x1B[0m")}else r[0]=
|
|
5
|
-
`)}function
|
|
6
|
-
`).map(t=>t.trim()).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,
|
|
7
|
-
${t}`:t??e??r.toString()}function jl(r){return r?.name==="AggregateError"}Ie.formatters.e=r=>{if(r==null)return"undefined";if(jl(r)){let e=" ",t=us(r);return r.errors.length>0?t+=`
|
|
8
|
-
${e}${r.errors.map(n=>` ${us(n).split(`
|
|
4
|
+
`+s),r.push(o+"m+"+Xr(this.diff)+"\x1B[0m")}else r[0]=sf()+e+" "+r[0]}function sf(){return Ht.hideDate!=null?"":new Date().toISOString()+" "}function af(...r){return process.stderr.write(tn.default.format(...r)+`
|
|
5
|
+
`)}function cf(r){r!=null?process.env.DEBUG=r:delete process.env.DEBUG}function uf(){return process.env.DEBUG}function lf(r){r.inspectOpts={};let e=Object.keys(Ht);for(let t=0;t<e.length;t++)r.inspectOpts[e[t]]=Ht[e[t]]}function ff(r){r.o=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts).split(`
|
|
6
|
+
`).map(t=>t.trim()).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts)}}var Ea=us({init:lf,log:af,formatArgs:of,save:cf,load:uf,useColors:nf,setupFormatters:ff,colors:ga,inspectOpts:Ht});var Ie=Ea;Ie.formatters.b=r=>r==null?"undefined":J.baseEncode(r);Ie.formatters.t=r=>r==null?"undefined":Fe.baseEncode(r);Ie.formatters.m=r=>r==null?"undefined":$o.baseEncode(r);Ie.formatters.p=r=>r==null?"undefined":r.toString();Ie.formatters.c=r=>r==null?"undefined":r.toString();Ie.formatters.k=r=>r==null?"undefined":r.toString();Ie.formatters.a=r=>r==null?"undefined":r.toString();function xa(r,e=""){let t=wa(r.message),n=wa(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
|
|
9
7
|
`).join(`
|
|
10
|
-
${e}`)}
|
|
11
|
-
${e}`
|
|
12
|
-
${e}[Error list was empty]`,t.trim()}return us(r)};function Jl(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function ma(r){return{forComponent(e){return at(e,r)}}}function at(r,e){let t=Jl(`${r}:trace`);return Ie.enabled(`${r}:trace`)&&Ie.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=Ie(`${r}:trace`,e)),Object.assign(Ie(r,e),{error:Ie(`${r}:error`,e),trace:t,newScope:n=>at(`${r}:${n}`,e)})}function pa(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var tn=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Z=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},rn=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var nn=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var ct=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},dr=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var on=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Vt=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},sn=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}},an=class extends Error{static name="AlreadyStartedError";constructor(e="Already started"){super(e),this.name="AlreadyStartedError"}};var hr=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var cn=class extends Event{data;constructor(e,t){super("message",t),this.data=e}},$t=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}},un=class extends $t{constructor(e,t){super(!0,e,t)}},ln=class extends $t{constructor(e,t){super(!1,e,t)}};var ls=Symbol.for("@libp2p/peer-id");var ya=Symbol.for("@libp2p/transport");var ba;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(ba||(ba={}));var ga=oe("node:events"),fn=(r,...e)=>{try{(0,ga.setMaxListeners)(r,...e)}catch{}};var Gt=class extends EventTarget{#e=new Map;constructor(){super(),fn(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var xa=Symbol.for("@libp2p/service-capabilities"),Xp=Symbol.for("@libp2p/service-dependencies");function Ce(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var Ea=oe("node:buffer");function We(r,e){return pt(Ea.Buffer.concat(r,e))}var va=Symbol.for("@achingbrain/uint8arraylist");function wa(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function dn(r){return!!r?.[va]}var H=class r{bufs;length;[va]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(dn(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(dn(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=wa(this.bufs,e);return t.buf[t.index]}set(e,t){let n=wa(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(dn(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return We(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:We(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===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,e>=c)continue;let l=e>=a&&e<c,u=t>a&&t<=c;if(l&&u){if(e===a&&t===c){n.push(i);break}let f=e-a;n.push(i.subarray(f,f+(t-e)));break}if(l){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(u){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!dn(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;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 f=0;f<s;f++)i[f]=-1;for(let f=0;f<o;f++)i[n[f]]=f;let a=i,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=t;f<=c;f+=u){u=0;for(let p=l;p>=0;p--){let d=this.get(f+p);if(n[p]!==d){u=Math.max(1,p-a[d]);break}}if(u===0)return f}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Ce(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var Sa=oe("node:buffer");function re(r,e="utf8"){let t=Mr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?Sa.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}var ef=parseInt("11111",2),fs=parseInt("10000000",2),tf=parseInt("01111111",2),Ia={0:pr,1:pr,2:rf,3:sf,4:af,5:of,6:nf,16:pr,22:pr,48:pr};function ds(r,e={offset:0}){let t=r[e.offset]&ef;if(e.offset++,Ia[t]!=null)return Ia[t](r,e);throw new Error("No decoder for tag "+t)}function mr(r,e){let t=0;if((r[e.offset]&fs)===fs){let n=r[e.offset]&tf,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(o,16)}else t=r[e.offset],e.offset++;return t}function pr(r,e){mr(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=ds(r,e);if(n===null)break;t.push(n)}return t}function rf(r,e){let t=mr(r,e),n=e.offset,o=e.offset+t,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return e.offset+=t,Uint8Array.from(s)}function nf(r,e){let t=mr(r,e),n=e.offset+t,o=r[e.offset];e.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(;e.offset<n;){let l=r[e.offset];if(e.offset++,c.push(l&127),l<128){c.reverse();let u=0;for(let f=0;f<c.length;f++)u+=c[f]<<f*7;a+=`.${u}`,c=[]}}return a}function of(r,e){return e.offset++,null}function sf(r,e){let t=mr(r,e),n=r[e.offset];e.offset++;let o=r.subarray(e.offset,e.offset+t-1);if(e.offset+=t,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function af(r,e){let t=mr(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function cf(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new H;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function hs(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=cf(r.byteLength);return new H(Uint8Array.from([e.byteLength|fs]),e)}function Aa(r){let e=new H,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new H(Uint8Array.from([2]),hs(e),e)}function La(r){let e=Uint8Array.from([0]),t=new H(e,r);return new H(Uint8Array.from([3]),hs(t),t)}function hn(r,e=48){let t=new H;for(let n of r)t.append(n);return new H(Uint8Array.from([e]),hs(t),t)}async function Ta(r,e,t,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,e,t.subarray());return n?.signal?.throwIfAborted(),s}var uf=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),lf=Uint8Array.from([6,5,43,129,4,0,34]),ff=Uint8Array.from([6,5,43,129,4,0,35]),df={ext:!0,kty:"EC",crv:"P-256"},hf={ext:!0,kty:"EC",crv:"P-384"},pf={ext:!0,kty:"EC",crv:"P-521"},ps=32,ms=48,bs=66;function Da(r){let e=ds(r);return Ca(e)}function Ca(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===ps*2+1)return n=re(e.subarray(t,t+ps),"base64url"),o=re(e.subarray(t+ps),"base64url"),new Ft({...df,key_ops:["verify"],x:n,y:o});if(e.byteLength===ms*2+1)return n=re(e.subarray(t,t+ms),"base64url"),o=re(e.subarray(t+ms),"base64url"),new Ft({...hf,key_ops:["verify"],x:n,y:o});if(e.byteLength===bs*2+1)return n=re(e.subarray(t,t+bs),"base64url"),o=re(e.subarray(t+bs),"base64url"),new Ft({...pf,key_ops:["verify"],x:n,y:o});throw new Z(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function _a(r){return hn([Aa(Uint8Array.from([1])),hn([mf(r.crv)],160),hn([La(new H(Uint8Array.from([4]),ye(r.x??"","base64url"),ye(r.y??"","base64url")))],161)]).subarray()}function mf(r){if(r==="P-256")return uf;if(r==="P-384")return lf;if(r==="P-521")return ff;throw new Z(`Invalid curve ${r}`)}var Ft=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=_a(this.jwk)),this._raw}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}async verify(e,t,n){return Ta(this.jwk,t,e,n)}};var pn=Te(oe("crypto"),1);var rb=pn.default.generateKeyPairSync,br=32;var bf=64;function Ba(r,e,t){if(r.byteLength!==br)throw new TypeError('"key" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==bf)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=pn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:re(r,"base64url"),kty:"OKP"}});return pn.default.verify(null,t instanceof Uint8Array?t:t.subarray(),n,e)}function Pa(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var mn=class{type="Ed25519";raw;constructor(e){this.raw=ys(e,br)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=Ba(this.raw,t,e);return Pa(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Ra(r){return r=ys(r,br),new mn(r)}function ys(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new Z(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var _e;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(_e||(_e={}));var gs;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(gs||(gs={}));(function(r){r.codec=()=>He(gs)})(_e||(_e={}));var yr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(yr||(yr={}));var xs;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(xs||(xs={}));function gr(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function qe(r,e=""){if(!Number.isSafeInteger(r)||r<0){let t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${r}`)}}function K(r,e,t=""){let n=gr(r),o=r?.length,s=e!==void 0;if(!n||s&&o!==e){let i=t&&`"${t}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return r}function bn(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash must wrapped by utils.createHasher");qe(r.outputLen),qe(r.blockLen)}function zt(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function ka(r,e){K(r,void 0,"digestInto() output");let t=e.outputLen;if(r.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function wt(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function yn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function Ve(r,e){return r<<32-e|r>>>e}var Ua=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",xf=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function vt(r){if(K(r),Ua)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=xf[r[t]];return e}var je={_0:48,_9:57,A:65,F:70,a:97,f:102};function Na(r){if(r>=je._0&&r<=je._9)return r-je._0;if(r>=je.A&&r<=je.F)return r-(je.A-10);if(r>=je.a&&r<=je.f)return r-(je.a-10)}function St(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(Ua)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=Na(r.charCodeAt(s)),a=Na(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function $e(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];K(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Ma(r,e={}){let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function gn(r=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(r))}var Ka=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ha(r,e,t){return r&e^~r&t}function Va(r,e,t){return r&e^r&t^e&t}var xn=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,o){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=yn(this.buffer)}update(e){zt(this),K(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=yn(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){zt(this),ka(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,wt(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let f=i;f<o;f++)t[f]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=yn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let l=c/4,u=this.get();if(l>u.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<l;f++)a.setUint32(4*f,u[f],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Je=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Ef=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]),lt=new Uint32Array(64),Es=class extends xn{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let f=0;f<16;f++,t+=4)lt[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let p=lt[f-15],d=lt[f-2],g=Ve(p,7)^Ve(p,18)^p>>>3,w=Ve(d,17)^Ve(d,19)^d>>>10;lt[f]=w+lt[f-7]+g+lt[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:l,H:u}=this;for(let f=0;f<64;f++){let p=Ve(a,6)^Ve(a,11)^Ve(a,25),d=u+p+Ha(a,c,l)+Ef[f]+lt[f]|0,w=(Ve(n,2)^Ve(n,13)^Ve(n,22))+Va(n,o,s)|0;u=l,l=c,c=a,a=i+d|0,i=s,s=o,o=n,n=d+w|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,l=l+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,l,u)}roundClean(){wt(lt)}destroy(){this.set(0,0,0,0,0,0,0,0),wt(this.buffer)}},ws=class extends Es{A=Je[0]|0;B=Je[1]|0;C=Je[2]|0;D=Je[3]|0;E=Je[4]|0;F=Je[5]|0;G=Je[6]|0;H=Je[7]|0;constructor(){super(32)}};var $a=Ma(()=>new ws,Ka(1));var gc=Te(oe("node:crypto"),1);var Ss=BigInt(0),vs=BigInt(1);function xr(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}" `;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Ga(r){if(typeof r=="bigint"){if(!En(r))throw new Error("positive bigint expected, got "+r)}else qe(r);return r}function Er(r){let e=Ga(r).toString(16);return e.length&1?"0"+e:e}function Fa(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Ss:BigInt("0x"+r)}function Wt(r){return Fa(vt(r))}function Is(r){return Fa(vt(wf(K(r)).reverse()))}function wn(r,e){qe(e),r=Ga(r);let t=St(r.toString(16).padStart(e*2,"0"));if(t.length!==e)throw new Error("number too large");return t}function As(r,e){return wn(r,e).reverse()}function wf(r){return Uint8Array.from(r)}var En=r=>typeof r=="bigint"&&Ss<=r;function vf(r,e,t){return En(r)&&En(e)&&En(t)&&e<=r&&r<t}function za(r,e,t,n){if(!vf(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Ls(r){let e;for(e=0;r>Ss;r>>=vs,e+=1);return e}var wr=r=>(vs<<BigInt(r))-vs;function Wa(r,e,t){if(qe(r,"hashLen"),qe(e,"qByteLen"),typeof t!="function")throw new Error("hmacFn must be a function");let n=b=>new Uint8Array(b),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),l=n(r),u=0,f=()=>{c.fill(1),l.fill(0),u=0},p=(...b)=>t(l,$e(c,...b)),d=(b=o)=>{l=p(s,b),c=p(),b.length!==0&&(l=p(i,b),c=p())},g=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let b=0,E=[];for(;b<e;){c=p();let C=c.slice();E.push(C),b+=c.length}return $e(...E)};return(b,E)=>{f(),d(b);let C;for(;!(C=E(g()));)d();return f(),C}}function vr(r,e={},t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function n(s,i,a){let c=r[s];if(a&&c===void 0)return;let l=typeof c;if(l!==i||c===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${l}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(e,!1),o(t,!0)}function Ts(r){let e=new WeakMap;return(t,...n)=>{let o=e.get(t);if(o!==void 0)return o;let s=r(t,...n);return e.set(t,s),s}}var we=BigInt(0),ge=BigInt(1),It=BigInt(2),Za=BigInt(3),Xa=BigInt(4),Qa=BigInt(5),Sf=BigInt(7),ja=BigInt(8),If=BigInt(9),Ja=BigInt(16);function Ge(r,e){let t=r%e;return t>=we?t:e+t}function Be(r,e,t){let n=r;for(;e-- >we;)n*=n,n%=t;return n}function qa(r,e){if(r===we)throw new Error("invert: expected non-zero number");if(e<=we)throw new Error("invert: expected positive modulus, got "+e);let t=Ge(r,e),n=e,o=we,s=ge,i=ge,a=we;for(;t!==we;){let l=n/t,u=n%t,f=o-i*l,p=s-a*l;n=t,t=u,o=i,s=a,i=f,a=p}if(n!==ge)throw new Error("invert: does not exist");return Ge(o,e)}function Cs(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function ec(r,e){let t=(r.ORDER+ge)/Xa,n=r.pow(e,t);return Cs(r,n,e),n}function Af(r,e){let t=(r.ORDER-Qa)/ja,n=r.mul(e,It),o=r.pow(n,t),s=r.mul(e,o),i=r.mul(r.mul(s,It),o),a=r.mul(s,r.sub(i,r.ONE));return Cs(r,a,e),a}function Lf(r){let e=qt(r),t=tc(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+Sf)/Ja;return(a,c)=>{let l=a.pow(c,i),u=a.mul(l,n),f=a.mul(l,o),p=a.mul(l,s),d=a.eql(a.sqr(u),c),g=a.eql(a.sqr(f),c);l=a.cmov(l,u,d),u=a.cmov(p,f,g);let w=a.eql(a.sqr(u),c),b=a.cmov(l,u,w);return Cs(a,b,c),b}}function tc(r){if(r<Za)throw new Error("sqrt is not defined for small field");let e=r-ge,t=0;for(;e%It===we;)e/=It,t++;let n=It,o=qt(r);for(;Ya(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return ec;let s=o.pow(n,e),i=(e+ge)/It;return function(c,l){if(c.is0(l))return l;if(Ya(c,l)!==1)throw new Error("Cannot find square root");let u=t,f=c.mul(c.ONE,s),p=c.pow(l,e),d=c.pow(l,i);for(;!c.eql(p,c.ONE);){if(c.is0(p))return c.ZERO;let g=1,w=c.sqr(p);for(;!c.eql(w,c.ONE);)if(g++,w=c.sqr(w),g===u)throw new Error("Cannot find square root");let b=ge<<BigInt(u-g-1),E=c.pow(f,b);u=g,f=c.sqr(E),p=c.mul(p,f),d=c.mul(d,E)}return d}}function Tf(r){return r%Xa===Za?ec:r%ja===Qa?Af:r%Ja===If?Lf(r):tc(r)}var Df=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function _s(r){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},t=Df.reduce((n,o)=>(n[o]="function",n),e);return vr(r,t),r}function Cf(r,e,t){if(t<we)throw new Error("invalid exponent, negatives unsupported");if(t===we)return r.ONE;if(t===ge)return e;let n=r.ONE,o=e;for(;t>we;)t&ge&&(n=r.mul(n,o)),o=r.sqr(o),t>>=ge;return n}function vn(r,e,t=!1){let n=new Array(e.length).fill(t?r.ZERO:void 0),o=e.reduce((i,a,c)=>r.is0(a)?i:(n[c]=i,r.mul(i,a)),r.ONE),s=r.inv(o);return e.reduceRight((i,a,c)=>r.is0(a)?i:(n[c]=r.mul(i,n[c]),r.mul(i,a)),s),n}function Ya(r,e){let t=(r.ORDER-ge)/It,n=r.pow(e,t),o=r.eql(n,r.ONE),s=r.eql(n,r.ZERO),i=r.eql(n,r.neg(r.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function _f(r,e){e!==void 0&&qe(e);let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}var Ds=class{ORDER;BITS;BYTES;isLE;ZERO=we;ONE=ge;_lengths;_sqrt;_mod;constructor(e,t={}){if(e<=we)throw new Error("invalid field: expected ORDER > 0, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&(this.sqrt=t.sqrt),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=t.allowedLengths?.slice()),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=_f(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return Ge(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return we<=e&&e<this.ORDER}is0(e){return e===we}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&ge)===ge}neg(e){return Ge(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return Ge(e*e,this.ORDER)}add(e,t){return Ge(e+t,this.ORDER)}sub(e,t){return Ge(e-t,this.ORDER)}mul(e,t){return Ge(e*t,this.ORDER)}pow(e,t){return Cf(this,e,t)}div(e,t){return Ge(e*qa(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return qa(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=Tf(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?As(e,this.BYTES):wn(e,this.BYTES)}fromBytes(e,t=!1){K(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(o);l.set(e,s?0:l.length-e.length),e=l}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Is(e):Wt(e);if(a&&(c=Ge(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return vn(this,e)}cmov(e,t,n){return n?t:e}};function qt(r,e={}){return new Ds(r,e)}function rc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function Bs(r){let e=rc(r);return e+Math.ceil(e/2)}function Os(r,e,t=!1){K(r);let n=r.length,o=rc(e),s=Bs(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?Is(r):Wt(r),a=Ge(i,e-ge)+ge;return t?As(a,o):wn(a,o)}var Yt=BigInt(0),At=BigInt(1);function Sr(r,e){let t=e.negate();return r?t:e}function ks(r,e){let t=vn(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function ic(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Ps(r,e){ic(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1),o=2**r,s=wr(r),i=BigInt(r);return{windows:t,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function nc(r,e,t){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=t,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=At);let l=e*n,u=l+Math.abs(a)-1,f=a===0,p=a<0,d=e%2!==0;return{nextN:c,offset:u,isZero:f,isNeg:p,isNegF:d,offsetF:l}}var Rs=new WeakMap,ac=new WeakMap;function Ns(r){return ac.get(r)||1}function oc(r){if(r!==Yt)throw new Error("invalid wNAF")}var Sn=class{BASE;ZERO;Fn;bits;constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let o=e;for(;t>Yt;)t&At&&(n=n.add(o)),o=o.double(),t>>=At;return n}precomputeWindow(e,t){let{windows:n,windowSize:o}=Ps(t,this.bits),s=[],i=e,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let l=1;l<o;l++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Ps(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:l,isZero:u,isNeg:f,isNegF:p,offsetF:d}=nc(n,a,i);n=c,u?s=s.add(Sr(p,t[d])):o=o.add(Sr(f,t[l]))}return oc(n),{p:o,f:s}}wNAFUnsafe(e,t,n,o=this.ZERO){let s=Ps(e,this.bits);for(let i=0;i<s.windows&&n!==Yt;i++){let{nextN:a,offset:c,isZero:l,isNeg:u}=nc(n,i,s);if(n=a,!l){let f=t[c];o=o.add(u?f.negate():f)}}return oc(n),o}getPrecomputes(e,t,n){let o=Rs.get(t);return o||(o=this.precomputeWindow(t,e),e!==1&&(typeof n=="function"&&(o=n(o)),Rs.set(t,o))),o}cached(e,t,n){let o=Ns(e);return this.wNAF(o,this.getPrecomputes(o,e,n),t)}unsafe(e,t,n,o){let s=Ns(e);return s===1?this._unsafeLadder(e,t,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,o)}createCache(e,t){ic(t,this.bits),ac.set(e,t),Rs.delete(e)}hasCache(e){return Ns(e)!==1}};function cc(r,e,t,n){let o=e,s=r.ZERO,i=r.ZERO;for(;t>Yt||n>Yt;)t&At&&(s=s.add(o)),n&At&&(i=i.add(o)),o=o.double(),t>>=At,n>>=At;return{p1:s,p2:i}}function sc(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return _s(e),e}else return qt(r,{isLE:t})}function uc(r,e,t={},n){if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Yt))throw new Error(`CURVE.${c} must be positive bigint`)}let o=sc(e.p,t.Fp,n),s=sc(e.n,t.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function lc(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var In=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){if(bn(e),K(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(t.length>n?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),wt(o)}update(e){return zt(this),this.iHash.update(e),this}digestInto(e){zt(this),K(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Us=(r,e,t)=>new In(r,e).update(t).digest();Us.create=(r,e)=>new In(r,e);var fc=(r,e)=>(r+(r>=0?e:-e)/dc)/e;function Bf(r,e,t){let[[n,o],[s,i]]=e,a=fc(i*r,t),c=fc(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<et,p=u<et;f&&(l=-l),p&&(u=-u);let d=wr(Math.ceil(Ls(t)/2))+Zt;if(l<et||l>=d||u<et||u>=d)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:f,k1:l,k2neg:p,k2:u}}function Ks(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function Ms(r,e){let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return xr(t.lowS,"lowS"),xr(t.prehash,"prehash"),t.format!==void 0&&Ks(t.format),t}var Hs=class extends Error{constructor(e=""){super(e)}},ft={Err:Hs,_tlv:{encode:(r,e)=>{let{Err:t}=ft;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=Er(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?Er(o.length/2|128):"";return Er(r)+s+o+e},decode(r,e){let{Err:t}=ft,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let o=e[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(n,n+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of l)i=i<<8|u;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=ft;if(r<et)throw new e("integer: negative integers are not allowed");let t=Er(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=ft;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Wt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=ft,o=K(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:l,l:u}=n.decode(2,c);if(u.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=ft,n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},et=BigInt(0),Zt=BigInt(1),dc=BigInt(2),An=BigInt(3),Of=BigInt(4);function hc(r,e={}){let t=uc("weierstrass",r,e),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i,n:a}=s;vr(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;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 l=mc(n,o);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function f(M,y,m){let{x:h,y:x}=y.toAffine(),S=n.toBytes(h);if(xr(m,"isCompressed"),m){u();let L=!n.isOdd(x);return $e(pc(L),S)}else return $e(Uint8Array.of(4),S,n.toBytes(x))}function p(M){K(M,void 0,"Point");let{publicKey:y,publicKeyUncompressed:m}=l,h=M.length,x=M[0],S=M.subarray(1);if(h===y&&(x===2||x===3)){let L=n.fromBytes(S);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let A=w(L),v;try{v=n.sqrt(A)}catch(ne){let F=ne instanceof Error?": "+ne.message:"";throw new Error("bad point: is not on curve, sqrt error"+F)}u();let T=n.isOdd(v);return(x&1)===1!==T&&(v=n.neg(v)),{x:L,y:v}}else if(h===m&&x===4){let L=n.BYTES,A=n.fromBytes(S.subarray(0,L)),v=n.fromBytes(S.subarray(L,L*2));if(!b(A,v))throw new Error("bad point: is not on curve");return{x:A,y:v}}else throw new Error(`bad point: got length ${h}, expected compressed=${y} or uncompressed=${m}`)}let d=e.toBytes||f,g=e.fromBytes||p;function w(M){let y=n.sqr(M),m=n.mul(y,M);return n.add(n.add(m,n.mul(M,s.a)),s.b)}function b(M,y){let m=n.sqr(y),h=w(M);return n.eql(m,h)}if(!b(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let E=n.mul(n.pow(s.a,An),Of),C=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(E,C)))throw new Error("bad curve params: a or b");function P(M,y,m=!1){if(!n.isValid(y)||m&&n.is0(y))throw new Error(`bad point coordinate ${M}`);return y}function N(M){if(!(M instanceof _))throw new Error("Weierstrass Point expected")}function V(M){if(!c||!c.basises)throw new Error("no endo");return Bf(M,c.basises,o.ORDER)}let X=Ts((M,y)=>{let{X:m,Y:h,Z:x}=M;if(n.eql(x,n.ONE))return{x:m,y:h};let S=M.is0();y==null&&(y=S?n.ONE:n.inv(x));let L=n.mul(m,y),A=n.mul(h,y),v=n.mul(x,y);if(S)return{x:n.ZERO,y:n.ZERO};if(!n.eql(v,n.ONE))throw new Error("invZ was invalid");return{x:L,y:A}}),le=Ts(M=>{if(M.is0()){if(e.allowInfinityPoint&&!n.is0(M.Y))return;throw new Error("bad point: ZERO")}let{x:y,y:m}=M.toAffine();if(!n.isValid(y)||!n.isValid(m))throw new Error("bad point: x or y not field elements");if(!b(y,m))throw new Error("bad point: equation left != right");if(!M.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function ie(M,y,m,h,x){return m=new _(n.mul(m.X,M),m.Y,m.Z),y=Sr(h,y),m=Sr(x,m),y.add(m)}class _{static BASE=new _(s.Gx,s.Gy,n.ONE);static ZERO=new _(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,m,h){this.X=P("x",y),this.Y=P("y",m,!0),this.Z=P("z",h),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:m,y:h}=y||{};if(!y||!n.isValid(m)||!n.isValid(h))throw new Error("invalid affine point");if(y instanceof _)throw new Error("projective point not allowed");return n.is0(m)&&n.is0(h)?_.ZERO:new _(m,h,n.ONE)}static fromBytes(y){let m=_.fromAffine(g(K(y,void 0,"point")));return m.assertValidity(),m}static fromHex(y){return _.fromBytes(St(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,m=!0){return ht.createCache(this,y),m||this.multiply(An),this}assertValidity(){le(this)}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.eql(n.mul(m,A),n.mul(S,x)),T=n.eql(n.mul(h,A),n.mul(L,x));return v&&T}negate(){return new _(this.X,n.neg(this.Y),this.Z)}double(){let{a:y,b:m}=s,h=n.mul(m,An),{X:x,Y:S,Z:L}=this,A=n.ZERO,v=n.ZERO,T=n.ZERO,D=n.mul(x,x),ne=n.mul(S,S),F=n.mul(L,L),O=n.mul(x,S);return O=n.add(O,O),T=n.mul(x,L),T=n.add(T,T),A=n.mul(y,T),v=n.mul(h,F),v=n.add(A,v),A=n.sub(ne,v),v=n.add(ne,v),v=n.mul(A,v),A=n.mul(O,A),T=n.mul(h,T),F=n.mul(y,F),O=n.sub(D,F),O=n.mul(y,O),O=n.add(O,T),T=n.add(D,D),D=n.add(T,D),D=n.add(D,F),D=n.mul(D,O),v=n.add(v,D),F=n.mul(S,L),F=n.add(F,F),D=n.mul(F,O),A=n.sub(A,D),T=n.mul(F,ne),T=n.add(T,T),T=n.add(T,T),new _(A,v,T)}add(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.ZERO,T=n.ZERO,D=n.ZERO,ne=s.a,F=n.mul(s.b,An),O=n.mul(m,S),Q=n.mul(h,L),fe=n.mul(x,A),Fe=n.add(m,h),j=n.add(S,L);Fe=n.mul(Fe,j),j=n.add(O,Q),Fe=n.sub(Fe,j),j=n.add(m,x);let pe=n.add(S,A);return j=n.mul(j,pe),pe=n.add(O,fe),j=n.sub(j,pe),pe=n.add(h,x),v=n.add(L,A),pe=n.mul(pe,v),v=n.add(Q,fe),pe=n.sub(pe,v),D=n.mul(ne,j),v=n.mul(F,fe),D=n.add(v,D),v=n.sub(Q,D),D=n.add(Q,D),T=n.mul(v,D),Q=n.add(O,O),Q=n.add(Q,O),fe=n.mul(ne,fe),j=n.mul(F,j),Q=n.add(Q,fe),fe=n.sub(O,fe),fe=n.mul(ne,fe),j=n.add(j,fe),O=n.mul(Q,j),T=n.add(T,O),O=n.mul(pe,j),v=n.mul(Fe,v),v=n.sub(v,O),O=n.mul(Fe,Q),D=n.mul(pe,D),D=n.add(D,O),new _(v,T,D)}subtract(y){return this.add(y.negate())}is0(){return this.equals(_.ZERO)}multiply(y){let{endo:m}=e;if(!o.isValidNot0(y))throw new Error("invalid scalar: out of range");let h,x,S=L=>ht.cached(this,L,A=>ks(_,A));if(m){let{k1neg:L,k1:A,k2neg:v,k2:T}=V(y),{p:D,f:ne}=S(A),{p:F,f:O}=S(T);x=ne.add(O),h=ie(m.beta,D,F,L,v)}else{let{p:L,f:A}=S(y);h=L,x=A}return ks(_,[h,x])[0]}multiplyUnsafe(y){let{endo:m}=e,h=this;if(!o.isValid(y))throw new Error("invalid scalar: out of range");if(y===et||h.is0())return _.ZERO;if(y===Zt)return h;if(ht.hasCache(this))return this.multiply(y);if(m){let{k1neg:x,k1:S,k2neg:L,k2:A}=V(y),{p1:v,p2:T}=cc(_,h,S,A);return ie(m.beta,v,T,x,L)}else return ht.unsafe(h,y)}toAffine(y){return X(this,y)}isTorsionFree(){let{isTorsionFree:y}=e;return i===Zt?!0:y?y(_,this):ht.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===Zt?this:y?y(_,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(y=!0){return xr(y,"isCompressed"),this.assertValidity(),d(_,this,y)}toHex(y=!0){return vt(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let Br=o.BITS,ht=new Sn(_,e.endo?Math.ceil(Br/2):Br);return _.BASE.precompute(8),_}function pc(r){return Uint8Array.of(r?2:3)}function mc(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function Pf(r,e={}){let{Fn:t}=r,n=e.randomBytes||gn,o=Object.assign(mc(r.Fp,t),{seed:Bs(t.ORDER)});function s(d){try{let g=t.fromBytes(d);return t.isValidNot0(g)}catch{return!1}}function i(d,g){let{publicKey:w,publicKeyUncompressed:b}=o;try{let E=d.length;return g===!0&&E!==w||g===!1&&E!==b?!1:!!r.fromBytes(d)}catch{return!1}}function a(d=n(o.seed)){return Os(K(d,o.seed,"seed"),t.ORDER)}function c(d,g=!0){return r.BASE.multiply(t.fromBytes(d)).toBytes(g)}function l(d){let{secretKey:g,publicKey:w,publicKeyUncompressed:b}=o;if(!gr(d)||"_lengths"in t&&t._lengths||g===w)return;let E=K(d,void 0,"key").length;return E===w||E===b}function u(d,g,w=!0){if(l(d)===!0)throw new Error("first arg must be private key");if(l(g)===!1)throw new Error("second arg must be public key");let b=t.fromBytes(d);return r.fromBytes(g).multiply(b).toBytes(w)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},p=lc(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:p,Point:r,utils:f,lengths:o})}function bc(r,e,t={}){bn(e),vr(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),t=Object.assign({},t);let n=t.randomBytes||gn,o=t.hmac||((m,h)=>Us(e,m,h)),{Fp:s,Fn:i}=r,{ORDER:a,BITS:c}=i,{keygen:l,getPublicKey:u,getSharedSecret:f,utils:p,lengths:d}=Pf(r,t),g={prehash:!0,lowS:typeof t.lowS=="boolean"?t.lowS:!0,format:"compact",extraEntropy:!1},w=a*dc<s.ORDER;function b(m){let h=a>>Zt;return m>h}function E(m,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return h}function C(){if(w)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function P(m,h){Ks(h);let x=d.signature,S=h==="compact"?x:h==="recovered"?x+1:void 0;return K(m,S)}class N{r;s;recovery;constructor(h,x,S){if(this.r=E("r",h),this.s=E("s",x),S!=null){if(C(),![0,1,2,3].includes(S))throw new Error("invalid recovery id");this.recovery=S}Object.freeze(this)}static fromBytes(h,x=g.format){P(h,x);let S;if(x==="der"){let{r:T,s:D}=ft.toSig(K(h));return new N(T,D)}x==="recovered"&&(S=h[0],x="compact",h=h.subarray(1));let L=d.signature/2,A=h.subarray(0,L),v=h.subarray(L,L*2);return new N(i.fromBytes(A),i.fromBytes(v),S)}static fromHex(h,x){return this.fromBytes(St(h),x)}assertRecovery(){let{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new N(this.r,this.s,h)}recoverPublicKey(h){let{r:x,s:S}=this,L=this.assertRecovery(),A=L===2||L===3?x+a:x;if(!s.isValid(A))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let v=s.toBytes(A),T=r.fromBytes($e(pc((L&1)===0),v)),D=i.inv(A),ne=X(K(h,void 0,"msgHash")),F=i.create(-ne*D),O=i.create(S*D),Q=r.BASE.multiplyUnsafe(F).add(T.multiplyUnsafe(O));if(Q.is0())throw new Error("invalid recovery: point at infinify");return Q.assertValidity(),Q}hasHighS(){return b(this.s)}toBytes(h=g.format){if(Ks(h),h==="der")return St(ft.hexFromSig(this));let{r:x,s:S}=this,L=i.toBytes(x),A=i.toBytes(S);return h==="recovered"?(C(),$e(Uint8Array.of(this.assertRecovery()),L,A)):$e(L,A)}toHex(h){return vt(this.toBytes(h))}}let V=t.bits2int||function(h){if(h.length>8192)throw new Error("input is too large");let x=Wt(h),S=h.length*8-c;return S>0?x>>BigInt(S):x},X=t.bits2int_modN||function(h){return i.create(V(h))},le=wr(c);function ie(m){return za("num < 2^"+c,m,et,le),i.toBytes(m)}function _(m,h){return K(m,void 0,"message"),h?K(e(m),void 0,"prehashed message"):m}function Br(m,h,x){let{lowS:S,prehash:L,extraEntropy:A}=Ms(x,g);m=_(m,L);let v=X(m),T=i.fromBytes(h);if(!i.isValidNot0(T))throw new Error("invalid private key");let D=[ie(T),ie(v)];if(A!=null&&A!==!1){let Q=A===!0?n(d.secretKey):A;D.push(K(Q,void 0,"extraEntropy"))}let ne=$e(...D),F=v;function O(Q){let fe=V(Q);if(!i.isValidNot0(fe))return;let Fe=i.inv(fe),j=r.BASE.multiply(fe).toAffine(),pe=i.create(j.x);if(pe===et)return;let Or=i.create(Fe*i.create(F+pe*T));if(Or===et)return;let _i=(j.x===pe?0:2)|Number(j.y&Zt),Bi=Or;return S&&b(Or)&&(Bi=i.neg(Or),_i^=1),new N(pe,Bi,w?void 0:_i)}return{seed:ne,k2sig:O}}function ht(m,h,x={}){let{seed:S,k2sig:L}=Br(m,h,x);return Wa(e.outputLen,i.BYTES,o)(S,L).toBytes(x.format)}function M(m,h,x,S={}){let{lowS:L,prehash:A,format:v}=Ms(S,g);if(x=K(x,void 0,"publicKey"),h=_(h,A),!gr(m)){let T=m instanceof N?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+T)}P(m,v);try{let T=N.fromBytes(m,v),D=r.fromBytes(x);if(L&&T.hasHighS())return!1;let{r:ne,s:F}=T,O=X(h),Q=i.inv(F),fe=i.create(O*Q),Fe=i.create(ne*Q),j=r.BASE.multiplyUnsafe(fe).add(D.multiplyUnsafe(Fe));return j.is0()?!1:i.create(j.x)===ne}catch{return!1}}function y(m,h,x={}){let{prehash:S}=Ms(x,g);return h=_(h,S),N.fromBytes(m,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:f,utils:p,lengths:d,Point:r,sign:ht,verify:M,recoverPublicKey:y,Signature:N,hash:e})}var $s={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Rf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var yc=BigInt(2);function Nf(r){let e=$s.p,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,u=l*l*r%e,f=Be(u,t,e)*u%e,p=Be(f,t,e)*u%e,d=Be(p,yc,e)*l%e,g=Be(d,o,e)*d%e,w=Be(g,s,e)*g%e,b=Be(w,a,e)*w%e,E=Be(b,c,e)*b%e,C=Be(E,a,e)*w%e,P=Be(C,t,e)*u%e,N=Be(P,i,e)*g%e,V=Be(N,n,e)*l%e,X=Be(V,yc,e);if(!Vs.eql(Vs.sqr(X),r))throw new Error("Cannot find square root");return X}var Vs=qt($s.p,{sqrt:Nf}),kf=hc($s,{Fp:Vs,endo:Rf}),Ir=bc(kf,$a);var Ln=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}};function xc(r,e,t,n){n?.signal?.throwIfAborted();let o=gc.default.createHash("sha256");if(t instanceof Uint8Array)o.update(t);else for(let i of t)o.update(i);let s=o.digest();try{return Ir.verify(e,s,r,{prehash:!1,format:"der"})}catch(i){throw new Ln(String(i))}}var Tn=class{type="secp256k1";raw;_key;constructor(e){this._key=wc(e),this.raw=Ec(this._key)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return ee.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){return xc(this._key,t,e,n)}};function vc(r){return new Tn(r)}function Ec(r){return Ir.Point.fromBytes(r).toBytes()}function wc(r){try{return Ir.Point.fromBytes(r),r}catch(e){throw new rn(String(e))}}function Sc(r){let{Type:e,Data:t}=yr.decode(r.digest),n=t??new Uint8Array;switch(e){case _e.Ed25519:return Ra(n);case _e.secp256k1:return vc(n);case _e.ECDSA:return Da(n);default:throw new hr}}function ut(r){return yr.encode({Type:_e[r.type],Data:r.raw})}var Ic=Symbol.for("nodejs.util.inspect.custom"),Uf=114,Ar=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ls]=!0;toString(){return this.string==null&&(this.string=ee.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return se.createV1(Uf,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ce(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Ce(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Ic](){return`PeerId(${this.toString()})`}},Dn=class extends Ar{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Cn=class extends Ar{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},_n=class extends Ar{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Mf=2336,Bn=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=Ke.digest(ye(this.url))}[Ic](){return`PeerId(${this.url})`}[ls]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return se.createV1(Mf,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=re(e)),e.toString()===this.toString())}};function Xt(r){if(Hf(r))return new Dn({multihash:r});if(Kf(r))try{let e=Sc(r);if(e.type==="Ed25519")return new Cn({multihash:r,publicKey:e});if(e.type==="secp256k1")return new _n({multihash:r,publicKey:e})}catch{let t=re(r.digest);return new Bn(new URL(t))}throw new on("Supplied PeerID Multihash is invalid")}function Kf(r){return r.code===Ke.code}function Hf(r){return r.code===Qo.code}var cu=Te(oe("net"),1);var he=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},tt=class extends Error{static name="ValidationError";name="ValidationError"},On=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Pn=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};var Oe=oe("node:net");function Fs(r){return e=>re(e,r)}function zs(r){return e=>ye(e,r)}function Qt(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function Lt(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function Ac(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=ye(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Lc(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ze.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Ws(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=re(e,"base32"),o=Qt(t);return`${n}:${o}`}var qs=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new he("Invalid byte value in IP address");e[n]=o}),e},Tc=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=(0,Oe.isIPv4)(t[n]),i;s&&(i=qs(t[n]),t[n]=re(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,re(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new he("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Dc=function(r){if(r.byteLength!==4)throw new he("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},Cc=function(r){if(r.byteLength!==16)throw new he("IPv6 address was incorrect length");let e=[];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")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${t}"`)}};function _c(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${r}"`)}}var Gs=Object.values(ar).map(r=>r.decoder),Vf=(function(){let r=Gs[0].or(Gs[1]);return Gs.slice(2).forEach(e=>r=r.or(e)),r})();function Bc(r){return Vf.decode(r)}function Oc(r){return e=>r.encoder.encode(e)}function $f(r){if(parseInt(r).toString()!==r)throw new tt("Value must be an integer")}function Gf(r){if(r<0)throw new tt("Value must be a positive integer, or zero")}function Ff(r){return e=>{if(e>r)throw new tt(`Value must be smaller than or equal to ${r}`)}}function zf(...r){return e=>{for(let t of r)t(e)}}var Lr=zf($f,Gf,Ff(65535));var ce=-1,Ys=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new Pn(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},rt=new Ys,id=[{code:4,name:"ip4",size:32,valueToBytes:qs,bytesToValue:Dc,validate:r=>{if(!(0,Oe.isIPv4)(r))throw new tt(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:Lt,bytesToValue:Qt,validate:Lr},{code:273,name:"udp",size:16,valueToBytes:Lt,bytesToValue:Qt,validate:Lr},{code:33,name:"dccp",size:16,valueToBytes:Lt,bytesToValue:Qt,validate:Lr},{code:41,name:"ip6",size:128,valueToBytes:Tc,bytesToValue:Cc,stringToValue:_c,validate:r=>{if(!(0,Oe.isIPv6)(r))throw new tt(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:ce},{code:43,name:"ipcidr",size:8,bytesToValue:Fs("base10"),valueToBytes:zs("base10")},{code:53,name:"dns",size:ce},{code:54,name:"dns4",size:ce},{code:55,name:"dns6",size:ce},{code:56,name:"dnsaddr",size:ce},{code:132,name:"sctp",size:16,valueToBytes:Lt,bytesToValue:Qt,validate:Lr},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:ce,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:ce,bytesToValue:Fs("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?zs("base58btc")(r):se.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ws,valueToBytes:Ac},{code:445,name:"onion3",size:296,bytesToValue:Ws,valueToBytes:Lc},{code:446,name:"garlic64",size:ce},{code:447,name:"garlic32",size:ce},{code:448,name:"tls"},{code:449,name:"sni",size:ce},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:ce,bytesToValue:Oc($o),valueToBytes:Bc},{code:480,name:"http"},{code:481,name:"http-path",size:ce,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:ce}];id.forEach(r=>{rt.addProtocol(r)});function Pc(r){let e=[],t=0;for(;t<r.length;){let n=mt(r,t),o=rt.getProtocol(n),s=ae(n),i=ad(o,r,t+s),a=0;i>0&&o.size===ce&&(a=ae(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??re(f)}e.push(l),t+=c}return e}function Rc(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=rt.getProtocol(n.code),s=ae(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??ye(n.value),a=i.byteLength,o.size===ce&&(c=ae(a)));let l=new Uint8Array(s+c+a),u=0;Ot(n.code,l,u),u+=s,i!=null&&(o.size===ce&&(Ot(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return We(t,e)}function Nc(r){if(r.charAt(0)!=="/")throw new he('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=rt.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new he(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new he(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new he("Incomplete multiaddr");return e}function kc(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=rt.getProtocol(e.code);if(t==null)throw new he(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function ad(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:mt(e,t)}var cd=Symbol.for("nodejs.util.inspect.custom"),ai=Symbol.for("@multiformats/multiaddr");function ud(r){if(r==null&&(r="/"),Uc(r))return r.getComponents();if(r instanceof Uint8Array)return Pc(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Nc(r);if(Array.isArray(r))return r;throw new he("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Vn=class r{[ai]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=ud(e),t.validate!==!1&&ld(this)}get bytes(){return this.#r==null&&(this.#r=Rc(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=kc(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new On(`Address ${this.toString()} does not contain subaddress: ${t}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}equals(e){return Ce(this.bytes,e.bytes)}[cd](){return`Multiaddr(${this.toString()})`}};function ld(r){r.getComponents().forEach(e=>{let t=rt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function Uc(r){return!!r?.[ai]}function Ye(r){return new Vn(r)}var $=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),I=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Mc=r=>({match:e=>r.match(e)===!1?e:!1}),B=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),xe=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),U=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function G(...r){function e(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 t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var fd=I(421),Uy=G(fd),Gn=I(54),Fn=I(55),zn=I(56),ui=I(53),My=G(Gn,B(I(421))),Ky=G(Fn,B(I(421))),Hy=G(zn,B(I(421))),Vy=G(xe(ui,zn,Gn,Fn),B(I(421))),Kc=U(I(4),B(I(43))),Hc=U(B(I(42)),I(41),B(I(43))),li=xe(Kc,Hc),Ct=xe(li,ui,Gn,Fn,zn),$y=G(xe(li,U(xe(ui,zn,Gn,Fn),B(I(421))))),Gy=G(Kc),Fy=G(Hc),zy=G(li),fi=U(Ct,I(6)),Dr=U(Ct,I(273)),Vc=G(U(fi,B(I(421)))),Wy=G(Dr),di=U(Dr,$(460),B(I(421))),Wn=U(Dr,$(461),B(I(421))),dd=xe(di,Wn),qy=G(di),Yy=G(Wn),ci=xe(Ct,fi,Dr,di,Wn),$c=xe(U(ci,$(477),B(I(421)))),Zy=G($c),Gc=xe(U(ci,$(478),B(I(421))),U(ci,$(448),B(I(449)),$(477),B(I(421)))),Xy=G(Gc),Fc=U(Dr,$(280),B(I(466)),B(I(466)),B(I(421))),Qy=G(Fc),zc=U(Wn,$(465),B(I(466)),B(I(466)),B(I(421))),jy=G(zc),$n=xe($c,Gc,U(fi,B(I(421))),U(dd,B(I(421))),U(Ct,B(I(421))),Fc,zc,I(421)),Jy=G($n),hd=U(B($n),$(290),Mc($(281)),B(I(421))),eg=G(hd),pd=xe(U($n,$(290),$(281),B(I(421))),U($n,$(281),B(I(421))),U($(281),B(I(421)))),tg=G(pd),md=xe(U(Ct,I(6),$(480),B(I(421))),U(Ct,$(480),B(I(421)))),rg=G(md),bd=U(Ct,xe(U(I(6,"443"),$(480)),U(I(6),$(443)),U(I(6),$(448),$(480)),U($(448),$(480)),$(448),$(443)),B(I(421))),ng=G(bd),yd=xe(U(I(777),B(I(421)))),og=G(yd),gd=xe(U(I(400),B(I(421)))),qn=G(gd);var Yn=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var au=Te(oe("node:net"),1);function Zn(r){let e=r.getComponents(),t={},n=0;if(e[n]?.name==="ip6zone"&&(t.zone=`${e[n].value}`,n++),e[n].name==="ip4"||e[n].name==="ip6"||e[n].name==="dns"||e[n].name==="dns4"||e[n].name==="dns6"?(t.type=e[n].name,t.host=e[n].value,n++):e[n].name==="dnsaddr"&&(t.type=e[n].name,t.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(t.protocol=e[n].name==="tcp"?"tcp":"udp",t.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(t.type==="ip4"?t.cidr=parseInt(`${e[n].value}`):t.type==="ip6"&&(t.cidr=`${e[n].value}`),n++),t.type==null||t.host==null)throw new Z(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t}function nt(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Xn=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},tr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Xn(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Xn(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var hi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function dt(r={}){return xd(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function xd(r,e){e=e??{};let t=e.onEnd,n=new tr,o,s,i,a=nt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((b,E)=>{s=C=>{s=null,n.push(C);try{b(r(n))}catch(P){E(P)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=nt()})}},l=b=>s!=null?s(b):(n.push(b),o),u=b=>(n=new tr,s!=null?s({error:b}):(n.push({error:b}),o)),f=b=>{if(i)return o;if(e?.objectMode!==!0&&b?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:b})},p=b=>i?o:(i=!0,b!=null?u(b):l({done:!0})),d=()=>(n=new tr,p(),{done:!0}),g=b=>(p(b),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:d,throw:g,push:f,end:p,get readableLength(){return n.size},onEmpty:async b=>{let E=b?.signal;if(E?.throwIfAborted(),n.isEmpty())return;let C,P;E!=null&&(C=new Promise((N,V)=>{P=()=>{V(new hi)},E.addEventListener("abort",P)}));try{await Promise.race([a.promise,C])}finally{P!=null&&E!=null&&E?.removeEventListener("abort",P)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(b){return w.throw(b),t!=null&&(t(b),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(b){return w.end(b),t!=null&&(t(b),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:b=>w.onEmpty(b)},o}var pi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},mi=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Wc=r=>globalThis.DOMException===void 0?new mi(r):new DOMException(r),qc=r=>{let e=r.reason===void 0?Wc("This operation was aborted."):r.reason;return e instanceof Error?e:Wc(e)};function bi(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,l=new Promise((u,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:d}=e;d.aborted&&f(qc(d)),a=()=>{f(qc(d))},d.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let p=new pi;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){f(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(p.message=o??`Promise timed out after ${t} milliseconds`,f(p))},t),(async()=>{try{u(await r)}catch(d){f(d)}})()}).finally(()=>{l.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return l.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},l}var Ed=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function wd(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:l,removeListener:u}=Ed(r),f=async(...d)=>{let g=t.multiArgs?d:d[0];if(t.filter)try{if(!await t.filter(g))return}catch(w){n(),i(w);return}c.push(g),t.count===c.length&&(n(),s(c))},p=(...d)=>{n(),i(t.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,f);for(let d of t.rejectionEvents)a.includes(d)||u(d,p)};for(let d of a)l(d,f);for(let d of t.rejectionEvents)a.includes(d)||l(d,p);t.signal&&t.signal.addEventListener("abort",()=>{p(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=bi(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Pe(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=wd(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var _t=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};var Qn=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function vd(r){return r.reason}async function jn(r,e,t){if(e==null)return r;let n=t?.translateError??vd;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var Sd=Math.pow(2,20)*4,Jn=class extends Gt{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??Sd,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new H,this.writeBuffer=new H,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 t=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,this.processSendQueue()),this.onDrainPromise?.resolve()};this.addEventListener("drain",t);let n=o=>{this.onDrainPromise?.reject(o.error??new Qn)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),jn(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=dt(),t=s=>{e.push(s.data)};this.addEventListener("message",t);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",t),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new ct(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),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(e)}catch(t){this.log("failed to send reset to remote - %e",t)}this.dispatchEvent(new un(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct("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 ct("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[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 e=new nn;this.dispatchEvent(new ln(e))}onTransportClosed(e){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"),e!=null?this.abort(e):(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 $t))}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;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let e=!0,t=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){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new H(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,t,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),e}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 e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new cn(e))}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 dr(`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 dr(`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 eo=class extends Jn{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.remoteAddr,this.addEventListener("close",t=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),t.error!=null?t.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):t.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(e){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 Pe(this,"idle",{...e,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 Pe(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};var Zc=Te(oe("node:os"),1);function Yc(r){return!!(r.startsWith("169.254.")||r.toLowerCase().startsWith("fe80"))}function yi(r,e,t){let n=[r.type,t??r.host];if(r.protocol!=null){let o=e??r.port;o!=null&&n.push(r.protocol,o)}return r.type==="ip6"&&r.zone!=null&&n.unshift("ip6zone",r.zone),r.cidr!=null&&n.push("ipcidr",r.cidr),Ye(`/${n.join("/")}`)}var Id={4:"IPv4",6:"IPv6"};function Ad(r){return["0.0.0.0","::"].includes(r)}function Ld(r){let e=[],t=Zc.default.networkInterfaces();for(let[,n]of Object.entries(t))if(n!=null)for(let o of n)Yc(o.address)||o.family===Id[r]&&e.push(o.address);return e}function Xc(r,e){if(r==null)return[];let t=Zn(r);return(t.type==="ip4"||t.type==="ip6")&&Ad(t.host)?Ld(t.type==="ip4"?4:6).map(n=>yi(t,e,n)):[yi(t,e)]}function Qc(r,e){if(typeof r!="string")throw new Z(`invalid ip provided: ${r}`);if(typeof e=="string"&&(e=parseInt(e)),isNaN(e))throw new Z(`invalid port provided: ${e}`);if((0,Oe.isIPv4)(r))return Ye(`/ip4/${r}/tcp/${e}`);if((0,Oe.isIPv6)(r))return Ye(`/ip6/${r}/tcp/${e}`);throw new Z(`invalid ip:port for creating a multiaddr: ${r}:${e}`)}var to=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function jc(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new to(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new to(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var gi=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=nt(),this.haveNext=nt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=nt(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=nt(),await jc(this.readNext.promise,t?.signal,t)}};function Jc(){return new gi}function Td(r){return r[Symbol.asyncIterator]!=null}async function Dd(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Cd(r){let e=new AbortController,t=Jc();Dd(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*_d(r){for(let e of r)yield*e}function Bd(...r){let e=[];for(let t of r)Td(t)||e.push(t);return e.length===r.length?_d(e):Cd(r)}var eu=Bd;function tu(r,...e){if(r==null)throw new Error("Empty pipeline");if(xi(r)){let n=r;r=()=>n.source}else if(nu(r)||ru(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&xi(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)xi(t[n])&&(t[n]=Pd(t[n]));return Od(...t)}var Od=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},ru=r=>r?.[Symbol.asyncIterator]!=null,nu=r=>r?.[Symbol.iterator]!=null,xi=r=>r==null?!1:r.sink!=null&&r.source!=null,Pd=r=>e=>{let t=r.sink(e);if(t?.then!=null){let n=dt({objectMode:!0});t.then(()=>{n.end()},i=>{n.end(i)});let o,s=r.source;if(ru(s))o=async function*(){yield*s,n.end()};else if(nu(s))o=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return eu(n,o())}return r.source};var Rd=4194304,ro=class extends Error{static name="UnwrappedError";name="UnwrappedError"},wi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},vi=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Si=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Nd(r){return typeof r?.closeRead=="function"}function kd(r){return typeof r?.close=="function"}function Ei(r){return Nd(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:kd(r)?r.status!=="open":!1}function Ud(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Md(r,e){let t=e?.maxBufferSize??Rd,n=new H,o,s=!1;if(!Ud(r))throw new Z("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>t){let f=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${f} > ${t}`))}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 l={readBuffer:n,async read(u){if(s===!0)throw new ro("Stream was unwrapped");if(Ei(r)){if(u?.bytes==null)return null;if(n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new _t(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let f=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=f){o.resolve();break}if(await jn(o.promise,u?.signal),Ei(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let p=u?.bytes??n.byteLength;if(n.byteLength<p){if(Ei(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,p),new _t(`Unexpected EOF - stream closed while reading ${n.byteLength}/${p} bytes`);return l.read(u)}let d=n.sublist(0,p);return n.consume(p),d},async write(u,f){if(s===!0)throw new ro("Stream was unwrapped");r.send(u)||await Pe(r,"drain",{signal:f?.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.push(n))),r}};return l}function Cr(r,e={}){let t=Md(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=ae(e.maxDataLength));let n=e?.lengthDecoder??mt,o=e?.lengthEncoder??Rr;return{async read(i){let a=-1,c=new H;for(;;){let u=await t.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(f){if(f instanceof RangeError)continue;throw f}if(a<0)throw new wi("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Si(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new vi(`Message length too long - ${a} > ${e.maxDataLength}`);let l=await t.read({...i,bytes:a});if(l==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new _t(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(l.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",l.byteLength,a),new _t(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new H(o(i.byteLength),i),a)},async writeV(i,a){let c=new H(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}function Ii(r,e){let t=Cr(r,e),n={read:async(o,s)=>{let i=await t.read(s);return o.decode(i)},write:async(o,s,i)=>{await t.write(s.encode(o),i)},writeV:async(o,s,i)=>{await t.writeV(o.map(a=>s.encode(a)),i)},pb:o=>({read:async s=>n.read(o,s),write:async(s,i)=>n.write(s,o,i),writeV:async(s,i)=>n.writeV(s,o,i),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}function Kd(r){return r?.addEventListener!=null}function Hd(r){let e=dt(),t,n=i=>{e.push(i.data)},o=()=>{e.end(),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)},s=i=>{e.end(i.error),i.error!=null&&t?.reject(i.error),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)};return r.addEventListener("message",n),r.addEventListener("close",s,{once:!0}),r.addEventListener("remoteCloseWrite",o,{once:!0}),{source:e,async sink(i){async function*a(){yield*i}let c=a();for(;;){t=Promise.withResolvers();let{done:l,value:u}=await Promise.race([c.next(),t.promise]);if(r.writeStatus==="closing"||r.writeStatus==="closed"||(u!=null&&(r.send(u)||await Promise.race([Pe(r,"drain",{rejectionEvents:["close"]})])),l===!0))break}await r.close()}}}function Ai(...r){let e=r.map(t=>Kd(t)?Hd(t):t);return tu(...e)}var no=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},rr=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},oo=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},_r=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function so(r){return r[Symbol.asyncIterator]!=null}function ou(r,e){if(r.byteLength>e)throw new rr("Message length too long")}var ao=r=>{let e=ae(r),t=Se(e);return Rr(r,t),ao.bytes=e,t};ao.bytes=0;function co(r,e){e=e??{};let t=e.lengthEncoder??ao,n=e?.maxDataLength??4194304;function*o(s){ou(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return so(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}co.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??ao,n=e?.maxDataLength??4194304;return ou(r,n),new H(t(r.byteLength),r)};var Bt;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Bt||(Bt={}));var Ti=r=>{let e=mt(r);return Ti.bytes=ae(e),e};Ti.bytes=0;function Li(r,e){let t=new H,n=Bt.LENGTH,o=-1,s=e?.lengthDecoder??Ti,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Bt.LENGTH)try{if(o=s(t),o<0)throw new no("Invalid message length");if(o>a)throw new rr("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Bt.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new oo("Message length length too long");break}throw l}if(n===Bt.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Bt.LENGTH}}}return so(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new _r("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new _r("Unexpected end of input")})()}Li.fromReader=(r,e)=>{let t=1,n=(async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}})();return Li(n,{...e??{},onLength:s=>{t=s}})};var Di=class extends eo{socket;constructor(e){let t=e.remoteAddr;if(e.localAddr!=null&&qn.matches(e.localAddr))t=e.localAddr;else if(t==null){if(e.socket.remoteAddress==null||e.socket.remotePort==null)throw new Z("Could not determine remote address or port");t=Qc(e.socket.remoteAddress,e.socket.remotePort)}super({...e,remoteAddr:t}),this.socket=e.socket,this.socket.on("data",n=>{this.onData(n)}),this.socket.on("error",n=>{this.log("tcp error",t,n),this.abort(n)}),this.socket.setTimeout(e.inactivityTimeout??120*1e3),this.socket.once("timeout",()=>{this.log("tcp timeout",t),this.abort(new Vt)}),this.socket.once("end",()=>{this.log("tcp end",t),this.onTransportClosed()}),this.socket.once("close",n=>{if(this.log("tcp close",t),n){this.abort(new Error("TCP transmission error"));return}this.onTransportClosed()}),this.socket.on("drain",()=>{this.log("tcp drain"),this.safeDispatchEvent("drain")})}sendData(e){let t=0,n=!0;for(let o of e)if(t+=o.byteLength,n=this.socket.write(o),!n)break;return{sentBytes:t,canSendMore:n}}async sendClose(e){this.socket.destroyed||(this.socket.destroySoon(),await Pe(this.socket,"close",e))}sendReset(){this.socket.resetAndDestroy()}sendPause(){this.socket.pause()}sendResume(){this.socket.resume()}},uo=r=>new Di(r);var su=Te(oe("os"),1),iu=Te(oe("path"),1);function lo(r,e={}){if(qn.exactMatch(r)){let s=r.getComponents().find(i=>i.code===400)?.value;if(s==null)throw new Z(`Multiaddr ${r} was not a Unix address`);return su.default.platform()==="win32"?{path:iu.default.join("\\\\.\\pipe\\",s)}:{path:s}}let t=Zn(r),n=t.host,o=t.port;return{host:n,port:o,ipv6Only:t.type==="ip6",...e}}var ue;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(ue||(ue={}));var fo=class extends Gt{context;server;sockets=new Set;status={code:ue.INACTIVE};metrics;addr;log;shutdownController;constructor(e){if(super(),this.context=e,e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0,e.allowHalfOpen=e.allowHalfOpen??!1,this.shutdownController=new AbortController,fn(1/0,this.shutdownController.signal),this.log=e.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=au.default.createServer(e,this.onSocket.bind(this)),e.maxConnections!==void 0&&(this.server.maxConnections=e.maxConnections),e.closeServerOnMaxConnections!=null&&e.closeServerOnMaxConnections.closeAbove<e.closeServerOnMaxConnections.listenBelow)throw new Z("closeAbove must be >= listenBelow");e.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.sockets.size})}),this.metrics={status:e.metrics?.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:e.metrics?.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:e.metrics?.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.server.on("listening",()=>{let t=this.server.address();t==null?this.addr="unknown":typeof t=="string"?this.addr=t:this.addr=`${t.address}:${t.port}`,this.metrics.status?.update({[this.addr]:ue.ACTIVE}),this.safeDispatchEvent("listening")}).on("error",t=>{this.metrics.errors?.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:t})}).on("close",()=>{this.metrics.status?.update({[this.addr]:this.status.code}),this.status.code!==ue.PAUSED&&this.safeDispatchEvent("close")}).on("drop",()=>{this.metrics.events?.increment({[`${this.addr} drop`]:!0})})}onSocket(e){if(this.metrics.events?.increment({[`${this.addr} connection`]:!0}),this.status.code!==ue.ACTIVE)throw e.destroy(),new sn("Server is not listening yet");let t;try{t=uo({socket:e,inactivityTimeout:this.context.inactivityTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,direction:"inbound",localAddr:this.status.listeningAddr,log:this.context.logger.forComponent("libp2p:tcp:connection")})}catch(n){this.log.error("inbound connection failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_to_connection`]:!0}),e.destroy();return}this.log("new inbound connection %s",t.remoteAddr),this.sockets.add(e),this.context.upgrader.upgradeInbound(t,{signal:this.shutdownController.signal}).then(()=>{this.log("inbound connection upgraded %s",t.remoteAddr),e.once("close",()=>{this.sockets.delete(e),this.context.closeServerOnMaxConnections!=null&&this.sockets.size<this.context.closeServerOnMaxConnections.listenBelow&&this.resume().catch(n=>{this.log.error("error attempting to listen server once connection count under limit - %e",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.closeServerOnMaxConnections!=null&&this.sockets.size>=this.context.closeServerOnMaxConnections.closeAbove&&(this.log("pausing incoming connections as limit is exceeded - %d/%d",this.sockets.size,this.context.closeServerOnMaxConnections.closeAbove),this.pause())}).catch(async n=>{this.log.error("inbound connection upgrade failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_upgrade`]:!0}),this.sockets.delete(e),t.abort(n)})}getAddrs(){if(this.status.code===ue.INACTIVE)return[];let e=this.server.address();return e==null?[]:typeof e=="string"?[Ye(`/unix/${encodeURIComponent(e)}`)]:Xc(this.status.listeningAddr,e.port)}updateAnnounceAddrs(){}async listen(e){if(this.status.code===ue.ACTIVE||this.status.code===ue.PAUSED)throw new an("server is already listening");try{this.status={code:ue.ACTIVE,listeningAddr:e,netConfig:lo(e,this.context)},await this.resume()}catch(t){throw this.status={code:ue.INACTIVE},t}}async close(e){let t=[];this.server.listening&&t.push(Pe(this.server,"close",e)),this.pause(!0),this.shutdownController.abort(),this.sockets.forEach(n=>{n.readable&&(t.push(Pe(n,"close",e)),n.destroy())}),await Promise.all(t)}async resume(){if(this.server.listening||this.status.code===ue.INACTIVE)return;let e=this.status.netConfig;await new Promise((t,n)=>{this.server.once("error",n),this.server.listen(e,t)}),this.status={...this.status,code:ue.ACTIVE},this.log("listening on %s",this.server.address())}pause(e=!1){if(!this.server.listening&&this.status.code===ue.PAUSED&&e){this.status={code:ue.INACTIVE};return}!this.server.listening||this.status.code!==ue.ACTIVE||(this.log("%s server on %s",e?"closing":"pausing",this.server.address()),this.status=e?{code:ue.INACTIVE}:{...this.status,code:ue.PAUSED},this.server.close())}};var ho=class{opts;metrics;components;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:tcp"),this.opts=t,this.components=e,e.metrics!=null&&(this.metrics={events:e.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"}),errors:e.metrics.registerCounterGroup("libp2p_tcp_dialer_errors_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[ya]=!0;[Symbol.toStringTag]="@libp2p/tcp";[xa]=["@libp2p/transport"];async dial(e,t){t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,t.allowHalfOpen=t.allowHalfOpen??!1;let n=await this._connect(e,t),o;try{o=uo({socket:n,inactivityTimeout:this.opts.outboundSocketInactivityTimeout,metrics:this.metrics?.events,direction:"outbound",remoteAddr:e,log:this.log.newScope("connection")})}catch(s){throw this.metrics?.errors.increment({outbound_to_connection:!0}),n.destroy(s),s}try{return this.log("new outbound connection %s",o.remoteAddr),await t.upgrader.upgradeOutbound(o,t)}catch(s){throw this.metrics?.errors.increment({outbound_upgrade:!0}),this.log.error("error upgrading outbound connection - %e",s),o.abort(s),s}}async _connect(e,t){t.signal.throwIfAborted(),t.onProgress?.(new Yn("tcp:open-connection"));let n;return new Promise((o,s)=>{let i=Date.now(),a=lo(e,{...this.opts.dialOpts??{},...t});this.log("dialing %a with opts %o",e,a),n=cu.default.connect(a);let c=d=>{this.log.error("dial to %a errored - %e",e,d);let g=a.path??`${a.host??""}:${a.port}`;d.message=`connection error ${g}: ${d.message}`,this.metrics?.events.increment({error:!0}),p(d)},l=()=>{this.log("connection timeout %a",e),this.metrics?.events.increment({timeout:!0});let d=new Vt(`Connection timeout after ${Date.now()-i}ms`);n.emit("error",d)},u=()=>{this.log("connection opened %a",e),this.metrics?.events.increment({connect:!0}),p()},f=()=>{this.log("connection aborted %a",e),this.metrics?.events.increment({abort:!0}),p(new tn)},p=d=>{if(n.removeListener("error",c),n.removeListener("timeout",l),n.removeListener("connect",u),t.signal!=null&&t.signal.removeEventListener("abort",f),d!=null){s(d);return}o(n)};n.on("error",c),n.on("timeout",l),n.on("connect",u),t.signal.addEventListener("abort",f)}).catch(o=>{throw n?.destroy(),o})}createListener(e){return new fo({...this.opts.listenOpts??{},...e,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,inactivityTimeout:this.opts.inboundSocketInactivityTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(e){return e.filter(t=>Vc.exactMatch(t)||t.toString().startsWith("/unix/"))}dialFilter(e){return this.listenFilter(e)}};function uu(r={}){return e=>new ho(e,r)}function Gd(r){return r[Symbol.asyncIterator]!=null}function Fd(r){if(Gd(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ci=Fd;function Ae(r){return te.encode({type:te.Type.OK,peers:[],...r}).subarray()}function Ee(r){return te.encode({type:te.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var po=at("libp2p:daemon-server:dht"),mo=class{dht;constructor(e){let{dht:t}=e;this.dht=t}async*provide(e){try{await Ci(this.dht.provide(e)),yield Ae()}catch(t){po.error("failed to provide CID %s - %e",e,t),yield Ee(t)}}async*getClosestPeers(e){yield Ae({dht:{type:de.Type.BEGIN}});for await(let t of this.dht.getClosestPeers(e))t.name==="PEER_RESPONSE"&&(yield*t.closer.map(n=>de.encode({type:de.Type.VALUE,value:n.id.toMultihash().bytes})));yield de.encode({type:de.Type.END})}async*getPublicKey(e){yield Ee(new Error("FIX ME: not implemented"))}async*getValue(e){try{for await(let t of this.dht.get(e))t.name==="VALUE"&&(yield Ae({dht:{type:de.Type.VALUE,value:t.value}}))}catch(t){po.error("error getting value for key %b - %e",e,t),yield Ee(t)}}async*putValue(e,t){try{await Ci(this.dht.put(e,t)),yield Ae()}catch(n){po.error("error putting value %b for key %b - %e",t,e,n),yield Ee(n)}}async*findPeer(e){try{for await(let t of this.dht.findPeer(e))t.name==="FINAL_PEER"&&(yield Ae({dht:{type:de.Type.VALUE,peer:{id:t.peer.id.toMultihash().bytes,addrs:t.peer.multiaddrs.map(n=>n.bytes)}}}));throw new Error("Peer not found")}catch(t){po.error("peer not found %p - %e",e,t),yield Ee(t)}}async*findProviders(e,t){yield Ae({dht:{type:de.Type.BEGIN}});try{let n=t,o=0;for await(let s of this.dht.findProviders(e))if(s.name==="PEER_RESPONSE"){for(let i of s.providers)o++,yield de.encode({type:de.Type.VALUE,peer:{id:i.id.toMultihash().bytes,addrs:(i.multiaddrs??[]).map(a=>a.bytes)}});if(n===o)break}}catch(n){yield Ee(n)}yield de.encode({type:de.Type.END})}};var bo=at("libp2p:daemon-server:pubsub"),yo=class{pubsub;constructor(e){let{pubsub:t}=e;this.pubsub=t}async*getTopics(){try{yield Ae({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(e){bo.error("failed to get pubsub topics - %e",e),yield Ee(e)}}async*subscribe(e){try{let t=dt();this.pubsub.subscribe(e),this.pubsub.addEventListener("message",n=>{let o=n.detail;o.topic===e&&(o.type==="signed"?t.push(lr.encode({from:o.from.toMultihash().bytes,data:o.data,seqno:o.sequenceNumber==null?void 0:ye(o.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[o.topic],signature:o.signature,key:ut(o.key)}).subarray()):t.push(lr.encode({data:o.data,topicIDs:[o.topic]}).subarray()))}),yield Ae(),yield*t}catch(t){bo.error("failed to subscribe to topic %s - %e",e,t),yield Ee(t)}}async*publish(e,t){try{await this.pubsub.publish(e,t),yield Ae()}catch(n){bo.error("failed to publish message to topic %s - %e",e,n),yield Ee(n)}}async*listPeers(e){try{yield Ae({pubsub:{topics:[e],peerIDs:this.pubsub.getSubscribers(e).map(t=>t.toMultihash().bytes)}})}catch(t){bo.error("failed to list peers for topic %s - %e",e,t),yield Ee(t)}}};var lu=1<<22,ve=at("libp2p:daemon-server"),go=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(e){let{multiaddr:t,libp2pNode:n}=e;this.multiaddr=t,this.libp2p=n,this.tcp=uu()({logger:ma()}),this.listener=this.tcp.createListener({upgrader:new fr(this.handleConnection.bind(this))}),this._onExit=this._onExit.bind(this),n.services.dht!=null&&(this.dhtOperations=new mo({dht:n.services.dht})),n.services.pubsub!=null&&(this.pubsubOperations=new yo({pubsub:n.services.pubsub}))}async connect(e){if(e.connect?.addrs==null)throw new Error("Invalid request");let t=e.connect.peer,n=e.connect.addrs.map(s=>Ye(s)),o=Xt(Xe(t));return ve("connect - adding multiaddrs %a to peer %p",n,o),await this.libp2p.peerStore.merge(o,{multiaddrs:n}),ve("connect - dial %p",o),this.libp2p.dial(o)}async openStream(e){if(e.streamOpen?.proto==null)throw new Error("Invalid request");let{peer:t,proto:n}=e.streamOpen,o=Xt(Xe(t));ve("openStream - dial %p",o);let s=await this.libp2p.dial(o);ve("openStream - open stream for protocol(s) %s",n);let i=await s.newStream(n,{runOnLimitedConnection:!0});return{streamInfo:{peer:o.toMultihash().bytes,addr:s.remoteAddr.bytes,proto:i.protocol??""},connection:i}}async registerStreamHandler(e){if(e.streamHandler?.proto==null)throw new Error("Invalid request");let t=e.streamHandler.proto,n=Ye(e.streamHandler.addr),o;ve("registerStreamHandler - handle %s at %a",t,n),await this.libp2p.handle(t,async(s,i)=>{try{ve("open stream for protocol %o to %a",t,n);let a=AbortSignal.timeout(1e4);o=await this.tcp.dial(n,{upgrader:new fr,signal:a});let c=Kt.encode({peer:i.remotePeer.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""}),l=co.single(c);o.send(l)||await Pe(o,"drain",{rejectionEvents:["close"],signal:a}),await Ai(s,o,s)}catch(a){ve.error("error handling stream handler - %e",a),o?.abort(a)}finally{try{await o?.close()}catch(a){o?.abort(a)}}},{runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(e=>{ve.error("failed to stop daemon during exit - %e",e)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let e=this.listener.getAddrs();if(e.length>0)return e[0];throw new Error("Not started")}async stop(e={exit:!1}){await this.libp2p.stop(),await this.listener.close(),e.exit&&ve("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(e){try{switch(e.type){case xt.Type.GET_PROTOCOLS:if(e.id==null)throw new Error("Invalid request");let t=Xt(Xe(e.id)),o=(await this.libp2p.peerStore.get(t)).protocols;yield Ae({peerStore:{protos:o}});return;case xt.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling peerstore request - %e",t),yield Ee(t)}}async*handlePubsubRequest(e){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(e.type){case Qe.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case Qe.Type.SUBSCRIBE:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(e.topic);return;case Qe.Type.PUBLISH:if(e.topic==null||e.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(e.topic,e.data);return;case Qe.Type.LIST_PEERS:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(e.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling pubsub request - %e",t),yield Ee(t)}}async*handleDHTRequest(e){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(e.type){case ke.Type.FIND_PEER:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer(Xt(Xe(e.peer)));return;case ke.Type.FIND_PROVIDERS:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders(se.decode(e.cid),e.count??20);return;case ke.Type.PROVIDE:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide(se.decode(e.cid));return;case ke.Type.GET_CLOSEST_PEERS:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(e.key);return;case ke.Type.GET_PUBLIC_KEY:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey(Xt(Xe(e.peer)));return;case ke.Type.GET_VALUE:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(e.key);return;case ke.Type.PUT_VALUE:if(e.key==null||e.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(e.key,e.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling DHT request - %e",t),yield Ee(t)}}handleConnection(e){Promise.resolve().then(async()=>{let t=this,n=Ii(e,{maxDataLength:lu}),o=await n.read(Ne);ve("read",o);try{switch(o.type){case Ne.Type.CONNECT:{await t.connect(o),await n.write({type:te.Type.OK},te);break}case Ne.Type.IDENTIFY:{await n.write({type:te.Type.OK,identify:{id:t.libp2p.peerId.toMultihash().bytes,addrs:t.libp2p.getMultiaddrs().map(s=>s.decapsulateCode(421)).map(s=>s.bytes)}},te);break}case Ne.Type.LIST_PEERS:{let s=[],i=new Set;for(let a of t.libp2p.getConnections()){let c=a.remotePeer.toString();i.has(c)||(i.add(c),s.push({id:a.remotePeer.toMultihash().bytes,addrs:[a.remoteAddr.bytes]}))}await n.write({type:te.Type.OK,peers:s},te);break}case Ne.Type.STREAM_OPEN:{let s=await t.openStream(o);await n.write({type:te.Type.OK,streamInfo:s.streamInfo},te);let i=n.unwrap();await Ai(i,s.connection,i);break}case Ne.Type.STREAM_HANDLER:{await t.registerStreamHandler(o),await n.write({type:te.Type.OK},te);break}case Ne.Type.PEERSTORE:{if(o.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Cr(s);for await(let a of t.handlePeerStoreRequest(o.peerStore))await i.write(a);break}case Ne.Type.PUBSUB:{if(o.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Cr(s);for await(let a of t.handlePubsubRequest(o.pubsub))await i.write(a);break}case Ne.Type.DHT:{if(o.dht==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Cr(s);for await(let a of t.handleDHTRequest(o.dht))await i.write(a);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(s){ve.error("error handling incoming connection - %e",s);let i=n.unwrap();if(i.status!=="open")return;n=Ii(i,{maxDataLength:lu}),await n.write({type:te.Type.ERROR,error:{msg:s.message},peers:[]},te)}finally{await n.unwrap().close()}}).catch(t=>{ve.error("error handling incoming connection - %e",t)})}},zd=(r,e)=>new go({multiaddr:r,libp2pNode:e});return bu(Wd);})();
|
|
8
|
+
${e}`)}`:`${t}
|
|
9
|
+
${e}${n.split(`
|
|
10
|
+
`).join(`
|
|
11
|
+
${e}`)}`:n!=null?`${n.split(`
|
|
12
|
+
`).join(`
|
|
13
|
+
${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function df(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function va(r,e=""){if(df(r)){let t=xa(r,e);return r.errors.length>0?(e=`${e} `,t+=`${r.errors.map(n=>`
|
|
14
|
+
${e}${va(n,`${e}`)}`).join(`
|
|
15
|
+
${e}`)}`):t+=`
|
|
16
|
+
${e}[Error list was empty]`,t.trim()}return xa(r,e)}Ie.formatters.e=r=>r==null?"undefined":va(r);function hf(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function Sa(r){return{forComponent(e){return it(e,r)}}}function it(r,e){let t=hf(`${r}:trace`);return Ie.enabled(`${r}:trace`)&&Ie.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=Ie(`${r}:trace`,e)),Object.assign(Ie(r,e),{error:Ie(`${r}:error`,e),trace:t,newScope:n=>it(`${r}:${n}`,e)})}function wa(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var rn=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Z=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},nn=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var on=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var at=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},hr=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var sn=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Vt=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},an=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}},cn=class extends Error{static name="AlreadyStartedError";constructor(e="Already started"){super(e),this.name="AlreadyStartedError"}};var pr=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var un=class extends Event{data;constructor(e,t){super("message",t),this.data=e}},$t=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}},ln=class extends $t{constructor(e,t){super(!0,e,t)}},fn=class extends $t{constructor(e,t){super(!1,e,t)}};var ls=Symbol.for("@libp2p/peer-id");var Aa=Symbol.for("@libp2p/transport");var Ia;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Ia||(Ia={}));var La=oe("node:events"),dn=(r,...e)=>{try{(0,La.setMaxListeners)(r,...e)}catch{}};var Gt=class extends EventTarget{#e=new Map;constructor(){super(),dn(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Ta=Symbol.for("@libp2p/service-capabilities"),hm=Symbol.for("@libp2p/service-dependencies");function Ce(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var Da=oe("node:buffer");function ze(r,e){return ht(Da.Buffer.concat(r,e))}var Oa=Symbol.for("@achingbrain/uint8arraylist");function Ca(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function hn(r){return!!r?.[Oa]}var H=class r{bufs;length;[Oa]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(hn(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(hn(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=Ca(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Ca(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(hn(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return ze(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:ze(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===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,e>=c)continue;let f=e>=a&&e<c,u=t>a&&t<=c;if(f&&u){if(e===a&&t===c){n.push(i);break}let l=e-a;n.push(i.subarray(l,l+(t-e)));break}if(f){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(u){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!hn(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;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 l=0;l<s;l++)i[l]=-1;for(let l=0;l<o;l++)i[n[l]]=l;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let l=t;l<=c;l+=u){u=0;for(let h=f;h>=0;h--){let d=this.get(l+h);if(n[h]!==d){u=Math.max(1,h-a[d]);break}}if(u===0)return l}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=Ye(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=Ye(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=Ye(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=Ye(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=Ye(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=Ye(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=Ye(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=Ye(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Ce(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var _a=oe("node:buffer");function te(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?_a.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}var pf=parseInt("11111",2),fs=parseInt("10000000",2),mf=parseInt("01111111",2),Ba={0:mr,1:mr,2:bf,3:Ef,4:xf,5:gf,6:yf,16:mr,22:mr,48:mr};function ds(r,e={offset:0}){let t=r[e.offset]&pf;if(e.offset++,Ba[t]!=null)return Ba[t](r,e);throw new Error("No decoder for tag "+t)}function br(r,e){let t=0;if((r[e.offset]&fs)===fs){let n=r[e.offset]&mf,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(o,16)}else t=r[e.offset],e.offset++;return t}function mr(r,e){br(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=ds(r,e);if(n===null)break;t.push(n)}return t}function bf(r,e){let t=br(r,e),n=e.offset,o=e.offset+t,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return e.offset+=t,Uint8Array.from(s)}function yf(r,e){let t=br(r,e),n=e.offset+t,o=r[e.offset];e.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(;e.offset<n;){let f=r[e.offset];if(e.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let l=0;l<c.length;l++)u+=c[l]<<l*7;a+=`.${u}`,c=[]}}return a}function gf(r,e){return e.offset++,null}function Ef(r,e){let t=br(r,e),n=r[e.offset];e.offset++;let o=r.subarray(e.offset,e.offset+t-1);if(e.offset+=t,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function xf(r,e){let t=br(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function wf(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new H;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function hs(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=wf(r.byteLength);return new H(Uint8Array.from([e.byteLength|fs]),e)}function Pa(r){let e=new H,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new H(Uint8Array.from([2]),hs(e),e)}function Na(r){let e=Uint8Array.from([0]),t=new H(e,r);return new H(Uint8Array.from([3]),hs(t),t)}function pn(r,e=48){let t=new H;for(let n of r)t.append(n);return new H(Uint8Array.from([e]),hs(t),t)}async function Ra(r,e,t,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,e,t.subarray());return n?.signal?.throwIfAborted(),s}var vf=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Sf=Uint8Array.from([6,5,43,129,4,0,34]),If=Uint8Array.from([6,5,43,129,4,0,35]),Af={ext:!0,kty:"EC",crv:"P-256"},Lf={ext:!0,kty:"EC",crv:"P-384"},Tf={ext:!0,kty:"EC",crv:"P-521"},ps=32,ms=48,bs=66;function ka(r){let e=ds(r);return Ua(e)}function Ua(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===ps*2+1)return n=te(e.subarray(t,t+ps),"base64url"),o=te(e.subarray(t+ps),"base64url"),new Ft({...Af,key_ops:["verify"],x:n,y:o});if(e.byteLength===ms*2+1)return n=te(e.subarray(t,t+ms),"base64url"),o=te(e.subarray(t+ms),"base64url"),new Ft({...Lf,key_ops:["verify"],x:n,y:o});if(e.byteLength===bs*2+1)return n=te(e.subarray(t,t+bs),"base64url"),o=te(e.subarray(t+bs),"base64url"),new Ft({...Tf,key_ops:["verify"],x:n,y:o});throw new Z(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function Ma(r){return pn([Pa(Uint8Array.from([1])),pn([Df(r.crv)],160),pn([Na(new H(Uint8Array.from([4]),ye(r.x??"","base64url"),ye(r.y??"","base64url")))],161)]).subarray()}function Df(r){if(r==="P-256")return vf;if(r==="P-384")return Sf;if(r==="P-521")return If;throw new Z(`Invalid curve ${r}`)}var Ft=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=Ma(this.jwk)),this._raw}toMultihash(){return Me.digest(ct(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}async verify(e,t,n){return Ra(this.jwk,t,e,n)}};var mn=Te(oe("crypto"),1);var Eb=mn.default.generateKeyPairSync,yr=32;var Cf=64;function Ka(r,e,t){if(r.byteLength!==yr)throw new TypeError('"key" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==Cf)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=mn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:te(r,"base64url"),kty:"OKP"}});return mn.default.verify(null,t instanceof Uint8Array?t:t.subarray(),n,e)}function Va(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var bn=class{type="Ed25519";raw;constructor(e){this.raw=ys(e,yr)}toMultihash(){return Me.digest(ct(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=Ka(this.raw,t,e);return Va(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function $a(r){return r=ys(r,yr),new bn(r)}function ys(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new Z(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var Oe;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(Oe||(Oe={}));var gs;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(gs||(gs={}));(function(r){r.codec=()=>Ke(gs)})(Oe||(Oe={}));var gr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),Oe.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=Oe.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(gr||(gr={}));var Es;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),Oe.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=Oe.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(Es||(Es={}));function Er(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function We(r,e=""){if(!Number.isSafeInteger(r)||r<0){let t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${r}`)}}function K(r,e,t=""){let n=Er(r),o=r?.length,s=e!==void 0;if(!n||s&&o!==e){let i=t&&`"${t}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return r}function yn(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash must wrapped by utils.createHasher");We(r.outputLen),We(r.blockLen)}function zt(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function Fa(r,e){K(r,void 0,"digestInto() output");let t=e.outputLen;if(r.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function xt(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function gn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function He(r,e){return r<<32-e|r>>>e}var za=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Bf=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function wt(r){if(K(r),za)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=Bf[r[t]];return e}var Xe={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ga(r){if(r>=Xe._0&&r<=Xe._9)return r-Xe._0;if(r>=Xe.A&&r<=Xe.F)return r-(Xe.A-10);if(r>=Xe.a&&r<=Xe.f)return r-(Xe.a-10)}function vt(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(za)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=Ga(r.charCodeAt(s)),a=Ga(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ve(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];K(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Wa(r,e={}){let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function En(r=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(r))}var qa=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ya(r,e,t){return r&e^~r&t}function Za(r,e,t){return r&e^r&t^e&t}var xn=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,o){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=gn(this.buffer)}update(e){zt(this),K(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=gn(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){zt(this),Fa(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,xt(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let l=i;l<o;l++)t[l]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=gn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let f=c/4,u=this.get();if(f>u.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<f;l++)a.setUint32(4*l,u[l],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Qe=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Pf=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]),ut=new Uint32Array(64),xs=class extends xn{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)ut[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let h=ut[l-15],d=ut[l-2],b=He(h,7)^He(h,18)^h>>>3,x=He(d,17)^He(d,19)^d>>>10;ut[l]=x+ut[l-7]+b+ut[l-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let l=0;l<64;l++){let h=He(a,6)^He(a,11)^He(a,25),d=u+h+Ya(a,c,f)+Pf[l]+ut[l]|0,x=(He(n,2)^He(n,13)^He(n,22))+Za(n,o,s)|0;u=f,f=c,c=a,a=i+d|0,i=s,s=o,o=n,n=d+x|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(){xt(ut)}destroy(){this.set(0,0,0,0,0,0,0,0),xt(this.buffer)}},ws=class extends xs{A=Qe[0]|0;B=Qe[1]|0;C=Qe[2]|0;D=Qe[3]|0;E=Qe[4]|0;F=Qe[5]|0;G=Qe[6]|0;H=Qe[7]|0;constructor(){super(32)}};var ja=Wa(()=>new ws,qa(1));var Lc=Te(oe("node:crypto"),1);var Ss=BigInt(0),vs=BigInt(1);function xr(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}" `;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Xa(r){if(typeof r=="bigint"){if(!wn(r))throw new Error("positive bigint expected, got "+r)}else We(r);return r}function wr(r){let e=Xa(r).toString(16);return e.length&1?"0"+e:e}function Qa(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?Ss:BigInt("0x"+r)}function Wt(r){return Qa(wt(r))}function Is(r){return Qa(wt(Nf(K(r)).reverse()))}function vn(r,e){We(e),r=Xa(r);let t=vt(r.toString(16).padStart(e*2,"0"));if(t.length!==e)throw new Error("number too large");return t}function As(r,e){return vn(r,e).reverse()}function Nf(r){return Uint8Array.from(r)}var wn=r=>typeof r=="bigint"&&Ss<=r;function Rf(r,e,t){return wn(r)&&wn(e)&&wn(t)&&e<=r&&r<t}function Ja(r,e,t,n){if(!Rf(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Ls(r){let e;for(e=0;r>Ss;r>>=vs,e+=1);return e}var vr=r=>(vs<<BigInt(r))-vs;function ec(r,e,t){if(We(r,"hashLen"),We(e,"qByteLen"),typeof t!="function")throw new Error("hmacFn must be a function");let n=y=>new Uint8Array(y),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),f=n(r),u=0,l=()=>{c.fill(1),f.fill(0),u=0},h=(...y)=>t(f,Ve(c,...y)),d=(y=o)=>{f=h(s,y),c=h(),y.length!==0&&(f=h(i,y),c=h())},b=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let y=0,w=[];for(;y<e;){c=h();let O=c.slice();w.push(O),y+=c.length}return Ve(...w)};return(y,w)=>{l(),d(y);let O;for(;!(O=w(b()));)d();return l(),O}}function Sr(r,e={},t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function n(s,i,a){let c=r[s];if(a&&c===void 0)return;let f=typeof c;if(f!==i||c===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${f}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(e,!1),o(t,!0)}function Ts(r){let e=new WeakMap;return(t,...n)=>{let o=e.get(t);if(o!==void 0)return o;let s=r(t,...n);return e.set(t,s),s}}var we=BigInt(0),ge=BigInt(1),St=BigInt(2),nc=BigInt(3),oc=BigInt(4),sc=BigInt(5),kf=BigInt(7),ic=BigInt(8),Uf=BigInt(9),ac=BigInt(16);function $e(r,e){let t=r%e;return t>=we?t:e+t}function _e(r,e,t){let n=r;for(;e-- >we;)n*=n,n%=t;return n}function tc(r,e){if(r===we)throw new Error("invert: expected non-zero number");if(e<=we)throw new Error("invert: expected positive modulus, got "+e);let t=$e(r,e),n=e,o=we,s=ge,i=ge,a=we;for(;t!==we;){let f=n/t,u=n%t,l=o-i*f,h=s-a*f;n=t,t=u,o=i,s=a,i=l,a=h}if(n!==ge)throw new Error("invert: does not exist");return $e(o,e)}function Cs(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function cc(r,e){let t=(r.ORDER+ge)/oc,n=r.pow(e,t);return Cs(r,n,e),n}function Mf(r,e){let t=(r.ORDER-sc)/ic,n=r.mul(e,St),o=r.pow(n,t),s=r.mul(e,o),i=r.mul(r.mul(s,St),o),a=r.mul(s,r.sub(i,r.ONE));return Cs(r,a,e),a}function Kf(r){let e=qt(r),t=uc(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+kf)/ac;return(a,c)=>{let f=a.pow(c,i),u=a.mul(f,n),l=a.mul(f,o),h=a.mul(f,s),d=a.eql(a.sqr(u),c),b=a.eql(a.sqr(l),c);f=a.cmov(f,u,d),u=a.cmov(h,l,b);let x=a.eql(a.sqr(u),c),y=a.cmov(f,u,x);return Cs(a,y,c),y}}function uc(r){if(r<nc)throw new Error("sqrt is not defined for small field");let e=r-ge,t=0;for(;e%St===we;)e/=St,t++;let n=St,o=qt(r);for(;rc(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return cc;let s=o.pow(n,e),i=(e+ge)/St;return function(c,f){if(c.is0(f))return f;if(rc(c,f)!==1)throw new Error("Cannot find square root");let u=t,l=c.mul(c.ONE,s),h=c.pow(f,e),d=c.pow(f,i);for(;!c.eql(h,c.ONE);){if(c.is0(h))return c.ZERO;let b=1,x=c.sqr(h);for(;!c.eql(x,c.ONE);)if(b++,x=c.sqr(x),b===u)throw new Error("Cannot find square root");let y=ge<<BigInt(u-b-1),w=c.pow(l,y);u=b,l=c.sqr(w),h=c.mul(h,l),d=c.mul(d,w)}return d}}function Hf(r){return r%oc===nc?cc:r%ic===sc?Mf:r%ac===Uf?Kf(r):uc(r)}var Vf=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Os(r){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},t=Vf.reduce((n,o)=>(n[o]="function",n),e);return Sr(r,t),r}function $f(r,e,t){if(t<we)throw new Error("invalid exponent, negatives unsupported");if(t===we)return r.ONE;if(t===ge)return e;let n=r.ONE,o=e;for(;t>we;)t&ge&&(n=r.mul(n,o)),o=r.sqr(o),t>>=ge;return n}function Sn(r,e,t=!1){let n=new Array(e.length).fill(t?r.ZERO:void 0),o=e.reduce((i,a,c)=>r.is0(a)?i:(n[c]=i,r.mul(i,a)),r.ONE),s=r.inv(o);return e.reduceRight((i,a,c)=>r.is0(a)?i:(n[c]=r.mul(i,n[c]),r.mul(i,a)),s),n}function rc(r,e){let t=(r.ORDER-ge)/St,n=r.pow(e,t),o=r.eql(n,r.ONE),s=r.eql(n,r.ZERO),i=r.eql(n,r.neg(r.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function Gf(r,e){e!==void 0&&We(e);let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}var Ds=class{ORDER;BITS;BYTES;isLE;ZERO=we;ONE=ge;_lengths;_sqrt;_mod;constructor(e,t={}){if(e<=we)throw new Error("invalid field: expected ORDER > 0, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&(this.sqrt=t.sqrt),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=t.allowedLengths?.slice()),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=Gf(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return $e(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return we<=e&&e<this.ORDER}is0(e){return e===we}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&ge)===ge}neg(e){return $e(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return $e(e*e,this.ORDER)}add(e,t){return $e(e+t,this.ORDER)}sub(e,t){return $e(e-t,this.ORDER)}mul(e,t){return $e(e*t,this.ORDER)}pow(e,t){return $f(this,e,t)}div(e,t){return $e(e*tc(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return tc(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=Hf(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?As(e,this.BYTES):vn(e,this.BYTES)}fromBytes(e,t=!1){K(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let f=new Uint8Array(o);f.set(e,s?0:f.length-e.length),e=f}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Is(e):Wt(e);if(a&&(c=$e(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Sn(this,e)}cmov(e,t,n){return n?t:e}};function qt(r,e={}){return new Ds(r,e)}function lc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function _s(r){let e=lc(r);return e+Math.ceil(e/2)}function Bs(r,e,t=!1){K(r);let n=r.length,o=lc(e),s=_s(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?Is(r):Wt(r),a=$e(i,e-ge)+ge;return t?As(a,o):vn(a,o)}var Yt=BigInt(0),It=BigInt(1);function Ir(r,e){let t=e.negate();return r?t:e}function ks(r,e){let t=Sn(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function pc(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Ps(r,e){pc(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1),o=2**r,s=vr(r),i=BigInt(r);return{windows:t,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function fc(r,e,t){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=t,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=It);let f=e*n,u=f+Math.abs(a)-1,l=a===0,h=a<0,d=e%2!==0;return{nextN:c,offset:u,isZero:l,isNeg:h,isNegF:d,offsetF:f}}var Ns=new WeakMap,mc=new WeakMap;function Rs(r){return mc.get(r)||1}function dc(r){if(r!==Yt)throw new Error("invalid wNAF")}var In=class{BASE;ZERO;Fn;bits;constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let o=e;for(;t>Yt;)t&It&&(n=n.add(o)),o=o.double(),t>>=It;return n}precomputeWindow(e,t){let{windows:n,windowSize:o}=Ps(t,this.bits),s=[],i=e,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let f=1;f<o;f++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Ps(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:l,isNegF:h,offsetF:d}=fc(n,a,i);n=c,u?s=s.add(Ir(h,t[d])):o=o.add(Ir(l,t[f]))}return dc(n),{p:o,f:s}}wNAFUnsafe(e,t,n,o=this.ZERO){let s=Ps(e,this.bits);for(let i=0;i<s.windows&&n!==Yt;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=fc(n,i,s);if(n=a,!f){let l=t[c];o=o.add(u?l.negate():l)}}return dc(n),o}getPrecomputes(e,t,n){let o=Ns.get(t);return o||(o=this.precomputeWindow(t,e),e!==1&&(typeof n=="function"&&(o=n(o)),Ns.set(t,o))),o}cached(e,t,n){let o=Rs(e);return this.wNAF(o,this.getPrecomputes(o,e,n),t)}unsafe(e,t,n,o){let s=Rs(e);return s===1?this._unsafeLadder(e,t,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,o)}createCache(e,t){pc(t,this.bits),mc.set(e,t),Ns.delete(e)}hasCache(e){return Rs(e)!==1}};function bc(r,e,t,n){let o=e,s=r.ZERO,i=r.ZERO;for(;t>Yt||n>Yt;)t&It&&(s=s.add(o)),n&It&&(i=i.add(o)),o=o.double(),t>>=It,n>>=It;return{p1:s,p2:i}}function hc(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Os(e),e}else return qt(r,{isLE:t})}function yc(r,e,t={},n){if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let f=e[c];if(!(typeof f=="bigint"&&f>Yt))throw new Error(`CURVE.${c} must be positive bigint`)}let o=hc(e.p,t.Fp,n),s=hc(e.n,t.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function gc(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var An=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){if(yn(e),K(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(t.length>n?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),xt(o)}update(e){return zt(this),this.iHash.update(e),this}digestInto(e){zt(this),K(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Us=(r,e,t)=>new An(r,e).update(t).digest();Us.create=(r,e)=>new An(r,e);var Ec=(r,e)=>(r+(r>=0?e:-e)/xc)/e;function Ff(r,e,t){let[[n,o],[s,i]]=e,a=Ec(i*r,t),c=Ec(-o*r,t),f=r-a*n-c*s,u=-a*o-c*i,l=f<Je,h=u<Je;l&&(f=-f),h&&(u=-u);let d=vr(Math.ceil(Ls(t)/2))+Zt;if(f<Je||f>=d||u<Je||u>=d)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:l,k1:f,k2neg:h,k2:u}}function Ks(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function Ms(r,e){let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return xr(t.lowS,"lowS"),xr(t.prehash,"prehash"),t.format!==void 0&&Ks(t.format),t}var Hs=class extends Error{constructor(e=""){super(e)}},lt={Err:Hs,_tlv:{encode:(r,e)=>{let{Err:t}=lt;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=wr(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?wr(o.length/2|128):"";return wr(r)+s+o+e},decode(r,e){let{Err:t}=lt,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let o=e[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let f=e.subarray(n,n+c);if(f.length!==c)throw new t("tlv.decode: length bytes not complete");if(f[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=lt;if(r<Je)throw new e("integer: negative integers are not allowed");let t=wr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=lt;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Wt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=lt,o=K(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("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 e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(f)}},hexFromSig(r){let{_tlv:e,_int:t}=lt,n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},Je=BigInt(0),Zt=BigInt(1),xc=BigInt(2),Ln=BigInt(3),zf=BigInt(4);function wc(r,e={}){let t=yc("weierstrass",r,e),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i,n:a}=s;Sr(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;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 f=Sc(n,o);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function l(M,g,m){let{x:p,y:E}=g.toAffine(),S=n.toBytes(p);if(xr(m,"isCompressed"),m){u();let L=!n.isOdd(E);return Ve(vc(L),S)}else return Ve(Uint8Array.of(4),S,n.toBytes(E))}function h(M){K(M,void 0,"Point");let{publicKey:g,publicKeyUncompressed:m}=f,p=M.length,E=M[0],S=M.subarray(1);if(p===g&&(E===2||E===3)){let L=n.fromBytes(S);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let A=x(L),v;try{v=n.sqrt(A)}catch(ne){let F=ne instanceof Error?": "+ne.message:"";throw new Error("bad point: is not on curve, sqrt error"+F)}u();let T=n.isOdd(v);return(E&1)===1!==T&&(v=n.neg(v)),{x:L,y:v}}else if(p===m&&E===4){let L=n.BYTES,A=n.fromBytes(S.subarray(0,L)),v=n.fromBytes(S.subarray(L,L*2));if(!y(A,v))throw new Error("bad point: is not on curve");return{x:A,y:v}}else throw new Error(`bad point: got length ${p}, expected compressed=${g} or uncompressed=${m}`)}let d=e.toBytes||l,b=e.fromBytes||h;function x(M){let g=n.sqr(M),m=n.mul(g,M);return n.add(n.add(m,n.mul(M,s.a)),s.b)}function y(M,g){let m=n.sqr(g),p=x(M);return n.eql(m,p)}if(!y(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let w=n.mul(n.pow(s.a,Ln),zf),O=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(w,O)))throw new Error("bad curve params: a or b");function P(M,g,m=!1){if(!n.isValid(g)||m&&n.is0(g))throw new Error(`bad point coordinate ${M}`);return g}function R(M){if(!(M instanceof C))throw new Error("Weierstrass Point expected")}function V(M){if(!c||!c.basises)throw new Error("no endo");return Ff(M,c.basises,o.ORDER)}let ie=Ts((M,g)=>{let{X:m,Y:p,Z:E}=M;if(n.eql(E,n.ONE))return{x:m,y:p};let S=M.is0();g==null&&(g=S?n.ONE:n.inv(E));let L=n.mul(m,g),A=n.mul(p,g),v=n.mul(E,g);if(S)return{x:n.ZERO,y:n.ZERO};if(!n.eql(v,n.ONE))throw new Error("invZ was invalid");return{x:L,y:A}}),re=Ts(M=>{if(M.is0()){if(e.allowInfinityPoint&&!n.is0(M.Y))return;throw new Error("bad point: ZERO")}let{x:g,y:m}=M.toAffine();if(!n.isValid(g)||!n.isValid(m))throw new Error("bad point: x or y not field elements");if(!y(g,m))throw new Error("bad point: equation left != right");if(!M.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function le(M,g,m,p,E){return m=new C(n.mul(m.X,M),m.Y,m.Z),g=Ir(p,g),m=Ir(E,m),g.add(m)}class C{static BASE=new C(s.Gx,s.Gy,n.ONE);static ZERO=new C(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(g,m,p){this.X=P("x",g),this.Y=P("y",m,!0),this.Z=P("z",p),Object.freeze(this)}static CURVE(){return s}static fromAffine(g){let{x:m,y:p}=g||{};if(!g||!n.isValid(m)||!n.isValid(p))throw new Error("invalid affine point");if(g instanceof C)throw new Error("projective point not allowed");return n.is0(m)&&n.is0(p)?C.ZERO:new C(m,p,n.ONE)}static fromBytes(g){let m=C.fromAffine(b(K(g,void 0,"point")));return m.assertValidity(),m}static fromHex(g){return C.fromBytes(vt(g))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(g=8,m=!0){return dt.createCache(this,g),m||this.multiply(Ln),this}assertValidity(){re(this)}hasEvenY(){let{y:g}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(g)}equals(g){R(g);let{X:m,Y:p,Z:E}=this,{X:S,Y:L,Z:A}=g,v=n.eql(n.mul(m,A),n.mul(S,E)),T=n.eql(n.mul(p,A),n.mul(L,E));return v&&T}negate(){return new C(this.X,n.neg(this.Y),this.Z)}double(){let{a:g,b:m}=s,p=n.mul(m,Ln),{X:E,Y:S,Z:L}=this,A=n.ZERO,v=n.ZERO,T=n.ZERO,D=n.mul(E,E),ne=n.mul(S,S),F=n.mul(L,L),B=n.mul(E,S);return B=n.add(B,B),T=n.mul(E,L),T=n.add(T,T),A=n.mul(g,T),v=n.mul(p,F),v=n.add(A,v),A=n.sub(ne,v),v=n.add(ne,v),v=n.mul(A,v),A=n.mul(B,A),T=n.mul(p,T),F=n.mul(g,F),B=n.sub(D,F),B=n.mul(g,B),B=n.add(B,T),T=n.add(D,D),D=n.add(T,D),D=n.add(D,F),D=n.mul(D,B),v=n.add(v,D),F=n.mul(S,L),F=n.add(F,F),D=n.mul(F,B),A=n.sub(A,D),T=n.mul(F,ne),T=n.add(T,T),T=n.add(T,T),new C(A,v,T)}add(g){R(g);let{X:m,Y:p,Z:E}=this,{X:S,Y:L,Z:A}=g,v=n.ZERO,T=n.ZERO,D=n.ZERO,ne=s.a,F=n.mul(s.b,Ln),B=n.mul(m,S),j=n.mul(p,L),fe=n.mul(E,A),Ge=n.add(m,p),X=n.add(S,L);Ge=n.mul(Ge,X),X=n.add(B,j),Ge=n.sub(Ge,X),X=n.add(m,E);let pe=n.add(S,A);return X=n.mul(X,pe),pe=n.add(B,fe),X=n.sub(X,pe),pe=n.add(p,E),v=n.add(L,A),pe=n.mul(pe,v),v=n.add(j,fe),pe=n.sub(pe,v),D=n.mul(ne,X),v=n.mul(F,fe),D=n.add(v,D),v=n.sub(j,D),D=n.add(j,D),T=n.mul(v,D),j=n.add(B,B),j=n.add(j,B),fe=n.mul(ne,fe),X=n.mul(F,X),j=n.add(j,fe),fe=n.sub(B,fe),fe=n.mul(ne,fe),X=n.add(X,fe),B=n.mul(j,X),T=n.add(T,B),B=n.mul(pe,X),v=n.mul(Ge,v),v=n.sub(v,B),B=n.mul(Ge,j),D=n.mul(pe,D),D=n.add(D,B),new C(v,T,D)}subtract(g){return this.add(g.negate())}is0(){return this.equals(C.ZERO)}multiply(g){let{endo:m}=e;if(!o.isValidNot0(g))throw new Error("invalid scalar: out of range");let p,E,S=L=>dt.cached(this,L,A=>ks(C,A));if(m){let{k1neg:L,k1:A,k2neg:v,k2:T}=V(g),{p:D,f:ne}=S(A),{p:F,f:B}=S(T);E=ne.add(B),p=le(m.beta,D,F,L,v)}else{let{p:L,f:A}=S(g);p=L,E=A}return ks(C,[p,E])[0]}multiplyUnsafe(g){let{endo:m}=e,p=this;if(!o.isValid(g))throw new Error("invalid scalar: out of range");if(g===Je||p.is0())return C.ZERO;if(g===Zt)return p;if(dt.hasCache(this))return this.multiply(g);if(m){let{k1neg:E,k1:S,k2neg:L,k2:A}=V(g),{p1:v,p2:T}=bc(C,p,S,A);return le(m.beta,v,T,E,L)}else return dt.unsafe(p,g)}toAffine(g){return ie(this,g)}isTorsionFree(){let{isTorsionFree:g}=e;return i===Zt?!0:g?g(C,this):dt.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:g}=e;return i===Zt?this:g?g(C,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(g=!0){return xr(g,"isCompressed"),this.assertValidity(),d(C,this,g)}toHex(g=!0){return wt(this.toBytes(g))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let _t=o.BITS,dt=new In(C,e.endo?Math.ceil(_t/2):_t);return C.BASE.precompute(8),C}function vc(r){return Uint8Array.of(r?2:3)}function Sc(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function Wf(r,e={}){let{Fn:t}=r,n=e.randomBytes||En,o=Object.assign(Sc(r.Fp,t),{seed:_s(t.ORDER)});function s(d){try{let b=t.fromBytes(d);return t.isValidNot0(b)}catch{return!1}}function i(d,b){let{publicKey:x,publicKeyUncompressed:y}=o;try{let w=d.length;return b===!0&&w!==x||b===!1&&w!==y?!1:!!r.fromBytes(d)}catch{return!1}}function a(d=n(o.seed)){return Bs(K(d,o.seed,"seed"),t.ORDER)}function c(d,b=!0){return r.BASE.multiply(t.fromBytes(d)).toBytes(b)}function f(d){let{secretKey:b,publicKey:x,publicKeyUncompressed:y}=o;if(!Er(d)||"_lengths"in t&&t._lengths||b===x)return;let w=K(d,void 0,"key").length;return w===x||w===y}function u(d,b,x=!0){if(f(d)===!0)throw new Error("first arg must be private key");if(f(b)===!1)throw new Error("second arg must be public key");let y=t.fromBytes(d);return r.fromBytes(b).multiply(y).toBytes(x)}let l={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},h=gc(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:h,Point:r,utils:l,lengths:o})}function Ic(r,e,t={}){yn(e),Sr(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),t=Object.assign({},t);let n=t.randomBytes||En,o=t.hmac||((m,p)=>Us(e,m,p)),{Fp:s,Fn:i}=r,{ORDER:a,BITS:c}=i,{keygen:f,getPublicKey:u,getSharedSecret:l,utils:h,lengths:d}=Wf(r,t),b={prehash:!0,lowS:typeof t.lowS=="boolean"?t.lowS:!0,format:"compact",extraEntropy:!1},x=a*xc<s.ORDER;function y(m){let p=a>>Zt;return m>p}function w(m,p){if(!i.isValidNot0(p))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return p}function O(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function P(m,p){Ks(p);let E=d.signature,S=p==="compact"?E:p==="recovered"?E+1:void 0;return K(m,S)}class R{r;s;recovery;constructor(p,E,S){if(this.r=w("r",p),this.s=w("s",E),S!=null){if(O(),![0,1,2,3].includes(S))throw new Error("invalid recovery id");this.recovery=S}Object.freeze(this)}static fromBytes(p,E=b.format){P(p,E);let S;if(E==="der"){let{r:T,s:D}=lt.toSig(K(p));return new R(T,D)}E==="recovered"&&(S=p[0],E="compact",p=p.subarray(1));let L=d.signature/2,A=p.subarray(0,L),v=p.subarray(L,L*2);return new R(i.fromBytes(A),i.fromBytes(v),S)}static fromHex(p,E){return this.fromBytes(vt(p),E)}assertRecovery(){let{recovery:p}=this;if(p==null)throw new Error("invalid recovery id: must be present");return p}addRecoveryBit(p){return new R(this.r,this.s,p)}recoverPublicKey(p){let{r:E,s:S}=this,L=this.assertRecovery(),A=L===2||L===3?E+a:E;if(!s.isValid(A))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let v=s.toBytes(A),T=r.fromBytes(Ve(vc((L&1)===0),v)),D=i.inv(A),ne=ie(K(p,void 0,"msgHash")),F=i.create(-ne*D),B=i.create(S*D),j=r.BASE.multiplyUnsafe(F).add(T.multiplyUnsafe(B));if(j.is0())throw new Error("invalid recovery: point at infinify");return j.assertValidity(),j}hasHighS(){return y(this.s)}toBytes(p=b.format){if(Ks(p),p==="der")return vt(lt.hexFromSig(this));let{r:E,s:S}=this,L=i.toBytes(E),A=i.toBytes(S);return p==="recovered"?(O(),Ve(Uint8Array.of(this.assertRecovery()),L,A)):Ve(L,A)}toHex(p){return wt(this.toBytes(p))}}let V=t.bits2int||function(p){if(p.length>8192)throw new Error("input is too large");let E=Wt(p),S=p.length*8-c;return S>0?E>>BigInt(S):E},ie=t.bits2int_modN||function(p){return i.create(V(p))},re=vr(c);function le(m){return Ja("num < 2^"+c,m,Je,re),i.toBytes(m)}function C(m,p){return K(m,void 0,"message"),p?K(e(m),void 0,"prehashed message"):m}function _t(m,p,E){let{lowS:S,prehash:L,extraEntropy:A}=Ms(E,b);m=C(m,L);let v=ie(m),T=i.fromBytes(p);if(!i.isValidNot0(T))throw new Error("invalid private key");let D=[le(T),le(v)];if(A!=null&&A!==!1){let j=A===!0?n(d.secretKey):A;D.push(K(j,void 0,"extraEntropy"))}let ne=Ve(...D),F=v;function B(j){let fe=V(j);if(!i.isValidNot0(fe))return;let Ge=i.inv(fe),X=r.BASE.multiply(fe).toAffine(),pe=i.create(X.x);if(pe===Je)return;let Pr=i.create(Ge*i.create(F+pe*T));if(Pr===Je)return;let ki=(X.x===pe?0:2)|Number(X.y&Zt),Ui=Pr;return S&&y(Pr)&&(Ui=i.neg(Pr),ki^=1),new R(pe,Ui,x?void 0:ki)}return{seed:ne,k2sig:B}}function dt(m,p,E={}){let{seed:S,k2sig:L}=_t(m,p,E);return ec(e.outputLen,i.BYTES,o)(S,L).toBytes(E.format)}function M(m,p,E,S={}){let{lowS:L,prehash:A,format:v}=Ms(S,b);if(E=K(E,void 0,"publicKey"),p=C(p,A),!Er(m)){let T=m instanceof R?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+T)}P(m,v);try{let T=R.fromBytes(m,v),D=r.fromBytes(E);if(L&&T.hasHighS())return!1;let{r:ne,s:F}=T,B=ie(p),j=i.inv(F),fe=i.create(B*j),Ge=i.create(ne*j),X=r.BASE.multiplyUnsafe(fe).add(D.multiplyUnsafe(Ge));return X.is0()?!1:i.create(X.x)===ne}catch{return!1}}function g(m,p,E={}){let{prehash:S}=Ms(E,b);return p=C(p,S),R.fromBytes(m,"recovered").recoverPublicKey(p).toBytes()}return Object.freeze({keygen:f,getPublicKey:u,getSharedSecret:l,utils:h,lengths:d,Point:r,sign:dt,verify:M,recoverPublicKey:g,Signature:R,hash:e})}var $s={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},qf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Ac=BigInt(2);function Yf(r){let e=$s.p,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=r*r*r%e,u=f*f*r%e,l=_e(u,t,e)*u%e,h=_e(l,t,e)*u%e,d=_e(h,Ac,e)*f%e,b=_e(d,o,e)*d%e,x=_e(b,s,e)*b%e,y=_e(x,a,e)*x%e,w=_e(y,c,e)*y%e,O=_e(w,a,e)*x%e,P=_e(O,t,e)*u%e,R=_e(P,i,e)*b%e,V=_e(R,n,e)*f%e,ie=_e(V,Ac,e);if(!Vs.eql(Vs.sqr(ie),r))throw new Error("Cannot find square root");return ie}var Vs=qt($s.p,{sqrt:Yf}),Zf=wc($s,{Fp:Vs,endo:qf}),Ar=Ic(Zf,ja);var Tn=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}};function Tc(r,e,t,n){n?.signal?.throwIfAborted();let o=Lc.default.createHash("sha256");if(t instanceof Uint8Array)o.update(t);else for(let i of t)o.update(i);let s=o.digest();try{return Ar.verify(e,s,r,{prehash:!1,format:"der"})}catch(i){throw new Tn(String(i))}}var Dn=class{type="secp256k1";raw;_key;constructor(e){this._key=Cc(e),this.raw=Dc(this._key)}toMultihash(){return Me.digest(ct(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){return Tc(this._key,t,e,n)}};function Oc(r){return new Dn(r)}function Dc(r){return Ar.Point.fromBytes(r).toBytes()}function Cc(r){try{return Ar.Point.fromBytes(r),r}catch(e){throw new nn(String(e))}}function _c(r){let{Type:e,Data:t}=gr.decode(r.digest),n=t??new Uint8Array;switch(e){case Oe.Ed25519:return $a(n);case Oe.secp256k1:return Oc(n);case Oe.ECDSA:return ka(n);default:throw new pr}}function ct(r){return gr.encode({Type:Oe[r.type],Data:r.raw})}var Bc=Symbol.for("nodejs.util.inspect.custom"),jf=114,Lr=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ls]=!0;toString(){return this.string==null&&(this.string=J.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return se.createV1(jf,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ce(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Ce(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Bc](){return`PeerId(${this.toString()})`}},Cn=class extends Lr{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},On=class extends Lr{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},_n=class extends Lr{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Xf=2336,Bn=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=Me.digest(ye(this.url))}[Bc](){return`PeerId(${this.url})`}[ls]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return se.createV1(Xf,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=te(e)),e.toString()===this.toString())}};function jt(r){if(Jf(r))return new Cn({multihash:r});if(Qf(r))try{let e=_c(r);if(e.type==="Ed25519")return new On({multihash:r,publicKey:e});if(e.type==="secp256k1")return new _n({multihash:r,publicKey:e})}catch{let t=te(r.digest);return new Bn(new URL(t))}throw new sn("Supplied PeerID Multihash is invalid")}function Qf(r){return r.code===Me.code}function Jf(r){return r.code===Qo.code}var gu=Te(oe("net"),1);var he=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},et=class extends Error{static name="ValidationError";name="ValidationError"},Pn=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Nn=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};var Be=oe("node:net");function Fs(r){return e=>te(e,r)}function zs(r){return e=>ye(e,r)}function Xt(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function At(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function Pc(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=ye(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=At(n);return ze([t,o],t.length+o.length)}function Nc(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=Fe.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=At(n);return ze([t,o],t.length+o.length)}function Ws(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=te(e,"base32"),o=Xt(t);return`${n}:${o}`}var qs=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new he("Invalid byte value in IP address");e[n]=o}),e},Rc=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=(0,Be.isIPv4)(t[n]),i;s&&(i=qs(t[n]),t[n]=te(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,te(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new he("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},kc=function(r){if(r.byteLength!==4)throw new he("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},Uc=function(r){if(r.byteLength!==16)throw new he("IPv6 address was incorrect length");let e=[];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")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${t}"`)}};function Mc(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${r}"`)}}var Gs=Object.values(cr).map(r=>r.decoder),ed=(function(){let r=Gs[0].or(Gs[1]);return Gs.slice(2).forEach(e=>r=r.or(e)),r})();function Kc(r){return ed.decode(r)}function Hc(r){return e=>r.encoder.encode(e)}function td(r){if(parseInt(r).toString()!==r)throw new et("Value must be an integer")}function rd(r){if(r<0)throw new et("Value must be a positive integer, or zero")}function nd(r){return e=>{if(e>r)throw new et(`Value must be smaller than or equal to ${r}`)}}function od(...r){return e=>{for(let t of r)t(e)}}var Tr=od(td,rd,nd(65535));var ce=-1,Ys=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new Nn(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},tt=new Ys,Ed=[{code:4,name:"ip4",size:32,valueToBytes:qs,bytesToValue:kc,validate:r=>{if(!(0,Be.isIPv4)(r))throw new et(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:At,bytesToValue:Xt,validate:Tr},{code:273,name:"udp",size:16,valueToBytes:At,bytesToValue:Xt,validate:Tr},{code:33,name:"dccp",size:16,valueToBytes:At,bytesToValue:Xt,validate:Tr},{code:41,name:"ip6",size:128,valueToBytes:Rc,bytesToValue:Uc,stringToValue:Mc,validate:r=>{if(!(0,Be.isIPv6)(r))throw new et(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:ce},{code:43,name:"ipcidr",size:8,bytesToValue:Fs("base10"),valueToBytes:zs("base10")},{code:53,name:"dns",size:ce},{code:54,name:"dns4",size:ce},{code:55,name:"dns6",size:ce},{code:56,name:"dnsaddr",size:ce},{code:132,name:"sctp",size:16,valueToBytes:At,bytesToValue:Xt,validate:Tr},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:ce,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:ce,bytesToValue:Fs("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?zs("base58btc")(r):se.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Ws,valueToBytes:Pc},{code:445,name:"onion3",size:296,bytesToValue:Ws,valueToBytes:Nc},{code:446,name:"garlic64",size:ce},{code:447,name:"garlic32",size:ce},{code:448,name:"tls"},{code:449,name:"sni",size:ce},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:ce,bytesToValue:Hc(Go),valueToBytes:Kc},{code:480,name:"http"},{code:481,name:"http-path",size:ce,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:ce}];Ed.forEach(r=>{tt.addProtocol(r)});function Vc(r){let e=[],t=0;for(;t<r.length;){let n=pt(r,t),o=tt.getProtocol(n),s=ae(n),i=xd(o,r,t+s),a=0;i>0&&o.size===ce&&(a=ae(i));let c=s+a+i,f={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,l=r.subarray(u,u+i);f.value=o.bytesToValue?.(l)??te(l)}e.push(f),t+=c}return e}function $c(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=tt.getProtocol(n.code),s=ae(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??ye(n.value),a=i.byteLength,o.size===ce&&(c=ae(a)));let f=new Uint8Array(s+c+a),u=0;Bt(n.code,f,u),u+=s,i!=null&&(o.size===ce&&(Bt(a,f,u),u+=c),f.set(i,u)),n.bytes=f}t.push(n.bytes),e+=n.bytes.byteLength}return ze(t,e)}function Gc(r){if(r.charAt(0)!=="/")throw new he('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=tt.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new he(`Component ${o} was missing value`);t="value"}else if(t==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new he(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}e.push(f),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new he("Incomplete multiaddr");return e}function Fc(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=tt.getProtocol(e.code);if(t==null)throw new he(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function xd(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:pt(e,t)}var wd=Symbol.for("nodejs.util.inspect.custom"),ai=Symbol.for("@multiformats/multiaddr");function vd(r){if(r==null&&(r="/"),zc(r))return r.getComponents();if(r instanceof Uint8Array)return Vc(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Gc(r);if(Array.isArray(r))return r;throw new he("Must be a string, Uint8Array, Component[], or another Multiaddr")}var $n=class r{[ai]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=vd(e),t.validate!==!1&&Sd(this)}get bytes(){return this.#r==null&&(this.#r=$c(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=Fc(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Pn(`Address ${this.toString()} does not contain subaddress: ${t}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}equals(e){return Ce(this.bytes,e.bytes)}[wd](){return`Multiaddr(${this.toString()})`}};function Sd(r){r.getComponents().forEach(e=>{let t=tt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function zc(r){return!!r?.[ai]}function qe(r){return new $n(r)}var $=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),I=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Wc=r=>({match:e=>r.match(e)===!1?e:!1}),_=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),Ee=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),U=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function G(...r){function e(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 t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var Id=I(421),e0=G(Id),Fn=I(54),zn=I(55),Wn=I(56),ui=I(53),t0=G(Fn,_(I(421))),r0=G(zn,_(I(421))),n0=G(Wn,_(I(421))),o0=G(Ee(ui,Wn,Fn,zn),_(I(421))),qc=U(I(4),_(I(43))),Yc=U(_(I(42)),I(41),_(I(43))),li=Ee(qc,Yc),Dt=Ee(li,ui,Fn,zn,Wn),s0=G(Ee(li,U(Ee(ui,Wn,Fn,zn),_(I(421))))),i0=G(qc),a0=G(Yc),c0=G(li),fi=U(Dt,I(6)),Cr=U(Dt,I(273)),Zc=G(U(fi,_(I(421)))),u0=G(Cr),di=U(Cr,$(460),_(I(421))),qn=U(Cr,$(461),_(I(421))),Ad=Ee(di,qn),l0=G(di),f0=G(qn),ci=Ee(Dt,fi,Cr,di,qn),jc=Ee(U(ci,$(477),_(I(421)))),d0=G(jc),Xc=Ee(U(ci,$(478),_(I(421))),U(ci,$(448),_(I(449)),$(477),_(I(421)))),h0=G(Xc),Qc=U(Cr,$(280),_(I(466)),_(I(466)),_(I(421))),p0=G(Qc),Jc=U(qn,$(465),_(I(466)),_(I(466)),_(I(421))),m0=G(Jc),Gn=Ee(jc,Xc,U(fi,_(I(421))),U(Ad,_(I(421))),U(Dt,_(I(421))),Qc,Jc,I(421)),b0=G(Gn),Ld=U(_(Gn),$(290),Wc($(281)),_(I(421))),y0=G(Ld),Td=Ee(U(Gn,$(290),$(281),_(I(421))),U(Gn,$(281),_(I(421))),U($(281),_(I(421)))),g0=G(Td),Dd=Ee(U(Dt,I(6),$(480),_(I(421))),U(Dt,$(480),_(I(421)))),E0=G(Dd),Cd=U(Dt,Ee(U(I(6,"443"),$(480)),U(I(6),$(443)),U(I(6),$(448),$(480)),U($(448),$(480)),$(448),$(443)),_(I(421))),x0=G(Cd),Od=Ee(U(I(777),_(I(421)))),w0=G(Od),_d=Ee(U(I(400),_(I(421)))),Yn=G(_d);var Zn=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var yu=Te(oe("node:net"),1);function jn(r){let e=r.getComponents(),t={},n=0;if(e[n]?.name==="ip6zone"&&(t.zone=`${e[n].value}`,n++),e[n].name==="ip4"||e[n].name==="ip6"||e[n].name==="dns"||e[n].name==="dns4"||e[n].name==="dns6"?(t.type=e[n].name,t.host=e[n].value,n++):e[n].name==="dnsaddr"&&(t.type=e[n].name,t.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(t.protocol=e[n].name==="tcp"?"tcp":"udp",t.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(t.type==="ip4"?t.cidr=parseInt(`${e[n].value}`):t.type==="ip6"&&(t.cidr=`${e[n].value}`),n++),t.type==null||t.host==null)throw new Z(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t}function rt(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Xn=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},tr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Xn(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Xn(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var hi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function ft(r={}){return Bd(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function Bd(r,e){e=e??{};let t=e.onEnd,n=new tr,o,s,i,a=rt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((y,w)=>{s=O=>{s=null,n.push(O);try{y(r(n))}catch(P){w(P)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=rt()})}},f=y=>s!=null?s(y):(n.push(y),o),u=y=>(n=new tr,s!=null?s({error:y}):(n.push({error:y}),o)),l=y=>{if(i)return o;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:y})},h=y=>i?o:(i=!0,y!=null?u(y):f({done:!0})),d=()=>(n=new tr,h(),{done:!0}),b=y=>(h(y),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:d,throw:b,push:l,end:h,get readableLength(){return n.size},onEmpty:async y=>{let w=y?.signal;if(w?.throwIfAborted(),n.isEmpty())return;let O,P;w!=null&&(O=new Promise((R,V)=>{P=()=>{V(new hi)},w.addEventListener("abort",P)}));try{await Promise.race([a.promise,O])}finally{P!=null&&w!=null&&w?.removeEventListener("abort",P)}}},t==null)return o;let x=o;return o={[Symbol.asyncIterator](){return this},next(){return x.next()},throw(y){return x.throw(y),t!=null&&(t(y),t=void 0),{done:!0}},return(){return x.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(y){return x.end(y),t!=null&&(t(y),t=void 0),o},get readableLength(){return x.readableLength},onEmpty:y=>x.onEmpty(y)},o}var pi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},mi=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},eu=r=>globalThis.DOMException===void 0?new mi(r):new DOMException(r),tu=r=>{let e=r.reason===void 0?eu("This operation was aborted."):r.reason;return e instanceof Error?e:eu(e)};function bi(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,f=new Promise((u,l)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(tu(d)),a=()=>{l(tu(d))},d.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,l);return}let h=new pi;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?l(o):(h.message=o??`Promise timed out after ${t} milliseconds`,l(h))},t),(async()=>{try{u(await r)}catch(d){l(d)}})()}).finally(()=>{f.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return f.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},f}var Pd=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function Nd(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:f,removeListener:u}=Pd(r),l=async(...d)=>{let b=t.multiArgs?d:d[0];if(t.filter)try{if(!await t.filter(b))return}catch(x){n(),i(x);return}c.push(b),t.count===c.length&&(n(),s(c))},h=(...d)=>{n(),i(t.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,l);for(let d of t.rejectionEvents)a.includes(d)||u(d,h)};for(let d of a)f(d,l);for(let d of t.rejectionEvents)a.includes(d)||f(d,h);t.signal&&t.signal.addEventListener("abort",()=>{h(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=bi(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function rr(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Nd(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var Ct=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};var Qn=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function Rd(r){return r.reason}async function Jn(r,e,t){if(e==null)return r;let n=t?.translateError??Rd;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var kd=Math.pow(2,20)*4,eo=class extends Gt{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??kd,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new H,this.writeBuffer=new H,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 t=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,this.processSendQueue()),this.onDrainPromise?.resolve()};this.addEventListener("drain",t);let n=o=>{this.onDrainPromise?.reject(o.error??new Qn)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),Jn(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=ft(),t=s=>{e.push(s.data)};this.addEventListener("message",t);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",t),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new at(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),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(e)}catch(t){this.log("failed to send reset to remote - %e",t)}this.dispatchEvent(new ln(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new at("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 at("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new at(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new at(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[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 e=new on;this.dispatchEvent(new fn(e))}onTransportClosed(e){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"),e!=null?this.abort(e):(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 $t))}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;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let e=!0,t=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){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new H(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,t,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),e}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 e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new un(e))}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 hr(`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 hr(`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 to=class extends eo{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.remoteAddr,this.addEventListener("close",t=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),t.error!=null?t.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):t.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(e){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 rr(this,"idle",{...e,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 rr(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};var nu=Te(oe("node:os"),1);function ru(r){return!!(r.startsWith("169.254.")||r.toLowerCase().startsWith("fe80"))}function yi(r,e,t){let n=[r.type,t??r.host];if(r.protocol!=null){let o=e??r.port;o!=null&&n.push(r.protocol,o)}return r.type==="ip6"&&r.zone!=null&&n.unshift("ip6zone",r.zone),r.cidr!=null&&n.push("ipcidr",r.cidr),qe(`/${n.join("/")}`)}var Ud={4:"IPv4",6:"IPv6"};function Md(r){return["0.0.0.0","::"].includes(r)}function Kd(r){let e=[],t=nu.default.networkInterfaces();for(let[,n]of Object.entries(t))if(n!=null)for(let o of n)ru(o.address)||o.family===Ud[r]&&e.push(o.address);return e}function ou(r,e){if(r==null)return[];let t=jn(r);return(t.type==="ip4"||t.type==="ip6")&&Md(t.host)?Kd(t.type==="ip4"?4:6).map(n=>yi(t,e,n)):[yi(t,e)]}function su(r,e){if(typeof r!="string")throw new Z(`invalid ip provided: ${r}`);if(typeof e=="string"&&(e=parseInt(e)),isNaN(e))throw new Z(`invalid port provided: ${e}`);if((0,Be.isIPv4)(r))return qe(`/ip4/${r}/tcp/${e}`);if((0,Be.isIPv6)(r))return qe(`/ip6/${r}/tcp/${e}`);throw new Z(`invalid ip:port for creating a multiaddr: ${r}:${e}`)}var ro=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function iu(r,e,t){if(e==null)return r;if(e.aborted)return r.catch(()=>{}),Promise.reject(new ro(t?.errorMessage,t?.errorCode,t?.errorName));let n,o=new ro(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((s,i)=>{n=()=>{i(o)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var gi=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=rt(),this.haveNext=rt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=rt(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=rt(),await iu(this.readNext.promise,t?.signal,t)}};function au(){return new gi}function Hd(r){return r[Symbol.asyncIterator]!=null}async function Vd(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*$d(r){let e=new AbortController,t=au();Vd(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Gd(r){for(let e of r)yield*e}function Fd(...r){let e=[];for(let t of r)Hd(t)||e.push(t);return e.length===r.length?Gd(e):$d(r)}var cu=Fd;function uu(r,...e){if(r==null)throw new Error("Empty pipeline");if(Ei(r)){let n=r;r=()=>n.source}else if(fu(r)||lu(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&Ei(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)Ei(t[n])&&(t[n]=Wd(t[n]));return zd(...t)}var zd=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},lu=r=>r?.[Symbol.asyncIterator]!=null,fu=r=>r?.[Symbol.iterator]!=null,Ei=r=>r==null?!1:r.sink!=null&&r.source!=null,Wd=r=>e=>{let t=r.sink(e);if(t?.then!=null){let n=ft({objectMode:!0});t.then(()=>{n.end()},i=>{n.end(i)});let o,s=r.source;if(lu(s))o=async function*(){yield*s,n.end()};else if(fu(s))o=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return cu(n,o())}return r.source};var qd=4194304,no=class extends Error{static name="UnwrappedError";name="UnwrappedError"},wi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},vi=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Si=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Yd(r){return typeof r?.closeRead=="function"}function Zd(r){return typeof r?.close=="function"}function xi(r){return Yd(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Zd(r)?r.status!=="open":!1}function jd(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Xd(r,e){let t=e?.maxBufferSize??qd,n=new H,o,s=!1;if(!jd(r))throw new Z("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>t){let l=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${l} > ${t}`))}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 no("Stream was unwrapped");if(xi(r)){if(u?.bytes==null)return null;if(n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new Ct(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let l=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=l){o.resolve();break}if(await Jn(o.promise,u?.signal),xi(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let h=u?.bytes??n.byteLength;if(n.byteLength<h){if(xi(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,h),new Ct(`Unexpected EOF - stream closed while reading ${n.byteLength}/${h} bytes`);return f.read(u)}let d=n.sublist(0,h);return n.consume(h),d},async write(u,l){if(s===!0)throw new no("Stream was unwrapped");r.send(u)||await rr(r,"drain",{signal:l?.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.push(n))),r}};return f}function Or(r,e={}){let t=Xd(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=ae(e.maxDataLength));let n=e?.lengthDecoder??pt,o=e?.lengthEncoder??Rr;return{async read(i){let a=-1,c=new H;for(;;){let u=await t.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(l){if(l instanceof RangeError)continue;throw l}if(a<0)throw new wi("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Si(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new vi(`Message length too long - ${a} > ${e.maxDataLength}`);let f=await t.read({...i,bytes:a});if(f==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new Ct(`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 Ct(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await t.write(new H(o(i.byteLength),i),a)},async writeV(i,a){let c=new H(...i.flatMap(f=>[o(f.byteLength),f]));await t.write(c,a)},unwrap(){return t.unwrap()}}}function Ii(r,e){let t=Or(r,e),n={read:async(o,s)=>{let i=await t.read(s);return o.decode(i)},write:async(o,s,i)=>{await t.write(s.encode(o),i)},writeV:async(o,s,i)=>{await t.writeV(o.map(a=>s.encode(a)),i)},pb:o=>({read:async s=>n.read(o,s),write:async(s,i)=>n.write(s,o,i),writeV:async(s,i)=>n.writeV(s,o,i),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}function Qd(r){return r?.addEventListener!=null}function Jd(r){let e=ft(),t,n=i=>{e.push(i.data)},o=()=>{e.end(),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)},s=i=>{e.end(i.error),i.error!=null&&t?.reject(i.error),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)};return r.addEventListener("message",n),r.addEventListener("close",s,{once:!0}),r.addEventListener("remoteCloseWrite",o,{once:!0}),{source:e,async sink(i){async function*a(){yield*i}let c=a();for(;;){t=Promise.withResolvers();let{done:f,value:u}=await Promise.race([c.next(),t.promise]);if(r.writeStatus==="closing"||r.writeStatus==="closed"||(u!=null&&(r.send(u)||await Promise.race([rr(r,"drain",{rejectionEvents:["close"]})])),f===!0))break}await r.close()}}}function Ai(...r){let e=r.map(t=>Qd(t)?Jd(t):t);return uu(...e)}var oo=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},nr=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},so=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},_r=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function io(r){return r[Symbol.asyncIterator]!=null}function du(r,e){if(r.byteLength>e)throw new nr("Message length too long")}var co=r=>{let e=ae(r),t=Se(e);return Rr(r,t),co.bytes=e,t};co.bytes=0;function uo(r,e){e=e??{};let t=e.lengthEncoder??co,n=e?.maxDataLength??4194304;function*o(s){du(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return io(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}uo.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??co,n=e?.maxDataLength??4194304;return du(r,n),new H(t(r.byteLength),r)};var Ot;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Ot||(Ot={}));var Ti=r=>{let e=pt(r);return Ti.bytes=ae(e),e};Ti.bytes=0;function Li(r,e){let t=new H,n=Ot.LENGTH,o=-1,s=e?.lengthDecoder??Ti,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Ot.LENGTH)try{if(o=s(t),o<0)throw new oo("Invalid message length");if(o>a)throw new nr("Message length too long");let f=s.bytes;t.consume(f),e?.onLength!=null&&e.onLength(o),n=Ot.DATA}catch(f){if(f instanceof RangeError){if(t.byteLength>i)throw new so("Message length length too long");break}throw f}if(n===Ot.DATA){if(t.byteLength<o)break;let f=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(f),yield f,n=Ot.LENGTH}}}return io(r)?(async function*(){for await(let f of r)t.append(f),yield*c();if(t.byteLength>0)throw new _r("Unexpected end of input")})():(function*(){for(let f of r)t.append(f),yield*c();if(t.byteLength>0)throw new _r("Unexpected end of input")})()}Li.fromReader=(r,e)=>{let t=1,n=(async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}})();return Li(n,{...e??{},onLength:s=>{t=s}})};var Di=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Ci=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},hu=r=>globalThis.DOMException===void 0?new Ci(r):new DOMException(r),pu=r=>{let e=r.reason===void 0?hu("This operation was aborted."):r.reason;return e instanceof Error?e:hu(e)};function Oi(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,f=new Promise((u,l)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(pu(d)),a=()=>{l(pu(d))},d.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,l);return}let h=new Di;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?l(o):(h.message=o??`Promise timed out after ${t} milliseconds`,l(h))},t),(async()=>{try{u(await r)}catch(d){l(d)}})()}).finally(()=>{f.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return f.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},f}var rh=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function nh(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:f,removeListener:u}=rh(r),l=async(...d)=>{let b=t.multiArgs?d:d[0];if(t.filter)try{if(!await t.filter(b))return}catch(x){n(),i(x);return}c.push(b),t.count===c.length&&(n(),s(c))},h=(...d)=>{n(),i(t.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,l);for(let d of t.rejectionEvents)a.includes(d)||u(d,h)};for(let d of a)f(d,l);for(let d of t.rejectionEvents)a.includes(d)||f(d,h);t.signal&&t.signal.addEventListener("abort",()=>{h(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=Oi(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Br(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=nh(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var _i=class extends to{socket;constructor(e){let t=e.remoteAddr;if(e.localAddr!=null&&Yn.matches(e.localAddr))t=e.localAddr;else if(t==null){if(e.socket.remoteAddress==null||e.socket.remotePort==null)throw new Z("Could not determine remote address or port");t=su(e.socket.remoteAddress,e.socket.remotePort)}super({...e,remoteAddr:t}),this.socket=e.socket,this.socket.on("data",n=>{this.onData(n)}),this.socket.on("error",n=>{this.log("tcp error",t,n),this.abort(n)}),this.socket.setTimeout(e.inactivityTimeout??120*1e3),this.socket.once("timeout",()=>{this.log("tcp timeout",t),this.abort(new Vt)}),this.socket.once("end",()=>{this.log("tcp end",t),this.onTransportClosed()}),this.socket.once("close",n=>{if(this.log("tcp close",t),n){this.abort(new Error("TCP transmission error"));return}this.onTransportClosed()}),this.socket.on("drain",()=>{this.log("tcp drain"),this.safeDispatchEvent("drain")})}sendData(e){let t=0,n=!0;for(let o of e)if(t+=o.byteLength,n=this.socket.write(o),!n)break;return{sentBytes:t,canSendMore:n}}async sendClose(e){this.socket.destroyed||(this.socket.destroySoon(),await Br(this.socket,"close",e))}sendReset(){this.socket.resetAndDestroy()}sendPause(){this.socket.pause()}sendResume(){this.socket.resume()}},lo=r=>new _i(r);var mu=Te(oe("os"),1),bu=Te(oe("path"),1);function fo(r,e={}){if(Yn.exactMatch(r)){let s=r.getComponents().find(i=>i.code===400)?.value;if(s==null)throw new Z(`Multiaddr ${r} was not a Unix address`);return mu.default.platform()==="win32"?{path:bu.default.join("\\\\.\\pipe\\",s)}:{path:s}}let t=jn(r),n=t.host,o=t.port;return{host:n,port:o,ipv6Only:t.type==="ip6",...e}}var ue;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(ue||(ue={}));var ho=class extends Gt{context;server;sockets=new Set;status={code:ue.INACTIVE};metrics;addr;log;shutdownController;constructor(e){if(super(),this.context=e,e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0,e.allowHalfOpen=e.allowHalfOpen??!1,this.shutdownController=new AbortController,dn(1/0,this.shutdownController.signal),this.log=e.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=yu.default.createServer(e,this.onSocket.bind(this)),e.maxConnections!==void 0&&(this.server.maxConnections=e.maxConnections),e.closeServerOnMaxConnections!=null&&e.closeServerOnMaxConnections.closeAbove<e.closeServerOnMaxConnections.listenBelow)throw new Z("closeAbove must be >= listenBelow");e.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.sockets.size})}),this.metrics={status:e.metrics?.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:e.metrics?.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:e.metrics?.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.server.on("listening",()=>{let t=this.server.address();t==null?this.addr="unknown":typeof t=="string"?this.addr=t:this.addr=`${t.address}:${t.port}`,this.metrics.status?.update({[this.addr]:ue.ACTIVE}),this.safeDispatchEvent("listening")}).on("error",t=>{this.metrics.errors?.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:t})}).on("close",()=>{this.metrics.status?.update({[this.addr]:this.status.code}),this.status.code!==ue.PAUSED&&this.safeDispatchEvent("close")}).on("drop",()=>{this.metrics.events?.increment({[`${this.addr} drop`]:!0})})}onSocket(e){if(this.metrics.events?.increment({[`${this.addr} connection`]:!0}),this.status.code!==ue.ACTIVE)throw e.destroy(),new an("Server is not listening yet");let t;try{t=lo({socket:e,inactivityTimeout:this.context.inactivityTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,direction:"inbound",localAddr:this.status.listeningAddr,log:this.context.logger.forComponent("libp2p:tcp:connection")})}catch(n){this.log.error("inbound connection failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_to_connection`]:!0}),e.destroy();return}this.log("new inbound connection %s",t.remoteAddr),this.sockets.add(e),this.context.upgrader.upgradeInbound(t,{signal:this.shutdownController.signal}).then(()=>{this.log("inbound connection upgraded %s",t.remoteAddr),e.once("close",()=>{this.sockets.delete(e),this.context.closeServerOnMaxConnections!=null&&this.sockets.size<this.context.closeServerOnMaxConnections.listenBelow&&this.resume().catch(n=>{this.log.error("error attempting to listen server once connection count under limit - %e",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.closeServerOnMaxConnections!=null&&this.sockets.size>=this.context.closeServerOnMaxConnections.closeAbove&&(this.log("pausing incoming connections as limit is exceeded - %d/%d",this.sockets.size,this.context.closeServerOnMaxConnections.closeAbove),this.pause())}).catch(async n=>{this.log.error("inbound connection upgrade failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_upgrade`]:!0}),this.sockets.delete(e),t.abort(n)})}getAddrs(){if(this.status.code===ue.INACTIVE)return[];let e=this.server.address();return e==null?[]:typeof e=="string"?[qe(`/unix/${encodeURIComponent(e)}`)]:ou(this.status.listeningAddr,e.port)}updateAnnounceAddrs(){}async listen(e){if(this.status.code===ue.ACTIVE||this.status.code===ue.PAUSED)throw new cn("server is already listening");try{this.status={code:ue.ACTIVE,listeningAddr:e,netConfig:fo(e,this.context)},await this.resume()}catch(t){throw this.status={code:ue.INACTIVE},t}}async close(e){let t=[];this.server.listening&&t.push(Br(this.server,"close",e)),this.pause(!0),this.shutdownController.abort(),this.sockets.forEach(n=>{n.readable&&(t.push(Br(n,"close",e)),n.destroy())}),await Promise.all(t)}async resume(){if(this.server.listening||this.status.code===ue.INACTIVE)return;let e=this.status.netConfig;await new Promise((t,n)=>{this.server.once("error",n),this.server.listen(e,t)}),this.status={...this.status,code:ue.ACTIVE},this.log("listening on %s",this.server.address())}pause(e=!1){if(!this.server.listening&&this.status.code===ue.PAUSED&&e){this.status={code:ue.INACTIVE};return}!this.server.listening||this.status.code!==ue.ACTIVE||(this.log("%s server on %s",e?"closing":"pausing",this.server.address()),this.status=e?{code:ue.INACTIVE}:{...this.status,code:ue.PAUSED},this.server.close())}};var po=class{opts;metrics;components;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:tcp"),this.opts=t,this.components=e,e.metrics!=null&&(this.metrics={events:e.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"}),errors:e.metrics.registerCounterGroup("libp2p_tcp_dialer_errors_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[Aa]=!0;[Symbol.toStringTag]="@libp2p/tcp";[Ta]=["@libp2p/transport"];async dial(e,t){t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,t.allowHalfOpen=t.allowHalfOpen??!1;let n=await this._connect(e,t),o;try{o=lo({socket:n,inactivityTimeout:this.opts.outboundSocketInactivityTimeout,metrics:this.metrics?.events,direction:"outbound",remoteAddr:e,log:this.log.newScope("connection")})}catch(s){throw this.metrics?.errors.increment({outbound_to_connection:!0}),n.destroy(s),s}try{return this.log("new outbound connection %s",o.remoteAddr),await t.upgrader.upgradeOutbound(o,t)}catch(s){throw this.metrics?.errors.increment({outbound_upgrade:!0}),this.log.error("error upgrading outbound connection - %e",s),o.abort(s),s}}async _connect(e,t){t.signal.throwIfAborted(),t.onProgress?.(new Zn("tcp:open-connection"));let n;return new Promise((o,s)=>{let i=Date.now(),a=fo(e,{...this.opts.dialOpts??{},...t});this.log("dialing %a with opts %o",e,a),n=gu.default.connect(a);let c=d=>{this.log.error("dial to %a errored - %e",e,d);let b=a.path??`${a.host??""}:${a.port}`;d.message=`connection error ${b}: ${d.message}`,this.metrics?.events.increment({error:!0}),h(d)},f=()=>{this.log("connection timeout %a",e),this.metrics?.events.increment({timeout:!0});let d=new Vt(`Connection timeout after ${Date.now()-i}ms`);n.emit("error",d)},u=()=>{this.log("connection opened %a",e),this.metrics?.events.increment({connect:!0}),h()},l=()=>{this.log("connection aborted %a",e),this.metrics?.events.increment({abort:!0}),h(new rn)},h=d=>{if(n.removeListener("error",c),n.removeListener("timeout",f),n.removeListener("connect",u),t.signal!=null&&t.signal.removeEventListener("abort",l),d!=null){s(d);return}o(n)};n.on("error",c),n.on("timeout",f),n.on("connect",u),t.signal.addEventListener("abort",l)}).catch(o=>{throw n?.destroy(),o})}createListener(e){return new ho({...this.opts.listenOpts??{},...e,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,inactivityTimeout:this.opts.inboundSocketInactivityTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(e){return e.filter(t=>Zc.exactMatch(t)||t.toString().startsWith("/unix/"))}dialFilter(e){return this.listenFilter(e)}};function Eu(r={}){return e=>new po(e,r)}var Bi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Pi=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},xu=r=>globalThis.DOMException===void 0?new Pi(r):new DOMException(r),wu=r=>{let e=r.reason===void 0?xu("This operation was aborted."):r.reason;return e instanceof Error?e:xu(e)};function Ni(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,f=new Promise((u,l)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(wu(d)),a=()=>{l(wu(d))},d.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,l);return}let h=new Bi;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?l(o):(h.message=o??`Promise timed out after ${t} milliseconds`,l(h))},t),(async()=>{try{u(await r)}catch(d){l(d)}})()}).finally(()=>{f.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return f.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},f}var oh=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function sh(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:f,removeListener:u}=oh(r),l=async(...d)=>{let b=t.multiArgs?d:d[0];if(t.filter)try{if(!await t.filter(b))return}catch(x){n(),i(x);return}c.push(b),t.count===c.length&&(n(),s(c))},h=(...d)=>{n(),i(t.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,l);for(let d of t.rejectionEvents)a.includes(d)||u(d,h)};for(let d of a)f(d,l);for(let d of t.rejectionEvents)a.includes(d)||f(d,h);t.signal&&t.signal.addEventListener("abort",()=>{h(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=Ni(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function vu(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=sh(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}function ih(r){return r[Symbol.asyncIterator]!=null}function ah(r){if(ih(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ri=ah;function Ae(r){return ee.encode({type:ee.Type.OK,peers:[],...r}).subarray()}function xe(r){return ee.encode({type:ee.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var mo=it("libp2p:daemon-server:dht"),bo=class{dht;constructor(e){let{dht:t}=e;this.dht=t}async*provide(e){try{await Ri(this.dht.provide(e)),yield Ae()}catch(t){mo.error("failed to provide CID %s - %e",e,t),yield xe(t)}}async*getClosestPeers(e){yield Ae({dht:{type:de.Type.BEGIN}});for await(let t of this.dht.getClosestPeers(e))t.name==="PEER_RESPONSE"&&(yield*t.closer.map(n=>de.encode({type:de.Type.VALUE,value:n.id.toMultihash().bytes})));yield de.encode({type:de.Type.END})}async*getPublicKey(e){yield xe(new Error("FIX ME: not implemented"))}async*getValue(e){try{for await(let t of this.dht.get(e))t.name==="VALUE"&&(yield Ae({dht:{type:de.Type.VALUE,value:t.value}}))}catch(t){mo.error("error getting value for key %b - %e",e,t),yield xe(t)}}async*putValue(e,t){try{await Ri(this.dht.put(e,t)),yield Ae()}catch(n){mo.error("error putting value %b for key %b - %e",t,e,n),yield xe(n)}}async*findPeer(e){try{for await(let t of this.dht.findPeer(e))t.name==="FINAL_PEER"&&(yield Ae({dht:{type:de.Type.VALUE,peer:{id:t.peer.id.toMultihash().bytes,addrs:t.peer.multiaddrs.map(n=>n.bytes)}}}));throw new Error("Peer not found")}catch(t){mo.error("peer not found %p - %e",e,t),yield xe(t)}}async*findProviders(e,t){yield Ae({dht:{type:de.Type.BEGIN}});try{let n=t,o=0;for await(let s of this.dht.findProviders(e))if(s.name==="PEER_RESPONSE"){for(let i of s.providers)o++,yield de.encode({type:de.Type.VALUE,peer:{id:i.id.toMultihash().bytes,addrs:(i.multiaddrs??[]).map(a=>a.bytes)}});if(n===o)break}}catch(n){yield xe(n)}yield de.encode({type:de.Type.END})}};var yo=it("libp2p:daemon-server:pubsub"),go=class{pubsub;constructor(e){let{pubsub:t}=e;this.pubsub=t}async*getTopics(){try{yield Ae({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(e){yo.error("failed to get pubsub topics - %e",e),yield xe(e)}}async*subscribe(e){try{let t=ft();this.pubsub.subscribe(e),this.pubsub.addEventListener("message",n=>{let o=n.detail;o.topic===e&&(o.type==="signed"?t.push(fr.encode({from:o.from.toMultihash().bytes,data:o.data,seqno:o.sequenceNumber==null?void 0:ye(o.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[o.topic],signature:o.signature,key:ct(o.key)}).subarray()):t.push(fr.encode({data:o.data,topicIDs:[o.topic]}).subarray()))}),yield Ae(),yield*t}catch(t){yo.error("failed to subscribe to topic %s - %e",e,t),yield xe(t)}}async*publish(e,t){try{await this.pubsub.publish(e,t),yield Ae()}catch(n){yo.error("failed to publish message to topic %s - %e",e,n),yield xe(n)}}async*listPeers(e){try{yield Ae({pubsub:{topics:[e],peerIDs:this.pubsub.getSubscribers(e).map(t=>t.toMultihash().bytes)}})}catch(t){yo.error("failed to list peers for topic %s - %e",e,t),yield xe(t)}}};var Su=1<<22,ve=it("libp2p:daemon-server"),Eo=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(e){let{multiaddr:t,libp2pNode:n}=e;this.multiaddr=t,this.libp2p=n,this.tcp=Eu()({logger:Sa()}),this.listener=this.tcp.createListener({upgrader:new dr(this.handleConnection.bind(this))}),this._onExit=this._onExit.bind(this),n.services.dht!=null&&(this.dhtOperations=new bo({dht:n.services.dht})),n.services.pubsub!=null&&(this.pubsubOperations=new go({pubsub:n.services.pubsub}))}async connect(e){if(e.connect?.addrs==null)throw new Error("Invalid request");let t=e.connect.peer,n=e.connect.addrs.map(s=>qe(s)),o=jt(Ze(t));return ve("connect - adding multiaddrs %a to peer %p",n,o),await this.libp2p.peerStore.merge(o,{multiaddrs:n}),ve("connect - dial %p",o),this.libp2p.dial(o)}async openStream(e){if(e.streamOpen?.proto==null)throw new Error("Invalid request");let{peer:t,proto:n}=e.streamOpen,o=jt(Ze(t));ve("openStream - dial %p",o);let s=await this.libp2p.dial(o);ve("openStream - open stream for protocol(s) %s",n);let i=await s.newStream(n,{runOnLimitedConnection:!0});return{streamInfo:{peer:o.toMultihash().bytes,addr:s.remoteAddr.bytes,proto:i.protocol??""},connection:i}}async registerStreamHandler(e){if(e.streamHandler?.proto==null)throw new Error("Invalid request");let t=e.streamHandler.proto,n=qe(e.streamHandler.addr),o;ve("registerStreamHandler - handle %s at %a",t,n),await this.libp2p.handle(t,async(s,i)=>{try{ve("open stream for protocol %o to %a",t,n);let a=AbortSignal.timeout(1e4);o=await this.tcp.dial(n,{upgrader:new dr,signal:a});let c=Kt.encode({peer:i.remotePeer.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""}),f=uo.single(c);o.send(f)||await vu(o,"drain",{rejectionEvents:["close"],signal:a}),await Ai(s,o,s)}catch(a){ve.error("error handling stream handler - %e",a),o?.abort(a)}finally{try{await o?.close()}catch(a){o?.abort(a)}}},{runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(e=>{ve.error("failed to stop daemon during exit - %e",e)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let e=this.listener.getAddrs();if(e.length>0)return e[0];throw new Error("Not started")}async stop(e={exit:!1}){await this.libp2p.stop(),await this.listener.close(),e.exit&&ve("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(e){try{switch(e.type){case gt.Type.GET_PROTOCOLS:if(e.id==null)throw new Error("Invalid request");let t=jt(Ze(e.id)),o=(await this.libp2p.peerStore.get(t)).protocols;yield Ae({peerStore:{protos:o}});return;case gt.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling peerstore request - %e",t),yield xe(t)}}async*handlePubsubRequest(e){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(e.type){case je.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case je.Type.SUBSCRIBE:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(e.topic);return;case je.Type.PUBLISH:if(e.topic==null||e.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(e.topic,e.data);return;case je.Type.LIST_PEERS:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(e.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling pubsub request - %e",t),yield xe(t)}}async*handleDHTRequest(e){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(e.type){case Re.Type.FIND_PEER:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer(jt(Ze(e.peer)));return;case Re.Type.FIND_PROVIDERS:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders(se.decode(e.cid),e.count??20);return;case Re.Type.PROVIDE:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide(se.decode(e.cid));return;case Re.Type.GET_CLOSEST_PEERS:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(e.key);return;case Re.Type.GET_PUBLIC_KEY:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey(jt(Ze(e.peer)));return;case Re.Type.GET_VALUE:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(e.key);return;case Re.Type.PUT_VALUE:if(e.key==null||e.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(e.key,e.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling DHT request - %e",t),yield xe(t)}}handleConnection(e){Promise.resolve().then(async()=>{let t=this,n=Ii(e,{maxDataLength:Su}),o=await n.read(Ne);ve("read",o);try{switch(o.type){case Ne.Type.CONNECT:{await t.connect(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.IDENTIFY:{await n.write({type:ee.Type.OK,identify:{id:t.libp2p.peerId.toMultihash().bytes,addrs:t.libp2p.getMultiaddrs().map(s=>s.decapsulateCode(421)).map(s=>s.bytes)}},ee);break}case Ne.Type.LIST_PEERS:{let s=[],i=new Set;for(let a of t.libp2p.getConnections()){let c=a.remotePeer.toString();i.has(c)||(i.add(c),s.push({id:a.remotePeer.toMultihash().bytes,addrs:[a.remoteAddr.bytes]}))}await n.write({type:ee.Type.OK,peers:s},ee);break}case Ne.Type.STREAM_OPEN:{let s=await t.openStream(o);await n.write({type:ee.Type.OK,streamInfo:s.streamInfo},ee);let i=n.unwrap();await Ai(i,s.connection,i);break}case Ne.Type.STREAM_HANDLER:{await t.registerStreamHandler(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.PEERSTORE:{if(o.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Or(s);for await(let a of t.handlePeerStoreRequest(o.peerStore))await i.write(a);break}case Ne.Type.PUBSUB:{if(o.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Or(s);for await(let a of t.handlePubsubRequest(o.pubsub))await i.write(a);break}case Ne.Type.DHT:{if(o.dht==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Or(s);for await(let a of t.handleDHTRequest(o.dht))await i.write(a);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(s){ve.error("error handling incoming connection - %e",s);let i=n.unwrap();if(i.status!=="open")return;n=Ii(i,{maxDataLength:Su}),await n.write({type:ee.Type.ERROR,error:{msg:s.message},peers:[]},ee)}finally{await n.unwrap().close()}}).catch(t=>{ve.error("error handling incoming connection - %e",t)})}},ch=(r,e)=>new Eo({multiaddr:r,libp2pNode:e});return Cu(uh);})();
|
|
13
17
|
/*! Bundled license information:
|
|
14
18
|
|
|
15
19
|
@noble/hashes/utils.js:
|