libp2p 3.3.8-d5534174d → 3.3.9
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 +4 -4
- package/dist/index.min.js.map +3 -3
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/typedoc-urls.json +24 -0
- package/package.json +10 -10
- package/src/version.ts +1 -1
package/dist/index.min.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2P=(()=>{var Bm=Object.create;var Wo=Object.defineProperty;var Fm=Object.getOwnPropertyDescriptor;var Um=Object.getOwnPropertyNames;var Km=Object.getPrototypeOf,qm=Object.prototype.hasOwnProperty;var Rn=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},Fe=(r,e)=>{for(var t in e)Wo(r,t,{get:e[t],enumerable:!0})},Sf=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Um(e))!qm.call(r,o)&&o!==t&&Wo(r,o,{get:()=>e[o],enumerable:!(n=Fm(e,o))||n.enumerable});return r};var qa=(r,e,t)=>(t=r!=null?Bm(Km(r)):{},Sf(e||!r||!r.__esModule?Wo(t,"default",{value:r,enumerable:!0}):t,r)),$m=r=>Sf(Wo({},"__esModule",{value:!0}),r);var ql=Rn(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});an.Netmask4Impl=void 0;an.ip2long=sn;an.long2ip=yt;function yt(r){let e=(r&-16777216)>>>24,t=(r&255<<16)>>>16,n=(r&65280)>>>8,o=r&255;return[e,t,n,o].join(".")}var sb=48,ib=97,ab=65;function cb(r){let e=0,t=10,n="9",o=0;r.length>1&&r[o]==="0"&&(r[o+1]==="x"||r[o+1]==="X"?(o+=2,t=16):"0"<=r[o+1]&&r[o+1]<="9"&&(o++,t=8,n="7"));let s=o;for(;o<r.length;){if("0"<=r[o]&&r[o]<=n)e=e*t+(r.charCodeAt(o)-sb)>>>0;else if(t===16)if("a"<=r[o]&&r[o]<="f")e=e*t+(10+r.charCodeAt(o)-ib)>>>0;else if("A"<=r[o]&&r[o]<="F")e=e*t+(10+r.charCodeAt(o)-ab)>>>0;else break;else break;if(e>4294967295)throw new Error("too large");o++}if(o===s)throw new Error("empty octet");return[e,o]}function sn(r){let e=[];for(let t=0;t<=3&&r.length!==0;t++){if(t>0){if(r[0]!==".")throw new Error("Invalid IP");r=r.substring(1)}let[n,o]=cb(r);r=r.substring(o),e.push(n)}if(r.length!==0)throw new Error("Invalid IP");switch(e.length){case 1:if(e[0]>4294967295)throw new Error("Invalid IP");return e[0]>>>0;case 2:if(e[0]>255||e[1]>16777215)throw new Error("Invalid IP");return(e[0]<<24|e[1])>>>0;case 3:if(e[0]>255||e[1]>255||e[2]>65535)throw new Error("Invalid IP");return(e[0]<<24|e[1]<<16|e[2])>>>0;case 4:if(e[0]>255||e[1]>255||e[2]>255||e[3]>255)throw new Error("Invalid IP");return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0;default:throw new Error("Invalid IP")}}var Kl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");let n=t;if(!n){let o=e.split("/",2);e=o[0],n=o[1]}if(n||(n=32),typeof n=="string"&&n.indexOf(".")>-1){try{this.maskLong=sn(n)}catch{throw new Error("Invalid mask: "+n)}this.bitmask=NaN;for(let o=32;o>=0;o--)if(this.maskLong===4294967295<<32-o>>>0){this.bitmask=o;break}}else if(n||n===0)this.bitmask=parseInt(n,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(sn(e)&this.maskLong)>>>0}catch{throw new Error("Invalid net address: "+e)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+n);this.size=Math.pow(2,32-this.bitmask),this.base=yt(this.netLong),this.mask=yt(this.maskLong),this.hostmask=yt(~this.maskLong),this.first=this.bitmask<=30?yt(this.netLong+1):this.base,this.last=this.bitmask<=30?yt(this.netLong+this.size-2):yt(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?yt(this.netLong+this.size-1):void 0}contains(e){return typeof e=="string"&&(e.indexOf("/")>0||e.split(".").length!==4)&&(e=new r(e)),e instanceof r?this.contains(e.base)&&this.contains(e.broadcast||e.last):(sn(e)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0}next(e=1){return new r(yt(this.netLong+this.size*e),this.mask)}forEach(e){let t=sn(this.first),n=sn(this.last),o=0;for(;t<=n;)e(yt(t),t,o),o++,t++}toString(){return this.base+"/"+this.bitmask}};an.Netmask4Impl=Kl});var sp=Rn(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.Netmask6Impl=void 0;cn.ip6bigint=zl;cn.bigint2ip6=Er;var lb=ql(),$l=(1n<<128n)-1n;function zl(r){let e=r.indexOf("%");e!==-1&&(r=r.substring(0,e));let t=r.lastIndexOf(":");if(t!==-1&&r.indexOf(".",t)!==-1){let n=r.substring(t+1),o=(0,lb.ip2long)(n),s=r.substring(0,t+1)+"0:0";return op(s)&~0xffffffffn|BigInt(o)}return op(r)}function op(r){let e=r.indexOf("::"),t;if(e!==-1){let o=r.substring(0,e),s=r.substring(e+2),i=o===""?[]:o.split(":"),a=s===""?[]:s.split(":"),c=8-i.length-a.length;if(c<0)throw new Error("Invalid IPv6: too many groups");t=[...i,...Array(c).fill("0"),...a]}else t=r.split(":");if(t.length!==8)throw new Error("Invalid IPv6: expected 8 groups, got "+t.length);let n=0n;for(let o=0;o<8;o++){let s=t[o];if(s.length===0||s.length>4)throw new Error('Invalid IPv6: bad group "'+s+'"');let i=parseInt(s,16);if(isNaN(i)||i<0||i>65535)throw new Error('Invalid IPv6: bad group "'+s+'"');n=n<<16n|BigInt(i)}return n}function Er(r){if(r<0n||r>$l)throw new Error("Invalid IPv6 address value");let e=[];for(let i=0;i<8;i++)e.unshift(Number(r&0xffffn)),r>>=16n;let t=-1,n=0,o=-1,s=0;for(let i=0;i<8;i++)e[i]===0?o===-1?(o=i,s=1):s++:(s>n&&s>=2&&(t=o,n=s),o=-1,s=0);if(s>n&&s>=2&&(t=o,n=s),t!==-1&&t+n===8&&t>0)return e.slice(0,t).map(a=>a.toString(16)).join(":")+"::";if(t===0)return"::"+e.slice(n).map(a=>a.toString(16)).join(":");if(t>0){let i=e.slice(0,t).map(c=>c.toString(16)),a=e.slice(t+n).map(c=>c.toString(16));return i.join(":")+"::"+a.join(":")}else return e.map(i=>i.toString(16)).join(":")}var Vl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");let n=t;if(n==null){let o=e.indexOf("/");o!==-1?(n=parseInt(e.substring(o+1),10),e=e.substring(0,o)):n=128}if(isNaN(n)||n<0||n>128)throw new Error("Invalid mask for IPv6: "+n);this.bitmask=n,this.bitmask===0?this.maskBigint=0n:this.maskBigint=$l>>BigInt(128-this.bitmask)<<BigInt(128-this.bitmask);try{this.netBigint=zl(e)&this.maskBigint}catch{throw new Error("Invalid IPv6 net address: "+e)}this.size=Number(1n<<BigInt(128-this.bitmask)),this.base=Er(this.netBigint),this.mask=Er(this.maskBigint),this.hostmask=Er(~this.maskBigint&$l),this.first=this.base,this.last=Er(this.netBigint+(1n<<BigInt(128-this.bitmask))-1n),this.broadcast=void 0}contains(e){return typeof e=="string"&&e.indexOf("/")>0&&(e=new r(e)),e instanceof r?this.contains(e.base)&&this.contains(e.last):(zl(e)&this.maskBigint)===this.netBigint}next(e=1){let t=1n<<BigInt(128-this.bitmask);return new r(Er(this.netBigint+t*BigInt(e)),this.bitmask)}forEach(e){let t=this.netBigint,n=1n<<BigInt(128-this.bitmask),o=this.netBigint+n-1n,s=0;for(;t<=o;)e(Er(t),Number(t),s),s++,t++}toString(){return this.base+"/"+this.bitmask}};cn.Netmask6Impl=Vl});var ip=Rn(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.long2ip=Xt.ip2long=Xt.Netmask=void 0;var Xs=ql();Object.defineProperty(Xt,"ip2long",{enumerable:!0,get:function(){return Xs.ip2long}});Object.defineProperty(Xt,"long2ip",{enumerable:!0,get:function(){return Xs.long2ip}});var ub=sp(),Hl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");(e.indexOf("/")!==-1?e.substring(0,e.indexOf("/")):e).indexOf(":")!==-1?this._impl=new ub.Netmask6Impl(e,t):this._impl=new Xs.Netmask4Impl(e,t),this.base=this._impl.base,this.mask=this._impl.mask,this.hostmask=this._impl.hostmask,this.bitmask=this._impl.bitmask,this.size=this._impl.size,this.first=this._impl.first,this.last=this._impl.last,this.broadcast=this._impl.broadcast,this._impl instanceof Xs.Netmask4Impl?(this.maskLong=this._impl.maskLong,this.netLong=this._impl.netLong):(this.maskLong=0,this.netLong=0)}contains(e){return typeof e=="string"&&(e.indexOf("/")>0?e=new r(e):e.indexOf(":")===-1&&e.split(".").length!==4&&(e=new r(e))),e instanceof r?this.contains(e.base)&&this.contains(e.broadcast||e.last):this._impl.contains(e)}next(e=1){let t=this._impl.next(e);return new r(t.base,t.bitmask)}forEach(e){this._impl.forEach(e)}toString(){return this._impl.toString()}};Xt.Netmask=Hl});var bm=Rn((O4,Qu)=>{"use strict";var Xw=Object.prototype.hasOwnProperty,Be="~";function $o(){}Object.create&&($o.prototype=Object.create(null),new $o().__proto__||(Be=!1));function Zw(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function ym(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new Zw(t,n||r,o),i=Be?Be+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],s]:r._events[i].push(s):(r._events[i]=s,r._eventsCount++),r}function Ea(r,e){--r._eventsCount===0?r._events=new $o:delete r._events[e]}function Le(){this._events=new $o,this._eventsCount=0}Le.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Xw.call(t,n)&&e.push(Be?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Le.prototype.listeners=function(e){var t=Be?Be+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,s=n.length,i=new Array(s);o<s;o++)i[o]=n[o].fn;return i};Le.prototype.listenerCount=function(e){var t=Be?Be+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Le.prototype.emit=function(e,t,n,o,s,i){var a=Be?Be+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,s),!0;case 6:return c.fn.call(c.context,t,n,o,s,i),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,t);break;case 3:c[f].fn.call(c[f].context,t,n);break;case 4:c[f].fn.call(c[f].context,t,n,o);break;default:if(!u)for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c[f].fn.apply(c[f].context,u)}}return!0};Le.prototype.on=function(e,t,n){return ym(this,e,t,n,!1)};Le.prototype.once=function(e,t,n){return ym(this,e,t,n,!0)};Le.prototype.removeListener=function(e,t,n,o){var s=Be?Be+e:e;if(!this._events[s])return this;if(!t)return Ea(this,s),this;var i=this._events[s];if(i.fn)i.fn===t&&(!o||i.once)&&(!n||i.context===n)&&Ea(this,s);else{for(var a=0,c=[],l=i.length;a<l;a++)(i[a].fn!==t||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:Ea(this,s)}return this};Le.prototype.removeAllListeners=function(e){var t;return e?(t=Be?Be+e:e,this._events[t]&&Ea(this,t)):(this._events=new $o,this._eventsCount=0),this};Le.prototype.off=Le.prototype.removeListener;Le.prototype.addListener=Le.prototype.on;Le.prefixed=Be;Le.EventEmitter=Le;typeof Qu<"u"&&(Qu.exports=Le)});var Em=Rn((rP,xm)=>{xm.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(s,i){t[s]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(s){return t[s]!==void 0||n[s]!==void 0},remove:function(s){t[s]!==void 0&&(t[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){t[s]!==void 0?t[s]=i:o(s,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var _x={};Fe(_x,{createLibp2p:()=>vx,dnsaddrResolver:()=>kr,isLibp2p:()=>Ax});var Af=Symbol.for("@libp2p/connection");var $a=Symbol.for("@libp2p/content-routing");var tt=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var R=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},kt=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}},kn=class extends Error{static name="InvalidPrivateKeyError";constructor(e="Invalid private key"){super(e),this.name="InvalidPrivateKeyError"}};var er=class extends Error{static name="ConnectionClosedError";constructor(e="The connection is closed"){super(e),this.name="ConnectionClosedError"}};var tr=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}},Nr=class extends Error{static name="InvalidPeerIdError";constructor(e="Invalid PeerID"){super(e),this.name="InvalidPeerIdError"}},Ot=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Go=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},jo=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}},Yo=class extends Error{static name="UnsupportedProtocolError";constructor(e="Unsupported protocol error"){super(e),this.name="UnsupportedProtocolError"}},Xo=class extends Error{static name="InvalidMessageError";constructor(e="Invalid message"){super(e),this.name="InvalidMessageError"}};var Zo=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},xt=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}};var Mr=class extends Error{static name="DialError";constructor(e="Dial error"){super(e),this.name="DialError"}};var On=class extends Error{static name="LimitedConnectionError";constructor(e="Limited connection"){super(e),this.name="LimitedConnectionError"}},Qo=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(e="Too many inbound protocol streams"){super(e),this.name="TooManyInboundProtocolStreamsError"}},Jo=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(e="Too many outbound protocol streams"){super(e),this.name="TooManyOutboundProtocolStreamsError"}},Nt=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var es=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}};var za=Symbol.for("@libp2p/peer-discovery");var ts=Symbol.for("@libp2p/peer-id");function Mt(r){return!!r?.[ts]}var Va=Symbol.for("@libp2p/peer-routing");var Ha="keep-alive";function rs(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function _f(...r){let e=[];for(let t of r)rs(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function If(...r){let e=[];for(let t of r)rs(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Nn;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Nn||(Nn={}));function zm(r){return typeof r?.handleEvent=="function"}function Vm(r){return r===!0||r===!1}function Hm(r){return Vm(r)?r:r?.capture??!1}function Wa(r){let e={capture:Hm(r),once:!!r?.once};return r?.passive!=null&&(e.passive=r?.passive),r?.signal!=null&&(e.signal=r?.signal),e}function Cf(r,e){return Wa(r).capture===Wa(e).capture}var De=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){let o=Wa(n);if(o?.signal?.aborted===!0)return;let s=l=>{o.once&&this.removeEventListener(e,t,o),zm(t)?t.handleEvent(l):t(l)},i=this.#e.get(e);if(i==null&&(i=[],this.#e.set(e,i)),i.some(l=>l.callback!==t?!1:Cf(l.options,o)))return;super.addEventListener(e,s,o);let c=()=>{this.removeEventListener(e,t,o)};o.signal?.addEventListener("abort",c),i.push({callback:t,wrapper:s,options:o,onAbort:c})}removeEventListener(e,t,n){let o=this.#e.get(e);if(o==null){super.removeEventListener(e,t??null,n);return}this.#e.set(e,o.filter(s=>s.callback===t&&Cf(s.options,n)?(super.removeEventListener(e,s.wrapper,n),s.options?.signal?.removeEventListener("abort",s.onAbort),!1):!0))}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Mn=Symbol.for("@libp2p/service-capabilities"),Ga=Symbol.for("@libp2p/service-dependencies");var Qa={};Fe(Qa,{base58btc:()=>oe,base58flickr:()=>Jm});var lE=new Uint8Array(0);function Lf(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 Ge(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return rr(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return rr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function Pf(r){let e=new Uint8Array(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}var Tf=4096;function Df(r){let e=r.length;if(e<=Tf)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.subarray(n,n+=Tf));return t}function Wm(r){return r?.buffer instanceof ArrayBuffer}function rr(r){return Wm(r)?r:r.slice()}function Gm(r,e,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,t){var c=i.toLowerCase().charCodeAt(0),l=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),l!==a&&(n[l]=s)}}var u=r.length,f=r.charAt(0),d=Math.log(u)/Math.log(256),h=Math.log(256)/Math.log(u);function b(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 E=0,x=0,A=0,_=g.length;A!==_&&g[A]===0;)A++,E++;for(var z=(_-A)*h+1>>>0,V=new Uint8Array(z);A!==_;){for(var F=g[A],O=0,M=z-1;(F!==0||O<x)&&M!==-1;M--,O++)F+=256*V[M]>>>0,V[M]=F%u>>>0,F=F/u>>>0;if(F!==0)throw new Error("Non-zero carry");x=O,A++}for(var W=z-x;W!==z&&V[W]===0;)W++;for(var k=f.repeat(E);W<z;++W)k+=r.charAt(V[W]);return k}function m(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var E=0;if(g[E]!==" "){for(var x=0,A=0;g[E]===f;)x++,E++;for(var _=(g.length-E)*d+1>>>0,z=new Uint8Array(_);g[E];){var V=n[g.charCodeAt(E)];if(V===255)return;for(var F=0,O=_-1;(V!==0||F<A)&&O!==-1;O--,F++)V+=u*z[O]>>>0,z[O]=V%256>>>0,V=V/256>>>0;if(V!==0)throw new Error("Non-zero carry");A=F,E++}if(g[E]!==" "){for(var M=_-A;M!==_&&z[M]===0;)M++;for(var W=new Uint8Array(x+(_-M)),k=x;M!==_;)W[k++]=z[M++];return W}}}function p(g){var E=m(g);if(E)return E;throw new Error(`Non-${e} character`)}return{encode:b,decodeUnsafe:m,decode:p}}var jm=Gm,Ym=jm,kf=Ym;var ja=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")}},Ya=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 Of(this,e)}},Xa=class{decoders;constructor(e){this.decoders=e}or(e){return Of(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 Of(r,e){return new Xa({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Za=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 ja(e,t,n),this.decoder=new Ya(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Br({name:r,prefix:e,encode:t,decode:n}){return new Za(r,e,t,n)}function Bt({name:r,prefix:e,alphabet:t,caseInsensitive:n=!1}){let{encode:o,decode:s}=kf(t,r,n);return Br({prefix:e,name:r,encode:o,decode:i=>Ge(s(i))})}function Xm(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 Zm(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 Qm(r,e){let t={};for(let n=0;n<r.length;++n)if(t[r[n]]=n,e){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(t[o]=n),s!==r[n]&&(t[s]=n)}return t}function pe({name:r,prefix:e,bitsPerChar:t,alphabet:n,caseInsensitive:o=!1}){let s=Qm(n,o);return Br({prefix:e,name:r,encode(i){return Zm(i,n,t)},decode(i){return Xm(i,s,t,r)}})}var oe=Bt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Jm=Bt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ja={};Fe(Ja,{base32:()=>je,base32hex:()=>ng,base32hexpad:()=>sg,base32hexpadupper:()=>ig,base32hexupper:()=>og,base32pad:()=>tg,base32padupper:()=>rg,base32upper:()=>eg,base32z:()=>ag});var je=pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),eg=pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),tg=pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),rg=pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),ng=pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),og=pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),sg=pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),ig=pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),ag=pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ec={};Fe(ec,{base36:()=>Bn,base36upper:()=>cg});var Bn=Bt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),cg=Bt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var lg=Bf,Nf=128,ug=127,fg=~ug,dg=Math.pow(2,31);function Bf(r,e,t){e=e||[],t=t||0;for(var n=t;r>=dg;)e[t++]=r&255|Nf,r/=128;for(;r&fg;)e[t++]=r&255|Nf,r>>>=7;return e[t]=r|0,Bf.bytes=t-n+1,e}var hg=tc,pg=128,Mf=127;function tc(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw tc.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Mf)<<o:(i&Mf)*Math.pow(2,o),o+=7}while(i>=pg);return tc.bytes=s-n,t}var mg=Math.pow(2,7),gg=Math.pow(2,14),yg=Math.pow(2,21),bg=Math.pow(2,28),wg=Math.pow(2,35),xg=Math.pow(2,42),Eg=Math.pow(2,49),vg=Math.pow(2,56),Sg=Math.pow(2,63),Ag=function(r){return r<mg?1:r<gg?2:r<yg?3:r<bg?4:r<wg?5:r<xg?6:r<Eg?7:r<vg?8:r<Sg?9:10},_g={encode:lg,decode:hg,encodingLength:Ag},Ig=_g,Fn=Ig;function Un(r,e=0){let t=Fn.decode(r,e),n=Fn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[e+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[t,n]}function Fr(r,e,t=0){return Fn.encode(r,e,t),e}function Ur(r){return Fn.encodingLength(r)}function dt(r,e){let t=e.byteLength,n=Ur(r),o=n+Ur(t),s=new Uint8Array(o+t);return Fr(r,s,0),Fr(t,s,n),s.set(e,o),new Kr(r,t,e,s)}function Et(r){let e=Ge(r),[t,n]=Un(e),[o,s]=Un(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Kr(t,o,i,e)}function Ff(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Lf(r.bytes,t.bytes)}}var Kr=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=rr(n),this.bytes=rr(o)}};function Uf(r,e){let{bytes:t,version:n}=r;return n===0?Tg(t,rc(r),e??oe.encoder):Lg(t,rc(r),e??je.encoder)}var Kf=new WeakMap;function rc(r){let e=Kf.get(r);if(e==null){let t=new Map;return Kf.set(r,t),t}return e}var me=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=rr(o),this["/"]=this.bytes}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Kn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Pg)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=dt(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&&Ff(e.multihash,n.multihash)}toString(e){return Uf(this,e)}toJSON(){return{"/":Uf(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??qf(n,o,s.bytes))}else if(t[Dg]===!0){let{version:n,multihash:o,code:s}=t,i=Et(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!==Kn)throw new Error(`Version 0 CID must use dag-pb (code: ${Kn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=qf(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Kn,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=Ge(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 Kr(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,d]=Un(e.subarray(t));return t+=d,f},o=n(),s=Kn;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]=Cg(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 rc(s).set(n,e),s}};function Cg(r,e){switch(r[0]){case"Q":{let t=e??oe;return[oe.prefix,t.decode(`${oe.prefix}${r}`)]}case oe.prefix:{let t=e??oe;return[oe.prefix,t.decode(r)]}case je.prefix:{let t=e??je;return[je.prefix,t.decode(r)]}case Bn.prefix:{let t=e??Bn;return[Bn.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 Tg(r,e,t){let{prefix:n}=t;if(n!==oe.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 Lg(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 Kn=112,Pg=18;function qf(r,e,t){let n=Ur(r),o=n+Ur(e),s=new Uint8Array(o+t.byteLength);return Fr(r,s,0),Fr(e,s,n),s.set(t,o),s}var Dg=Symbol.for("@ipld/js-cid/CID");var nc={};Fe(nc,{identity:()=>rt});var $f=0,Rg="identity",zf=Ge;function kg(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 dt($f,zf(r))}var rt={code:$f,name:Rg,encode:zf,digest:kg};function Z(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 Og(r){return r.buffer instanceof ArrayBuffer}function Ee(r){return Og(r)?r:r.slice()}async function Vf(r="P-256"){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:r},!0,["sign","verify"]);return{publicKey:await crypto.subtle.exportKey("jwk",e.publicKey),privateKey:await crypto.subtle.exportKey("jwk",e.privateKey)}}async function Hf(r,e,t){let n=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["sign"]);t?.signal?.throwIfAborted();let o=await crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,Ee(e.subarray()));return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Wf(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,Ee(e),Ee(t.subarray()));return n?.signal?.throwIfAborted(),s}function le(r=0){return new Uint8Array(r)}function ye(r=0){return new Uint8Array(r)}function Ng(r){return r?.buffer instanceof ArrayBuffer}function oc(r){if(Ng(r))return r;let e=r.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function Ye(r,e){e==null&&(e=r.reduce((o,s)=>o+s.length,0));let t=ye(e),n=0;for(let o of r)t.set(o,n),n+=o.length;return oc(t)}var jf=Symbol.for("@achingbrain/uint8arraylist");function Gf(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 os(r){return!!r?.[jf]}var re=class r{bufs;length;[jf]=!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(os(n)){t+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=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(os(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=Gf(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Gf(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(os(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 Ye(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:Ye(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(!os(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 d=l;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){u=Math.max(1,d-a[h]);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=ye(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=le(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=le(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=le(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=ye(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=le(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=le(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=le(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=le(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=le(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(!Z(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 sc={};Fe(sc,{base10:()=>Mg});var Mg=Bt({prefix:"9",name:"base10",alphabet:"0123456789"});var ic={};Fe(ic,{base16:()=>Bg,base16upper:()=>Fg});var Bg=pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),Fg=pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ac={};Fe(ac,{base2:()=>Ug});var Ug=pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var cc={};Fe(cc,{base256emoji:()=>Vg});var Yf=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}"),Kg=Yf.reduce((r,e,t)=>(r[t]=e,r),[]),qg=Yf.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function $g(r){return r.reduce((e,t)=>(e+=Kg[t],e),"")}function zg(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=qg[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Vg=Br({prefix:"\u{1F680}",name:"base256emoji",encode:$g,decode:zg});var fc={};Fe(fc,{base64:()=>lc,base64pad:()=>Hg,base64url:()=>uc,base64urlpad:()=>Wg});var lc=pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hg=pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),uc=pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Wg=pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var dc={};Fe(dc,{base8:()=>Gg});var Gg=pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var hc={};Fe(hc,{identity:()=>jg});var jg=Br({prefix:"\0",name:"identity",encode:r=>Df(Ge(r)),decode:r=>Ge(Pf(r))});var jE=new TextEncoder,YE=new TextDecoder;var gc={};Fe(gc,{sha256:()=>qr,sha512:()=>Qg});var Zg=20;function mc({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new pc(r,e,t,n,o)}var pc=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??Zg,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?Xf(n,this.code,t?.truncate):n.then(o=>Xf(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Xf(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 dt(e,r)}function Qf(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var qr=mc({name:"sha2-256",code:18,encode:Qf("SHA-256")}),Qg=mc({name:"sha2-512",code:19,encode:Qf("SHA-512")});var qn={...hc,...ac,...dc,...sc,...ic,...Ja,...ec,...Qa,...fc,...cc},av={...gc,...nc};function ed(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Jf=ed("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),yc=ed("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=ye(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Jg={utf8:Jf,"utf-8":Jf,hex:qn.base16,latin1:yc,ascii:yc,binary:yc,...qn},ss=Jg;function D(r,e="utf8"){let t=ss[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function q(r,e="utf8"){let t=ss[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var ey=parseInt("11111",2),bc=parseInt("10000000",2),ty=parseInt("01111111",2),td={0:$n,1:$n,2:ry,3:sy,4:iy,5:oy,6:ny,16:$n,22:$n,48:$n};function vt(r,e={offset:0}){let t=r[e.offset]&ey;if(e.offset++,td[t]!=null)return td[t](r,e);throw new Error("No decoder for tag "+t)}function zn(r,e){let t=0;if((r[e.offset]&bc)===bc){let n=r[e.offset]&ty,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++){if(e.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[e.offset].toString(16).padStart(2,"0")}t=parseInt(o,16)}else t=r[e.offset],e.offset++;if(!Number.isInteger(t)||t<0||t>r.byteLength-e.offset)throw new Error("invalid DER element length");return t}function $n(r,e){zn(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=vt(r,e);if(n===null)break;t.push(n)}return t}function ry(r,e){let t=zn(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 ny(r,e){let t=zn(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 oy(r,e){return e.offset++,null}function sy(r,e){let t=zn(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 iy(r,e){let t=zn(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function ay(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new re;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function is(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=ay(r.byteLength);return new re(Uint8Array.from([e.byteLength|bc]),e)}function Re(r){let e=new re,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new re(Uint8Array.from([2]),is(e),e)}function Vn(r){let e=Uint8Array.from([0]),t=new re(e,r);return new re(Uint8Array.from([3]),is(t),t)}function rd(r){return new re(Uint8Array.from([4]),is(r),r)}function nt(r,e=48){let t=new re;for(let n of r)t.append(n);return new re(Uint8Array.from([e]),is(t),t)}var cy=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),ly=Uint8Array.from([6,5,43,129,4,0,34]),uy=Uint8Array.from([6,5,43,129,4,0,35]),fy={ext:!0,kty:"EC",crv:"P-256"},dy={ext:!0,kty:"EC",crv:"P-384"},hy={ext:!0,kty:"EC",crv:"P-521"},wc=32,xc=48,Ec=66;function vc(r){let e=vt(r);return nd(e)}function nd(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===wc*2+1)return n=q(e.subarray(t,t+wc),"base64url"),o=q(e.subarray(t+wc),"base64url"),new nr({...fy,key_ops:["verify"],x:n,y:o});if(e.byteLength===xc*2+1)return n=q(e.subarray(t,t+xc),"base64url"),o=q(e.subarray(t+xc),"base64url"),new nr({...dy,key_ops:["verify"],x:n,y:o});if(e.byteLength===Ec*2+1)return n=q(e.subarray(t,t+Ec),"base64url"),o=q(e.subarray(t+Ec),"base64url"),new nr({...hy,key_ops:["verify"],x:n,y:o});throw new R(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function od(r){return nt([Re(Uint8Array.from([1])),rd(D(r.d??"","base64url")),nt([id(r.crv)],160),nt([Vn(new re(Uint8Array.from([4]),D(r.x??"","base64url"),D(r.y??"","base64url")))],161)]).subarray()}function sd(r){return nt([Re(Uint8Array.from([1])),nt([id(r.crv)],160),nt([Vn(new re(Uint8Array.from([4]),D(r.x??"","base64url"),D(r.y??"","base64url")))],161)]).subarray()}function id(r){if(r==="P-256")return cy;if(r==="P-384")return ly;if(r==="P-521")return uy;throw new R(`Invalid curve ${r}`)}async function ad(r="P-256"){let e=await Vf(r);return new as(e.privateKey)}var nr=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=sd(this.jwk)),this._raw}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}async verify(e,t,n){return Wf(this.jwk,t,e,n)}},as=class{type="ECDSA";jwk;publicKey;_raw;constructor(e){this.jwk=e,this.publicKey=new nr({crv:e.crv,ext:e.ext,key_ops:["verify"],kty:"EC",x:e.x,y:e.y})}get raw(){return this._raw==null&&(this._raw=od(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}async sign(e,t){return Hf(this.jwk,e,t)}};var cs=BigInt(4294967295),cd=BigInt(32);function py(r,e=!1){return e?{h:Number(r&cs),l:Number(r>>cd&cs)}:{h:Number(r>>cd&cs)|0,l:Number(r&cs)|0}}function ld(r,e=!1){let t=r.length,n=new Uint32Array(t),o=new Uint32Array(t);for(let s=0;s<t;s++){let{h:i,l:a}=py(r[s],e);[n[s],o[s]]=[i,a]}return[n,o]}var my=r=>r/2**32|0,gy=r=>r>>>0;function ud(r,e,t,n){let o=my(t),s=gy(t);r.setUint32(e,n?s:o,n),r.setUint32(e+4,n?o:s,n)}var Sc=(r,e,t)=>r>>>t,Ac=(r,e,t)=>r<<32-t|e>>>t,or=(r,e,t)=>r>>>t|e<<32-t,sr=(r,e,t)=>r<<32-t|e>>>t,Hn=(r,e,t)=>r<<64-t|e>>>t-32,Wn=(r,e,t)=>r>>>t-32|e<<64-t;function ht(r,e,t,n){let o=(e>>>0)+(n>>>0);return{h:r+t+(o/2**32|0)|0,l:o|0}}var fd=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),dd=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,hd=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),pd=(r,e,t,n,o)=>e+t+n+o+(r/2**32|0)|0,md=(r,e,t,n,o)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),gd=(r,e,t,n,o,s)=>e+t+n+o+s+(r/2**32|0)|0;function ls(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var _c=r=>r?`"${r}" `:"";function St(r,e=""){if(typeof r!="number")throw new TypeError(_c(e)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(_c(e)+"expected integer >= 0, got "+r);return r}function Ze(r,e,t=""){if(ls(r)&&(e===void 0||r.length===e))return r;e!==void 0&&St(e,"length");let n=ls(r),o=e!==void 0?` of length ${e}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=_c(t)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}function us(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(St(r.outputLen),St(r.blockLen),r.outputLen<1||r.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}var yd=(r,e)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError((e==="object"?"":`"${e}" `)+"expected object, got type="+typeof r)};function $r(r,e=!0){if(r.destroyed)throw new Error("hash was destroyed");if(e&&r.finished)throw new Error("digest() was already called")}function fs(r,e){Ze(r,void 0,"output");let t=e.outputLen;if(!(r.length>=t))throw new RangeError('"output" expected length >= '+t)}function ir(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function ds(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function ot(r,e){return r<<32-e|r>>>e}var wd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",by=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function hs(r){if(Ze(r),wd)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=by[r[t]];return e}function bd(r){return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void 0}function ps(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(wd)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let e=r.length,t=e/2;if(e%2)throw new RangeError("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=bd(r.charCodeAt(s)),a=bd(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ic(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];Ze(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 wy(r,e,t="opts"){return yd(r,"defaults"),e!==void 0&&yd(e,t),Object.assign(r,e)}function Cc(r,e={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);e=wy({},e,"info");let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.canXOF=n.canXOF,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function xd(r=32){St(r,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return e.getRandomValues(new Uint8Array(r))}var Tc=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ed(r,e,t){return r&e^~r&t}function vd(r,e,t){return r&e^r&t^e&t}var Gn=class{blockLen;outputLen;canXOF=!1;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=ds(this.buffer)}update(e){$r(this),Ze(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length,i=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let l=ds(e);for(;o<=s-a;a+=o)this.process(l,a);i=!0;continue}n.set(a===0&&c===s?e:e.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(t,0),this.pos=0,i=!0)}return this.length+=e.length,i&&this.roundClean(),this}digestInto(e){$r(this),fs(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,t.fill(0,i),this.padOffset>o-i&&(this.process(n,0),t.fill(0)),ud(n,o-8,this.length*8,s),this.process(n,0),this.roundClean();let a=e===t?n:ds(e),c=this.outputLen,l=c/4,u=this.get();if(c%4||l>u.length)throw new Error("invalid outputLen");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}_cloneIntoMeta(e){let{buffer:t,length:n,finished:o,destroyed:s,pos:i}=this;return e.destroyed=s,e.finished=o,e.length=n,e.pos=i,i&&e.buffer.set(t),e}clone(){return this._cloneInto()}},Sd=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Ad=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var xy=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),Lc=class extends Gn{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}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}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let f=0;f<16;f++,t+=4)Ut[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let d=Ut[f-15],h=Ut[f-2],b=ot(d,7)^ot(d,18)^d>>>3,m=ot(h,17)^ot(h,19)^h>>>10;Ut[f]=m+Ut[f-7]+b+Ut[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 d=ot(a,6)^ot(a,11)^ot(a,25),h=u+d+Ed(a,c,l)+xy[f]+Ut[f]|0,m=(ot(n,2)^ot(n,13)^ot(n,22))+vd(n,o,s)|0;u=l,l=c,c=a,a=i+h|0,i=s,s=o,o=n,n=h+m|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(){ir(Ut)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ir(this.buffer)}},Pc=class extends Lc{constructor(){super(32,Sd)}};var _d=ld(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),Ey=_d[0],vy=_d[1],Kt=new Uint32Array(80),qt=new Uint32Array(80),Dc=class extends Gn{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(e,t){super(128,e,16,!1),this.Ah=t[0]|0,this.Al=t[1]|0,this.Bh=t[2]|0,this.Bl=t[3]|0,this.Ch=t[4]|0,this.Cl=t[5]|0,this.Dh=t[6]|0,this.Dl=t[7]|0,this.Eh=t[8]|0,this.El=t[9]|0,this.Fh=t[10]|0,this.Fl=t[11]|0,this.Gh=t[12]|0,this.Gl=t[13]|0,this.Hh=t[14]|0,this.Hl=t[15]|0}get(){let{Ah:e,Al:t,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:l,El:u,Fh:f,Fl:d,Gh:h,Gl:b,Hh:m,Hl:p}=this;return[e,t,n,o,s,i,a,c,l,u,f,d,h,b,m,p]}set(e,t,n,o,s,i,a,c,l,u,f,d,h,b,m,p){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=u|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=b|0,this.Hh=m|0,this.Hl=p|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let x=0;x<16;x++,t+=4)Kt[x]=e.getUint32(t),qt[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let A=Kt[x-15]|0,_=qt[x-15]|0,z=or(A,_,1)^or(A,_,8)^Sc(A,_,7),V=sr(A,_,1)^sr(A,_,8)^Ac(A,_,7),F=Kt[x-2]|0,O=qt[x-2]|0,M=or(F,O,19)^Hn(F,O,61)^Sc(F,O,6),W=sr(F,O,19)^Wn(F,O,61)^Ac(F,O,6),k=hd(V,W,qt[x-7],qt[x-16]),ae=pd(k,z,M,Kt[x-7],Kt[x-16]);Kt[x]=ae|0,qt[x]=k|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:l,Dl:u,Eh:f,El:d,Fh:h,Fl:b,Gh:m,Gl:p,Hh:g,Hl:E}=this;for(let x=0;x<80;x++){let A=or(f,d,14)^or(f,d,18)^Hn(f,d,41),_=sr(f,d,14)^sr(f,d,18)^Wn(f,d,41),z=f&h^~f&m,V=d&b^~d&p,F=md(E,_,V,vy[x],qt[x]),O=gd(F,g,A,z,Ey[x],Kt[x]),M=F|0,W=or(n,o,28)^Hn(n,o,34)^Hn(n,o,39),k=sr(n,o,28)^Wn(n,o,34)^Wn(n,o,39),ae=n&s^n&a^s&a,P=o&i^o&c^i&c;g=m|0,E=p|0,m=h|0,p=b|0,h=f|0,b=d|0,{h:f,l:d}=ht(l|0,u|0,O|0,M|0),l=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let L=fd(M,k,P);n=dd(L,O,W,ae),o=L|0}({h:n,l:o}=ht(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=ht(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=ht(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:u}=ht(this.Dh|0,this.Dl|0,l|0,u|0),{h:f,l:d}=ht(this.Eh|0,this.El|0,f|0,d|0),{h,l:b}=ht(this.Fh|0,this.Fl|0,h|0,b|0),{h:m,l:p}=ht(this.Gh|0,this.Gl|0,m|0,p|0),{h:g,l:E}=ht(this.Hh|0,this.Hl|0,g|0,E|0),this.set(n,o,s,i,a,c,l,u,f,d,h,b,m,p,g,E)}roundClean(){ir(Kt,qt)}destroy(){this.destroyed=!0,ir(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Rc=class extends Dc{constructor(){super(64,Ad)}};var zr=Cc(()=>new Pc,Tc(1));var kc=Cc(()=>new Rc,Tc(3));function gs(r,e,t=()=>{}){if(!Array.isArray(r))throw new TypeError(`"${e}" expected array, got type=${typeof r}`);for(let n=0;n<r.length;n++)t(r[n],`${e}[${n}]`);return r}var Q=(r,e,t)=>Ze(r,e,t),Oc=St;function Cd(r,e=""){if(typeof r!="string"){let t=e&&`"${e}" `;throw new TypeError(t+"expected string, got type="+typeof r)}return r}function $t(r,e="object"){if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof r}`);return r}function ar(r,e){if(typeof r!="function")throw new TypeError(`"${e}" is invalid: expected function, got ${typeof r}`);return r}var jn=hs,Qe=(...r)=>Ic(...r),Vr=r=>ps(r),Vt=ls,cr=r=>xd(r),ms=BigInt(0),Id=BigInt(1),Sy=r=>r?`"${r}" `:"";function Ue(r,e=""){if(typeof r!="boolean")throw new TypeError(Sy(e)+"expected boolean, got type="+typeof r);return r}function ys(r){if(typeof r=="bigint"){if(!zt(r))throw new RangeError("positive bigint expected, got "+r)}else Oc(r);return r}function Ht(r,e=""){if(typeof r!="number"){let t=e&&`"${e}" `;throw new TypeError(t+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let t=e&&`"${e}" `;throw new RangeError(t+"expected safe integer, got "+r)}}function Yn(r){let e=ys(r).toString(16);return e.length&1?"0"+e:e}function Td(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?ms:BigInt("0x"+r)}function pt(r){return Td(hs(r))}function lr(r){return Td(hs(ws(Ze(r)).reverse()))}function bs(r,e){if(St(e),e===0)throw new Error("zero output length is invalid");r=ys(r);let t=e*2,n=r.toString(16);if(n.length>t)throw new RangeError("number is too large");return ps(n.padStart(t,"0"))}function Nc(r,e){return bs(r,e).reverse()}function ws(r){return Uint8Array.from(Q(r))}function zt(r){return typeof r=="bigint"&&ms<=r}function Mc(r,e,t){return zt(r)&&zt(e)&&zt(t)&&e<=r&&r<t}function Hr(r,e,t,n){if(!Mc(e,t,n))throw new RangeError("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Wr(r){if(r<ms)throw new Error("expected non-negative bigint, got "+r);return r===ms?0:r.toString(2).length}var Xn=r=>(Ht(r,"n"),(Id<<BigInt(r))-Id);function Ld(r,e,t){if(St(r,"hashLen"),St(e,"qByteLen"),typeof t!="function")throw new TypeError("hmacFn must be a function");let n=p=>new Uint8Array(p),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},d=(...p)=>t(l,Qe(c,...p)),h=(p=o)=>{l=d(s,p),c=d(),p.length!==0&&(l=d(i,p),c=d())},b=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let p=0,g=[];for(;p<e;){c=d();let E=c.slice();g.push(E),p+=c.length}return Qe(...g)};return(p,g)=>{f(),h(p);let E;for(;(E=g(b()))===void 0;)h();return f(),E}}function Ke(r,e={},t={},n="object"){$t(r,n),$t(e,"fields"),$t(t,"optFields");function o(i,a,c){let l=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,u=r[i];if(!Object.hasOwn(r,i)&&(c?u!==void 0:a!=="function"))throw new TypeError(`${l} is invalid: expected own property`);if(c&&u===void 0)return;let f=typeof u;if(f!==a||u===null)throw new TypeError(`${l} is invalid: expected ${a}, got ${f}`)}let s=(i,a)=>Object.entries(i).forEach(([c,l])=>o(c,l,a));s(e,!1),s(t,!0)}var ge=BigInt(0),J=BigInt(1),Wt=BigInt(2),Rd=BigInt(3),Bc=BigInt(4),kd=BigInt(5),Ay=BigInt(7),Od=BigInt(8),_y=BigInt(9),Iy=BigInt(15),Nd=BigInt(16),Cy=BigInt("0x10000000000000000");function ue(r,e){if(e<=ge)throw new Error("mod: expected positive modulus, got "+e);let t=r%e;return t>=ge?t:e+t}function Md(r,e,t){if(t<=J)throw new Error("pow: expected modulus > 1, got "+t);if(typeof e!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof e);if(e<ge)throw new Error("invalid exponent, negatives unsupported");if(e===ge)return J;if(e===J)return r;let n=r%t;if(n<ge&&(n+=t),e<Cy){let a=J;for(;e>ge;)e&J&&(a=a*n%t),n=n*n%t,e>>=J;return a}let o=[];for(;e>ge;)o.push(Number(e&Iy)),e>>=Bc;let s=new Array(16);s[0]=J,s[1]=n;for(let a=2;a<16;a++)s[a]=s[a-1]*n%t;let i=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){i=i*i%t,i=i*i%t,i=i*i%t,i=i*i%t;let c=o[a];c!==0&&(i=i*s[c]%t)}return i}function ce(r,e,t){if(t<=J)throw new Error("pow2: expected modulus > 1, got "+t);if(e<ge)throw new Error("pow2: expected non-negative exponent, got "+e);let n=r;for(;e-- >ge;)n*=n,n%=t;return n}function Pd(r,e){if(r===ge)throw new Error("invert: expected non-zero number");if(e<=J)throw new Error("invert: expected modulus > 1, got "+e);let t=ue(r,e),n=e,o=ge,s=J;for(;t!==ge;){let a=n/t,c=n-t*a,l=o-s*a;n=t,t=c,o=s,s=l}if(n!==J)throw new Error("invert: does not exist");return ue(o,e)}function Bd(r,e){if(e<=J)throw new Error("invertCt: expected prime modulus > 1, got "+e);let t=ue(r,e);if(t===ge)throw new Error("invertCt: expected non-zero number");let n=Md(t,e-Wt,e);if(ue(t*n,e)!==J)throw new Error("invertCt: does not exist");return n}function Fc(r,e,t){let n=r;if(!n.eql(n.sqr(e),t))throw new Error("Cannot find square root")}function Uc(r,e){if((r&J)===ge)throw new Error(e+": expected odd modulus, got "+r)}function Fd(r,e){let t=r,n=(t.ORDER+J)/Bc,o=t.pow(e,n);return Fc(t,o,e),o}function Ty(r,e){let t=r,n=(t.ORDER-kd)/Od,o=t.mul(e,Wt),s=t.pow(o,n),i=t.mul(e,s),a=t.mul(t.mul(i,Wt),s),c=t.mul(i,t.sub(a,t.ONE));return Fc(t,c,e),c}function Ly(r){let e=jr(r),t=Ud(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+Ay)/Nd;return((a,c)=>{let l=a,u=l.pow(c,i),f=l.mul(u,n),d=l.mul(u,o),h=l.mul(u,s),b=l.eql(l.sqr(f),c),m=l.eql(l.sqr(d),c);u=l.cmov(u,f,b),f=l.cmov(h,d,m);let p=l.eql(l.sqr(f),c),g=l.cmov(u,f,p);return Fc(l,g,c),g})}function Ud(r){if(r<Rd)throw new Error("sqrt is not defined for small field");Uc(r,"tonelliShanks");let e=r-J,t=0;for(;e%Wt===ge;)e/=Wt,t++;let n=Wt,o=jr(r);for(;Zn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return Fd;let s=o.pow(n,e),i=(e+J)/Wt;return function(c,l){let u=c;if(u.is0(l))return l;if(Zn(u,l)!==1)throw new Error("Cannot find square root");let f=t,d=u.mul(u.ONE,s),h=u.pow(l,e),b=u.pow(l,i);for(;!u.eql(h,u.ONE);){if(u.is0(h))throw new Error("Cannot find square root: probably non-prime P");let m=1,p=u.sqr(h);for(;!u.eql(p,u.ONE);)if(m++,p=u.sqr(p),m===f)throw new Error("Cannot find square root");let g=J<<BigInt(f-m-1),E=u.pow(d,g);f=m,d=u.sqr(E),h=u.mul(h,d),b=u.mul(b,E)}return b}}function Py(r){return Uc(r,"Fp.sqrt"),r%Bc===Rd?Fd:r%Od===kd?Ty:r%Nd===_y?Ly(r):Ud(r)}var Kd=(r,e)=>(ue(r,e)&J)===J,Dy=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Gr(r){if($t(r,"field"),typeof r.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof r.ORDER);Ht(r.BYTES,"BYTES"),Ht(r.BITS,"BITS");for(let e of Dy)ar(r[e],"field."+e);if(r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=J)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function Es(r,e,t=!1){Gr(r),gs(e,"nums"),Ue(t,"passZero");let n=r,o=new Array(e.length).fill(t?n.ZERO:void 0),s=e.reduce((a,c,l)=>n.is0(c)?a:(o[l]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return e.reduceRight((a,c,l)=>n.is0(c)?a:(o[l]=n.mul(a,o[l]),n.mul(a,c)),i),o}function Zn(r,e){Gr(r);let t=r;Uc(t.ORDER,"FpLegendre");let n=(t.ORDER-J)/Wt,o=t.pow(e,n),s=t.eql(o,t.ONE),i=t.eql(o,t.ZERO),a=t.eql(o,t.neg(t.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function Ry(r,e){if(e!==void 0&&Oc(e),r<=ge)throw new Error("invalid n length: expected positive n, got "+r);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let t=Wr(r);if(e!==void 0&&e<t)throw new Error(`invalid n length: expected nBitLength (${e}) >= bitLen(n) (${t})`);let n=e!==void 0?e:t,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var Dd=new WeakMap,xs=class{ORDER;BITS;BYTES;isLE;ZERO=ge;ONE=J;_lengths;_mod;constructor(e,t={}){if(e<=J)throw new Error("invalid field: expected ORDER > 1, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:t.sqrt,enumerable:!0}),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=Object.freeze(t.allowedLengths.slice())),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=Ry(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(e){return ue(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return ge<=e&&e<this.ORDER}is0(e){return e===ge}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&J)===J}neg(e){return ue(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return ue(e*e,this.ORDER)}add(e,t){return ue(e+t,this.ORDER)}sub(e,t){return ue(e-t,this.ORDER)}mul(e,t){return ue(e*t,this.ORDER)}pow(e,t){return Md(e,t,this.ORDER)}div(e,t){return ue(e*Pd(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 Pd(e,this.ORDER)}sqrt(e){let t=Dd.get(this);return t||Dd.set(this,t=Py(this.ORDER)),t(this,e)}toBytes(e){return this.isLE?Nc(e,this.BYTES):bs(e,this.BYTES)}fromBytes(e,t=!1){Q(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(e.length<1||!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?lr(e):pt(e);if(a&&(c=ue(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Es(this,e,!0)}cmov(e,t,n){return Ue(n,"condition"),n?t:e}};function jr(r,e={}){return Object.freeze(xs.prototype),new xs(r,e)}function qd(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=J)throw new Error("field order must be greater than 1");let e=Wr(r-J);return Math.ceil(e/8)}function vs(r){let e=qd(r);return e+Math.ceil(e/2)}function Ss(r,e,t=!1){Q(r);let n=r.length,o=qd(e),s=Math.max(vs(e),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?lr(r):pt(r),a=ue(i,e-J)+J;return t?Nc(a,o):bs(a,o)}var $c=BigInt(0),Qn=BigInt(1),ky=BigInt(4),Kc=16,$d=128,Oy=5,zd=2**31;function Gt(r){let e=r;if(typeof e!="function")throw new TypeError('"Point" expected constructor, got type='+typeof r);ar(e.fromAffine,"Point.fromAffine"),ar(e.fromBytes,"Point.fromBytes"),ar(e.fromHex,"Point.fromHex"),$t(e.BASE,"Point.BASE"),$t(e.ZERO,"Point.ZERO"),Gr(e.Fp),Gr(e.Fn)}function As(r,e){Gt(r),Hd(e,r);let t=Es(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function Ny(r,e,t=1){if(!Number.isSafeInteger(r)||r<t||r>e)throw new Error("invalid window size, expected ["+t+".."+e+"], got W="+r)}function My(r,e){let t=r*(4*e+128);if(t>zd)throw new Error("invalid window size: table would need ~"+Math.ceil(t/2**20)+" MiB, max "+zd/2**20+" MiB")}function zc(r,e){if(r!==void 0){ar(r,"randomBytes");try{let t=r(e);if(!Vt(t)||t.length!==e)return}catch{return}return r}}function Hd(r,e){gs(r,"points"),r.forEach((t,n)=>{if(!(t instanceof e))throw new Error("invalid point at index "+n)})}function By(r,e,t){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((n,o)=>{if(!(t===void 0?e.isValid(n):zt(n)&&n<t))throw new Error("invalid scalar at index "+o)})}var Wd=new WeakMap;function qc(r){return Wd.get(r)||1}function Fy(r,e){let t=r.double(),n=[r];for(let o=1;o<e;o++)n.push(n[o-1].add(t));return n}function Uy(r,e){let t=2**e,n=t/2,o=BigInt(t-1),s=[];for(;r>$c;){let i=0;r&Qn&&(i=Number(r&o),i>=n&&(i-=t),r-=BigInt(i)),s.push(i),r>>=Qn}return s}function Ky(r,e,t){let n=2**e,o=n/2,s=BigInt(n-1),i=BigInt(e),a=[];for(let c=0;c<t;c++){let l=Number(r&s);r>>=i,l>o&&(l-=n,r+=Qn),a.push(l)}if(r!==$c)throw new Error("invalid wnaf");return a}function qy(r,e,t){let n=0;for(let s of t)n=Math.max(n,s.length);let o=r;for(let s=n-1;s>=0;s--){s!==n-1&&(o=o.double());for(let i=0;i<t.length;i++){let a=t[i][s];if(a){let c=e[i][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}var Yr=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(e,t){Gt(e),this.randomBytes=zc(t,Kc),this.Point=e,this.BASE=e.BASE,this.ZERO=e.ZERO,this.bits=e.Fn.BITS}buildWnafTable(e,t,n){let o=Math.ceil(n/t)+1,s=2**(t-1),i=[],a=e;for(let c=0;c<o;c++){let l=a;for(let u=0;u<s;u++)i.push(l),l=l.add(a);a=i[i.length-1].double()}return{W:t,bits:n,windows:o,comp:i}}wnafCachedCT(e,t){let{W:n,windows:o,comp:s}=e,i=2**(n-1),a=Ky(t,n,o),c=this.ZERO,l=this.BASE;for(let u=0;u<o;u++){let f=a[u],d=u*i,h=Math.abs(f)-1,b=s[d];for(let p=1;p<i;p++)b=p===h?s[d+p]:b;let m=b.negate();f===0?l=l.add(s[d]):c=c.add(f<0?m:b)}return{p:c,f:l}}getWnafPrecomputes(e,t,n,o){let s=this.wnafPrecomputes.get(t),i=s?.find(a=>a.W===e&&a.bits===n);return i||(i=this.buildWnafTable(t,e,n),typeof o=="function"&&(i={...i,comp:o(i.comp)}),s||(s=[],this.wnafPrecomputes.set(t,s)),s.push(i)),i}assertPoint(e){if(!(e instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof e)}validateMulInput(e,t){if(this.assertPoint(e),!Mc(t,Qn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(e,t,n,o){let s=qc(e);return s===1?this.fixedWindowCT(e,t,n):this.wnafCachedCT(this.getWnafPrecomputes(s,e,n,o),t)}mulCT(e,t,n){return this.validateMulInput(e,t),this.runCT(e,t,this.bits,n)}mulCTBlinded(e,t,n){if(this.validateMulInput(e,t),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+$d,s=this.randomBytes(Kc);if(!Vt(s)||s.length!==Kc)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=t+pt(s)*this.Point.Fn.ORDER;return this.runCT(e,i,o,n)}fixedWindowCT(e,t,n){let o=Oy,s=1<<o,i=Xn(o),a=new Array(s);a[0]=this.ZERO;for(let u=1;u<s;u++)a[u]=a[u-1].add(e);let c=Math.ceil(n/o),l=this.ZERO;for(let u=c-1;u>=0;u--){if(u!==c-1)for(let h=0;h<o;h++)l=l.double();let f=Number(t>>BigInt(u*o)&i),d=a[0];for(let h=1;h<s;h++)d=h===f?a[h]:d;l=l.add(d)}return{p:l,f:l}}shouldBlind(e,t){return this.randomBytes===void 0?!1:t===Qn?!0:e!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(e,t,n,o){return this.shouldBlind(e,n)?this.mulCTBlinded(e,t,o):this.mulCT(e,t,o)}mulUnsafe(e,t,n){if(this.assertPoint(e),!zt(t))throw new Error("invalid scalar");let o=qc(e);if(o===1||t>=this.Point.Fn.ORDER)return _s(this.Point,[e],[t],!0);let s=this.getWnafPrecomputes(o,e,this.bits,n);return this.wnafCachedCT(s,t).p}setWindowSize(e,t){this.assertPoint(e),Ny(t,this.bits);let n=Math.ceil((this.bits+$d)/t)+1;My(n*2**(t-1),this.Point.Fp.BYTES),Wd.set(e,t),this.wnafPrecomputes.delete(e)}hasWindowSize(e){return qc(e)!==1}};function _s(r,e,t,n=!1){if(Gt(r),Hd(e,r),Ue(n,"allowOversized"),By(t,r.Fn,n?r.Fn.ORDER**ky:void 0),e.length!==t.length)throw new Error("arrays of points and scalars must have equal length");let o=e.map(i=>Fy(i,4)),s=t.map(i=>Uy(i,4));return qy(r.ZERO,o,s)}function Vd(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Gr(e),e}else return jr(r,{isLE:t})}function Is(r,e,t={},n){if(r!=="weierstrass"&&r!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);Ke(t);for(let c of["p","n","h"]){let l=e[c];if(!(zt(l)&&l!==$c))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Vd(e.p,t.Fp,n),s=Vd(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 Cs(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var Ts=BigInt(0),Ls=BigInt(1),Ps=BigInt(2),$y=BigInt(4),Gd=BigInt(8);function zy(r,e,t,n){let o=r.sqr(t),s=r.sqr(n),i=r.add(r.mul(e.a,o),s),a=r.add(r.ONE,r.mul(e.d,r.mul(o,s)));return r.eql(i,a)}function jd(r,e={}){Ke(e,{},{},"extraOpts");let t=e,n=Is("edwards",r,t,t.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;if(Zn(o,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(Zn(o,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Ke(t,{},{uvRatio:"function",randomBytes:"function"});let c=t.randomBytes===void 0?cr:t.randomBytes,l=Ps<<BigInt(o.BYTES*8)-Ls;function u(E){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(E)}let f=t.uvRatio===void 0?(E,x)=>{try{return{isValid:!0,value:o.sqrt(o.div(E,x))}}catch{return{isValid:!1,value:Ts}}}:t.uvRatio;if(!zy(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let d=o.eql(i.a,o.neg(o.ONE))?E=>o.neg(E):o.eql(i.a,o.ONE)?E=>E:E=>o.mul(i.a,E);function h(E,x,A=!1){let _=A?Ls:Ts;return Hr("coordinate "+E,x,_,l),x}function b(E){if(!(E instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(i.Gx,i.Gy,o.ONE,o.mul(i.Gx,i.Gy));static ZERO=new m(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(x,A,_,z){this.X=h("x",x),this.Y=h("y",A),this.Z=h("z",_,!0),this.T=h("t",z),Object.freeze(this)}static CURVE(){return i}static fromAffine(x){if(x instanceof m)throw new Error("extended point not allowed");let{x:A,y:_}=x||{};return h("x",A),h("y",_),new m(A,_,o.ONE,o.mul(A,_))}static fromBytes(x,A=!1){let _=o.BYTES,{a:z,d:V}=i;x=ws(Q(x,_,"point")),Ue(A,"zip215");let F=ws(x),O=x[_-1];F[_-1]=O&-129;let M=lr(F),W=A?l:o.ORDER;Hr("point.y",M,Ts,W);let k=o.sqr(M),ae=o.sub(k,o.ONE),P=o.sub(o.mulN(V,k),z),{isValid:L,value:y}=f(ae,P);if(!L)throw new Error("bad point: invalid y coordinate");let v=u(y),I=(O&128)!==0;if(!A&&o.is0(y)&&I)throw new Error("bad point: x=0 and x_0=1");return I!==v&&(y=o.neg(y)),m.fromAffine({x:y,y:M})}static fromHex(x,A=!1){return m.fromBytes(Vr(x),A)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=6,A=!0){return g.setWindowSize(this,x),A||this.multiply(Ps),this}assertValidity(){let x=this,{a:A,d:_}=i;if(x.is0())throw new Error("bad point: ZERO");let{X:z,Y:V,Z:F,T:O}=x,M=o.sqr(z),W=o.sqr(V),k=o.sqr(F),ae=o.sqr(k),P=o.mul(M,A),L=o.mul(o.add(P,W),k),y=o.add(ae,o.mul(_,o.mul(M,W)));if(!o.eql(L,y))throw new Error("bad point: equation left != right (1)");let v=o.mul(z,V),I=o.mul(F,O);if(!o.eql(v,I))throw new Error("bad point: equation left != right (2)")}equals(x){b(x);let{X:A,Y:_,Z:z}=this,{X:V,Y:F,Z:O}=x,M=o.mul(A,O),W=o.mul(V,z),k=o.mul(_,O),ae=o.mul(F,z);return o.eql(M,W)&&o.eql(k,ae)}is0(){return this.equals(m.ZERO)}negate(){return new m(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:x,Y:A,Z:_}=this,z=o.sqr(x),V=o.sqr(A),F=o.mul(o.sqr(_),Ps),O=d(z),M=o.addN(x,A),W=o.sub(o.subN(o.sqr(M),z),V),k=o.addN(O,V),ae=o.subN(k,F),P=o.subN(O,V),L=o.mul(W,ae),y=o.mul(k,P),v=o.mul(W,P),I=o.mul(ae,k);return new m(L,y,I,v)}add(x){b(x);let{d:A}=i,{X:_,Y:z,Z:V,T:F}=this,{X:O,Y:M,Z:W,T:k}=x,ae=o.mul(_,O),P=o.mul(z,M),L=o.mul(o.mulN(F,A),k),y=o.mul(V,W),v=o.sub(o.subN(o.mulN(o.addN(_,z),o.addN(O,M)),ae),P),I=o.subN(y,L),N=o.addN(y,L),S=o.sub(P,d(ae)),w=o.mul(v,I),C=o.mul(N,S),T=o.mul(v,S),U=o.mul(I,N);return new m(w,C,U,T)}subtract(x){return b(x),this.add(x.negate())}multiply(x){if(!s.isValidNot0(x))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:A,f:_}=g.mulSecret(this,x,a,p);return p([A,_])[0]}multiplyUnsafe(x){if(!s.isValid(x))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return x===Ts?m.ZERO:this.is0()||x===Ls?this:g.mulUnsafe(this,x,p)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return g.mulUnsafe(this,i.n).is0()}toAffine(x){let A=this,_=x;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:z,Y:V,Z:F}=A,O=A.is0();_==null&&(_=O?o.create(Gd):o.inv(F));let M=o.mul(z,_),W=o.mul(V,_),k=o.mul(F,_);if(O)return{x:o.ZERO,y:o.ONE};if(!o.eql(k,o.ONE))throw new Error("invZ was invalid");return{x:M,y:W}}clearCofactor(){return a===Ls?this:a===Ps?this.double():a===$y?this.double().double():a===Gd?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x,y:A}=this.toAffine(),_=o.toBytes(A);return _[_.length-1]|=u(x)?128:0,_}toHex(){return jn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let p=E=>As(m,E),g=new Yr(m,c);return g.bits>=6&&m.BASE.precompute(6),Object.freeze(m.prototype),Object.freeze(m),m}function Yd(r,e,t={}){if(Gt(r),typeof e!="function")throw new Error('"hash" function param is required');let n=e,o=t;Ke(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,l=n.outputLen,u=2*a.BYTES;if(l!==void 0&&(Ht(l,"hash.outputLen"),l!==u))throw new Error(`hash.outputLen must be ${u}, got ${l}`);let f=o.randomBytes===void 0?cr:o.randomBytes,d=o.toMontgomery,h=o.toMontgomerySecret,b=o.adjustScalarBytes===void 0?P=>P:o.adjustScalarBytes,m=o.domain===void 0?(P,L,y)=>{if(Ue(y,"phflag"),L.length||y)throw new Error("Contexts/pre-hash are not supported");return P}:o.domain;function p(P){return c.create(lr(P))}function g(P){let L=O.secretKey;Q(P,O.secretKey,"secretKey");let y=Q(n(P),2*L,"hashedSecretKey"),v=b(y.slice(0,L)),I=y.slice(L,2*L),N=p(v);return{head:v,prefix:I,scalar:N}}function E(P){let{head:L,prefix:y,scalar:v}=g(P),I=i.multiply(v),N=I.toBytes();return{head:L,prefix:y,scalar:v,point:I,pointBytes:N}}function x(P){return E(P).pointBytes}function A(P=Uint8Array.of(),...L){let y=Qe(...L);return p(n(m(y,Q(P,void 0,"context"),!!s)))}function _(P,L,y={}){Ke(y,{},{},"options"),P=Q(P,void 0,"message"),s&&(P=s(P));let{prefix:v,scalar:I,pointBytes:N}=E(L),S=A(y.context,v,P),w=i.multiply(S).toBytes(),C=A(y.context,w,N,P),T=c.create(S+C*I);if(!c.isValid(T))throw new Error("sign failed: invalid s");let U=Qe(w,c.toBytes(T));return Q(U,O.signature,"result")}let z={zip215:o.zip215};function V(P,L,y,v=z){Ke(v);let{context:I}=v,N=v.zip215===void 0?!!z.zip215:v.zip215,S=O.signature;P=Q(P,S,"signature"),L=Q(L,void 0,"message"),y=Q(y,O.publicKey,"publicKey"),N!==void 0&&Ue(N,"zip215"),s&&(L=s(L));let w=S/2,C=P.subarray(0,w),T=lr(P.subarray(w,S)),U,K,X;try{U=r.fromBytes(y,N),K=r.fromBytes(C,N),X=i.multiplyUnsafe(T)}catch{return!1}if(!N&&U.isSmallOrder())return!1;let Y=A(I,C,y,L);return K.add(U.multiplyUnsafe(Y)).subtract(X).clearCofactor().is0()}let F=a.BYTES,O={secretKey:F,publicKey:F,signature:2*F,seed:F};function M(P){return P=P===void 0?f(O.seed):P,Q(P,O.seed,"seed")}function W(P){return Vt(P)&&P.length===O.secretKey}function k(P,L){try{return!!r.fromBytes(P,L===void 0?z.zip215:L)}catch{return!1}}let ae={getExtendedPublicKey:E,randomSecretKey:M,isValidSecretKey:W,isValidPublicKey:k,toMontgomery(P){if(d===void 0)throw new Error("Montgomery conversion is not supported for this curve");return d(r.fromBytes(P))},toMontgomerySecret(P){if(h===void 0)throw new Error("Montgomery conversion is not supported for this curve");return h(P)}};return Object.freeze(O),Object.freeze(ae),Object.freeze({keygen:Cs(M,x),getPublicKey:x,sign:_,verify:V,utils:ae,Point:r,lengths:O})}var Vc=BigInt(1),Xd=BigInt(2);var Vy=BigInt(5),Hy=BigInt(8),Hc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Wy={p:Hc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Hy,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Gy(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),o=BigInt(80),s=Hc,a=r*r%s*r%s,c=ce(a,Xd,s)*a%s,l=ce(c,Vc,s)*r%s,u=ce(l,Vy,s)*l%s,f=ce(u,e,s)*u%s,d=ce(f,t,s)*f%s,h=ce(d,n,s)*d%s,b=ce(h,o,s)*h%s,m=ce(b,o,s)*h%s,p=ce(m,e,s)*u%s;return{pow_p_5_8:ce(p,Xd,s)*r%s,b2:a}}function Jd(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Zd=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function jy(r,e){let t=Hc,n=ue(e*e*e,t),o=ue(n*n*e,t),s=Gy(r*o).pow_p_5_8,i=ue(r*n*s,t),a=ue(e*i*i,t),c=i,l=ue(i*Zd,t),u=a===r,f=a===ue(-r,t),d=a===ue(-r*Zd,t);return u&&(i=c),(f||d)&&(i=l),Kd(i,t)&&(i=ue(-i,t)),{isValid:u||f,value:i}}var Wc=jd(Wy,{uvRatio:jy}),Qd=Wc.Fp;function Yy(r){let{y:e}=r;return Qd.toBytes(Qd.div(Vc+e,Vc-e))}function Xy(r){let e=Wc.Fp.BYTES;return Ze(r,e),Jd(kc(r.subarray(0,e))).subarray(0,e)}function Zy(r){return Yd(Wc,kc,Object.assign({adjustScalarBytes:Jd,toMontgomery:Yy,toMontgomerySecret:Xy,zip215:!0},r))}var Jn=Zy({});var eo=class extends Error{constructor(e="An error occurred while signing a message"){super(e),this.name="SigningError"}},to=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},Ds=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var qe={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw new Ds("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return e}};var Rs=32,ro=64,Gc=32;var Xr,eh=(async()=>{try{return await qe.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();function th(){let r=Jn.utils.randomSecretKey(),e=Jn.getPublicKey(r);return{privateKey:r0(r,e),publicKey:e}}async function Qy(r,e){let t;r.length===ro?t=r.subarray(0,32):t=r;let n={crv:"Ed25519",kty:"OKP",x:q(r.subarray(32),"base64url"),d:q(t,"base64url"),ext:!0,key_ops:["sign"]},o=await qe.get().subtle.importKey("jwk",n,{name:"Ed25519"},!0,["sign"]),s=await qe.get().subtle.sign({name:"Ed25519"},o,Ee(e instanceof Uint8Array?e:e.subarray()));return new Uint8Array(s,0,s.byteLength)}function Jy(r,e){let t=r.subarray(0,Gc);return Jn.sign(e instanceof Uint8Array?e:e.subarray(),t)}async function rh(r,e){return Xr==null&&(Xr=await eh),Xr?Qy(r,e):Jy(r,e)}async function e0(r,e,t){if(r.buffer instanceof ArrayBuffer){let n=await qe.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await qe.get().subtle.verify({name:"Ed25519"},n,Ee(e),Ee(t instanceof Uint8Array?t:t.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function t0(r,e,t){return Jn.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}async function nh(r,e,t){return Xr==null&&(Xr=await eh),Xr?e0(r,e,t):t0(r,e,t)}function r0(r,e){let t=new Uint8Array(ro);for(let n=0;n<Gc;n++)t[n]=r[n],t[Gc+n]=e[n];return t}function Zr(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var no=class{type="Ed25519";raw;constructor(e){this.raw=Os(e,Rs)}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=nh(this.raw,t,e);return Zr(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}},ks=class{type="Ed25519";raw;publicKey;constructor(e,t){this.raw=Os(e,ro),this.publicKey=new no(t)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){t?.signal?.throwIfAborted();let n=rh(this.raw,e);return Zr(n)?n.then(o=>(t?.signal?.throwIfAborted(),o)):(t?.signal?.throwIfAborted(),n)}};function jc(r){return r=Os(r,Rs),new no(r)}async function sh(){let{privateKey:r,publicKey:e}=th();return new ks(r,e)}function Os(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new R(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var n0=Math.pow(2,7),o0=Math.pow(2,14),s0=Math.pow(2,21),Yc=Math.pow(2,28),Xc=Math.pow(2,35),Zc=Math.pow(2,42),Qc=Math.pow(2,49),ee=128,_e=127;function be(r){if(r<n0)return 1;if(r<o0)return 2;if(r<s0)return 3;if(r<Yc)return 4;if(r<Xc)return 5;if(r<Zc)return 6;if(r<Qc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Qr(r,e,t=0){switch(be(r)){case 8:e[t++]=r&255|ee,r/=128;case 7:e[t++]=r&255|ee,r/=128;case 6:e[t++]=r&255|ee,r/=128;case 5:e[t++]=r&255|ee,r/=128;case 4:e[t++]=r&255|ee,r>>>=7;case 3:e[t++]=r&255|ee,r>>>=7;case 2:e[t++]=r&255|ee,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function i0(r,e,t=0){switch(be(r)){case 8:e.set(t++,r&255|ee),r/=128;case 7:e.set(t++,r&255|ee),r/=128;case 6:e.set(t++,r&255|ee),r/=128;case 5:e.set(t++,r&255|ee),r/=128;case 4:e.set(t++,r&255|ee),r>>>=7;case 3:e.set(t++,r&255|ee),r>>>=7;case 2:e.set(t++,r&255|ee),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Jc(r,e){let t=r[e],n=0;if(n+=t&_e,t<ee||(t=r[e+1],n+=(t&_e)<<7,t<ee)||(t=r[e+2],n+=(t&_e)<<14,t<ee)||(t=r[e+3],n+=(t&_e)<<21,t<ee)||(t=r[e+4],n+=(t&_e)*Yc,t<ee)||(t=r[e+5],n+=(t&_e)*Xc,t<ee)||(t=r[e+6],n+=(t&_e)*Zc,t<ee)||(t=r[e+7],n+=(t&_e)*Qc,t<ee))return n;throw new RangeError("Could not decode varint")}function a0(r,e){let t=r.get(e),n=0;if(n+=t&_e,t<ee||(t=r.get(e+1),n+=(t&_e)<<7,t<ee)||(t=r.get(e+2),n+=(t&_e)<<14,t<ee)||(t=r.get(e+3),n+=(t&_e)<<21,t<ee)||(t=r.get(e+4),n+=(t&_e)*Yc,t<ee)||(t=r.get(e+5),n+=(t&_e)*Xc,t<ee)||(t=r.get(e+6),n+=(t&_e)*Zc,t<ee)||(t=r.get(e+7),n+=(t&_e)*Qc,t<ee))return n;throw new RangeError("Could not decode varint")}function jt(r,e,t=0){return e==null&&(e=ye(be(r))),e instanceof Uint8Array?Qr(r,e,t):i0(r,e,t)}function ur(r,e=0){return r instanceof Uint8Array?Jc(r,e):a0(r,e)}var el=new Float32Array([-0]),Yt=new Uint8Array(el.buffer);function ih(r,e,t){el[0]=r,e[t]=Yt[0],e[t+1]=Yt[1],e[t+2]=Yt[2],e[t+3]=Yt[3]}function ah(r,e){return Yt[0]=r[e],Yt[1]=r[e+1],Yt[2]=r[e+2],Yt[3]=r[e+3],el[0]}var tl=new Float64Array([-0]),Ie=new Uint8Array(tl.buffer);function ch(r,e,t){tl[0]=r,e[t]=Ie[0],e[t+1]=Ie[1],e[t+2]=Ie[2],e[t+3]=Ie[3],e[t+4]=Ie[4],e[t+5]=Ie[5],e[t+6]=Ie[6],e[t+7]=Ie[7]}function lh(r,e){return Ie[0]=r[e],Ie[1]=r[e+1],Ie[2]=r[e+2],Ie[3]=r[e+3],Ie[4]=r[e+4],Ie[5]=r[e+5],Ie[6]=r[e+6],Ie[7]=r[e+7],tl[0]}var c0=BigInt(Number.MAX_SAFE_INTEGER),l0=BigInt(Number.MIN_SAFE_INTEGER),ze=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 fr;if(e<c0&&e>l0)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>uh&&(o=0n,++n>uh&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return fr;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):fr}},fr=new ze(0,0);fr.toBigInt=function(){return 0n};fr.zzEncode=fr.zzDecode=function(){return this};fr.length=function(){return 1};var uh=4294967296n;function fh(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 dh(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 rl(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 st(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ns(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var nl=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=Ee(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,st(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 st(this,4);return Ns(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw st(this,4);return Ns(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw st(this,4);let e=ah(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw st(this,4);let e=lh(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 st(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return dh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw st(this,e);this.pos+=e}else do if(this.pos>=this.len)throw st(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 ze(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 st(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 st(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 st(this,8);let e=Ns(this.buf,this.pos+=4),t=Ns(this.buf,this.pos+=4);return new ze(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=Jc(this.buf,this.pos);return this.pos+=be(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 so(r){return new nl(r instanceof Uint8Array?r:r.subarray())}function ke(r,e,t){let n=so(r);return e.decode(n,void 0,t)}function ol(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return ye(i);o+i>e&&(n=ye(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function sl(){}var al=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},u0=ol();function f0(r){return globalThis.Buffer!=null?ye(r):u0(r)}var ao=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(sl,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new dr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new cl((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(Ms,10,ze.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=ze.fromBigInt(e);return this._push(Ms,t.length(),t)}uint64Number(e){return this._push(Qr,be(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=ze.fromBigInt(e).zzEncode();return this._push(Ms,t.length(),t)}sint64Number(e){let t=ze.fromNumber(e).zzEncode();return this._push(Ms,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(il,1,e?1:0)}fixed32(e){return this._push(io,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=ze.fromBigInt(e);return this._push(io,4,t.lo)._push(io,4,t.hi)}fixed64Number(e){let t=ze.fromNumber(e);return this._push(io,4,t.lo)._push(io,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(ih,4,e)}double(e){return this._push(ch,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(il,1,0):this.uint32(t)._push(h0,t,e)}string(e){let t=fh(e);return t!==0?this.uint32(t)._push(rl,t,e):this._push(il,1,0)}fork(){return this.states=new al(this),this.head=this.tail=new dr(sl,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new dr(sl,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=f0(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function il(r,e,t){e[t]=r&255}function d0(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var cl=class extends dr{next;constructor(e,t){super(d0,e,t),this.next=void 0}};function Ms(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 io(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 h0(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(ao.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(p0,e,r),this},ao.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(m0,e,r),this});function p0(r,e,t){e.set(r,t)}function m0(r,e,t){r.length<40?rl(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(D(r),t)}function ll(){return new ao}function Oe(r,e){let t=ll();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}function*Ne(r,e,t){let n=so(r);yield*e.stream(n,void 0,"$",t)}var Bs={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Fs(r,e,t,n,o){return{name:r,type:e,encode:t,decode:n,stream:o}}function ul(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,a){let c=e(i);a.int32(c)},n=function(i){let a=i.int32();return e(a)},o=function*(i){let a=i.int32();yield e(a)};return Fs("enum",Bs.VARINT,t,n,o)}function Me(r,e,t){return Fs("message",Bs.LENGTH_DELIMITED,r,e,t)}var Je=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"},co=class extends Error{code="ERR_MAX_SIZE";name="MaxSizeError"};var fe;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(fe||(fe={}));var fl;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(fl||(fl={}));(function(r){r.codec=()=>ul(fl)})(fe||(fe={}));var mt;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),fe.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=fe.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:fe.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(mt||(mt={}));var dl;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),fe.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=fe.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:fe.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(dl||(dl={}));var uo={};Fe(uo,{MAX_RSA_KEY_SIZE:()=>hl,generateRSAKeyPair:()=>vl,jwkToJWKKeyPair:()=>bh,jwkToPkcs1:()=>w0,jwkToPkix:()=>yl,jwkToRSAPrivateKey:()=>El,pkcs1MessageToJwk:()=>ml,pkcs1MessageToRSAPrivateKey:()=>bl,pkcs1ToJwk:()=>b0,pkcs1ToRSAPrivateKey:()=>yh,pkixMessageToJwk:()=>gl,pkixMessageToRSAPublicKey:()=>xl,pkixToJwk:()=>x0,pkixToRSAPublicKey:()=>wl});var Jr=class{type="RSA";jwk;_raw;_multihash;constructor(e,t){this.jwk=e,this._multihash=t}get raw(){return this._raw==null&&(this._raw=uo.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return me.createV1(114,this._multihash)}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){return gh(this.jwk,t,e,n)}},lo=class{type="RSA";jwk;_raw;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}get raw(){return this._raw==null&&(this._raw=uo.jwkToPkcs1(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){return mh(this.jwk,e,t)}};var hl=8192,pl=18,g0=1062,y0=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function b0(r){let e=vt(r);return ml(e)}function ml(r){return{n:q(r[1],"base64url"),e:q(r[2],"base64url"),d:q(r[3],"base64url"),p:q(r[4],"base64url"),q:q(r[5],"base64url"),dp:q(r[6],"base64url"),dq:q(r[7],"base64url"),qi:q(r[8],"base64url"),kty:"RSA"}}function w0(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new R("JWK was missing components");return nt([Re(Uint8Array.from([0])),Re(D(r.n,"base64url")),Re(D(r.e,"base64url")),Re(D(r.d,"base64url")),Re(D(r.p,"base64url")),Re(D(r.q,"base64url")),Re(D(r.dp,"base64url")),Re(D(r.dq,"base64url")),Re(D(r.qi,"base64url"))]).subarray()}function x0(r){let e=vt(r,{offset:0});return gl(e)}function gl(r){let e=vt(r[1],{offset:0});return{kty:"RSA",n:q(e[0],"base64url"),e:q(e[1],"base64url")}}function yl(r){if(r.n==null||r.e==null)throw new R("JWK was missing components");return nt([y0,Vn(nt([Re(D(r.n,"base64url")),Re(D(r.e,"base64url"))]))]).subarray()}function yh(r){let e=vt(r);return bl(e)}function bl(r){let e=ml(r);return El(e)}function wl(r,e){if(r.byteLength>=g0)throw new kt("Key size is too large");let t=vt(r,{offset:0});return xl(t,r,e)}function xl(r,e,t){let n=gl(r);if(t==null){let o=zr(mt.encode({Type:fe.RSA,Data:e}));t=dt(pl,o)}return new Jr(n,t)}function El(r){if(xh(r)>hl)throw new R("Key size is too large");let e=bh(r),t=zr(mt.encode({Type:fe.RSA,Data:yl(e.publicKey)})),n=dt(pl,t);return new lo(e.privateKey,new Jr(e.publicKey,n))}async function vl(r){if(r>hl)throw new R("Key size is too large");let e=await wh(r),t=zr(mt.encode({Type:fe.RSA,Data:yl(e.publicKey)})),n=dt(pl,t);return new lo(e.privateKey,new Jr(e.publicKey,n))}function bh(r){if(r==null)throw new R("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function wh(r,e){let t=await qe.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);e?.signal?.throwIfAborted();let n=await E0(t,e);return{privateKey:n[0],publicKey:n[1]}}async function mh(r,e,t){let n=await qe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);t?.signal?.throwIfAborted();let o=await qe.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Ee(e instanceof Uint8Array?e:e.subarray()));return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function gh(r,e,t,n){let o=await qe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await qe.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Ee(e),Ee(t instanceof Uint8Array?t:t.subarray()));return n?.signal?.throwIfAborted(),s}async function E0(r,e){if(r.privateKey==null||r.publicKey==null)throw new R("Private and public key are required");let t=await Promise.all([qe.get().subtle.exportKey("jwk",r.privateKey),qe.get().subtle.exportKey("jwk",r.publicKey)]);return e?.signal?.throwIfAborted(),t}function xh(r){if(r.kty!=="RSA")throw new R("invalid key type");if(r.n==null)throw new R("invalid key modulus");return D(r.n,"base64url").length*8}var Us=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,t){if(us(e),Ze(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(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),ir(o)}update(e){return $r(this),this.iHash.update(e),this}digestInto(e){$r(this),fs(e,this),this.finished=!0;let t=e.subarray(0,this.outputLen);this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),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,canXOF:c}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.canXOF=c,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()}},Eh=(()=>{let r=((e,t,n)=>new Us(e,t).update(n).digest());return r.create=(e,t)=>new Us(e,t),r})();var v0=BigInt(0),Sl=class extends Error{constructor(e=""){super(e)}},At={Err:Sl,_tlv:{encode:(r,e)=>{let{Err:t}=At;if(Ht(r,"tag"),r<0||r>255)throw new t("tlv.encode: wrong tag");if(Cd(e,"data"),e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=Yn(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?Yn(o.length/2|128):"";return Yn(r)+s+o+e},decode(r,e){let{Err:t}=At;e=Q(e,void 0,"DER data");let n=0;if(r<0||r>255)throw new t("tlv.decode: 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}=At;if(ys(r),r<v0)throw new e("integer: negative integers are not allowed");let t=Yn(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}=At;if(r.length<1)throw new e("invalid signature integer: empty");if(r[0]&128)throw new e("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return pt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=At,o=Q(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}=At;Ke(r,{r:"bigint",s:"bigint"},{},"sig");let n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},Al=(Object.freeze(At._tlv),Object.freeze(At._int),Object.freeze(At));var vh=(r,e)=>(r+(r>=0?e:-e)/Sh)/e;function S0(r,e,t){Hr("scalar",r,_t,t);let[[n,o],[s,i]]=e,a=vh(i*r,t),c=vh(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<_t,d=u<_t;f&&(l=-l),d&&(u=-u);let h=Xn(Math.ceil(Wr(t)/2))+hr;if(l<_t||l>=h||u<_t||u>=h)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:f,k1:l,k2neg:d,k2:u}}function Cl(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function _l(r,e){Ke(r);let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return Ue(t.lowS,"lowS"),Ue(t.prehash,"prehash"),t.format!==void 0&&Cl(t.format),t}var _t=BigInt(0),hr=BigInt(1),Sh=BigInt(2),Il=BigInt(3),A0=BigInt(4);function Ah(r,e={}){let t=Is("weierstrass",r,e),n=t.Fp,o=t.Fn,s=t.CURVE,{h:i,n:a}=s;Ke(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",randomBytes:"function"});let{endo:c,allowInfinityPoint:l}=e,u=e.randomBytes===void 0?cr:e.randomBytes;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let f=Ih(n,o);function d(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(L,y,v){if(l&&y.is0())return Uint8Array.of(0);let{x:I,y:N}=y.toAffine(),S=n.toBytes(I);if(Ue(v,"isCompressed"),v){d();let w=!n.isOdd(N);return Qe(_h(w),S)}else return Qe(Uint8Array.of(4),S,n.toBytes(N))}function b(L){Q(L,void 0,"Point");let{publicKey:y,publicKeyUncompressed:v}=f,I=L.length,N=L[0],S=L.subarray(1);if(l&&I===1&&N===0)return{x:n.ZERO,y:n.ZERO};if(I===y&&(N===2||N===3)){let w=n.fromBytes(S);if(!n.isValid(w))throw new Error("bad point: is not on curve, wrong x");let C=x(w),T;try{T=n.sqrt(C)}catch(X){let Y=X instanceof Error?": "+X.message:"";throw new Error("bad point: is not on curve, sqrt error"+Y)}d();let U=n.isOdd(T);return(N&1)===1!==U&&(T=n.neg(T)),{x:w,y:T}}else if(I===v&&N===4){let w=n.BYTES,C=n.fromBytes(S.subarray(0,w)),T=n.fromBytes(S.subarray(w,w*2));if(!A(C,T))throw new Error("bad point: is not on curve");return{x:C,y:T}}else throw new Error(`bad point: got length ${I}, expected compressed=${y} or uncompressed=${v}`)}let m=e.toBytes===void 0?h:e.toBytes,p=e.fromBytes===void 0?b:e.fromBytes,g=n.mul(s.b,Il),E=n.is0(s.a)?L=>n.ZERO:L=>n.mul(s.a,L);function x(L){let y=n.sqr(L),v=n.mul(y,L);return n.add(n.add(v,n.mul(L,s.a)),s.b)}function A(L,y){let v=n.sqr(y),I=x(L);return n.eql(v,I)}if(!A(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let _=n.mul(n.pow(s.a,Il),A0),z=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(_,z)))throw new Error("bad curve params: a or b");function V(L,y,v=!1){if(!n.isValid(y)||v&&n.is0(y))throw new Error(`bad point coordinate ${L}`);return y}function F(L){if(!(L instanceof k))throw new Error("Weierstrass Point expected")}function O(L){if(!c||!c.basises)throw new Error("no endo");return S0(L,c.basises,o.ORDER)}function M(L,y,v,I){if(!o.isValid(I))throw new RangeError("invalid scalar: out of range");if(c){let{k1neg:N,k1:S,k2neg:w,k2:C}=O(I),T=new k(n.mul(v.X,c.beta),v.Y,v.Z);L.push(N?v.negate():v,w?T.negate():T),y.push(S,C)}else L.push(v),y.push(I)}let W=new WeakSet;class k{static BASE=new k(s.Gx,s.Gy,n.ONE);static ZERO=new k(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,v,I){this.X=V("x",y),this.Y=V("y",v,!0),this.Z=V("z",I),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:v,y:I}=y||{};if(!y||!n.isValid(v)||!n.isValid(I))throw new Error("invalid affine point");if(y instanceof k)throw new Error("projective point not allowed");return n.is0(v)&&n.is0(I)?k.ZERO:new k(v,I,n.ONE)}static fromBytes(y){let v=k.fromAffine(p(Q(y,void 0,"point")));return v.assertValidity(),v}static fromHex(y){return k.fromBytes(Vr(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=6,v=!0){return P.setWindowSize(this,y),v||this.multiply(Il),this}assertValidity(){let y=this;if(y.is0()){if(e.allowInfinityPoint&&n.is0(y.X)&&n.eql(y.Y,n.ONE)&&n.is0(y.Z))return;throw new Error("bad point: ZERO")}if(W.has(y))return;let{x:v,y:I}=y.toAffine();if(!n.isValid(v)||!n.isValid(I))throw new Error("bad point: x or y not field elements");if(!A(v,I))throw new Error("bad point: equation left != right");if(!y.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");W.add(y)}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){F(y);let{X:v,Y:I,Z:N}=this,{X:S,Y:w,Z:C}=y,T=n.eql(n.mul(v,C),n.mul(S,N)),U=n.eql(n.mul(I,C),n.mul(w,N));return T&&U}negate(){return new k(this.X,n.neg(this.Y),this.Z)}double(){let{X:y,Y:v,Z:I}=this,N=n.ZERO,S=n.ZERO,w=n.ZERO,C=n.mul(y,y),T=n.mul(v,v),U=n.mul(I,I),K=n.mul(y,v);return K=n.add(K,K),w=n.mul(y,I),w=n.add(w,w),N=E(w),S=n.mul(g,U),S=n.add(N,S),N=n.sub(T,S),S=n.add(T,S),S=n.mul(N,S),N=n.mul(K,N),w=n.mul(g,w),U=E(U),K=n.sub(C,U),K=E(K),K=n.add(K,w),w=n.add(C,C),C=n.add(w,C),C=n.add(C,U),C=n.mul(C,K),S=n.add(S,C),U=n.mul(v,I),U=n.add(U,U),C=n.mul(U,K),N=n.sub(N,C),w=n.mul(U,T),w=n.add(w,w),w=n.add(w,w),new k(N,S,w)}add(y){F(y);let{X:v,Y:I,Z:N}=this,{X:S,Y:w,Z:C}=y,T=n.ZERO,U=n.ZERO,K=n.ZERO,X=n.mul(v,S),Y=n.mul(I,w),de=n.mul(N,C),Pe=n.add(v,I),he=n.add(S,w);Pe=n.mul(Pe,he),he=n.add(X,Y),Pe=n.sub(Pe,he),he=n.add(v,N);let Ae=n.add(S,C);return he=n.mul(he,Ae),Ae=n.add(X,de),he=n.sub(he,Ae),Ae=n.add(I,N),T=n.add(w,C),Ae=n.mul(Ae,T),T=n.add(Y,de),Ae=n.sub(Ae,T),K=E(he),T=n.mul(g,de),K=n.add(T,K),T=n.sub(Y,K),K=n.add(Y,K),U=n.mul(T,K),Y=n.add(X,X),Y=n.add(Y,X),de=E(de),he=n.mul(g,he),Y=n.add(Y,de),de=n.sub(X,de),de=E(de),he=n.add(he,de),X=n.mul(Y,he),U=n.add(U,X),X=n.mul(Ae,he),T=n.mul(Pe,T),T=n.sub(T,X),X=n.mul(Pe,Y),K=n.mul(Ae,K),K=n.add(K,X),new k(T,U,K)}subtract(y){return F(y),this.add(y.negate())}is0(){return this.equals(k.ZERO)}multiply(y){if(!o.isValidNot0(y))throw new RangeError("invalid scalar: out of range");let{p:v,f:I}=P.mulSecret(this,y,i,ae);return ae([v,I])[0]}multiplyUnsafe(y){let v=this,I=y;if(!o.isValid(I))throw new RangeError("invalid scalar: out of range");if(I===_t||v.is0())return k.ZERO;if(I===hr)return v;if(P.hasWindowSize(this))return P.mulUnsafe(v,I,ae);let N=[],S=[];return M(N,S,v,I),_s(k,N,S)}mulAddUnsafe(y,v,I){F(v);let N=[],S=[];return M(N,S,this,y),M(N,S,v,I),_s(k,N,S)}toAffine(y){let v=this,I=y;if(I!=null&&!n.isValid(I))throw new RangeError('"invertedZ" expected valid field element');let{X:N,Y:S,Z:w}=v;if(n.eql(w,n.ONE))return{x:N,y:S};let C=v.is0();I==null&&(I=C?n.ONE:n.inv(w));let T=n.mul(N,I),U=n.mul(S,I),K=n.mul(w,I);if(C)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:T,y:U}}isTorsionFree(){let{isTorsionFree:y}=e;return i===hr?!0:y?y(k,this):P.mulUnsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===hr?this:y?y(k,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===hr?this.is0():this.clearCofactor().is0()}toBytes(y=!0){return Ue(y,"isCompressed"),this.assertValidity(),m(k,this,y)}toHex(y=!0){return jn(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let ae=L=>As(k,L),P=new Yr(k,u);return P.bits>=6&&k.BASE.precompute(6),Object.freeze(k.prototype),Object.freeze(k),k}function _h(r){return Uint8Array.of(r?2:3)}function Ih(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function _0(r,e={}){Gt(r);let{Fn:t}=r,n=e.randomBytes===void 0?cr:e.randomBytes,o=Object.assign(Ih(r.Fp,t),{seed:Math.max(vs(t.ORDER),16)});function s(h){try{let b=t.fromBytes(h);return t.isValidNot0(b)}catch{return!1}}function i(h,b){let{publicKey:m,publicKeyUncompressed:p}=o;try{let g=h.length;return b===!0&&g!==m||b===!1&&g!==p?!1:!!r.fromBytes(h)}catch{return!1}}function a(h){return h=h===void 0?n(o.seed):h,Ss(Q(h,o.seed,"seed"),t.ORDER)}function c(h,b=!0){return r.BASE.multiply(t.fromBytes(h)).toBytes(b)}function l(h){let{secretKey:b,publicKey:m,publicKeyUncompressed:p}=o,g=t._lengths;if(!Vt(h))return;let E=Q(h,void 0,"key").length,x=E===m||E===p,A=E===b||!!g?.includes(E);if(!(x&&A))return x}function u(h,b,m=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(b)===!1)throw new Error("second arg must be public key");let p=t.fromBytes(h);return r.fromBytes(b).multiply(p).toBytes(m)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},d=Cs(a,c);return Object.freeze(f),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:r,utils:f,lengths:o})}function Ch(r,e,t={}){Gt(r);let n=e;us(n),Ke(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let o=Object.assign({},t),s=o.randomBytes===void 0?cr:o.randomBytes,i=o.hmac===void 0?(S,w)=>Eh(n,S,w):o.hmac,{Fp:a,Fn:c}=r,{ORDER:l,BITS:u}=c,f=vs(l),d=zc(s,f),{keygen:h,getPublicKey:b,getSharedSecret:m,utils:p,lengths:g}=_0(r,o),E={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=l*Sh+hr<a.ORDER;function A(S){let w=l>>hr;return S>w}function _(S,w){if(!c.isValidNot0(w))throw new Error(`invalid signature ${S}: out of range 1..Point.Fn.ORDER`);return w}function z(){if(!a.isOdd)throw new Error("Field doesn't support isOdd")}function V(S,w,C){return z(),(S===C?0:2)|Number(a.isOdd(w))}function F(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function O(S,w){Cl(w);let C=g.signature,T=w==="compact"?C:w==="recovered"?C+1:void 0;return Q(S,T)}class M{r;s;recovery;constructor(w,C,T){if(this.r=_("r",w),this.s=_("s",C),T!=null){if(F(),![0,1,2,3].includes(T))throw new Error("invalid recovery id");this.recovery=T}Object.freeze(this)}static fromBytes(w,C=E.format){O(w,C);let T;if(C==="der"){let{r:Y,s:de}=Al.toSig(Q(w));return new M(Y,de)}C==="recovered"&&(T=w[0],C="compact",w=w.subarray(1));let U=g.signature/2,K=w.subarray(0,U),X=w.subarray(U,U*2);return new M(c.fromBytes(K),c.fromBytes(X),T)}static fromHex(w,C){return this.fromBytes(Vr(w),C)}assertRecovery(){let{recovery:w}=this;if(w==null)throw new Error("invalid recovery id: must be present");return w}addRecoveryBit(w){return new M(this.r,this.s,w)}recoverPublicKey(w){let{r:C,s:T}=this,U=this.assertRecovery(),K=U===2||U===3?C+l:C;if(!a.isValid(K))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let X=a.toBytes(K),Y=r.fromBytes(Qe(_h((U&1)===0),X)),de=c.inv(K),Pe=k(Q(w,void 0,"msgHash")),he=c.create(-Pe*de),Ae=c.create(T*de),ut=r.BASE.mulAddUnsafe(he,Y,Ae);if(ut.is0())throw new Error("invalid recovery: point at infinify");return ut.assertValidity(),ut}hasHighS(){return A(this.s)}toBytes(w=E.format){if(Cl(w),w==="der")return Vr(Al.hexFromSig(this));let{r:C,s:T}=this,U=c.toBytes(C),K=c.toBytes(T);return w==="recovered"?(F(),Qe(Uint8Array.of(this.assertRecovery()),U,K)):Qe(U,K)}toHex(w){return jn(this.toBytes(w))}}Object.freeze(M.prototype),Object.freeze(M);let W=o.bits2int===void 0?function(w){if(w.length>8192)throw new Error("input is too large");let C=pt(w),T=w.length*8-u;return T>0?C>>BigInt(T):C}:o.bits2int,k=o.bits2int_modN===void 0?function(w){return c.create(W(w))}:o.bits2int_modN,ae=Xn(u);function P(S){return Hr("num < 2^"+u,S,_t,ae),c.toBytes(S)}function L(S,w){return Q(S,void 0,"message"),w?Q(n(S),void 0,"prehashed message"):S}function y(S,w,C){let{lowS:T,prehash:U,extraEntropy:K}=_l(C,E);S=L(S,U);let X=k(S),Y=c.fromBytes(w);if(!c.isValidNot0(Y))throw new Error("invalid private key");let de=[P(Y),P(X)];if(K!=null&&K!==!1){let ut=K===!0?s(g.secretKey):K;de.push(Q(ut,void 0,"extraEntropy"))}let Pe=Qe(...de),he=X;function Ae(ut){let Or=W(ut);if(!c.isValidNot0(Or))return;let Pn=r.BASE.multiply(Or).toAffine(),Rt=c.create(Pn.x);if(Rt===_t)return;let ft;if(d!==void 0){let Dn=pt(Ss(d(f),l)),Om=c.inv(c.mul(Dn,Or)),Nm=c.mul(Dn,he),Mm=c.mul(Dn,Y);ft=c.create(Om*c.create(Nm+Mm*Rt))}else{let Dn=Bd(Or,l);ft=c.create(Dn*c.create(he+Rt*Y))}if(ft===_t)return;let Ka=V(Pn.x,Pn.y,Rt),vf=ft;return T&&A(ft)&&(vf=c.neg(ft),Ka^=1),new M(Rt,vf,x?void 0:Ka)}return{seed:Pe,k2sig:Ae}}function v(S,w,C={}){let{seed:T,k2sig:U}=y(S,w,C);return Ld(n.outputLen,c.BYTES,i)(T,U).toBytes(C.format)}function I(S,w,C,T={}){let{lowS:U,prehash:K,format:X}=_l(T,E);if(C=Q(C,void 0,"publicKey"),w=L(w,K),!Vt(S)){let Y=S instanceof M?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+Y)}O(S,X);try{let Y=M.fromBytes(S,X),de=r.fromBytes(C);if(U&&Y.hasHighS())return!1;let{r:Pe,s:he}=Y,Ae=k(w),ut=c.inv(he),Or=c.create(Ae*ut),Pn=c.create(Pe*ut),Rt=r.BASE.mulAddUnsafe(Or,de,Pn);if(Rt.is0())return!1;let ft=Rt.toAffine();return!(c.create(ft.x)!==Pe||X==="recovered"&&Y.recovery!==V(ft.x,ft.y,Pe))}catch{return!1}}function N(S,w,C={}){let{prehash:T}=_l(C,E);return w=L(w,T),M.fromBytes(S,"recovered").recoverPublicKey(w).toBytes()}return Object.freeze({keygen:h,getPublicKey:b,getSharedSecret:m,utils:p,lengths:g,Point:r,sign:v,verify:I,recoverPublicKey:N,Signature:M,hash:n})}var Ll={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},I0={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Th=BigInt(2);function C0(r){let e=Ll.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=ce(u,t,e)*u%e,d=ce(f,t,e)*u%e,h=ce(d,Th,e)*l%e,b=ce(h,o,e)*h%e,m=ce(b,s,e)*b%e,p=ce(m,a,e)*m%e,g=ce(p,c,e)*p%e,E=ce(g,a,e)*m%e,x=ce(E,t,e)*u%e,A=ce(x,i,e)*b%e,_=ce(A,n,e)*l%e,z=ce(_,Th,e);if(!Tl.eql(Tl.sqr(z),r))throw new Error("Cannot find square root");return z}var Tl=jr(Ll.p,{sqrt:C0}),T0=Ah(Ll,{Fp:Tl,endo:I0}),it=Ch(T0,zr);function Lh(r,e,t){let n=qr.digest(e instanceof Uint8Array?e:e.subarray());if(Zr(n))return n.then(({digest:o})=>(t?.signal?.throwIfAborted(),it.sign(o,r,{prehash:!1,format:"der"}))).catch(o=>{throw o.name==="AbortError"?o:new eo(String(o))});try{return it.sign(n.digest,r,{prehash:!1,format:"der"})}catch(o){throw new eo(String(o))}}function Ph(r,e,t,n){let o=qr.digest(t instanceof Uint8Array?t:t.subarray());if(Zr(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),it.verify(e,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new to(String(s))});try{return n?.signal?.throwIfAborted(),it.verify(e,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new to(String(s))}}var fo=class{type="secp256k1";raw;_key;constructor(e){this._key=kh(e),this.raw=Dh(this._key)}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){return Ph(this._key,t,e,n)}},Ks=class{type="secp256k1";raw;publicKey;constructor(e,t){this.raw=Rh(e),this.publicKey=new fo(t??Oh(e))}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){return Lh(this.raw,e,t)}};function Pl(r){return new fo(r)}async function Nh(){let r=L0();return new Ks(r)}function Dh(r){return it.Point.fromBytes(r).toBytes()}function Rh(r){try{return it.getPublicKey(r,!0),r}catch(e){throw new kn(String(e))}}function kh(r){try{return it.Point.fromBytes(r),r}catch(e){throw new kt(String(e))}}function Oh(r){try{return it.getPublicKey(r,!0)}catch(e){throw new kn(String(e))}}function L0(){return it.utils.randomSecretKey()}async function Mh(r,e){if(r==="Ed25519")return sh();if(r==="secp256k1")return Nh();if(r==="RSA")return vl(P0(e));if(r==="ECDSA")return ad(D0(e));throw new Nt}function en(r,e){let{Type:t,Data:n}=mt.decode(r),o=n??new Uint8Array;switch(t){case fe.RSA:return wl(o,e);case fe.Ed25519:return jc(o);case fe.secp256k1:return Pl(o);case fe.ECDSA:return vc(o);default:throw new Nt}}function Bh(r){let{Type:e,Data:t}=mt.decode(r.digest),n=t??new Uint8Array;switch(e){case fe.Ed25519:return jc(n);case fe.secp256k1:return Pl(n);case fe.ECDSA:return vc(n);default:throw new Nt}}function Xe(r){return mt.encode({Type:fe[r.type],Data:r.raw})}function P0(r){return r==null?2048:parseInt(r,10)}function D0(r){if(r==="P-256"||r==null)return"P-256";if(r==="P-384")return"P-384";if(r==="P-521")return"P-521";throw new R("Unsupported curve, should be P-256, P-384 or P-521")}var Fh=Symbol.for("nodejs.util.inspect.custom"),R0=114,ho=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()})`}[ts]=!0;toString(){return this.string==null&&(this.string=oe.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return me.createV1(R0,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Z(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Z(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Fh](){return`PeerId(${this.toString()})`}},po=class extends ho{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},mo=class extends ho{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},go=class extends ho{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},k0=2336,yo=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=rt.digest(D(this.url))}[Fh](){return`PeerId(${this.url})`}[ts]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return me.createV1(k0,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=q(e)),e.toString()===this.toString())}};var O0=114,Uh=2336;function gt(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Et(oe.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return bo(me.parse(r));if(e==null)throw new R('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Et(e.decode(r))}return tn(t)}function Dl(r){if(r.type==="Ed25519")return new mo({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new go({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new po({multihash:r.toCID().multihash,publicKey:r});throw new Nt}function Kh(r){return Dl(r.publicKey)}function tn(r){if(M0(r))return new po({multihash:r});if(N0(r))try{let e=Bh(r);if(e.type==="Ed25519")return new mo({multihash:r,publicKey:e});if(e.type==="secp256k1")return new go({multihash:r,publicKey:e})}catch{let t=q(r.digest);return new yo(new URL(t))}throw new jo("Supplied PeerID Multihash is invalid")}function bo(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==O0&&r.code!==Uh)throw new Go("Supplied PeerID CID is invalid");if(r.code===Uh){let e=q(r.multihash.digest);return new yo(new URL(e))}return tn(r.multihash)}function N0(r){return r.code===rt.code}function M0(r){return r.code===qr.code}async function qh(r){if(r.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new R("Private network is enforced, but no protector was provided");return r}function qs(r,e){if(typeof r=="string")return B0(r);if(typeof r=="number")return K0(r,e);throw new Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}function B0(r){if(typeof r!="string"||r.length===0||r.length>100)throw new 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 new Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function F0(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 U0(r){let e=Math.abs(r);return e>=315576e5?pr(r,e,315576e5,"year"):e>=26298e5?pr(r,e,26298e5,"month"):e>=6048e5?pr(r,e,6048e5,"week"):e>=864e5?pr(r,e,864e5,"day"):e>=36e5?pr(r,e,36e5,"hour"):e>=6e4?pr(r,e,6e4,"minute"):e>=1e3?pr(r,e,1e3,"second"):`${r} ms`}function K0(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error("Value provided to ms.format() must be of type number.");return e?.long?U0(r):F0(r)}function pr(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function Rl(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=qs,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 d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u,f){let d,h=null,b,m;function p(...g){if(!p.enabled)return;let E=p,x=Number(new Date),A=x-(d||x);E.diff=A,E.prev=d,E.curr=x,d=x,g[0]=t.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let _=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(V,F)=>{if(V==="%%")return"%";_++;let O=t.formatters[F];if(typeof O=="function"){let M=g[_];V=O.call(E,M),g.splice(_,1),_--}return V}),t.formatArgs.call(E,g),f?.onLog!=null&&f.onLog(...g),(E.log||t.log).apply(E,g)}return p.namespace=u,p.useColors=t.useColors(),p.color=t.selectColor(u),p.extend=n,p.destroy=t.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(b!==t.namespaces&&(b=t.namespaces,m=t.enabled(u)),m),set:g=>{h=g}}),typeof t.init=="function"&&t.init(p),p}function n(u,f){let d=t(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(u=d[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,d;for(f=0,d=t.skips.length;f<d;f++)if(t.skips[f].test(u))return!1;for(f=0,d=t.names.length;f<d;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 $s=G0(),q0=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function $0(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function z0(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+qs(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var V0=console.debug??console.log??(()=>{});function H0(r){try{r?$s?.setItem("debug",r):$s?.removeItem("debug")}catch{}}function W0(){let r;try{r=$s?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function G0(){try{return localStorage}catch{}}function j0(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var $h=Rl({formatArgs:z0,save:H0,load:W0,useColors:$0,setupFormatters:j0,colors:q0,storage:$s,log:V0});var $e=$h;$e.formatters.b=r=>r==null?"undefined":oe.baseEncode(r);$e.formatters.t=r=>r==null?"undefined":je.baseEncode(r);$e.formatters.m=r=>r==null?"undefined":lc.baseEncode(r);$e.formatters.p=r=>r==null?"undefined":r.toString();$e.formatters.c=r=>r==null?"undefined":r.toString();$e.formatters.k=r=>r==null?"undefined":r.toString();$e.formatters.a=r=>r==null?"undefined":r.toString();function zh(r,e=""){let t=Vh(r.message),n=Vh(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
|
|
2
|
+
"use strict";var Libp2P=(()=>{var Fm=Object.create;var Wo=Object.defineProperty;var Um=Object.getOwnPropertyDescriptor;var Km=Object.getOwnPropertyNames;var qm=Object.getPrototypeOf,$m=Object.prototype.hasOwnProperty;var Rn=(r,e)=>()=>{try{return e||r((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},Fe=(r,e)=>{for(var t in e)Wo(r,t,{get:e[t],enumerable:!0})},Sf=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Km(e))!$m.call(r,o)&&o!==t&&Wo(r,o,{get:()=>e[o],enumerable:!(n=Um(e,o))||n.enumerable});return r};var qa=(r,e,t)=>(t=r!=null?Fm(qm(r)):{},Sf(e||!r||!r.__esModule?Wo(t,"default",{value:r,enumerable:!0}):t,r)),zm=r=>Sf(Wo({},"__esModule",{value:!0}),r);var ql=Rn(an=>{"use strict";Object.defineProperty(an,"__esModule",{value:!0});an.Netmask4Impl=void 0;an.ip2long=sn;an.long2ip=yt;function yt(r){let e=(r&-16777216)>>>24,t=(r&255<<16)>>>16,n=(r&65280)>>>8,o=r&255;return[e,t,n,o].join(".")}var ib=48,ab=97,cb=65;function lb(r){let e=0,t=10,n="9",o=0;r.length>1&&r[o]==="0"&&(r[o+1]==="x"||r[o+1]==="X"?(o+=2,t=16):"0"<=r[o+1]&&r[o+1]<="9"&&(o++,t=8,n="7"));let s=o;for(;o<r.length;){if("0"<=r[o]&&r[o]<=n)e=e*t+(r.charCodeAt(o)-ib)>>>0;else if(t===16)if("a"<=r[o]&&r[o]<="f")e=e*t+(10+r.charCodeAt(o)-ab)>>>0;else if("A"<=r[o]&&r[o]<="F")e=e*t+(10+r.charCodeAt(o)-cb)>>>0;else break;else break;if(e>4294967295)throw new Error("too large");o++}if(o===s)throw new Error("empty octet");return[e,o]}function sn(r){let e=[];for(let t=0;t<=3&&r.length!==0;t++){if(t>0){if(r[0]!==".")throw new Error("Invalid IP");r=r.substring(1)}let[n,o]=lb(r);r=r.substring(o),e.push(n)}if(r.length!==0)throw new Error("Invalid IP");switch(e.length){case 1:if(e[0]>4294967295)throw new Error("Invalid IP");return e[0]>>>0;case 2:if(e[0]>255||e[1]>16777215)throw new Error("Invalid IP");return(e[0]<<24|e[1])>>>0;case 3:if(e[0]>255||e[1]>255||e[2]>65535)throw new Error("Invalid IP");return(e[0]<<24|e[1]<<16|e[2])>>>0;case 4:if(e[0]>255||e[1]>255||e[2]>255||e[3]>255)throw new Error("Invalid IP");return(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0;default:throw new Error("Invalid IP")}}var Kl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");let n=t;if(!n){let o=e.split("/",2);e=o[0],n=o[1]}if(n||(n=32),typeof n=="string"&&n.indexOf(".")>-1){try{this.maskLong=sn(n)}catch{throw new Error("Invalid mask: "+n)}this.bitmask=NaN;for(let o=32;o>=0;o--)if(this.maskLong===4294967295<<32-o>>>0){this.bitmask=o;break}}else if(n||n===0)this.bitmask=parseInt(n,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(sn(e)&this.maskLong)>>>0}catch{throw new Error("Invalid net address: "+e)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+n);this.size=Math.pow(2,32-this.bitmask),this.base=yt(this.netLong),this.mask=yt(this.maskLong),this.hostmask=yt(~this.maskLong),this.first=this.bitmask<=30?yt(this.netLong+1):this.base,this.last=this.bitmask<=30?yt(this.netLong+this.size-2):yt(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?yt(this.netLong+this.size-1):void 0}contains(e){return typeof e=="string"&&(e.indexOf("/")>0||e.split(".").length!==4)&&(e=new r(e)),e instanceof r?this.contains(e.base)&&this.contains(e.broadcast||e.last):(sn(e)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0}next(e=1){return new r(yt(this.netLong+this.size*e),this.mask)}forEach(e){let t=sn(this.first),n=sn(this.last),o=0;for(;t<=n;)e(yt(t),t,o),o++,t++}toString(){return this.base+"/"+this.bitmask}};an.Netmask4Impl=Kl});var sp=Rn(cn=>{"use strict";Object.defineProperty(cn,"__esModule",{value:!0});cn.Netmask6Impl=void 0;cn.ip6bigint=zl;cn.bigint2ip6=Er;var ub=ql(),$l=(1n<<128n)-1n;function zl(r){let e=r.indexOf("%");e!==-1&&(r=r.substring(0,e));let t=r.lastIndexOf(":");if(t!==-1&&r.indexOf(".",t)!==-1){let n=r.substring(t+1),o=(0,ub.ip2long)(n),s=r.substring(0,t+1)+"0:0";return op(s)&~0xffffffffn|BigInt(o)}return op(r)}function op(r){let e=r.indexOf("::"),t;if(e!==-1){let o=r.substring(0,e),s=r.substring(e+2),i=o===""?[]:o.split(":"),a=s===""?[]:s.split(":"),c=8-i.length-a.length;if(c<0)throw new Error("Invalid IPv6: too many groups");t=[...i,...Array(c).fill("0"),...a]}else t=r.split(":");if(t.length!==8)throw new Error("Invalid IPv6: expected 8 groups, got "+t.length);let n=0n;for(let o=0;o<8;o++){let s=t[o];if(s.length===0||s.length>4)throw new Error('Invalid IPv6: bad group "'+s+'"');let i=parseInt(s,16);if(isNaN(i)||i<0||i>65535)throw new Error('Invalid IPv6: bad group "'+s+'"');n=n<<16n|BigInt(i)}return n}function Er(r){if(r<0n||r>$l)throw new Error("Invalid IPv6 address value");let e=[];for(let i=0;i<8;i++)e.unshift(Number(r&0xffffn)),r>>=16n;let t=-1,n=0,o=-1,s=0;for(let i=0;i<8;i++)e[i]===0?o===-1?(o=i,s=1):s++:(s>n&&s>=2&&(t=o,n=s),o=-1,s=0);if(s>n&&s>=2&&(t=o,n=s),t!==-1&&t+n===8&&t>0)return e.slice(0,t).map(a=>a.toString(16)).join(":")+"::";if(t===0)return"::"+e.slice(n).map(a=>a.toString(16)).join(":");if(t>0){let i=e.slice(0,t).map(c=>c.toString(16)),a=e.slice(t+n).map(c=>c.toString(16));return i.join(":")+"::"+a.join(":")}else return e.map(i=>i.toString(16)).join(":")}var Vl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");let n=t;if(n==null){let o=e.indexOf("/");o!==-1?(n=parseInt(e.substring(o+1),10),e=e.substring(0,o)):n=128}if(isNaN(n)||n<0||n>128)throw new Error("Invalid mask for IPv6: "+n);this.bitmask=n,this.bitmask===0?this.maskBigint=0n:this.maskBigint=$l>>BigInt(128-this.bitmask)<<BigInt(128-this.bitmask);try{this.netBigint=zl(e)&this.maskBigint}catch{throw new Error("Invalid IPv6 net address: "+e)}this.size=Number(1n<<BigInt(128-this.bitmask)),this.base=Er(this.netBigint),this.mask=Er(this.maskBigint),this.hostmask=Er(~this.maskBigint&$l),this.first=this.base,this.last=Er(this.netBigint+(1n<<BigInt(128-this.bitmask))-1n),this.broadcast=void 0}contains(e){return typeof e=="string"&&e.indexOf("/")>0&&(e=new r(e)),e instanceof r?this.contains(e.base)&&this.contains(e.last):(zl(e)&this.maskBigint)===this.netBigint}next(e=1){let t=1n<<BigInt(128-this.bitmask);return new r(Er(this.netBigint+t*BigInt(e)),this.bitmask)}forEach(e){let t=this.netBigint,n=1n<<BigInt(128-this.bitmask),o=this.netBigint+n-1n,s=0;for(;t<=o;)e(Er(t),Number(t),s),s++,t++}toString(){return this.base+"/"+this.bitmask}};cn.Netmask6Impl=Vl});var ip=Rn(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.long2ip=Xt.ip2long=Xt.Netmask=void 0;var Xs=ql();Object.defineProperty(Xt,"ip2long",{enumerable:!0,get:function(){return Xs.ip2long}});Object.defineProperty(Xt,"long2ip",{enumerable:!0,get:function(){return Xs.long2ip}});var fb=sp(),Hl=class r{constructor(e,t){if(typeof e!="string")throw new Error("Missing `net' parameter");(e.indexOf("/")!==-1?e.substring(0,e.indexOf("/")):e).indexOf(":")!==-1?this._impl=new fb.Netmask6Impl(e,t):this._impl=new Xs.Netmask4Impl(e,t),this.base=this._impl.base,this.mask=this._impl.mask,this.hostmask=this._impl.hostmask,this.bitmask=this._impl.bitmask,this.size=this._impl.size,this.first=this._impl.first,this.last=this._impl.last,this.broadcast=this._impl.broadcast,this._impl instanceof Xs.Netmask4Impl?(this.maskLong=this._impl.maskLong,this.netLong=this._impl.netLong):(this.maskLong=0,this.netLong=0)}contains(e){return typeof e=="string"&&(e.indexOf("/")>0?e=new r(e):e.indexOf(":")===-1&&e.split(".").length!==4&&(e=new r(e))),e instanceof r?this.contains(e.base)&&this.contains(e.broadcast||e.last):this._impl.contains(e)}next(e=1){let t=this._impl.next(e);return new r(t.base,t.bitmask)}forEach(e){this._impl.forEach(e)}toString(){return this._impl.toString()}};Xt.Netmask=Hl});var wm=Rn((O4,Qu)=>{"use strict";var Xw=Object.prototype.hasOwnProperty,Be="~";function $o(){}Object.create&&($o.prototype=Object.create(null),new $o().__proto__||(Be=!1));function Zw(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function bm(r,e,t,n,o){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new Zw(t,n||r,o),i=Be?Be+e:e;return r._events[i]?r._events[i].fn?r._events[i]=[r._events[i],s]:r._events[i].push(s):(r._events[i]=s,r._eventsCount++),r}function Ea(r,e){--r._eventsCount===0?r._events=new $o:delete r._events[e]}function Le(){this._events=new $o,this._eventsCount=0}Le.prototype.eventNames=function(){var e=[],t,n;if(this._eventsCount===0)return e;for(n in t=this._events)Xw.call(t,n)&&e.push(Be?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Le.prototype.listeners=function(e){var t=Be?Be+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var o=0,s=n.length,i=new Array(s);o<s;o++)i[o]=n[o].fn;return i};Le.prototype.listenerCount=function(e){var t=Be?Be+e:e,n=this._events[t];return n?n.fn?1:n.length:0};Le.prototype.emit=function(e,t,n,o,s,i){var a=Be?Be+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,o),!0;case 5:return c.fn.call(c.context,t,n,o,s),!0;case 6:return c.fn.call(c.context,t,n,o,s,i),!0}for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c.fn.apply(c.context,u)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),l){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,t);break;case 3:c[f].fn.call(c[f].context,t,n);break;case 4:c[f].fn.call(c[f].context,t,n,o);break;default:if(!u)for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c[f].fn.apply(c[f].context,u)}}return!0};Le.prototype.on=function(e,t,n){return bm(this,e,t,n,!1)};Le.prototype.once=function(e,t,n){return bm(this,e,t,n,!0)};Le.prototype.removeListener=function(e,t,n,o){var s=Be?Be+e:e;if(!this._events[s])return this;if(!t)return Ea(this,s),this;var i=this._events[s];if(i.fn)i.fn===t&&(!o||i.once)&&(!n||i.context===n)&&Ea(this,s);else{for(var a=0,c=[],l=i.length;a<l;a++)(i[a].fn!==t||o&&!i[a].once||n&&i[a].context!==n)&&c.push(i[a]);c.length?this._events[s]=c.length===1?c[0]:c:Ea(this,s)}return this};Le.prototype.removeAllListeners=function(e){var t;return e?(t=Be?Be+e:e,this._events[t]&&Ea(this,t)):(this._events=new $o,this._eventsCount=0),this};Le.prototype.off=Le.prototype.removeListener;Le.prototype.addListener=Le.prototype.on;Le.prefixed=Be;Le.EventEmitter=Le;typeof Qu<"u"&&(Qu.exports=Le)});var vm=Rn((rP,Em)=>{Em.exports=function(r){if(!r)throw Error("hashlru must have a max value, of type number, greater than 0");var e=0,t=Object.create(null),n=Object.create(null);function o(s,i){t[s]=i,e++,e>=r&&(e=0,n=t,t=Object.create(null))}return{has:function(s){return t[s]!==void 0||n[s]!==void 0},remove:function(s){t[s]!==void 0&&(t[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var i=t[s];if(i!==void 0)return i;if((i=n[s])!==void 0)return o(s,i),i},set:function(s,i){t[s]!==void 0?t[s]=i:o(s,i)},clear:function(){t=Object.create(null),n=Object.create(null)}}}});var _x={};Fe(_x,{createLibp2p:()=>vx,dnsaddrResolver:()=>kr,isLibp2p:()=>Ax});var Af=Symbol.for("@libp2p/connection");var $a=Symbol.for("@libp2p/content-routing");var tt=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var R=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},kt=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}},kn=class extends Error{static name="InvalidPrivateKeyError";constructor(e="Invalid private key"){super(e),this.name="InvalidPrivateKeyError"}};var er=class extends Error{static name="ConnectionClosedError";constructor(e="The connection is closed"){super(e),this.name="ConnectionClosedError"}};var tr=class extends Error{static name="NotFoundError";constructor(e="Not found"){super(e),this.name="NotFoundError"}},Nr=class extends Error{static name="InvalidPeerIdError";constructor(e="Invalid PeerID"){super(e),this.name="InvalidPeerIdError"}},Ot=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Go=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},jo=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}},Yo=class extends Error{static name="UnsupportedProtocolError";constructor(e="Unsupported protocol error"){super(e),this.name="UnsupportedProtocolError"}},Xo=class extends Error{static name="InvalidMessageError";constructor(e="Invalid message"){super(e),this.name="InvalidMessageError"}};var Zo=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},xt=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}};var Mr=class extends Error{static name="DialError";constructor(e="Dial error"){super(e),this.name="DialError"}};var On=class extends Error{static name="LimitedConnectionError";constructor(e="Limited connection"){super(e),this.name="LimitedConnectionError"}},Qo=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(e="Too many inbound protocol streams"){super(e),this.name="TooManyInboundProtocolStreamsError"}},Jo=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(e="Too many outbound protocol streams"){super(e),this.name="TooManyOutboundProtocolStreamsError"}},Nt=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var es=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}};var za=Symbol.for("@libp2p/peer-discovery");var ts=Symbol.for("@libp2p/peer-id");function Mt(r){return!!r?.[ts]}var Va=Symbol.for("@libp2p/peer-routing");var Ha="keep-alive";function rs(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function _f(...r){let e=[];for(let t of r)rs(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function If(...r){let e=[];for(let t of r)rs(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var Nn;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Nn||(Nn={}));function Vm(r){return typeof r?.handleEvent=="function"}function Hm(r){return r===!0||r===!1}function Wm(r){return Hm(r)?r:r?.capture??!1}function Wa(r){let e={capture:Wm(r),once:!!r?.once};return r?.passive!=null&&(e.passive=r?.passive),r?.signal!=null&&(e.signal=r?.signal),e}function Cf(r,e){return Wa(r).capture===Wa(e).capture}var De=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){let o=Wa(n);if(o?.signal?.aborted===!0)return;let s=l=>{o.once&&this.removeEventListener(e,t,o),Vm(t)?t.handleEvent(l):t(l)},i=this.#e.get(e);if(i==null&&(i=[],this.#e.set(e,i)),i.some(l=>l.callback!==t?!1:Cf(l.options,o)))return;super.addEventListener(e,s,o);let c=()=>{this.removeEventListener(e,t,o)};o.signal?.addEventListener("abort",c),i.push({callback:t,wrapper:s,options:o,onAbort:c})}removeEventListener(e,t,n){let o=this.#e.get(e);if(o==null){super.removeEventListener(e,t??null,n);return}this.#e.set(e,o.filter(s=>s.callback===t&&Cf(s.options,n)?(super.removeEventListener(e,s.wrapper,n),s.options?.signal?.removeEventListener("abort",s.onAbort),!1):!0))}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var Mn=Symbol.for("@libp2p/service-capabilities"),Ga=Symbol.for("@libp2p/service-dependencies");var Qa={};Fe(Qa,{base58btc:()=>oe,base58flickr:()=>eg});var lE=new Uint8Array(0);function Lf(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 Ge(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return rr(r);if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return rr(new Uint8Array(r.buffer,r.byteOffset,r.byteLength));throw new Error("Unknown type, must be binary type")}function Pf(r){let e=new Uint8Array(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}var Tf=4096;function Df(r){let e=r.length;if(e<=Tf)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.subarray(n,n+=Tf));return t}function Gm(r){return r?.buffer instanceof ArrayBuffer}function rr(r){return Gm(r)?r:r.slice()}function jm(r,e,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),o=0;o<n.length;o++)n[o]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),a=i.charCodeAt(0);if(n[a]!==255)throw new TypeError(i+" is ambiguous");if(n[a]=s,t){var c=i.toLowerCase().charCodeAt(0),l=i.toUpperCase().charCodeAt(0);c!==a&&(n[c]=s),l!==a&&(n[l]=s)}}var u=r.length,f=r.charAt(0),d=Math.log(u)/Math.log(256),h=Math.log(256)/Math.log(u);function b(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 E=0,x=0,A=0,_=g.length;A!==_&&g[A]===0;)A++,E++;for(var z=(_-A)*h+1>>>0,V=new Uint8Array(z);A!==_;){for(var F=g[A],O=0,M=z-1;(F!==0||O<x)&&M!==-1;M--,O++)F+=256*V[M]>>>0,V[M]=F%u>>>0,F=F/u>>>0;if(F!==0)throw new Error("Non-zero carry");x=O,A++}for(var W=z-x;W!==z&&V[W]===0;)W++;for(var k=f.repeat(E);W<z;++W)k+=r.charAt(V[W]);return k}function m(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var E=0;if(g[E]!==" "){for(var x=0,A=0;g[E]===f;)x++,E++;for(var _=(g.length-E)*d+1>>>0,z=new Uint8Array(_);g[E];){var V=n[g.charCodeAt(E)];if(V===255)return;for(var F=0,O=_-1;(V!==0||F<A)&&O!==-1;O--,F++)V+=u*z[O]>>>0,z[O]=V%256>>>0,V=V/256>>>0;if(V!==0)throw new Error("Non-zero carry");A=F,E++}if(g[E]!==" "){for(var M=_-A;M!==_&&z[M]===0;)M++;for(var W=new Uint8Array(x+(_-M)),k=x;M!==_;)W[k++]=z[M++];return W}}}function p(g){var E=m(g);if(E)return E;throw new Error(`Non-${e} character`)}return{encode:b,decodeUnsafe:m,decode:p}}var Ym=jm,Xm=Ym,kf=Xm;var ja=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")}},Ya=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 Of(this,e)}},Xa=class{decoders;constructor(e){this.decoders=e}or(e){return Of(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 Of(r,e){return new Xa({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Za=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 ja(e,t,n),this.decoder=new Ya(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Br({name:r,prefix:e,encode:t,decode:n}){return new Za(r,e,t,n)}function Bt({name:r,prefix:e,alphabet:t,caseInsensitive:n=!1}){let{encode:o,decode:s}=kf(t,r,n);return Br({prefix:e,name:r,encode:o,decode:i=>Ge(s(i))})}function Zm(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 Qm(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 Jm(r,e){let t={};for(let n=0;n<r.length;++n)if(t[r[n]]=n,e){let o=r[n].toLowerCase(),s=r[n].toUpperCase();o!==r[n]&&(t[o]=n),s!==r[n]&&(t[s]=n)}return t}function pe({name:r,prefix:e,bitsPerChar:t,alphabet:n,caseInsensitive:o=!1}){let s=Jm(n,o);return Br({prefix:e,name:r,encode(i){return Qm(i,n,t)},decode(i){return Zm(i,s,t,r)}})}var oe=Bt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),eg=Bt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ja={};Fe(Ja,{base32:()=>je,base32hex:()=>og,base32hexpad:()=>ig,base32hexpadupper:()=>ag,base32hexupper:()=>sg,base32pad:()=>rg,base32padupper:()=>ng,base32upper:()=>tg,base32z:()=>cg});var je=pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5,caseInsensitive:!0}),tg=pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5,caseInsensitive:!0}),rg=pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5,caseInsensitive:!0}),ng=pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5,caseInsensitive:!0}),og=pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5,caseInsensitive:!0}),sg=pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5,caseInsensitive:!0}),ig=pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5,caseInsensitive:!0}),ag=pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5,caseInsensitive:!0}),cg=pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ec={};Fe(ec,{base36:()=>Bn,base36upper:()=>lg});var Bn=Bt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz",caseInsensitive:!0}),lg=Bt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",caseInsensitive:!0});var ug=Bf,Nf=128,fg=127,dg=~fg,hg=Math.pow(2,31);function Bf(r,e,t){e=e||[],t=t||0;for(var n=t;r>=hg;)e[t++]=r&255|Nf,r/=128;for(;r&dg;)e[t++]=r&255|Nf,r>>>=7;return e[t]=r|0,Bf.bytes=t-n+1,e}var pg=tc,mg=128,Mf=127;function tc(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw tc.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Mf)<<o:(i&Mf)*Math.pow(2,o),o+=7}while(i>=mg);return tc.bytes=s-n,t}var gg=Math.pow(2,7),yg=Math.pow(2,14),bg=Math.pow(2,21),wg=Math.pow(2,28),xg=Math.pow(2,35),Eg=Math.pow(2,42),vg=Math.pow(2,49),Sg=Math.pow(2,56),Ag=Math.pow(2,63),_g=function(r){return r<gg?1:r<yg?2:r<bg?3:r<wg?4:r<xg?5:r<Eg?6:r<vg?7:r<Sg?8:r<Ag?9:10},Ig={encode:ug,decode:pg,encodingLength:_g},Cg=Ig,Fn=Cg;function Un(r,e=0){let t=Fn.decode(r,e),n=Fn.decode.bytes;if(n>9)throw new RangeError("Invalid varint: too long");if(n>1&&r[e+n-1]===0)throw new RangeError("Invalid varint: not minimally encoded");return[t,n]}function Fr(r,e,t=0){return Fn.encode(r,e,t),e}function Ur(r){return Fn.encodingLength(r)}function dt(r,e){let t=e.byteLength,n=Ur(r),o=n+Ur(t),s=new Uint8Array(o+t);return Fr(r,s,0),Fr(t,s,n),s.set(e,o),new Kr(r,t,e,s)}function Et(r){let e=Ge(r),[t,n]=Un(e),[o,s]=Un(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Kr(t,o,i,e)}function Ff(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Lf(r.bytes,t.bytes)}}var Kr=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=rr(n),this.bytes=rr(o)}};function Uf(r,e){let{bytes:t,version:n}=r;return n===0?Lg(t,rc(r),e??oe.encoder):Pg(t,rc(r),e??je.encoder)}var Kf=new WeakMap;function rc(r){let e=Kf.get(r);if(e==null){let t=new Map;return Kf.set(r,t),t}return e}var me=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=rr(o),this["/"]=this.bytes}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==Kn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Dg)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=dt(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&&Ff(e.multihash,n.multihash)}toString(e){return Uf(this,e)}toJSON(){return{"/":Uf(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??qf(n,o,s.bytes))}else if(t[Rg]===!0){let{version:n,multihash:o,code:s}=t,i=Et(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!==Kn)throw new Error(`Version 0 CID must use dag-pb (code: ${Kn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=qf(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Kn,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=Ge(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 Kr(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,d]=Un(e.subarray(t));return t+=d,f},o=n(),s=Kn;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]=Tg(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 rc(s).set(n,e),s}};function Tg(r,e){switch(r[0]){case"Q":{let t=e??oe;return[oe.prefix,t.decode(`${oe.prefix}${r}`)]}case oe.prefix:{let t=e??oe;return[oe.prefix,t.decode(r)]}case je.prefix:{let t=e??je;return[je.prefix,t.decode(r)]}case Bn.prefix:{let t=e??Bn;return[Bn.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 Lg(r,e,t){let{prefix:n}=t;if(n!==oe.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 Pg(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 Kn=112,Dg=18;function qf(r,e,t){let n=Ur(r),o=n+Ur(e),s=new Uint8Array(o+t.byteLength);return Fr(r,s,0),Fr(e,s,n),s.set(t,o),s}var Rg=Symbol.for("@ipld/js-cid/CID");var nc={};Fe(nc,{identity:()=>rt});var $f=0,kg="identity",zf=Ge;function Og(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 dt($f,zf(r))}var rt={code:$f,name:kg,encode:zf,digest:Og};function Z(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 Ng(r){return r.buffer instanceof ArrayBuffer}function Ee(r){return Ng(r)?r:r.slice()}async function Vf(r="P-256"){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:r},!0,["sign","verify"]);return{publicKey:await crypto.subtle.exportKey("jwk",e.publicKey),privateKey:await crypto.subtle.exportKey("jwk",e.privateKey)}}async function Hf(r,e,t){let n=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["sign"]);t?.signal?.throwIfAborted();let o=await crypto.subtle.sign({name:"ECDSA",hash:{name:"SHA-256"}},n,Ee(e.subarray()));return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function Wf(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,Ee(e),Ee(t.subarray()));return n?.signal?.throwIfAborted(),s}function le(r=0){return new Uint8Array(r)}function ye(r=0){return new Uint8Array(r)}function Mg(r){return r?.buffer instanceof ArrayBuffer}function oc(r){if(Mg(r))return r;let e=r.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function Ye(r,e){e==null&&(e=r.reduce((o,s)=>o+s.length,0));let t=ye(e),n=0;for(let o of r)t.set(o,n),n+=o.length;return oc(t)}var jf=Symbol.for("@achingbrain/uint8arraylist");function Gf(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 os(r){return!!r?.[jf]}var re=class r{bufs;length;[jf]=!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(os(n)){t+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=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(os(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=Gf(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Gf(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(os(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 Ye(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:Ye(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(!os(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 d=l;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){u=Math.max(1,d-a[h]);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=ye(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=le(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=le(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=le(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=ye(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=le(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=le(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=le(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=le(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=le(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(!Z(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 sc={};Fe(sc,{base10:()=>Bg});var Bg=Bt({prefix:"9",name:"base10",alphabet:"0123456789"});var ic={};Fe(ic,{base16:()=>Fg,base16upper:()=>Ug});var Fg=pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4,caseInsensitive:!0}),Ug=pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4,caseInsensitive:!0});var ac={};Fe(ac,{base2:()=>Kg});var Kg=pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var cc={};Fe(cc,{base256emoji:()=>Hg});var Yf=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}"),qg=Yf.reduce((r,e,t)=>(r[t]=e,r),[]),$g=Yf.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function zg(r){return r.reduce((e,t)=>(e+=qg[t],e),"")}function Vg(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=$g[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Hg=Br({prefix:"\u{1F680}",name:"base256emoji",encode:zg,decode:Vg});var fc={};Fe(fc,{base64:()=>lc,base64pad:()=>Wg,base64url:()=>uc,base64urlpad:()=>Gg});var lc=pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Wg=pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),uc=pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Gg=pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var dc={};Fe(dc,{base8:()=>jg});var jg=pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var hc={};Fe(hc,{identity:()=>Yg});var Yg=Br({prefix:"\0",name:"identity",encode:r=>Df(Ge(r)),decode:r=>Ge(Pf(r))});var jE=new TextEncoder,YE=new TextDecoder;var gc={};Fe(gc,{sha256:()=>qr,sha512:()=>Jg});var Qg=20;function mc({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new pc(r,e,t,n,o)}var pc=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??Qg,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?Xf(n,this.code,t?.truncate):n.then(o=>Xf(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Xf(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 dt(e,r)}function Qf(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var qr=mc({name:"sha2-256",code:18,encode:Qf("SHA-256")}),Jg=mc({name:"sha2-512",code:19,encode:Qf("SHA-512")});var qn={...hc,...ac,...dc,...sc,...ic,...Ja,...ec,...Qa,...fc,...cc},av={...gc,...nc};function ed(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var Jf=ed("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),yc=ed("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=ye(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),ey={utf8:Jf,"utf-8":Jf,hex:qn.base16,latin1:yc,ascii:yc,binary:yc,...qn},ss=ey;function D(r,e="utf8"){let t=ss[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function q(r,e="utf8"){let t=ss[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var ty=parseInt("11111",2),bc=parseInt("10000000",2),ry=parseInt("01111111",2),td={0:$n,1:$n,2:ny,3:iy,4:ay,5:sy,6:oy,16:$n,22:$n,48:$n};function vt(r,e={offset:0}){let t=r[e.offset]&ty;if(e.offset++,td[t]!=null)return td[t](r,e);throw new Error("No decoder for tag "+t)}function zn(r,e){let t=0;if((r[e.offset]&bc)===bc){let n=r[e.offset]&ry,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++){if(e.offset>=r.byteLength)throw new Error("invalid DER element length");o+=r[e.offset].toString(16).padStart(2,"0")}t=parseInt(o,16)}else t=r[e.offset],e.offset++;if(!Number.isInteger(t)||t<0||t>r.byteLength-e.offset)throw new Error("invalid DER element length");return t}function $n(r,e){zn(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=vt(r,e);if(n===null)break;t.push(n)}return t}function ny(r,e){let t=zn(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 oy(r,e){let t=zn(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 sy(r,e){return e.offset++,null}function iy(r,e){let t=zn(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 ay(r,e){let t=zn(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function cy(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new re;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function is(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=cy(r.byteLength);return new re(Uint8Array.from([e.byteLength|bc]),e)}function Re(r){let e=new re,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new re(Uint8Array.from([2]),is(e),e)}function Vn(r){let e=Uint8Array.from([0]),t=new re(e,r);return new re(Uint8Array.from([3]),is(t),t)}function rd(r){return new re(Uint8Array.from([4]),is(r),r)}function nt(r,e=48){let t=new re;for(let n of r)t.append(n);return new re(Uint8Array.from([e]),is(t),t)}var ly=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),uy=Uint8Array.from([6,5,43,129,4,0,34]),fy=Uint8Array.from([6,5,43,129,4,0,35]),dy={ext:!0,kty:"EC",crv:"P-256"},hy={ext:!0,kty:"EC",crv:"P-384"},py={ext:!0,kty:"EC",crv:"P-521"},wc=32,xc=48,Ec=66;function vc(r){let e=vt(r);return nd(e)}function nd(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===wc*2+1)return n=q(e.subarray(t,t+wc),"base64url"),o=q(e.subarray(t+wc),"base64url"),new nr({...dy,key_ops:["verify"],x:n,y:o});if(e.byteLength===xc*2+1)return n=q(e.subarray(t,t+xc),"base64url"),o=q(e.subarray(t+xc),"base64url"),new nr({...hy,key_ops:["verify"],x:n,y:o});if(e.byteLength===Ec*2+1)return n=q(e.subarray(t,t+Ec),"base64url"),o=q(e.subarray(t+Ec),"base64url"),new nr({...py,key_ops:["verify"],x:n,y:o});throw new R(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function od(r){return nt([Re(Uint8Array.from([1])),rd(D(r.d??"","base64url")),nt([id(r.crv)],160),nt([Vn(new re(Uint8Array.from([4]),D(r.x??"","base64url"),D(r.y??"","base64url")))],161)]).subarray()}function sd(r){return nt([Re(Uint8Array.from([1])),nt([id(r.crv)],160),nt([Vn(new re(Uint8Array.from([4]),D(r.x??"","base64url"),D(r.y??"","base64url")))],161)]).subarray()}function id(r){if(r==="P-256")return ly;if(r==="P-384")return uy;if(r==="P-521")return fy;throw new R(`Invalid curve ${r}`)}async function ad(r="P-256"){let e=await Vf(r);return new as(e.privateKey)}var nr=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=sd(this.jwk)),this._raw}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}async verify(e,t,n){return Wf(this.jwk,t,e,n)}},as=class{type="ECDSA";jwk;publicKey;_raw;constructor(e){this.jwk=e,this.publicKey=new nr({crv:e.crv,ext:e.ext,key_ops:["verify"],kty:"EC",x:e.x,y:e.y})}get raw(){return this._raw==null&&(this._raw=od(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}async sign(e,t){return Hf(this.jwk,e,t)}};var cs=BigInt(4294967295),cd=BigInt(32);function my(r,e=!1){return e?{h:Number(r&cs),l:Number(r>>cd&cs)}:{h:Number(r>>cd&cs)|0,l:Number(r&cs)|0}}function ld(r,e=!1){let t=r.length,n=new Uint32Array(t),o=new Uint32Array(t);for(let s=0;s<t;s++){let{h:i,l:a}=my(r[s],e);[n[s],o[s]]=[i,a]}return[n,o]}var gy=r=>r/2**32|0,yy=r=>r>>>0;function ud(r,e,t,n){let o=gy(t),s=yy(t);r.setUint32(e,n?s:o,n),r.setUint32(e+4,n?o:s,n)}var Sc=(r,e,t)=>r>>>t,Ac=(r,e,t)=>r<<32-t|e>>>t,or=(r,e,t)=>r>>>t|e<<32-t,sr=(r,e,t)=>r<<32-t|e>>>t,Hn=(r,e,t)=>r<<64-t|e>>>t-32,Wn=(r,e,t)=>r>>>t-32|e<<64-t;function ht(r,e,t,n){let o=(e>>>0)+(n>>>0);return{h:r+t+(o/2**32|0)|0,l:o|0}}var fd=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),dd=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,hd=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),pd=(r,e,t,n,o)=>e+t+n+o+(r/2**32|0)|0,md=(r,e,t,n,o)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),gd=(r,e,t,n,o,s)=>e+t+n+o+s+(r/2**32|0)|0;function ls(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in r&&r.BYTES_PER_ELEMENT===1}var _c=r=>r?`"${r}" `:"";function St(r,e=""){if(typeof r!="number")throw new TypeError(_c(e)+"expected number, got "+typeof r);if(!Number.isSafeInteger(r)||r<0)throw new RangeError(_c(e)+"expected integer >= 0, got "+r);return r}function Ze(r,e,t=""){if(ls(r)&&(e===void 0||r.length===e))return r;e!==void 0&&St(e,"length");let n=ls(r),o=e!==void 0?` of length ${e}`:"",s=n?`length=${r.length}`:`type=${typeof r}`,i=_c(t)+"expected Uint8Array"+o+", got "+s;throw n?new RangeError(i):new TypeError(i)}function us(r){if(typeof r!="function"||typeof r.create!="function")throw new TypeError("expected hash wrapped by utils.createHasher");if(St(r.outputLen),St(r.blockLen),r.outputLen<1||r.blockLen<1)throw new Error("hash blockLen / outputLen must be >= 1")}var yd=(r,e)=>{if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError((e==="object"?"":`"${e}" `)+"expected object, got type="+typeof r)};function $r(r,e=!0){if(r.destroyed)throw new Error("hash was destroyed");if(e&&r.finished)throw new Error("digest() was already called")}function fs(r,e){Ze(r,void 0,"output");let t=e.outputLen;if(!(r.length>=t))throw new RangeError('"output" expected length >= '+t)}function ir(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function ds(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function ot(r,e){return r<<32-e|r>>>e}var wd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",wy=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function hs(r){if(Ze(r),wd)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=wy[r[t]];return e}function bd(r){return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void 0}function ps(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);if(wd)try{return Uint8Array.fromHex(r)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let e=r.length,t=e/2;if(e%2)throw new RangeError("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=bd(r.charCodeAt(s)),a=bd(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ic(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];Ze(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 xy(r,e,t="opts"){return yd(r,"defaults"),e!==void 0&&yd(e,t),Object.assign(r,e)}function Cc(r,e={}){if(typeof r!="function")throw new TypeError('"hashCons" expected function, got type='+typeof r);e=xy({},e,"info");let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.canXOF=n.canXOF,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function xd(r=32){St(r,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(r>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${r}`);return e.getRandomValues(new Uint8Array(r))}var Tc=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ed(r,e,t){return r&e^~r&t}function vd(r,e,t){return r&e^r&t^e&t}var Gn=class{blockLen;outputLen;canXOF=!1;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=ds(this.buffer)}update(e){$r(this),Ze(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length,i=!1;for(let a=0;a<s;){let c=Math.min(o-this.pos,s-a);if(c===o){let l=ds(e);for(;o<=s-a;a+=o)this.process(l,a);i=!0;continue}n.set(a===0&&c===s?e:e.subarray(a,a+c),this.pos),this.pos+=c,a+=c,this.pos===o&&(this.process(t,0),this.pos=0,i=!0)}return this.length+=e.length,i&&this.roundClean(),this}digestInto(e){$r(this),fs(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,t.fill(0,i),this.padOffset>o-i&&(this.process(n,0),t.fill(0)),ud(n,o-8,this.length*8,s),this.process(n,0),this.roundClean();let a=e===t?n:ds(e),c=this.outputLen,l=c/4,u=this.get();if(c%4||l>u.length)throw new Error("invalid outputLen");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}_cloneIntoMeta(e){let{buffer:t,length:n,finished:o,destroyed:s,pos:i}=this;return e.destroyed=s,e.finished=o,e.length=n,e.pos=i,i&&e.buffer.set(t),e}clone(){return this._cloneInto()}},Sd=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Ad=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Ey=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),Lc=class extends Gn{A=0;B=0;C=0;D=0;E=0;F=0;G=0;H=0;constructor(e,t){super(64,e,8,!1),this.A=t[0]|0,this.B=t[1]|0,this.C=t[2]|0,this.D=t[3]|0,this.E=t[4]|0,this.F=t[5]|0,this.G=t[6]|0,this.H=t[7]|0}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}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let f=0;f<16;f++,t+=4)Ut[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let d=Ut[f-15],h=Ut[f-2],b=ot(d,7)^ot(d,18)^d>>>3,m=ot(h,17)^ot(h,19)^h>>>10;Ut[f]=m+Ut[f-7]+b+Ut[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 d=ot(a,6)^ot(a,11)^ot(a,25),h=u+d+Ed(a,c,l)+Ey[f]+Ut[f]|0,m=(ot(n,2)^ot(n,13)^ot(n,22))+vd(n,o,s)|0;u=l,l=c,c=a,a=i+h|0,i=s,s=o,o=n,n=h+m|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(){ir(Ut)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ir(this.buffer)}},Pc=class extends Lc{constructor(){super(32,Sd)}};var _d=ld(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),vy=_d[0],Sy=_d[1],Kt=new Uint32Array(80),qt=new Uint32Array(80),Dc=class extends Gn{Ah=0;Al=0;Bh=0;Bl=0;Ch=0;Cl=0;Dh=0;Dl=0;Eh=0;El=0;Fh=0;Fl=0;Gh=0;Gl=0;Hh=0;Hl=0;constructor(e,t){super(128,e,16,!1),this.Ah=t[0]|0,this.Al=t[1]|0,this.Bh=t[2]|0,this.Bl=t[3]|0,this.Ch=t[4]|0,this.Cl=t[5]|0,this.Dh=t[6]|0,this.Dl=t[7]|0,this.Eh=t[8]|0,this.El=t[9]|0,this.Fh=t[10]|0,this.Fl=t[11]|0,this.Gh=t[12]|0,this.Gl=t[13]|0,this.Hh=t[14]|0,this.Hl=t[15]|0}get(){let{Ah:e,Al:t,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:l,El:u,Fh:f,Fl:d,Gh:h,Gl:b,Hh:m,Hl:p}=this;return[e,t,n,o,s,i,a,c,l,u,f,d,h,b,m,p]}set(e,t,n,o,s,i,a,c,l,u,f,d,h,b,m,p){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=l|0,this.El=u|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=b|0,this.Hh=m|0,this.Hl=p|0}_cloneInto(e){return(e||=new this.constructor).set(...this.get()),this._cloneIntoMeta(e)}process(e,t){for(let x=0;x<16;x++,t+=4)Kt[x]=e.getUint32(t),qt[x]=e.getUint32(t+=4);for(let x=16;x<80;x++){let A=Kt[x-15]|0,_=qt[x-15]|0,z=or(A,_,1)^or(A,_,8)^Sc(A,_,7),V=sr(A,_,1)^sr(A,_,8)^Ac(A,_,7),F=Kt[x-2]|0,O=qt[x-2]|0,M=or(F,O,19)^Hn(F,O,61)^Sc(F,O,6),W=sr(F,O,19)^Wn(F,O,61)^Ac(F,O,6),k=hd(V,W,qt[x-7],qt[x-16]),ae=pd(k,z,M,Kt[x-7],Kt[x-16]);Kt[x]=ae|0,qt[x]=k|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:l,Dl:u,Eh:f,El:d,Fh:h,Fl:b,Gh:m,Gl:p,Hh:g,Hl:E}=this;for(let x=0;x<80;x++){let A=or(f,d,14)^or(f,d,18)^Hn(f,d,41),_=sr(f,d,14)^sr(f,d,18)^Wn(f,d,41),z=f&h^~f&m,V=d&b^~d&p,F=md(E,_,V,Sy[x],qt[x]),O=gd(F,g,A,z,vy[x],Kt[x]),M=F|0,W=or(n,o,28)^Hn(n,o,34)^Hn(n,o,39),k=sr(n,o,28)^Wn(n,o,34)^Wn(n,o,39),ae=n&s^n&a^s&a,P=o&i^o&c^i&c;g=m|0,E=p|0,m=h|0,p=b|0,h=f|0,b=d|0,{h:f,l:d}=ht(l|0,u|0,O|0,M|0),l=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let L=fd(M,k,P);n=dd(L,O,W,ae),o=L|0}({h:n,l:o}=ht(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=ht(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=ht(this.Ch|0,this.Cl|0,a|0,c|0),{h:l,l:u}=ht(this.Dh|0,this.Dl|0,l|0,u|0),{h:f,l:d}=ht(this.Eh|0,this.El|0,f|0,d|0),{h,l:b}=ht(this.Fh|0,this.Fl|0,h|0,b|0),{h:m,l:p}=ht(this.Gh|0,this.Gl|0,m|0,p|0),{h:g,l:E}=ht(this.Hh|0,this.Hl|0,g|0,E|0),this.set(n,o,s,i,a,c,l,u,f,d,h,b,m,p,g,E)}roundClean(){ir(Kt,qt)}destroy(){this.destroyed=!0,ir(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Rc=class extends Dc{constructor(){super(64,Ad)}};var zr=Cc(()=>new Pc,Tc(1));var kc=Cc(()=>new Rc,Tc(3));function gs(r,e,t=()=>{}){if(!Array.isArray(r))throw new TypeError(`"${e}" expected array, got type=${typeof r}`);for(let n=0;n<r.length;n++)t(r[n],`${e}[${n}]`);return r}var Q=(r,e,t)=>Ze(r,e,t),Oc=St;function Cd(r,e=""){if(typeof r!="string"){let t=e&&`"${e}" `;throw new TypeError(t+"expected string, got type="+typeof r)}return r}function $t(r,e="object"){if(r===null||typeof r!="object"||Array.isArray(r))throw new TypeError(e==="object"?"expected valid options object":`"${e}" expected object, got type=${typeof r}`);return r}function ar(r,e){if(typeof r!="function")throw new TypeError(`"${e}" is invalid: expected function, got ${typeof r}`);return r}var jn=hs,Qe=(...r)=>Ic(...r),Vr=r=>ps(r),Vt=ls,cr=r=>xd(r),ms=BigInt(0),Id=BigInt(1),Ay=r=>r?`"${r}" `:"";function Ue(r,e=""){if(typeof r!="boolean")throw new TypeError(Ay(e)+"expected boolean, got type="+typeof r);return r}function ys(r){if(typeof r=="bigint"){if(!zt(r))throw new RangeError("positive bigint expected, got "+r)}else Oc(r);return r}function Ht(r,e=""){if(typeof r!="number"){let t=e&&`"${e}" `;throw new TypeError(t+"expected number, got type="+typeof r)}if(!Number.isSafeInteger(r)){let t=e&&`"${e}" `;throw new RangeError(t+"expected safe integer, got "+r)}}function Yn(r){let e=ys(r).toString(16);return e.length&1?"0"+e:e}function Td(r){if(typeof r!="string")throw new TypeError("hex string expected, got "+typeof r);return r===""?ms:BigInt("0x"+r)}function pt(r){return Td(hs(r))}function lr(r){return Td(hs(ws(Ze(r)).reverse()))}function bs(r,e){if(St(e),e===0)throw new Error("zero output length is invalid");r=ys(r);let t=e*2,n=r.toString(16);if(n.length>t)throw new RangeError("number is too large");return ps(n.padStart(t,"0"))}function Nc(r,e){return bs(r,e).reverse()}function ws(r){return Uint8Array.from(Q(r))}function zt(r){return typeof r=="bigint"&&ms<=r}function Mc(r,e,t){return zt(r)&&zt(e)&&zt(t)&&e<=r&&r<t}function Hr(r,e,t,n){if(!Mc(e,t,n))throw new RangeError("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Wr(r){if(r<ms)throw new Error("expected non-negative bigint, got "+r);return r===ms?0:r.toString(2).length}var Xn=r=>(Ht(r,"n"),(Id<<BigInt(r))-Id);function Ld(r,e,t){if(St(r,"hashLen"),St(e,"qByteLen"),typeof t!="function")throw new TypeError("hmacFn must be a function");let n=p=>new Uint8Array(p),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},d=(...p)=>t(l,Qe(c,...p)),h=(p=o)=>{l=d(s,p),c=d(),p.length!==0&&(l=d(i,p),c=d())},b=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let p=0,g=[];for(;p<e;){c=d();let E=c.slice();g.push(E),p+=c.length}return Qe(...g)};return(p,g)=>{f(),h(p);let E;for(;(E=g(b()))===void 0;)h();return f(),E}}function Ke(r,e={},t={},n="object"){$t(r,n),$t(e,"fields"),$t(t,"optFields");function o(i,a,c){let l=n==="object"?`param "${String(i)}"`:`"${n}.${String(i)}"`,u=r[i];if(!Object.hasOwn(r,i)&&(c?u!==void 0:a!=="function"))throw new TypeError(`${l} is invalid: expected own property`);if(c&&u===void 0)return;let f=typeof u;if(f!==a||u===null)throw new TypeError(`${l} is invalid: expected ${a}, got ${f}`)}let s=(i,a)=>Object.entries(i).forEach(([c,l])=>o(c,l,a));s(e,!1),s(t,!0)}var ge=BigInt(0),J=BigInt(1),Wt=BigInt(2),Rd=BigInt(3),Bc=BigInt(4),kd=BigInt(5),_y=BigInt(7),Od=BigInt(8),Iy=BigInt(9),Cy=BigInt(15),Nd=BigInt(16),Ty=BigInt("0x10000000000000000");function ue(r,e){if(e<=ge)throw new Error("mod: expected positive modulus, got "+e);let t=r%e;return t>=ge?t:e+t}function Md(r,e,t){if(t<=J)throw new Error("pow: expected modulus > 1, got "+t);if(typeof e!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof e);if(e<ge)throw new Error("invalid exponent, negatives unsupported");if(e===ge)return J;if(e===J)return r;let n=r%t;if(n<ge&&(n+=t),e<Ty){let a=J;for(;e>ge;)e&J&&(a=a*n%t),n=n*n%t,e>>=J;return a}let o=[];for(;e>ge;)o.push(Number(e&Cy)),e>>=Bc;let s=new Array(16);s[0]=J,s[1]=n;for(let a=2;a<16;a++)s[a]=s[a-1]*n%t;let i=s[o[o.length-1]];for(let a=o.length-2;a>=0;a--){i=i*i%t,i=i*i%t,i=i*i%t,i=i*i%t;let c=o[a];c!==0&&(i=i*s[c]%t)}return i}function ce(r,e,t){if(t<=J)throw new Error("pow2: expected modulus > 1, got "+t);if(e<ge)throw new Error("pow2: expected non-negative exponent, got "+e);let n=r;for(;e-- >ge;)n*=n,n%=t;return n}function Pd(r,e){if(r===ge)throw new Error("invert: expected non-zero number");if(e<=J)throw new Error("invert: expected modulus > 1, got "+e);let t=ue(r,e),n=e,o=ge,s=J;for(;t!==ge;){let a=n/t,c=n-t*a,l=o-s*a;n=t,t=c,o=s,s=l}if(n!==J)throw new Error("invert: does not exist");return ue(o,e)}function Bd(r,e){if(e<=J)throw new Error("invertCt: expected prime modulus > 1, got "+e);let t=ue(r,e);if(t===ge)throw new Error("invertCt: expected non-zero number");let n=Md(t,e-Wt,e);if(ue(t*n,e)!==J)throw new Error("invertCt: does not exist");return n}function Fc(r,e,t){let n=r;if(!n.eql(n.sqr(e),t))throw new Error("Cannot find square root")}function Uc(r,e){if((r&J)===ge)throw new Error(e+": expected odd modulus, got "+r)}function Fd(r,e){let t=r,n=(t.ORDER+J)/Bc,o=t.pow(e,n);return Fc(t,o,e),o}function Ly(r,e){let t=r,n=(t.ORDER-kd)/Od,o=t.mul(e,Wt),s=t.pow(o,n),i=t.mul(e,s),a=t.mul(t.mul(i,Wt),s),c=t.mul(i,t.sub(a,t.ONE));return Fc(t,c,e),c}function Py(r){let e=jr(r),t=Ud(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+_y)/Nd;return((a,c)=>{let l=a,u=l.pow(c,i),f=l.mul(u,n),d=l.mul(u,o),h=l.mul(u,s),b=l.eql(l.sqr(f),c),m=l.eql(l.sqr(d),c);u=l.cmov(u,f,b),f=l.cmov(h,d,m);let p=l.eql(l.sqr(f),c),g=l.cmov(u,f,p);return Fc(l,g,c),g})}function Ud(r){if(r<Rd)throw new Error("sqrt is not defined for small field");Uc(r,"tonelliShanks");let e=r-J,t=0;for(;e%Wt===ge;)e/=Wt,t++;let n=Wt,o=jr(r);for(;Zn(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return Fd;let s=o.pow(n,e),i=(e+J)/Wt;return function(c,l){let u=c;if(u.is0(l))return l;if(Zn(u,l)!==1)throw new Error("Cannot find square root");let f=t,d=u.mul(u.ONE,s),h=u.pow(l,e),b=u.pow(l,i);for(;!u.eql(h,u.ONE);){if(u.is0(h))throw new Error("Cannot find square root: probably non-prime P");let m=1,p=u.sqr(h);for(;!u.eql(p,u.ONE);)if(m++,p=u.sqr(p),m===f)throw new Error("Cannot find square root");let g=J<<BigInt(f-m-1),E=u.pow(d,g);f=m,d=u.sqr(E),h=u.mul(h,d),b=u.mul(b,E)}return b}}function Dy(r){return Uc(r,"Fp.sqrt"),r%Bc===Rd?Fd:r%Od===kd?Ly:r%Nd===Iy?Py(r):Ud(r)}var Kd=(r,e)=>(ue(r,e)&J)===J,Ry=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Gr(r){if($t(r,"field"),typeof r.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof r.ORDER);Ht(r.BYTES,"BYTES"),Ht(r.BITS,"BITS");for(let e of Ry)ar(r[e],"field."+e);if(r.BYTES<1||r.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(r.ORDER<=J)throw new Error("invalid field: expected ORDER > 1, got "+r.ORDER);return r}function Es(r,e,t=!1){Gr(r),gs(e,"nums"),Ue(t,"passZero");let n=r,o=new Array(e.length).fill(t?n.ZERO:void 0),s=e.reduce((a,c,l)=>n.is0(c)?a:(o[l]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return e.reduceRight((a,c,l)=>n.is0(c)?a:(o[l]=n.mul(a,o[l]),n.mul(a,c)),i),o}function Zn(r,e){Gr(r);let t=r;Uc(t.ORDER,"FpLegendre");let n=(t.ORDER-J)/Wt,o=t.pow(e,n),s=t.eql(o,t.ONE),i=t.eql(o,t.ZERO),a=t.eql(o,t.neg(t.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function ky(r,e){if(e!==void 0&&Oc(e),r<=ge)throw new Error("invalid n length: expected positive n, got "+r);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let t=Wr(r);if(e!==void 0&&e<t)throw new Error(`invalid n length: expected nBitLength (${e}) >= bitLen(n) (${t})`);let n=e!==void 0?e:t,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var Dd=new WeakMap,xs=class{ORDER;BITS;BYTES;isLE;ZERO=ge;ONE=J;_lengths;_mod;constructor(e,t={}){if(e<=J)throw new Error("invalid field: expected ORDER > 1, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:t.sqrt,enumerable:!0}),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=Object.freeze(t.allowedLengths.slice())),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=ky(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(e){return ue(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return ge<=e&&e<this.ORDER}is0(e){return e===ge}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&J)===J}neg(e){return ue(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return ue(e*e,this.ORDER)}add(e,t){return ue(e+t,this.ORDER)}sub(e,t){return ue(e-t,this.ORDER)}mul(e,t){return ue(e*t,this.ORDER)}pow(e,t){return Md(e,t,this.ORDER)}div(e,t){return ue(e*Pd(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 Pd(e,this.ORDER)}sqrt(e){let t=Dd.get(this);return t||Dd.set(this,t=Dy(this.ORDER)),t(this,e)}toBytes(e){return this.isLE?Nc(e,this.BYTES):bs(e,this.BYTES)}fromBytes(e,t=!1){Q(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(e.length<1||!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?lr(e):pt(e);if(a&&(c=ue(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Es(this,e,!0)}cmov(e,t,n){return Ue(n,"condition"),n?t:e}};function jr(r,e={}){return Object.freeze(xs.prototype),new xs(r,e)}function qd(r){if(typeof r!="bigint")throw new Error("field order must be bigint");if(r<=J)throw new Error("field order must be greater than 1");let e=Wr(r-J);return Math.ceil(e/8)}function vs(r){let e=qd(r);return e+Math.ceil(e/2)}function Ss(r,e,t=!1){Q(r);let n=r.length,o=qd(e),s=Math.max(vs(e),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?lr(r):pt(r),a=ue(i,e-J)+J;return t?Nc(a,o):bs(a,o)}var $c=BigInt(0),Qn=BigInt(1),Oy=BigInt(4),Kc=16,$d=128,Ny=5,zd=2**31;function Gt(r){let e=r;if(typeof e!="function")throw new TypeError('"Point" expected constructor, got type='+typeof r);ar(e.fromAffine,"Point.fromAffine"),ar(e.fromBytes,"Point.fromBytes"),ar(e.fromHex,"Point.fromHex"),$t(e.BASE,"Point.BASE"),$t(e.ZERO,"Point.ZERO"),Gr(e.Fp),Gr(e.Fn)}function As(r,e){Gt(r),Hd(e,r);let t=Es(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function My(r,e,t=1){if(!Number.isSafeInteger(r)||r<t||r>e)throw new Error("invalid window size, expected ["+t+".."+e+"], got W="+r)}function By(r,e){let t=r*(4*e+128);if(t>zd)throw new Error("invalid window size: table would need ~"+Math.ceil(t/2**20)+" MiB, max "+zd/2**20+" MiB")}function zc(r,e){if(r!==void 0){ar(r,"randomBytes");try{let t=r(e);if(!Vt(t)||t.length!==e)return}catch{return}return r}}function Hd(r,e){gs(r,"points"),r.forEach((t,n)=>{if(!(t instanceof e))throw new Error("invalid point at index "+n)})}function Fy(r,e,t){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((n,o)=>{if(!(t===void 0?e.isValid(n):zt(n)&&n<t))throw new Error("invalid scalar at index "+o)})}var Wd=new WeakMap;function qc(r){return Wd.get(r)||1}function Uy(r,e){let t=r.double(),n=[r];for(let o=1;o<e;o++)n.push(n[o-1].add(t));return n}function Ky(r,e){let t=2**e,n=t/2,o=BigInt(t-1),s=[];for(;r>$c;){let i=0;r&Qn&&(i=Number(r&o),i>=n&&(i-=t),r-=BigInt(i)),s.push(i),r>>=Qn}return s}function qy(r,e,t){let n=2**e,o=n/2,s=BigInt(n-1),i=BigInt(e),a=[];for(let c=0;c<t;c++){let l=Number(r&s);r>>=i,l>o&&(l-=n,r+=Qn),a.push(l)}if(r!==$c)throw new Error("invalid wnaf");return a}function $y(r,e,t){let n=0;for(let s of t)n=Math.max(n,s.length);let o=r;for(let s=n-1;s>=0;s--){s!==n-1&&(o=o.double());for(let i=0;i<t.length;i++){let a=t[i][s];if(a){let c=e[i][Math.abs(a)-1>>1];o=o.add(a<0?c.negate():c)}}}return o}var Yr=class{Point;BASE;ZERO;randomBytes;wnafPrecomputes=new WeakMap;baseCanBeBlinded;bits;constructor(e,t){Gt(e),this.randomBytes=zc(t,Kc),this.Point=e,this.BASE=e.BASE,this.ZERO=e.ZERO,this.bits=e.Fn.BITS}buildWnafTable(e,t,n){let o=Math.ceil(n/t)+1,s=2**(t-1),i=[],a=e;for(let c=0;c<o;c++){let l=a;for(let u=0;u<s;u++)i.push(l),l=l.add(a);a=i[i.length-1].double()}return{W:t,bits:n,windows:o,comp:i}}wnafCachedCT(e,t){let{W:n,windows:o,comp:s}=e,i=2**(n-1),a=qy(t,n,o),c=this.ZERO,l=this.BASE;for(let u=0;u<o;u++){let f=a[u],d=u*i,h=Math.abs(f)-1,b=s[d];for(let p=1;p<i;p++)b=p===h?s[d+p]:b;let m=b.negate();f===0?l=l.add(s[d]):c=c.add(f<0?m:b)}return{p:c,f:l}}getWnafPrecomputes(e,t,n,o){let s=this.wnafPrecomputes.get(t),i=s?.find(a=>a.W===e&&a.bits===n);return i||(i=this.buildWnafTable(t,e,n),typeof o=="function"&&(i={...i,comp:o(i.comp)}),s||(s=[],this.wnafPrecomputes.set(t,s)),s.push(i)),i}assertPoint(e){if(!(e instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof e)}validateMulInput(e,t){if(this.assertPoint(e),!Mc(t,Qn,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(e,t,n,o){let s=qc(e);return s===1?this.fixedWindowCT(e,t,n):this.wnafCachedCT(this.getWnafPrecomputes(s,e,n,o),t)}mulCT(e,t,n){return this.validateMulInput(e,t),this.runCT(e,t,this.bits,n)}mulCTBlinded(e,t,n){if(this.validateMulInput(e,t),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let o=this.Point.Fn.BITS+$d,s=this.randomBytes(Kc);if(!Vt(s)||s.length!==Kc)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=t+pt(s)*this.Point.Fn.ORDER;return this.runCT(e,i,o,n)}fixedWindowCT(e,t,n){let o=Ny,s=1<<o,i=Xn(o),a=new Array(s);a[0]=this.ZERO;for(let u=1;u<s;u++)a[u]=a[u-1].add(e);let c=Math.ceil(n/o),l=this.ZERO;for(let u=c-1;u>=0;u--){if(u!==c-1)for(let h=0;h<o;h++)l=l.double();let f=Number(t>>BigInt(u*o)&i),d=a[0];for(let h=1;h<s;h++)d=h===f?a[h]:d;l=l.add(d)}return{p:l,f:l}}shouldBlind(e,t){return this.randomBytes===void 0?!1:t===Qn?!0:e!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(e,t,n,o){return this.shouldBlind(e,n)?this.mulCTBlinded(e,t,o):this.mulCT(e,t,o)}mulUnsafe(e,t,n){if(this.assertPoint(e),!zt(t))throw new Error("invalid scalar");let o=qc(e);if(o===1||t>=this.Point.Fn.ORDER)return _s(this.Point,[e],[t],!0);let s=this.getWnafPrecomputes(o,e,this.bits,n);return this.wnafCachedCT(s,t).p}setWindowSize(e,t){this.assertPoint(e),My(t,this.bits);let n=Math.ceil((this.bits+$d)/t)+1;By(n*2**(t-1),this.Point.Fp.BYTES),Wd.set(e,t),this.wnafPrecomputes.delete(e)}hasWindowSize(e){return qc(e)!==1}};function _s(r,e,t,n=!1){if(Gt(r),Hd(e,r),Ue(n,"allowOversized"),Fy(t,r.Fn,n?r.Fn.ORDER**Oy:void 0),e.length!==t.length)throw new Error("arrays of points and scalars must have equal length");let o=e.map(i=>Uy(i,4)),s=t.map(i=>Ky(i,4));return $y(r.ZERO,o,s)}function Vd(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Gr(e),e}else return jr(r,{isLE:t})}function Is(r,e,t={},n){if(r!=="weierstrass"&&r!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);Ke(t);for(let c of["p","n","h"]){let l=e[c];if(!(zt(l)&&l!==$c))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Vd(e.p,t.Fp,n),s=Vd(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 Cs(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var Ts=BigInt(0),Ls=BigInt(1),Ps=BigInt(2),zy=BigInt(4),Gd=BigInt(8);function Vy(r,e,t,n){let o=r.sqr(t),s=r.sqr(n),i=r.add(r.mul(e.a,o),s),a=r.add(r.ONE,r.mul(e.d,r.mul(o,s)));return r.eql(i,a)}function jd(r,e={}){Ke(e,{},{},"extraOpts");let t=e,n=Is("edwards",r,t,t.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;if(Zn(o,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(Zn(o,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");Ke(t,{},{uvRatio:"function",randomBytes:"function"});let c=t.randomBytes===void 0?cr:t.randomBytes,l=Ps<<BigInt(o.BYTES*8)-Ls;function u(E){if(!o.isOdd)throw new Error("Field does not have .isOdd()");return o.isOdd(E)}let f=t.uvRatio===void 0?(E,x)=>{try{return{isValid:!0,value:o.sqrt(o.div(E,x))}}catch{return{isValid:!1,value:Ts}}}:t.uvRatio;if(!Vy(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let d=o.eql(i.a,o.neg(o.ONE))?E=>o.neg(E):o.eql(i.a,o.ONE)?E=>E:E=>o.mul(i.a,E);function h(E,x,A=!1){let _=A?Ls:Ts;return Hr("coordinate "+E,x,_,l),x}function b(E){if(!(E instanceof m))throw new Error("EdwardsPoint expected")}class m{static BASE=new m(i.Gx,i.Gy,o.ONE,o.mul(i.Gx,i.Gy));static ZERO=new m(o.ZERO,o.ONE,o.ONE,o.ZERO);static Fp=o;static Fn=s;X;Y;Z;T;constructor(x,A,_,z){this.X=h("x",x),this.Y=h("y",A),this.Z=h("z",_,!0),this.T=h("t",z),Object.freeze(this)}static CURVE(){return i}static fromAffine(x){if(x instanceof m)throw new Error("extended point not allowed");let{x:A,y:_}=x||{};return h("x",A),h("y",_),new m(A,_,o.ONE,o.mul(A,_))}static fromBytes(x,A=!1){let _=o.BYTES,{a:z,d:V}=i;x=ws(Q(x,_,"point")),Ue(A,"zip215");let F=ws(x),O=x[_-1];F[_-1]=O&-129;let M=lr(F),W=A?l:o.ORDER;Hr("point.y",M,Ts,W);let k=o.sqr(M),ae=o.sub(k,o.ONE),P=o.sub(o.mulN(V,k),z),{isValid:L,value:y}=f(ae,P);if(!L)throw new Error("bad point: invalid y coordinate");let v=u(y),I=(O&128)!==0;if(!A&&o.is0(y)&&I)throw new Error("bad point: x=0 and x_0=1");return I!==v&&(y=o.neg(y)),m.fromAffine({x:y,y:M})}static fromHex(x,A=!1){return m.fromBytes(Vr(x),A)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=6,A=!0){return g.setWindowSize(this,x),A||this.multiply(Ps),this}assertValidity(){let x=this,{a:A,d:_}=i;if(x.is0())throw new Error("bad point: ZERO");let{X:z,Y:V,Z:F,T:O}=x,M=o.sqr(z),W=o.sqr(V),k=o.sqr(F),ae=o.sqr(k),P=o.mul(M,A),L=o.mul(o.add(P,W),k),y=o.add(ae,o.mul(_,o.mul(M,W)));if(!o.eql(L,y))throw new Error("bad point: equation left != right (1)");let v=o.mul(z,V),I=o.mul(F,O);if(!o.eql(v,I))throw new Error("bad point: equation left != right (2)")}equals(x){b(x);let{X:A,Y:_,Z:z}=this,{X:V,Y:F,Z:O}=x,M=o.mul(A,O),W=o.mul(V,z),k=o.mul(_,O),ae=o.mul(F,z);return o.eql(M,W)&&o.eql(k,ae)}is0(){return this.equals(m.ZERO)}negate(){return new m(o.neg(this.X),this.Y,this.Z,o.neg(this.T))}double(){let{X:x,Y:A,Z:_}=this,z=o.sqr(x),V=o.sqr(A),F=o.mul(o.sqr(_),Ps),O=d(z),M=o.addN(x,A),W=o.sub(o.subN(o.sqr(M),z),V),k=o.addN(O,V),ae=o.subN(k,F),P=o.subN(O,V),L=o.mul(W,ae),y=o.mul(k,P),v=o.mul(W,P),I=o.mul(ae,k);return new m(L,y,I,v)}add(x){b(x);let{d:A}=i,{X:_,Y:z,Z:V,T:F}=this,{X:O,Y:M,Z:W,T:k}=x,ae=o.mul(_,O),P=o.mul(z,M),L=o.mul(o.mulN(F,A),k),y=o.mul(V,W),v=o.sub(o.subN(o.mulN(o.addN(_,z),o.addN(O,M)),ae),P),I=o.subN(y,L),N=o.addN(y,L),S=o.sub(P,d(ae)),w=o.mul(v,I),C=o.mul(N,S),T=o.mul(v,S),U=o.mul(I,N);return new m(w,C,U,T)}subtract(x){return b(x),this.add(x.negate())}multiply(x){if(!s.isValidNot0(x))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:A,f:_}=g.mulSecret(this,x,a,p);return p([A,_])[0]}multiplyUnsafe(x){if(!s.isValid(x))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return x===Ts?m.ZERO:this.is0()||x===Ls?this:g.mulUnsafe(this,x,p)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return g.mulUnsafe(this,i.n).is0()}toAffine(x){let A=this,_=x;if(_!=null&&typeof _!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof _);let{X:z,Y:V,Z:F}=A,O=A.is0();_==null&&(_=O?o.create(Gd):o.inv(F));let M=o.mul(z,_),W=o.mul(V,_),k=o.mul(F,_);if(O)return{x:o.ZERO,y:o.ONE};if(!o.eql(k,o.ONE))throw new Error("invZ was invalid");return{x:M,y:W}}clearCofactor(){return a===Ls?this:a===Ps?this.double():a===zy?this.double().double():a===Gd?this.double().double().double():this.multiplyUnsafe(a)}toBytes(){let{x,y:A}=this.toAffine(),_=o.toBytes(A);return _[_.length-1]|=u(x)?128:0,_}toHex(){return jn(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let p=E=>As(m,E),g=new Yr(m,c);return g.bits>=6&&m.BASE.precompute(6),Object.freeze(m.prototype),Object.freeze(m),m}function Yd(r,e,t={}){if(Gt(r),typeof e!="function")throw new Error('"hash" function param is required');let n=e,o=t;Ke(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=r,l=n.outputLen,u=2*a.BYTES;if(l!==void 0&&(Ht(l,"hash.outputLen"),l!==u))throw new Error(`hash.outputLen must be ${u}, got ${l}`);let f=o.randomBytes===void 0?cr:o.randomBytes,d=o.toMontgomery,h=o.toMontgomerySecret,b=o.adjustScalarBytes===void 0?P=>P:o.adjustScalarBytes,m=o.domain===void 0?(P,L,y)=>{if(Ue(y,"phflag"),L.length||y)throw new Error("Contexts/pre-hash are not supported");return P}:o.domain;function p(P){return c.create(lr(P))}function g(P){let L=O.secretKey;Q(P,O.secretKey,"secretKey");let y=Q(n(P),2*L,"hashedSecretKey"),v=b(y.slice(0,L)),I=y.slice(L,2*L),N=p(v);return{head:v,prefix:I,scalar:N}}function E(P){let{head:L,prefix:y,scalar:v}=g(P),I=i.multiply(v),N=I.toBytes();return{head:L,prefix:y,scalar:v,point:I,pointBytes:N}}function x(P){return E(P).pointBytes}function A(P=Uint8Array.of(),...L){let y=Qe(...L);return p(n(m(y,Q(P,void 0,"context"),!!s)))}function _(P,L,y={}){Ke(y,{},{},"options"),P=Q(P,void 0,"message"),s&&(P=s(P));let{prefix:v,scalar:I,pointBytes:N}=E(L),S=A(y.context,v,P),w=i.multiply(S).toBytes(),C=A(y.context,w,N,P),T=c.create(S+C*I);if(!c.isValid(T))throw new Error("sign failed: invalid s");let U=Qe(w,c.toBytes(T));return Q(U,O.signature,"result")}let z={zip215:o.zip215};function V(P,L,y,v=z){Ke(v);let{context:I}=v,N=v.zip215===void 0?!!z.zip215:v.zip215,S=O.signature;P=Q(P,S,"signature"),L=Q(L,void 0,"message"),y=Q(y,O.publicKey,"publicKey"),N!==void 0&&Ue(N,"zip215"),s&&(L=s(L));let w=S/2,C=P.subarray(0,w),T=lr(P.subarray(w,S)),U,K,X;try{U=r.fromBytes(y,N),K=r.fromBytes(C,N),X=i.multiplyUnsafe(T)}catch{return!1}if(!N&&U.isSmallOrder())return!1;let Y=A(I,C,y,L);return K.add(U.multiplyUnsafe(Y)).subtract(X).clearCofactor().is0()}let F=a.BYTES,O={secretKey:F,publicKey:F,signature:2*F,seed:F};function M(P){return P=P===void 0?f(O.seed):P,Q(P,O.seed,"seed")}function W(P){return Vt(P)&&P.length===O.secretKey}function k(P,L){try{return!!r.fromBytes(P,L===void 0?z.zip215:L)}catch{return!1}}let ae={getExtendedPublicKey:E,randomSecretKey:M,isValidSecretKey:W,isValidPublicKey:k,toMontgomery(P){if(d===void 0)throw new Error("Montgomery conversion is not supported for this curve");return d(r.fromBytes(P))},toMontgomerySecret(P){if(h===void 0)throw new Error("Montgomery conversion is not supported for this curve");return h(P)}};return Object.freeze(O),Object.freeze(ae),Object.freeze({keygen:Cs(M,x),getPublicKey:x,sign:_,verify:V,utils:ae,Point:r,lengths:O})}var Vc=BigInt(1),Xd=BigInt(2);var Hy=BigInt(5),Wy=BigInt(8),Hc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Gy={p:Hc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Wy,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function jy(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),o=BigInt(80),s=Hc,a=r*r%s*r%s,c=ce(a,Xd,s)*a%s,l=ce(c,Vc,s)*r%s,u=ce(l,Hy,s)*l%s,f=ce(u,e,s)*u%s,d=ce(f,t,s)*f%s,h=ce(d,n,s)*d%s,b=ce(h,o,s)*h%s,m=ce(b,o,s)*h%s,p=ce(m,e,s)*u%s;return{pow_p_5_8:ce(p,Xd,s)*r%s,b2:a}}function Jd(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}var Zd=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Yy(r,e){let t=Hc,n=ue(e*e*e,t),o=ue(n*n*e,t),s=jy(r*o).pow_p_5_8,i=ue(r*n*s,t),a=ue(e*i*i,t),c=i,l=ue(i*Zd,t),u=a===r,f=a===ue(-r,t),d=a===ue(-r*Zd,t);return u&&(i=c),(f||d)&&(i=l),Kd(i,t)&&(i=ue(-i,t)),{isValid:u||f,value:i}}var Wc=jd(Gy,{uvRatio:Yy}),Qd=Wc.Fp;function Xy(r){let{y:e}=r;return Qd.toBytes(Qd.div(Vc+e,Vc-e))}function Zy(r){let e=Wc.Fp.BYTES;return Ze(r,e),Jd(kc(r.subarray(0,e))).subarray(0,e)}function Qy(r){return Yd(Wc,kc,Object.assign({adjustScalarBytes:Jd,toMontgomery:Xy,toMontgomerySecret:Zy,zip215:!0},r))}var Jn=Qy({});var eo=class extends Error{constructor(e="An error occurred while signing a message"){super(e),this.name="SigningError"}},to=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},Ds=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var qe={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw new Ds("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return e}};var Rs=32,ro=64,Gc=32;var Xr,eh=(async()=>{try{return await qe.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();function th(){let r=Jn.utils.randomSecretKey(),e=Jn.getPublicKey(r);return{privateKey:n0(r,e),publicKey:e}}async function Jy(r,e){let t;r.length===ro?t=r.subarray(0,32):t=r;let n={crv:"Ed25519",kty:"OKP",x:q(r.subarray(32),"base64url"),d:q(t,"base64url"),ext:!0,key_ops:["sign"]},o=await qe.get().subtle.importKey("jwk",n,{name:"Ed25519"},!0,["sign"]),s=await qe.get().subtle.sign({name:"Ed25519"},o,Ee(e instanceof Uint8Array?e:e.subarray()));return new Uint8Array(s,0,s.byteLength)}function e0(r,e){let t=r.subarray(0,Gc);return Jn.sign(e instanceof Uint8Array?e:e.subarray(),t)}async function rh(r,e){return Xr==null&&(Xr=await eh),Xr?Jy(r,e):e0(r,e)}async function t0(r,e,t){if(r.buffer instanceof ArrayBuffer){let n=await qe.get().subtle.importKey("raw",r.buffer,{name:"Ed25519"},!1,["verify"]);return await qe.get().subtle.verify({name:"Ed25519"},n,Ee(e),Ee(t instanceof Uint8Array?t:t.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function r0(r,e,t){return Jn.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}async function nh(r,e,t){return Xr==null&&(Xr=await eh),Xr?t0(r,e,t):r0(r,e,t)}function n0(r,e){let t=new Uint8Array(ro);for(let n=0;n<Gc;n++)t[n]=r[n],t[Gc+n]=e[n];return t}function Zr(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var no=class{type="Ed25519";raw;constructor(e){this.raw=Os(e,Rs)}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=nh(this.raw,t,e);return Zr(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}},ks=class{type="Ed25519";raw;publicKey;constructor(e,t){this.raw=Os(e,ro),this.publicKey=new no(t)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){t?.signal?.throwIfAborted();let n=rh(this.raw,e);return Zr(n)?n.then(o=>(t?.signal?.throwIfAborted(),o)):(t?.signal?.throwIfAborted(),n)}};function jc(r){return r=Os(r,Rs),new no(r)}async function sh(){let{privateKey:r,publicKey:e}=th();return new ks(r,e)}function Os(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new R(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var o0=Math.pow(2,7),s0=Math.pow(2,14),i0=Math.pow(2,21),Yc=Math.pow(2,28),Xc=Math.pow(2,35),Zc=Math.pow(2,42),Qc=Math.pow(2,49),ee=128,_e=127;function be(r){if(r<o0)return 1;if(r<s0)return 2;if(r<i0)return 3;if(r<Yc)return 4;if(r<Xc)return 5;if(r<Zc)return 6;if(r<Qc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Qr(r,e,t=0){switch(be(r)){case 8:e[t++]=r&255|ee,r/=128;case 7:e[t++]=r&255|ee,r/=128;case 6:e[t++]=r&255|ee,r/=128;case 5:e[t++]=r&255|ee,r/=128;case 4:e[t++]=r&255|ee,r>>>=7;case 3:e[t++]=r&255|ee,r>>>=7;case 2:e[t++]=r&255|ee,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function a0(r,e,t=0){switch(be(r)){case 8:e.set(t++,r&255|ee),r/=128;case 7:e.set(t++,r&255|ee),r/=128;case 6:e.set(t++,r&255|ee),r/=128;case 5:e.set(t++,r&255|ee),r/=128;case 4:e.set(t++,r&255|ee),r>>>=7;case 3:e.set(t++,r&255|ee),r>>>=7;case 2:e.set(t++,r&255|ee),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function Jc(r,e){let t=r[e],n=0;if(n+=t&_e,t<ee||(t=r[e+1],n+=(t&_e)<<7,t<ee)||(t=r[e+2],n+=(t&_e)<<14,t<ee)||(t=r[e+3],n+=(t&_e)<<21,t<ee)||(t=r[e+4],n+=(t&_e)*Yc,t<ee)||(t=r[e+5],n+=(t&_e)*Xc,t<ee)||(t=r[e+6],n+=(t&_e)*Zc,t<ee)||(t=r[e+7],n+=(t&_e)*Qc,t<ee))return n;throw new RangeError("Could not decode varint")}function c0(r,e){let t=r.get(e),n=0;if(n+=t&_e,t<ee||(t=r.get(e+1),n+=(t&_e)<<7,t<ee)||(t=r.get(e+2),n+=(t&_e)<<14,t<ee)||(t=r.get(e+3),n+=(t&_e)<<21,t<ee)||(t=r.get(e+4),n+=(t&_e)*Yc,t<ee)||(t=r.get(e+5),n+=(t&_e)*Xc,t<ee)||(t=r.get(e+6),n+=(t&_e)*Zc,t<ee)||(t=r.get(e+7),n+=(t&_e)*Qc,t<ee))return n;throw new RangeError("Could not decode varint")}function jt(r,e,t=0){return e==null&&(e=ye(be(r))),e instanceof Uint8Array?Qr(r,e,t):a0(r,e,t)}function ur(r,e=0){return r instanceof Uint8Array?Jc(r,e):c0(r,e)}var el=new Float32Array([-0]),Yt=new Uint8Array(el.buffer);function ih(r,e,t){el[0]=r,e[t]=Yt[0],e[t+1]=Yt[1],e[t+2]=Yt[2],e[t+3]=Yt[3]}function ah(r,e){return Yt[0]=r[e],Yt[1]=r[e+1],Yt[2]=r[e+2],Yt[3]=r[e+3],el[0]}var tl=new Float64Array([-0]),Ie=new Uint8Array(tl.buffer);function ch(r,e,t){tl[0]=r,e[t]=Ie[0],e[t+1]=Ie[1],e[t+2]=Ie[2],e[t+3]=Ie[3],e[t+4]=Ie[4],e[t+5]=Ie[5],e[t+6]=Ie[6],e[t+7]=Ie[7]}function lh(r,e){return Ie[0]=r[e],Ie[1]=r[e+1],Ie[2]=r[e+2],Ie[3]=r[e+3],Ie[4]=r[e+4],Ie[5]=r[e+5],Ie[6]=r[e+6],Ie[7]=r[e+7],tl[0]}var l0=BigInt(Number.MAX_SAFE_INTEGER),u0=BigInt(Number.MIN_SAFE_INTEGER),ze=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 fr;if(e<l0&&e>u0)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>uh&&(o=0n,++n>uh&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return fr;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):fr}},fr=new ze(0,0);fr.toBigInt=function(){return 0n};fr.zzEncode=fr.zzDecode=function(){return this};fr.length=function(){return 1};var uh=4294967296n;function fh(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 dh(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 rl(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 st(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ns(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var nl=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=Ee(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,st(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 st(this,4);return Ns(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw st(this,4);return Ns(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw st(this,4);let e=ah(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw st(this,4);let e=lh(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 st(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return dh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw st(this,e);this.pos+=e}else do if(this.pos>=this.len)throw st(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 ze(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 st(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 st(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 st(this,8);let e=Ns(this.buf,this.pos+=4),t=Ns(this.buf,this.pos+=4);return new ze(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=Jc(this.buf,this.pos);return this.pos+=be(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 so(r){return new nl(r instanceof Uint8Array?r:r.subarray())}function ke(r,e,t){let n=so(r);return e.decode(n,void 0,t)}function ol(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return ye(i);o+i>e&&(n=ye(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var dr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function sl(){}var al=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},f0=ol();function d0(r){return globalThis.Buffer!=null?ye(r):f0(r)}var ao=class{len;head;tail;states;constructor(){this.len=0,this.head=new dr(sl,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new dr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new cl((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(Ms,10,ze.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=ze.fromBigInt(e);return this._push(Ms,t.length(),t)}uint64Number(e){return this._push(Qr,be(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=ze.fromBigInt(e).zzEncode();return this._push(Ms,t.length(),t)}sint64Number(e){let t=ze.fromNumber(e).zzEncode();return this._push(Ms,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(il,1,e?1:0)}fixed32(e){return this._push(io,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=ze.fromBigInt(e);return this._push(io,4,t.lo)._push(io,4,t.hi)}fixed64Number(e){let t=ze.fromNumber(e);return this._push(io,4,t.lo)._push(io,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(ih,4,e)}double(e){return this._push(ch,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(il,1,0):this.uint32(t)._push(p0,t,e)}string(e){let t=fh(e);return t!==0?this.uint32(t)._push(rl,t,e):this._push(il,1,0)}fork(){return this.states=new al(this),this.head=this.tail=new dr(sl,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new dr(sl,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=d0(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function il(r,e,t){e[t]=r&255}function h0(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var cl=class extends dr{next;constructor(e,t){super(h0,e,t),this.next=void 0}};function Ms(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 io(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 p0(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(ao.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(m0,e,r),this},ao.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(g0,e,r),this});function m0(r,e,t){e.set(r,t)}function g0(r,e,t){r.length<40?rl(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(D(r),t)}function ll(){return new ao}function Oe(r,e){let t=ll();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}function*Ne(r,e,t){let n=so(r);yield*e.stream(n,void 0,"$",t)}var Bs={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function Fs(r,e,t,n,o){return{name:r,type:e,encode:t,decode:n,stream:o}}function ul(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,a){let c=e(i);a.int32(c)},n=function(i){let a=i.int32();return e(a)},o=function*(i){let a=i.int32();yield e(a)};return Fs("enum",Bs.VARINT,t,n,o)}function Me(r,e,t){return Fs("message",Bs.LENGTH_DELIMITED,r,e,t)}var Je=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"},co=class extends Error{code="ERR_MAX_SIZE";name="MaxSizeError"};var fe;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(fe||(fe={}));var fl;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(fl||(fl={}));(function(r){r.codec=()=>ul(fl)})(fe||(fe={}));var mt;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),fe.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=fe.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:fe.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(mt||(mt={}));var dl;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),fe.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=fe.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:fe.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(dl||(dl={}));var uo={};Fe(uo,{MAX_RSA_KEY_SIZE:()=>hl,generateRSAKeyPair:()=>vl,jwkToJWKKeyPair:()=>bh,jwkToPkcs1:()=>x0,jwkToPkix:()=>yl,jwkToRSAPrivateKey:()=>El,pkcs1MessageToJwk:()=>ml,pkcs1MessageToRSAPrivateKey:()=>bl,pkcs1ToJwk:()=>w0,pkcs1ToRSAPrivateKey:()=>yh,pkixMessageToJwk:()=>gl,pkixMessageToRSAPublicKey:()=>xl,pkixToJwk:()=>E0,pkixToRSAPublicKey:()=>wl});var Jr=class{type="RSA";jwk;_raw;_multihash;constructor(e,t){this.jwk=e,this._multihash=t}get raw(){return this._raw==null&&(this._raw=uo.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return me.createV1(114,this._multihash)}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){return gh(this.jwk,t,e,n)}},lo=class{type="RSA";jwk;_raw;publicKey;constructor(e,t){this.jwk=e,this.publicKey=t}get raw(){return this._raw==null&&(this._raw=uo.jwkToPkcs1(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){return mh(this.jwk,e,t)}};var hl=8192,pl=18,y0=1062,b0=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function w0(r){let e=vt(r);return ml(e)}function ml(r){return{n:q(r[1],"base64url"),e:q(r[2],"base64url"),d:q(r[3],"base64url"),p:q(r[4],"base64url"),q:q(r[5],"base64url"),dp:q(r[6],"base64url"),dq:q(r[7],"base64url"),qi:q(r[8],"base64url"),kty:"RSA"}}function x0(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new R("JWK was missing components");return nt([Re(Uint8Array.from([0])),Re(D(r.n,"base64url")),Re(D(r.e,"base64url")),Re(D(r.d,"base64url")),Re(D(r.p,"base64url")),Re(D(r.q,"base64url")),Re(D(r.dp,"base64url")),Re(D(r.dq,"base64url")),Re(D(r.qi,"base64url"))]).subarray()}function E0(r){let e=vt(r,{offset:0});return gl(e)}function gl(r){let e=vt(r[1],{offset:0});return{kty:"RSA",n:q(e[0],"base64url"),e:q(e[1],"base64url")}}function yl(r){if(r.n==null||r.e==null)throw new R("JWK was missing components");return nt([b0,Vn(nt([Re(D(r.n,"base64url")),Re(D(r.e,"base64url"))]))]).subarray()}function yh(r){let e=vt(r);return bl(e)}function bl(r){let e=ml(r);return El(e)}function wl(r,e){if(r.byteLength>=y0)throw new kt("Key size is too large");let t=vt(r,{offset:0});return xl(t,r,e)}function xl(r,e,t){let n=gl(r);if(t==null){let o=zr(mt.encode({Type:fe.RSA,Data:e}));t=dt(pl,o)}return new Jr(n,t)}function El(r){if(xh(r)>hl)throw new R("Key size is too large");let e=bh(r),t=zr(mt.encode({Type:fe.RSA,Data:yl(e.publicKey)})),n=dt(pl,t);return new lo(e.privateKey,new Jr(e.publicKey,n))}async function vl(r){if(r>hl)throw new R("Key size is too large");let e=await wh(r),t=zr(mt.encode({Type:fe.RSA,Data:yl(e.publicKey)})),n=dt(pl,t);return new lo(e.privateKey,new Jr(e.publicKey,n))}function bh(r){if(r==null)throw new R("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}async function wh(r,e){let t=await qe.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);e?.signal?.throwIfAborted();let n=await v0(t,e);return{privateKey:n[0],publicKey:n[1]}}async function mh(r,e,t){let n=await qe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);t?.signal?.throwIfAborted();let o=await qe.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Ee(e instanceof Uint8Array?e:e.subarray()));return t?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function gh(r,e,t,n){let o=await qe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await qe.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Ee(e),Ee(t instanceof Uint8Array?t:t.subarray()));return n?.signal?.throwIfAborted(),s}async function v0(r,e){if(r.privateKey==null||r.publicKey==null)throw new R("Private and public key are required");let t=await Promise.all([qe.get().subtle.exportKey("jwk",r.privateKey),qe.get().subtle.exportKey("jwk",r.publicKey)]);return e?.signal?.throwIfAborted(),t}function xh(r){if(r.kty!=="RSA")throw new R("invalid key type");if(r.n==null)throw new R("invalid key modulus");return D(r.n,"base64url").length*8}var Us=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,t){if(us(e),Ze(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("expected Hash instance");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(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),ir(o)}update(e){return $r(this),this.iHash.update(e),this}digestInto(e){$r(this),fs(e,this),this.finished=!0;let t=e.subarray(0,this.outputLen);this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),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,canXOF:c}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.canXOF=c,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()}},Eh=(()=>{let r=((e,t,n)=>new Us(e,t).update(n).digest());return r.create=(e,t)=>new Us(e,t),r})();var S0=BigInt(0),Sl=class extends Error{constructor(e=""){super(e)}},At={Err:Sl,_tlv:{encode:(r,e)=>{let{Err:t}=At;if(Ht(r,"tag"),r<0||r>255)throw new t("tlv.encode: wrong tag");if(Cd(e,"data"),e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=Yn(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?Yn(o.length/2|128):"";return Yn(r)+s+o+e},decode(r,e){let{Err:t}=At;e=Q(e,void 0,"DER data");let n=0;if(r<0||r>255)throw new t("tlv.decode: 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}=At;if(ys(r),r<S0)throw new e("integer: negative integers are not allowed");let t=Yn(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}=At;if(r.length<1)throw new e("invalid signature integer: empty");if(r[0]&128)throw new e("invalid signature integer: negative");if(r.length>1&&r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return pt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=At,o=Q(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}=At;Ke(r,{r:"bigint",s:"bigint"},{},"sig");let n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},Al=(Object.freeze(At._tlv),Object.freeze(At._int),Object.freeze(At));var vh=(r,e)=>(r+(r>=0?e:-e)/Sh)/e;function A0(r,e,t){Hr("scalar",r,_t,t);let[[n,o],[s,i]]=e,a=vh(i*r,t),c=vh(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<_t,d=u<_t;f&&(l=-l),d&&(u=-u);let h=Xn(Math.ceil(Wr(t)/2))+hr;if(l<_t||l>=h||u<_t||u>=h)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:f,k1:l,k2neg:d,k2:u}}function Cl(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function _l(r,e){Ke(r);let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return Ue(t.lowS,"lowS"),Ue(t.prehash,"prehash"),t.format!==void 0&&Cl(t.format),t}var _t=BigInt(0),hr=BigInt(1),Sh=BigInt(2),Il=BigInt(3),_0=BigInt(4);function Ah(r,e={}){let t=Is("weierstrass",r,e),n=t.Fp,o=t.Fn,s=t.CURVE,{h:i,n:a}=s;Ke(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",randomBytes:"function"});let{endo:c,allowInfinityPoint:l}=e,u=e.randomBytes===void 0?cr:e.randomBytes;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let f=Ih(n,o);function d(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(L,y,v){if(l&&y.is0())return Uint8Array.of(0);let{x:I,y:N}=y.toAffine(),S=n.toBytes(I);if(Ue(v,"isCompressed"),v){d();let w=!n.isOdd(N);return Qe(_h(w),S)}else return Qe(Uint8Array.of(4),S,n.toBytes(N))}function b(L){Q(L,void 0,"Point");let{publicKey:y,publicKeyUncompressed:v}=f,I=L.length,N=L[0],S=L.subarray(1);if(l&&I===1&&N===0)return{x:n.ZERO,y:n.ZERO};if(I===y&&(N===2||N===3)){let w=n.fromBytes(S);if(!n.isValid(w))throw new Error("bad point: is not on curve, wrong x");let C=x(w),T;try{T=n.sqrt(C)}catch(X){let Y=X instanceof Error?": "+X.message:"";throw new Error("bad point: is not on curve, sqrt error"+Y)}d();let U=n.isOdd(T);return(N&1)===1!==U&&(T=n.neg(T)),{x:w,y:T}}else if(I===v&&N===4){let w=n.BYTES,C=n.fromBytes(S.subarray(0,w)),T=n.fromBytes(S.subarray(w,w*2));if(!A(C,T))throw new Error("bad point: is not on curve");return{x:C,y:T}}else throw new Error(`bad point: got length ${I}, expected compressed=${y} or uncompressed=${v}`)}let m=e.toBytes===void 0?h:e.toBytes,p=e.fromBytes===void 0?b:e.fromBytes,g=n.mul(s.b,Il),E=n.is0(s.a)?L=>n.ZERO:L=>n.mul(s.a,L);function x(L){let y=n.sqr(L),v=n.mul(y,L);return n.add(n.add(v,n.mul(L,s.a)),s.b)}function A(L,y){let v=n.sqr(y),I=x(L);return n.eql(v,I)}if(!A(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let _=n.mul(n.pow(s.a,Il),_0),z=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(_,z)))throw new Error("bad curve params: a or b");function V(L,y,v=!1){if(!n.isValid(y)||v&&n.is0(y))throw new Error(`bad point coordinate ${L}`);return y}function F(L){if(!(L instanceof k))throw new Error("Weierstrass Point expected")}function O(L){if(!c||!c.basises)throw new Error("no endo");return A0(L,c.basises,o.ORDER)}function M(L,y,v,I){if(!o.isValid(I))throw new RangeError("invalid scalar: out of range");if(c){let{k1neg:N,k1:S,k2neg:w,k2:C}=O(I),T=new k(n.mul(v.X,c.beta),v.Y,v.Z);L.push(N?v.negate():v,w?T.negate():T),y.push(S,C)}else L.push(v),y.push(I)}let W=new WeakSet;class k{static BASE=new k(s.Gx,s.Gy,n.ONE);static ZERO=new k(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,v,I){this.X=V("x",y),this.Y=V("y",v,!0),this.Z=V("z",I),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:v,y:I}=y||{};if(!y||!n.isValid(v)||!n.isValid(I))throw new Error("invalid affine point");if(y instanceof k)throw new Error("projective point not allowed");return n.is0(v)&&n.is0(I)?k.ZERO:new k(v,I,n.ONE)}static fromBytes(y){let v=k.fromAffine(p(Q(y,void 0,"point")));return v.assertValidity(),v}static fromHex(y){return k.fromBytes(Vr(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=6,v=!0){return P.setWindowSize(this,y),v||this.multiply(Il),this}assertValidity(){let y=this;if(y.is0()){if(e.allowInfinityPoint&&n.is0(y.X)&&n.eql(y.Y,n.ONE)&&n.is0(y.Z))return;throw new Error("bad point: ZERO")}if(W.has(y))return;let{x:v,y:I}=y.toAffine();if(!n.isValid(v)||!n.isValid(I))throw new Error("bad point: x or y not field elements");if(!A(v,I))throw new Error("bad point: equation left != right");if(!y.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");W.add(y)}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){F(y);let{X:v,Y:I,Z:N}=this,{X:S,Y:w,Z:C}=y,T=n.eql(n.mul(v,C),n.mul(S,N)),U=n.eql(n.mul(I,C),n.mul(w,N));return T&&U}negate(){return new k(this.X,n.neg(this.Y),this.Z)}double(){let{X:y,Y:v,Z:I}=this,N=n.ZERO,S=n.ZERO,w=n.ZERO,C=n.mul(y,y),T=n.mul(v,v),U=n.mul(I,I),K=n.mul(y,v);return K=n.add(K,K),w=n.mul(y,I),w=n.add(w,w),N=E(w),S=n.mul(g,U),S=n.add(N,S),N=n.sub(T,S),S=n.add(T,S),S=n.mul(N,S),N=n.mul(K,N),w=n.mul(g,w),U=E(U),K=n.sub(C,U),K=E(K),K=n.add(K,w),w=n.add(C,C),C=n.add(w,C),C=n.add(C,U),C=n.mul(C,K),S=n.add(S,C),U=n.mul(v,I),U=n.add(U,U),C=n.mul(U,K),N=n.sub(N,C),w=n.mul(U,T),w=n.add(w,w),w=n.add(w,w),new k(N,S,w)}add(y){F(y);let{X:v,Y:I,Z:N}=this,{X:S,Y:w,Z:C}=y,T=n.ZERO,U=n.ZERO,K=n.ZERO,X=n.mul(v,S),Y=n.mul(I,w),de=n.mul(N,C),Pe=n.add(v,I),he=n.add(S,w);Pe=n.mul(Pe,he),he=n.add(X,Y),Pe=n.sub(Pe,he),he=n.add(v,N);let Ae=n.add(S,C);return he=n.mul(he,Ae),Ae=n.add(X,de),he=n.sub(he,Ae),Ae=n.add(I,N),T=n.add(w,C),Ae=n.mul(Ae,T),T=n.add(Y,de),Ae=n.sub(Ae,T),K=E(he),T=n.mul(g,de),K=n.add(T,K),T=n.sub(Y,K),K=n.add(Y,K),U=n.mul(T,K),Y=n.add(X,X),Y=n.add(Y,X),de=E(de),he=n.mul(g,he),Y=n.add(Y,de),de=n.sub(X,de),de=E(de),he=n.add(he,de),X=n.mul(Y,he),U=n.add(U,X),X=n.mul(Ae,he),T=n.mul(Pe,T),T=n.sub(T,X),X=n.mul(Pe,Y),K=n.mul(Ae,K),K=n.add(K,X),new k(T,U,K)}subtract(y){return F(y),this.add(y.negate())}is0(){return this.equals(k.ZERO)}multiply(y){if(!o.isValidNot0(y))throw new RangeError("invalid scalar: out of range");let{p:v,f:I}=P.mulSecret(this,y,i,ae);return ae([v,I])[0]}multiplyUnsafe(y){let v=this,I=y;if(!o.isValid(I))throw new RangeError("invalid scalar: out of range");if(I===_t||v.is0())return k.ZERO;if(I===hr)return v;if(P.hasWindowSize(this))return P.mulUnsafe(v,I,ae);let N=[],S=[];return M(N,S,v,I),_s(k,N,S)}mulAddUnsafe(y,v,I){F(v);let N=[],S=[];return M(N,S,this,y),M(N,S,v,I),_s(k,N,S)}toAffine(y){let v=this,I=y;if(I!=null&&!n.isValid(I))throw new RangeError('"invertedZ" expected valid field element');let{X:N,Y:S,Z:w}=v;if(n.eql(w,n.ONE))return{x:N,y:S};let C=v.is0();I==null&&(I=C?n.ONE:n.inv(w));let T=n.mul(N,I),U=n.mul(S,I),K=n.mul(w,I);if(C)return{x:n.ZERO,y:n.ZERO};if(!n.eql(K,n.ONE))throw new Error("invZ was invalid");return{x:T,y:U}}isTorsionFree(){let{isTorsionFree:y}=e;return i===hr?!0:y?y(k,this):P.mulUnsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===hr?this:y?y(k,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===hr?this.is0():this.clearCofactor().is0()}toBytes(y=!0){return Ue(y,"isCompressed"),this.assertValidity(),m(k,this,y)}toHex(y=!0){return jn(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let ae=L=>As(k,L),P=new Yr(k,u);return P.bits>=6&&k.BASE.precompute(6),Object.freeze(k.prototype),Object.freeze(k),k}function _h(r){return Uint8Array.of(r?2:3)}function Ih(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function I0(r,e={}){Gt(r);let{Fn:t}=r,n=e.randomBytes===void 0?cr:e.randomBytes,o=Object.assign(Ih(r.Fp,t),{seed:Math.max(vs(t.ORDER),16)});function s(h){try{let b=t.fromBytes(h);return t.isValidNot0(b)}catch{return!1}}function i(h,b){let{publicKey:m,publicKeyUncompressed:p}=o;try{let g=h.length;return b===!0&&g!==m||b===!1&&g!==p?!1:!!r.fromBytes(h)}catch{return!1}}function a(h){return h=h===void 0?n(o.seed):h,Ss(Q(h,o.seed,"seed"),t.ORDER)}function c(h,b=!0){return r.BASE.multiply(t.fromBytes(h)).toBytes(b)}function l(h){let{secretKey:b,publicKey:m,publicKeyUncompressed:p}=o,g=t._lengths;if(!Vt(h))return;let E=Q(h,void 0,"key").length,x=E===m||E===p,A=E===b||!!g?.includes(E);if(!(x&&A))return x}function u(h,b,m=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(b)===!1)throw new Error("second arg must be public key");let p=t.fromBytes(h);return r.fromBytes(b).multiply(p).toBytes(m)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},d=Cs(a,c);return Object.freeze(f),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:r,utils:f,lengths:o})}function Ch(r,e,t={}){Gt(r);let n=e;us(n),Ke(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let o=Object.assign({},t),s=o.randomBytes===void 0?cr:o.randomBytes,i=o.hmac===void 0?(S,w)=>Eh(n,S,w):o.hmac,{Fp:a,Fn:c}=r,{ORDER:l,BITS:u}=c,f=vs(l),d=zc(s,f),{keygen:h,getPublicKey:b,getSharedSecret:m,utils:p,lengths:g}=I0(r,o),E={prehash:!0,lowS:typeof o.lowS=="boolean"?o.lowS:!0,format:"compact",extraEntropy:!1},x=l*Sh+hr<a.ORDER;function A(S){let w=l>>hr;return S>w}function _(S,w){if(!c.isValidNot0(w))throw new Error(`invalid signature ${S}: out of range 1..Point.Fn.ORDER`);return w}function z(){if(!a.isOdd)throw new Error("Field doesn't support isOdd")}function V(S,w,C){return z(),(S===C?0:2)|Number(a.isOdd(w))}function F(){if(x)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function O(S,w){Cl(w);let C=g.signature,T=w==="compact"?C:w==="recovered"?C+1:void 0;return Q(S,T)}class M{r;s;recovery;constructor(w,C,T){if(this.r=_("r",w),this.s=_("s",C),T!=null){if(F(),![0,1,2,3].includes(T))throw new Error("invalid recovery id");this.recovery=T}Object.freeze(this)}static fromBytes(w,C=E.format){O(w,C);let T;if(C==="der"){let{r:Y,s:de}=Al.toSig(Q(w));return new M(Y,de)}C==="recovered"&&(T=w[0],C="compact",w=w.subarray(1));let U=g.signature/2,K=w.subarray(0,U),X=w.subarray(U,U*2);return new M(c.fromBytes(K),c.fromBytes(X),T)}static fromHex(w,C){return this.fromBytes(Vr(w),C)}assertRecovery(){let{recovery:w}=this;if(w==null)throw new Error("invalid recovery id: must be present");return w}addRecoveryBit(w){return new M(this.r,this.s,w)}recoverPublicKey(w){let{r:C,s:T}=this,U=this.assertRecovery(),K=U===2||U===3?C+l:C;if(!a.isValid(K))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let X=a.toBytes(K),Y=r.fromBytes(Qe(_h((U&1)===0),X)),de=c.inv(K),Pe=k(Q(w,void 0,"msgHash")),he=c.create(-Pe*de),Ae=c.create(T*de),ut=r.BASE.mulAddUnsafe(he,Y,Ae);if(ut.is0())throw new Error("invalid recovery: point at infinify");return ut.assertValidity(),ut}hasHighS(){return A(this.s)}toBytes(w=E.format){if(Cl(w),w==="der")return Vr(Al.hexFromSig(this));let{r:C,s:T}=this,U=c.toBytes(C),K=c.toBytes(T);return w==="recovered"?(F(),Qe(Uint8Array.of(this.assertRecovery()),U,K)):Qe(U,K)}toHex(w){return jn(this.toBytes(w))}}Object.freeze(M.prototype),Object.freeze(M);let W=o.bits2int===void 0?function(w){if(w.length>8192)throw new Error("input is too large");let C=pt(w),T=w.length*8-u;return T>0?C>>BigInt(T):C}:o.bits2int,k=o.bits2int_modN===void 0?function(w){return c.create(W(w))}:o.bits2int_modN,ae=Xn(u);function P(S){return Hr("num < 2^"+u,S,_t,ae),c.toBytes(S)}function L(S,w){return Q(S,void 0,"message"),w?Q(n(S),void 0,"prehashed message"):S}function y(S,w,C){let{lowS:T,prehash:U,extraEntropy:K}=_l(C,E);S=L(S,U);let X=k(S),Y=c.fromBytes(w);if(!c.isValidNot0(Y))throw new Error("invalid private key");let de=[P(Y),P(X)];if(K!=null&&K!==!1){let ut=K===!0?s(g.secretKey):K;de.push(Q(ut,void 0,"extraEntropy"))}let Pe=Qe(...de),he=X;function Ae(ut){let Or=W(ut);if(!c.isValidNot0(Or))return;let Pn=r.BASE.multiply(Or).toAffine(),Rt=c.create(Pn.x);if(Rt===_t)return;let ft;if(d!==void 0){let Dn=pt(Ss(d(f),l)),Nm=c.inv(c.mul(Dn,Or)),Mm=c.mul(Dn,he),Bm=c.mul(Dn,Y);ft=c.create(Nm*c.create(Mm+Bm*Rt))}else{let Dn=Bd(Or,l);ft=c.create(Dn*c.create(he+Rt*Y))}if(ft===_t)return;let Ka=V(Pn.x,Pn.y,Rt),vf=ft;return T&&A(ft)&&(vf=c.neg(ft),Ka^=1),new M(Rt,vf,x?void 0:Ka)}return{seed:Pe,k2sig:Ae}}function v(S,w,C={}){let{seed:T,k2sig:U}=y(S,w,C);return Ld(n.outputLen,c.BYTES,i)(T,U).toBytes(C.format)}function I(S,w,C,T={}){let{lowS:U,prehash:K,format:X}=_l(T,E);if(C=Q(C,void 0,"publicKey"),w=L(w,K),!Vt(S)){let Y=S instanceof M?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+Y)}O(S,X);try{let Y=M.fromBytes(S,X),de=r.fromBytes(C);if(U&&Y.hasHighS())return!1;let{r:Pe,s:he}=Y,Ae=k(w),ut=c.inv(he),Or=c.create(Ae*ut),Pn=c.create(Pe*ut),Rt=r.BASE.mulAddUnsafe(Or,de,Pn);if(Rt.is0())return!1;let ft=Rt.toAffine();return!(c.create(ft.x)!==Pe||X==="recovered"&&Y.recovery!==V(ft.x,ft.y,Pe))}catch{return!1}}function N(S,w,C={}){let{prehash:T}=_l(C,E);return w=L(w,T),M.fromBytes(S,"recovered").recoverPublicKey(w).toBytes()}return Object.freeze({keygen:h,getPublicKey:b,getSharedSecret:m,utils:p,lengths:g,Point:r,sign:v,verify:I,recoverPublicKey:N,Signature:M,hash:n})}var Ll={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},C0={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Th=BigInt(2);function T0(r){let e=Ll.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=ce(u,t,e)*u%e,d=ce(f,t,e)*u%e,h=ce(d,Th,e)*l%e,b=ce(h,o,e)*h%e,m=ce(b,s,e)*b%e,p=ce(m,a,e)*m%e,g=ce(p,c,e)*p%e,E=ce(g,a,e)*m%e,x=ce(E,t,e)*u%e,A=ce(x,i,e)*b%e,_=ce(A,n,e)*l%e,z=ce(_,Th,e);if(!Tl.eql(Tl.sqr(z),r))throw new Error("Cannot find square root");return z}var Tl=jr(Ll.p,{sqrt:T0}),L0=Ah(Ll,{Fp:Tl,endo:C0}),it=Ch(L0,zr);function Lh(r,e,t){let n=qr.digest(e instanceof Uint8Array?e:e.subarray());if(Zr(n))return n.then(({digest:o})=>(t?.signal?.throwIfAborted(),it.sign(o,r,{prehash:!1,format:"der"}))).catch(o=>{throw o.name==="AbortError"?o:new eo(String(o))});try{return it.sign(n.digest,r,{prehash:!1,format:"der"})}catch(o){throw new eo(String(o))}}function Ph(r,e,t,n){let o=qr.digest(t instanceof Uint8Array?t:t.subarray());if(Zr(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),it.verify(e,s,r,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new to(String(s))});try{return n?.signal?.throwIfAborted(),it.verify(e,o.digest,r,{prehash:!1,format:"der"})}catch(s){throw new to(String(s))}}var fo=class{type="secp256k1";raw;_key;constructor(e){this._key=kh(e),this.raw=Dh(this._key)}toMultihash(){return rt.digest(Xe(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return oe.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}verify(e,t,n){return Ph(this._key,t,e,n)}},Ks=class{type="secp256k1";raw;publicKey;constructor(e,t){this.raw=Rh(e),this.publicKey=new fo(t??Oh(e))}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Z(this.raw,e.raw)}sign(e,t){return Lh(this.raw,e,t)}};function Pl(r){return new fo(r)}async function Nh(){let r=P0();return new Ks(r)}function Dh(r){return it.Point.fromBytes(r).toBytes()}function Rh(r){try{return it.getPublicKey(r,!0),r}catch(e){throw new kn(String(e))}}function kh(r){try{return it.Point.fromBytes(r),r}catch(e){throw new kt(String(e))}}function Oh(r){try{return it.getPublicKey(r,!0)}catch(e){throw new kn(String(e))}}function P0(){return it.utils.randomSecretKey()}async function Mh(r,e){if(r==="Ed25519")return sh();if(r==="secp256k1")return Nh();if(r==="RSA")return vl(D0(e));if(r==="ECDSA")return ad(R0(e));throw new Nt}function en(r,e){let{Type:t,Data:n}=mt.decode(r),o=n??new Uint8Array;switch(t){case fe.RSA:return wl(o,e);case fe.Ed25519:return jc(o);case fe.secp256k1:return Pl(o);case fe.ECDSA:return vc(o);default:throw new Nt}}function Bh(r){let{Type:e,Data:t}=mt.decode(r.digest),n=t??new Uint8Array;switch(e){case fe.Ed25519:return jc(n);case fe.secp256k1:return Pl(n);case fe.ECDSA:return vc(n);default:throw new Nt}}function Xe(r){return mt.encode({Type:fe[r.type],Data:r.raw})}function D0(r){return r==null?2048:parseInt(r,10)}function R0(r){if(r==="P-256"||r==null)return"P-256";if(r==="P-384")return"P-384";if(r==="P-521")return"P-521";throw new R("Unsupported curve, should be P-256, P-384 or P-521")}var Fh=Symbol.for("nodejs.util.inspect.custom"),k0=114,ho=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()})`}[ts]=!0;toString(){return this.string==null&&(this.string=oe.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return me.createV1(k0,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Z(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Z(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Fh](){return`PeerId(${this.toString()})`}},po=class extends ho{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},mo=class extends ho{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},go=class extends ho{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},O0=2336,yo=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=rt.digest(D(this.url))}[Fh](){return`PeerId(${this.url})`}[ts]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return me.createV1(O0,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=q(e)),e.toString()===this.toString())}};var N0=114,Uh=2336;function gt(r,e){let t;if(r.charAt(0)==="1"||r.charAt(0)==="Q")t=Et(oe.decode(`z${r}`));else{if(r.startsWith("k51qzi5uqu5")||r.startsWith("kzwfwjn5ji4")||r.startsWith("k2k4r8")||r.startsWith("bafz"))return bo(me.parse(r));if(e==null)throw new R('Please pass a multibase decoder for strings that do not start with "1" or "Q"');t=Et(e.decode(r))}return tn(t)}function Dl(r){if(r.type==="Ed25519")return new mo({multihash:r.toCID().multihash,publicKey:r});if(r.type==="secp256k1")return new go({multihash:r.toCID().multihash,publicKey:r});if(r.type==="RSA")return new po({multihash:r.toCID().multihash,publicKey:r});throw new Nt}function Kh(r){return Dl(r.publicKey)}function tn(r){if(B0(r))return new po({multihash:r});if(M0(r))try{let e=Bh(r);if(e.type==="Ed25519")return new mo({multihash:r,publicKey:e});if(e.type==="secp256k1")return new go({multihash:r,publicKey:e})}catch{let t=q(r.digest);return new yo(new URL(t))}throw new jo("Supplied PeerID Multihash is invalid")}function bo(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==N0&&r.code!==Uh)throw new Go("Supplied PeerID CID is invalid");if(r.code===Uh){let e=q(r.multihash.digest);return new yo(new URL(e))}return tn(r.multihash)}function M0(r){return r.code===rt.code}function B0(r){return r.code===qr.code}async function qh(r){if(r.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new R("Private network is enforced, but no protector was provided");return r}function qs(r,e){if(typeof r=="string")return F0(r);if(typeof r=="number")return q0(r,e);throw new Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}function F0(r){if(typeof r!="string"||r.length===0||r.length>100)throw new 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 new Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function U0(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 K0(r){let e=Math.abs(r);return e>=315576e5?pr(r,e,315576e5,"year"):e>=26298e5?pr(r,e,26298e5,"month"):e>=6048e5?pr(r,e,6048e5,"week"):e>=864e5?pr(r,e,864e5,"day"):e>=36e5?pr(r,e,36e5,"hour"):e>=6e4?pr(r,e,6e4,"minute"):e>=1e3?pr(r,e,1e3,"second"):`${r} ms`}function q0(r,e){if(typeof r!="number"||!Number.isFinite(r))throw new Error("Value provided to ms.format() must be of type number.");return e?.long?K0(r):U0(r)}function pr(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}function Rl(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=qs,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 d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u,f){let d,h=null,b,m;function p(...g){if(!p.enabled)return;let E=p,x=Number(new Date),A=x-(d||x);E.diff=A,E.prev=d,E.curr=x,d=x,g[0]=t.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let _=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(V,F)=>{if(V==="%%")return"%";_++;let O=t.formatters[F];if(typeof O=="function"){let M=g[_];V=O.call(E,M),g.splice(_,1),_--}return V}),t.formatArgs.call(E,g),f?.onLog!=null&&f.onLog(...g),(E.log||t.log).apply(E,g)}return p.namespace=u,p.useColors=t.useColors(),p.color=t.selectColor(u),p.extend=n,p.destroy=t.destroy,Object.defineProperty(p,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(b!==t.namespaces&&(b=t.namespaces,m=t.enabled(u)),m),set:g=>{h=g}}),typeof t.init=="function"&&t.init(p),p}function n(u,f){let d=t(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(u=d[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,d;for(f=0,d=t.skips.length;f<d;f++)if(t.skips[f].test(u))return!1;for(f=0,d=t.names.length;f<d;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 $s=j0(),$0=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function z0(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/(edge|trident)\/(\d+)/)!=null?!1:typeof document<"u"&&document.documentElement?.style?.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/firefox\/(\d+)/)!=null&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent?.toLowerCase().match(/applewebkit\/(\d+)/)}function V0(r){if(r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+qs(this.diff),!this.useColors)return;let e="color: "+this.color;r.splice(1,0,e,"color: inherit");let t=0,n=0;r[0].replace(/%[a-zA-Z%]/g,o=>{o!=="%%"&&(t++,o==="%c"&&(n=t))}),r.splice(n,0,e)}var H0=console.debug??console.log??(()=>{});function W0(r){try{r?$s?.setItem("debug",r):$s?.removeItem("debug")}catch{}}function G0(){let r;try{r=$s?.getItem("debug")}catch{}return!r&&typeof globalThis.process<"u"&&"env"in globalThis.process&&(r=globalThis.process.env.DEBUG),r}function j0(){try{return localStorage}catch{}}function Y0(r){r.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}var $h=Rl({formatArgs:V0,save:W0,load:G0,useColors:z0,setupFormatters:Y0,colors:$0,storage:$s,log:H0});var $e=$h;$e.formatters.b=r=>r==null?"undefined":oe.baseEncode(r);$e.formatters.t=r=>r==null?"undefined":je.baseEncode(r);$e.formatters.m=r=>r==null?"undefined":lc.baseEncode(r);$e.formatters.p=r=>r==null?"undefined":r.toString();$e.formatters.c=r=>r==null?"undefined":r.toString();$e.formatters.k=r=>r==null?"undefined":r.toString();$e.formatters.a=r=>r==null?"undefined":r.toString();function zh(r,e=""){let t=Vh(r.message),n=Vh(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
|
|
3
3
|
`).join(`
|
|
4
4
|
${e}`)}`:`${t}
|
|
5
5
|
${e}${n.split(`
|
|
6
6
|
`).join(`
|
|
7
7
|
${e}`)}`:n!=null?`${n.split(`
|
|
8
8
|
`).join(`
|
|
9
|
-
${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function
|
|
9
|
+
${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function X0(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function Hh(r,e=""){if(X0(r)){let t=zh(r,e);return r.errors.length>0?(e=`${e} `,t+=`
|
|
10
10
|
${e}${r.errors.map(n=>`${Hh(n,`${e}`)}`).join(`
|
|
11
11
|
${e}`)}`):t+=`
|
|
12
|
-
${e}[Error list was empty]`,t.trim()}return zh(r,e)}$e.formatters.e=r=>r==null?"undefined":Hh(r);function X0(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e.useColors=()=>!1,e}function zs(r){return{forComponent(e){return Wh(e,r)}}}function Wh(r,e){let t=X0(`${r}:trace`);return $e.enabled(`${r}:trace`)&&$e.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=$e(`${r}:trace`,e)),Object.assign($e(r,e),{error:$e(`${r}:error`,e),trace:t,newScope:n=>Wh(`${r}:${n}`,e)})}function Vh(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}function mr(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}function Vs(r){let e=Et(oe.decode(`z${r}`));return tn(e)}var et=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),{key:t,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return mr(this.map.entries(),e=>[e[1].key,e[1].value])}forEach(e){this.map.forEach((t,n)=>{e(t.value,t.key,this)})}get(e){return this.map.get(e.toString())?.value}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),{key:e,value:t})}keys(){return mr(this.map.values(),e=>e.key)}values(){return mr(this.map.values(),e=>e.value)}get size(){return this.map.size}};var gr=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return mr(this.set.entries(),e=>{let t=Vs(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=Vs(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return mr(this.set.values(),e=>Vs(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var kl={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Gh={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},jh=new globalThis.TextEncoder;function Z0(r,e){let t=kl[e],n=Gh[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function Q0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=kl[e],o=Gh[e],s=r;for(;s.length>0;){let i=jh.encodeInto(s,t);s=s.slice(i.read);for(let a=0;a<i.written;a++)o^=BigInt(t[a]),o=BigInt.asUintN(e,o*n)}return o}function Ol(r,{size:e=32,utf8Buffer:t}={}){if(!kl[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return Q0(r,e,t);r=jh.encode(r)}return Z0(r,e)}var wo={hash:r=>Number(Ol(r,{size:32})),hashV:(r,e)=>J0(wo.hash(r,e))};function J0(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),D(e,"base16")}var Nl=64,at=class{fp;h;seed;constructor(e,t,n,o=2){if(o>Nl)throw new TypeError("Invalid Fingerprint Size");let s=t.hashV(e,n),i=le(o);for(let a=0;a<i.length;a++)i[a]=s[a];i.length===0&&(i[0]=7),this.fp=i,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?Z(this.fp,e.fp):!1}};function yr(r,e){return Math.floor(Math.random()*(e-r))+r}var br=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");let t=yr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var eb=500,xo=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??wo,this.seed=e.seed??yr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new br(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new br(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let s=[n,o],i=s[yr(0,s.length-1)];this.buckets[i]==null&&(this.buckets[i]=new br(this.bucketSize));for(let a=0;a<eb;a++){let c=this.buckets[i].swap(t);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new br(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.has(t)??!1;if(o)return o;let s=(n^t.hash())%this.filterSize;return this.buckets[s]?.has(t)??!1}remove(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.remove(t)??!1;if(o)return this.count--,o;let s=(n^t.hash())%this.filterSize,i=this.buckets[s]?.remove(t)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},tb={1:.5,2:.84,4:.95,8:.98};function rb(r=.001){return r>.002?2:r>1e-5?4:8}function Yh(r,e=.001){let t=rb(e),n=tb[t],o=Math.round(r/n),s=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Nl);return{filterSize:o,bucketSize:t,fingerprintSize:s}}var Hs=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??wo,this.seed=e.seed??yr(0,Math.pow(2,10)),this.filterSeries=[new xo({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=D(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new xo({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=D(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=D(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Eo(r,e=.001,t){return new Hs({...Yh(r,e),...t??{}})}function Ml(r){let e=r.getComponents(),t={},n=0;return 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?null:(e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t)}function G(r){let e=Ml(r);if(e==null)throw new R(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e}var Ws=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(u===void 0)break;if(s*=e,s+=u,s>l||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let o=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[o]=i[0],t[o+1]=i[1],t[o+2]=i[2],t[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];t[o]=s>>8,t[o+1]=s&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,o]=e(t);if(n===16)return t;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return t.set(s.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Xh=45,nb=15,rn=new Ws;function Gs(r){if(!(r.length>nb))return rn.new(r).parseWith(()=>rn.readIPv4Addr())}function js(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Xh))return rn.new(r).parseWith(()=>rn.readIPv6Addr())}function nn(r,e=!1){if(r.includes("%")&&(r=r.split("%")[0]),r.length>Xh)return;let t=rn.new(r).parseWith(()=>rn.readIPAddr());if(t)return e&&t.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,t[0],t[1],t[2],t[3]]):t}function Zh(r,e,t){let n=0;for(let o of r)if(!(n<e)){if(n>t)break;if(o!==255)return!1;n++}return!0}function Qh(r,e,t,n){let o=0;for(let s of r)if(!(o<t)){if(o>n)break;if(s!==e[o])return!1;o++}return!0}function Bl(r){switch(r.length){case wr:return r.join(".");case xr:{let e=[];for(let t=0;t<r.length;t++)t%2===0&&e.push(r[t].toString(16).padStart(2,"0")+r[t+1].toString(16).padStart(2,"0"));return e.join(":")}default:throw new Error("Invalid ip length")}}function Jh(r){let e=0;for(let[t,n]of r.entries()){if(n===255){e+=8;continue}for(;(n&128)!=0;)e++,n=n<<1;if((n&128)!=0)return-1;for(let o=t+1;o<r.length;o++)if(r[o]!=0)return-1;break}return e}function ep(r){let e="0x";for(let t of r)e+=(t>>4).toString(16)+(t&15).toString(16);return e}var wr=4,xr=16,FA=parseInt("0xFFFF",16),ob=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function vo(r,e){e.length===xr&&r.length===wr&&Zh(e,0,11)&&(e=e.slice(12)),e.length===wr&&r.length===xr&&Qh(r,ob,0,11)&&(r=r.slice(12));let t=r.length;if(t!=e.length)throw new Error("Failed to mask ip");let n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=r[o]&e[o];return n}function tp(r,e){if(typeof e=="string"&&(e=nn(e)),e==null)throw new Error("Invalid ip");if(e.length!==r.network.length)return!1;for(let t=0;t<e.length;t++)if((r.network[t]&r.mask[t])!==(e[t]&r.mask[t]))return!1;return!0}function Fl(r){let[e,t]=r.split("/");if(!e||!t)throw new Error("Failed to parse given CIDR: "+r);let n=wr,o=Gs(e);if(o==null&&(n=xr,o=js(e),o==null))throw new Error("Failed to parse given CIDR: "+r);let s=parseInt(t,10);if(Number.isNaN(s)||String(s).length!==t.length||s<0||s>n*8)throw new Error("Failed to parse given CIDR: "+r);let i=Ul(s,8*n);return{network:vo(o,i),mask:i}}function Ul(r,e){if(e!==8*wr&&e!==8*xr)throw new Error("Invalid CIDR mask");if(r<0||r>e)throw new Error("Invalid CIDR mask");let t=e/8,n=new Uint8Array(t);for(let o=0;o<t;o++){if(r>=8){n[o]=255,r-=8;continue}n[o]=255-(255>>r),r=0}return n}var on=class{constructor(e,t){if(t==null)({network:this.network,mask:this.mask}=Fl(e));else{let n=nn(e);if(n==null)throw new Error("Failed to parse network");t=String(t);let o=parseInt(t,10);if(Number.isNaN(o)||String(o).length!==t.length||o<0||o>n.length*8){let s=nn(t);if(s==null)throw new Error("Failed to parse mask");this.mask=s}else this.mask=Ul(o,8*n.length);this.network=vo(n,this.mask)}}contains(e){return tp({network:this.network,mask:this.mask},e)}toString(){let e=Jh(this.mask),t=e!==-1?String(e):ep(this.mask);return Bl(this.network)+"/"+t}};function rp(r){try{let e=G(r);switch(e.type){case"ip4":return e.host.startsWith("169.254.");case"ip6":return e.host.toLowerCase().startsWith("fe80");default:return!1}}catch{return!1}}function np(r){if(typeof r!="string"||!/^[0-9a-fA-FxX.:]+$/.test(r))return!1;let e=r.includes(":")?`[${r}]`:r,t;try{t=new URL(`http://${e}`)}catch{return!1}if(t.href!==`http://${t.hostname}/`)return!1;let n=t.hostname;if(n.startsWith("["))return n==="[::1]";let o=n.split(".");return o.length===4&&o[0]==="127"&&o.every(s=>/^\d{1,3}$/.test(s))}function So(r){try{let e=G(r);switch(e.type){case"ip4":case"ip6":return np(e.host);default:return!1}}catch{return!1}}function ve(r){return Ml(r)!==null}function ct(r){return!!Gs(r)}function Ys(r){return!!js(r)}var ap=qa(ip(),1),fb=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],db=fb.map(r=>new ap.Netmask(r));function Wl(r){for(let e of db)if(e.contains(r))return!0;return!1}function hb(r){return/^::ffff:([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})$/.test(r)}function pb(r){let e=r.split(":");if(e.length<2)return!1;let t=e[e.length-1].padStart(4,"0"),n=e[e.length-2].padStart(4,"0"),o=`${parseInt(n.substring(0,2),16)}.${parseInt(n.substring(2),16)}.${parseInt(t.substring(0,2),16)}.${parseInt(t.substring(2),16)}`;return Wl(o)}function mb(r){return/^::ffff:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)}function gb(r){let e=r.split(":"),t=e[e.length-1];return Wl(t)}function yb(r){return/^::$/.test(r)||/^::1$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}function ln(r){if(ct(r))return Wl(r);if(hb(r))return pb(r);if(mb(r))return gb(r);if(Ys(r))return yb(r)}function It(r){try{let e=G(r);switch(e.type){case"ip4":case"ip6":return ln(e.host)??!1;default:return e.host==="localhost"}}catch{return!1}}var Se=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},Ct=class extends Error{static name="ValidationError";name="ValidationError"},Zs=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Qs=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function jl(r){return e=>q(e,r)}function Yl(r){return e=>D(e,r)}function un(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function vr(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function cp(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=D(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=vr(n);return Ye([t,o],t.length+o.length)}function lp(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=je.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=vr(n);return Ye([t,o],t.length+o.length)}function Xl(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=q(e,"base32"),o=un(t);return`${n}:${o}`}var Zl=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 Se("Invalid byte value in IP address");e[n]=o}),e},up=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=ct(t[n]),i;s&&(i=Zl(t[n]),t[n]=q(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,q(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 Se("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},fp=function(r){if(r.byteLength!==4)throw new Se("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},dp=function(r){if(r.byteLength!==16)throw new Se("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 Se(`Invalid IPv6 address "${t}"`)}};function hp(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new Se(`Invalid IPv6 address "${r}"`)}}var Gl=Object.values(qn).map(r=>r.decoder),bb=(function(){let r=Gl[0].or(Gl[1]);return Gl.slice(2).forEach(e=>r=r.or(e)),r})();function pp(r){return bb.decode(r)}function mp(r){return e=>r.encoder.encode(e)}function wb(r){if(parseInt(r).toString()!==r)throw new Ct("Value must be an integer")}function xb(r){if(r<0)throw new Ct("Value must be a positive integer, or zero")}function Eb(r){return e=>{if(e>r)throw new Ct(`Value must be smaller than or equal to ${r}`)}}function vb(...r){return e=>{for(let t of r)t(e)}}var Ao=vb(wb,xb,Eb(65535));var we=-1,Ql=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 Qs(`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)}))}},Lt=new Ql,Mb=[{code:4,name:"ip4",size:32,valueToBytes:Zl,bytesToValue:fp,validate:r=>{if(!ct(r))throw new Ct(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:273,name:"udp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:33,name:"dccp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:41,name:"ip6",size:128,valueToBytes:up,bytesToValue:dp,stringToValue:hp,validate:r=>{if(!Ys(r))throw new Ct(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:we},{code:43,name:"ipcidr",size:8,bytesToValue:jl("base10"),valueToBytes:Yl("base10")},{code:53,name:"dns",size:we},{code:54,name:"dns4",size:we},{code:55,name:"dns6",size:we},{code:56,name:"dnsaddr",size:we},{code:132,name:"sctp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:we,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:we,bytesToValue:jl("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Yl("base58btc")(r):me.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Xl,valueToBytes:cp},{code:445,name:"onion3",size:296,bytesToValue:Xl,valueToBytes:lp},{code:446,name:"garlic64",size:we},{code:447,name:"garlic32",size:we},{code:448,name:"tls"},{code:449,name:"sni",size:we},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:we,bytesToValue:mp(uc),valueToBytes:pp},{code:480,name:"http"},{code:481,name:"http-path",size:we,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:we}];Mb.forEach(r=>{Lt.addProtocol(r)});function gp(r){let e=[],t=0;for(;t<r.length;){let n=ur(r,t),o=Lt.getProtocol(n),s=be(n),i=Bb(o,r,t+s),a=0;i>0&&o.size===we&&(a=be(i));let c=s+a+i,l={code:n,name:o.name,bytes:Ee(r.subarray(t,t+c))};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??q(f)}e.push(l),t+=c}return e}function yp(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=Lt.getProtocol(n.code),s=be(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??D(n.value),a=i.byteLength,o.size===we&&(c=be(a)));let l=new Uint8Array(s+c+a),u=0;Qr(n.code,l,u),u+=s,i!=null&&(o.size===we&&(Qr(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return Ye(t,e)}function bp(r){if(r.charAt(0)!=="/")throw new Se('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=Lt.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 Se(`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 Se(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new Se("Incomplete multiaddr");return e}function wp(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=Lt.getProtocol(e.code);if(t==null)throw new Se(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function Bb(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:ur(e,t)}var Fb=Symbol.for("nodejs.util.inspect.custom"),du=Symbol.for("@multiformats/multiaddr");function Ub(r){if(r==null&&(r="/"),Qt(r))return r.getComponents();if(r instanceof Uint8Array)return gp(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),bp(r);if(Array.isArray(r))return r;throw new Se("Must be a string, Uint8Array, Component[], or another Multiaddr")}var oi=class r{[du]=!0;#e;#t;#n;constructor(e="/",t={}){this.#e=Ub(e),t.validate!==!1&&Kb(this)}get bytes(){return this.#n==null&&(this.#n=yp(this.#e)),this.#n}toString(){return this.#t==null&&(this.#t=wp(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 Zs(`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 Z(this.bytes,e.bytes)}[Fb](){return`Multiaddr(${this.toString()})`}};function Kb(r){r.getComponents().forEach(e=>{let t=Lt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function Qt(r){return!!r?.[du]}function te(r){return new oi(r)}var se=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),B=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),xp=r=>({match:e=>r.match(e)===!1?e:!1}),H=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),Ce=(...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}}),j=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function ie(...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 qb=B(421),Ep=ie(qb),ii=B(54),ai=B(55),ci=B(56),pu=B(53),AI=ie(ii,H(B(421))),_I=ie(ai,H(B(421))),II=ie(ci,H(B(421))),CI=ie(Ce(pu,ci,ii,ai),H(B(421))),vp=j(B(4),H(B(43))),Sp=j(H(B(42)),B(41),H(B(43))),mu=Ce(vp,Sp),gn=Ce(mu,pu,ii,ai,ci),TI=ie(Ce(mu,j(Ce(pu,ci,ii,ai),H(B(421))))),gu=ie(vp),yu=ie(Sp),LI=ie(mu),bu=j(gn,B(6)),_o=j(gn,B(273)),Io=ie(j(bu,H(B(421)))),PI=ie(_o),wu=j(_o,se(460),H(B(421))),li=j(_o,se(461),H(B(421))),$b=Ce(wu,li),DI=ie(wu),Ap=ie(li),hu=Ce(gn,bu,_o,wu,li),_p=Ce(j(hu,se(477),H(B(421)))),Ar=ie(_p),Ip=Ce(j(hu,se(478),H(B(421))),j(hu,se(448),H(B(449)),se(477),H(B(421)))),Co=ie(Ip),Cp=j(_o,se(280),H(B(466)),H(B(466)),H(B(421))),xu=ie(Cp),Tp=j(li,se(465),H(B(466)),H(B(466)),H(B(421))),Eu=ie(Tp),si=Ce(_p,Ip,j(bu,H(B(421))),j($b,H(B(421))),j(gn,H(B(421))),Cp,Tp,B(421)),RI=ie(si),zb=j(H(si),se(290),xp(se(281)),H(B(421))),_r=ie(zb),Vb=Ce(j(si,se(290),se(281),H(B(421))),j(si,se(281),H(B(421))),j(se(281),H(B(421)))),vu=ie(Vb),Hb=j(gn,Ce(j(B(6,"80")),j(B(6),se(480)),se(480)),H(B(481)),H(B(421))),kI=ie(Hb),Wb=j(gn,Ce(j(B(6,"443")),j(B(6,"443"),se(480)),j(B(6),se(443)),j(B(6),se(448),se(480)),j(se(448),se(480)),se(448),se(443)),H(B(481)),H(B(421))),OI=ie(Wb),Gb=Ce(j(B(777),H(B(421)))),NI=ie(Gb),jb=Ce(j(B(400),H(B(421)))),MI=ie(jb);function Lp(r,e){let t=Io.exactMatch(r),n=Io.exactMatch(e);if(t&&!n)return-1;if(!t&&n)return 1;let o=Co.exactMatch(r),s=Co.exactMatch(e);if(o&&!s)return-1;if(!o&&s)return 1;let i=Ar.exactMatch(r),a=Ar.exactMatch(e);if(i&&!a)return-1;if(!i&&a)return 1;let c=vu.exactMatch(r),l=vu.exactMatch(e);if(c&&!l)return-1;if(!c&&l)return 1;let u=xu.exactMatch(r),f=xu.exactMatch(e);if(u&&!f)return-1;if(!u&&f)return 1;let d=Eu.exactMatch(r),h=Eu.exactMatch(e);return d&&!h?-1:!d&&h?1:0}function Pp(r,e){let t=So(r),n=So(e);return t&&!n?1:!t&&n?-1:0}function Dp(r,e){let t=It(r),n=It(e);return t&&!n?1:!t&&n?-1:0}function Rp(r,e){let t=_r.exactMatch(r),n=_r.exactMatch(e);return t&&!n?1:!t&&n?-1:0}function xe(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var ui=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}},yn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ui(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 ui(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 Su=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function bn(r={}){return Yb(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 Yb(r,e){e=e??{};let t=e.onEnd,n=new yn,o,s,i,a=xe(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((p,g)=>{s=E=>{s=null,n.push(E);try{p(r(n))}catch(x){g(x)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=xe()})}},l=p=>s!=null?s(p):(n.push(p),o),u=p=>(n=new yn,s!=null?s({error:p}):(n.push({error:p}),o)),f=p=>{if(i)return o;if(e?.objectMode!==!0&&p?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:p})},d=p=>i?o:(i=!0,p!=null?u(p):l({done:!0})),h=()=>(n=new yn,d(),{done:!0}),b=p=>(d(p),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:h,throw:b,push:f,end:d,get readableLength(){return n.size},onEmpty:async p=>{let g=p?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let E,x;g!=null&&(E=new Promise((A,_)=>{x=()=>{_(new Su)},g.addEventListener("abort",x)}));try{await Promise.race([a.promise,E])}finally{x!=null&&g!=null&&g?.removeEventListener("abort",x)}}},t==null)return o;let m=o;return o={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(p){return m.throw(p),t!=null&&(t(p),t=void 0),{done:!0}},return(){return m.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(p){return m.end(p),t!=null&&(t(p),t=void 0),o},get readableLength(){return m.readableLength},onEmpty:p=>m.onEmpty(p)},o}var Au=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},kp=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function To(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=e,a,c,u=new Promise((f,d)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(i?.aborted){d(kp(i));return}if(i&&(c=()=>{d(kp(i))},i.addEventListener("abort",c,{once:!0})),r.then(f,d),t===Number.POSITIVE_INFINITY)return;let h=new Au;a=s.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(b){d(b)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?f():o instanceof Error?d(o):(h.message=o??`Promise timed out after ${t} milliseconds`,d(h))},t)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var Xb=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 Zb(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}=Xb(r),f=async(...h)=>{let b=t.multiArgs?h:h[0];if(t.filter)try{if(!await t.filter(b))return}catch(m){n(),i(m);return}c.push(b),t.count===c.length&&(n(),s(c))},d=(...h)=>{n(),i(t.rejectionMultiArgs?h:h[0])};n=()=>{for(let h of a)u(h,f);for(let h of t.rejectionEvents)a.includes(h)||u(h,d)};for(let h of a)l(h,f);for(let h of t.rejectionEvents)a.includes(h)||l(h,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=To(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function lt(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Zb(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}function Lo(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var fi=class extends Error{remainingPoints;msBeforeNext;consumedPoints;isFirstInDuration;constructor(e="Rate limit exceeded",t){super(e),this.name="RateLimitError",this.remainingPoints=t.remainingPoints,this.msBeforeNext=t.msBeforeNext,this.consumedPoints=t.consumedPoints,this.isFirstInDuration=t.isFirstInDuration}},di=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}},Ir=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};function Qb(r){return r.reason}async function Ve(r,e,t){if(e==null)return r;let n=t?.translateError??Qb;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 hi=class{deferred;signal;onProgress;constructor(e){this.signal=e?.signal,this.onProgress=e?.onProgress,this.deferred=xe(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new tt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function Jb(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var pi=class{id;fn;options;recipients;status;timeline;controller;dispatchingProgress;constructor(e,t){this.id=Jb(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.dispatchingProgress=!1,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new tt),this.cleanup())}async join(e){let t=new hi(e);return this.recipients.push(t),e?.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ve(this.fn({...this.options??{},signal:this.controller.signal,onProgress:t=>{if(!this.dispatchingProgress){this.dispatchingProgress=!0;try{this.recipients.forEach(n=>{n.onProgress?.(t)})}finally{this.dispatchingProgress=!1}}}}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var wn=class extends De{concurrency;maxSize;queue;pending;sort;paused;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.paused=!1,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=Lo(this.emitEmpty.bind(this),1),this.emitIdle=Lo(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}pause(){this.paused=!0}resume(){this.paused&&(this.paused=!1,this.tryToStartAnother())}tryToStartAnother(){if(this.paused)return!1;if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new di;let n=new pi(e,t);this.enqueue(n),this.safeDispatchEvent("add");let o=n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s});return this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new tt)}),this.clear()}async onEmpty(e){this.size!==0&&await lt(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await lt(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await lt(this,"idle",e)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=bn({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new tt("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};function bt(r){let e=new globalThis.AbortController;function t(){let s=r.filter(i=>i?.aborted===!0).map(i=>i?.reason).pop();e.abort(s);for(let i of r)i?.removeEventListener!=null&&i.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 xn=class{movingAverage;variance;deviation;forecast;timeSpan;previousTime;constructor(e){this.timeSpan=e,this.movingAverage=0,this.variance=0,this.deviation=0,this.forecast=0}alpha(e,t){return 1-Math.exp(-(e-t)/this.timeSpan)}push(e,t=Date.now()){if(this.previousTime!=null){let n=this.alpha(t,this.previousTime),o=e-this.movingAverage,s=n*o;this.movingAverage=n*e+(1-n)*this.movingAverage,this.variance=(1-n)*(this.variance+o*s),this.deviation=Math.sqrt(this.variance),this.forecast=this.movingAverage+n*o}else this.movingAverage=e;this.previousTime=t}};var ew=1.2,tw=2,rw=5e3,nw=6e4,ow=5e3,mi=class{success;failure;next;metric;timeoutMultiplier;failureMultiplier;minTimeout;maxTimeout;constructor(e={}){let t=e.interval??ow;this.success=new xn(t),this.failure=new xn(t),this.next=new xn(t),this.failureMultiplier=e.failureMultiplier??tw,this.timeoutMultiplier=e.timeoutMultiplier??ew,this.minTimeout=e.minTimeout??rw,this.maxTimeout=e.maxTimeout??nw,e.metricName!=null&&(this.metric=e.metrics?.registerMetricGroup(e.metricName))}getTimeoutSignal(e={}){let t=Math.round(this.next.movingAverage*(e.timeoutFactor??this.timeoutMultiplier));t<this.minTimeout&&(t=this.minTimeout),t>this.maxTimeout&&(t=this.maxTimeout);let n=AbortSignal.timeout(t),o=bt([e.signal,n]);return o.start=Date.now(),o.timeout=t,o}cleanUp(e){e.clear();let t=Date.now()-e.start;e.aborted?(this.failure.push(t),this.next.push(t*this.failureMultiplier),this.metric?.update({failureMovingAverage:this.failure.movingAverage,failureDeviation:this.failure.deviation,failureForecast:this.failure.forecast,failureVariance:this.failure.variance,failure:t})):(this.success.push(t),this.next.push(t),this.metric?.update({successMovingAverage:this.success.movingAverage,successDeviation:this.success.deviation,successForecast:this.success.forecast,successVariance:this.success.variance,success:t}))}};var _u=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=xe(),this.haveNext=xe()}[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=xe(),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=xe(),await Ve(this.readNext.promise,t?.signal,t)}};function Op(){return new _u}function sw(r){return r[Symbol.asyncIterator]!=null}async function iw(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*aw(r){let e=new AbortController,t=Op();iw(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*cw(r){for(let e of r)yield*e}function lw(...r){let e=[];for(let t of r)sw(t)||e.push(t);return e.length===r.length?cw(e):aw(r)}var En=lw;var uw=4194304,gi=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Cu=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Tu=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Lu=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function fw(r){return typeof r?.closeRead=="function"}function dw(r){return typeof r?.close=="function"}function Iu(r){return fw(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:dw(r)?r.status!=="open":!1}function hw(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Pu(r,e){let t=e?.maxBufferSize??uw,n=new re,o,s=!1;if(!hw(r))throw new R("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 gi("Stream was unwrapped");if(Iu(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new Ir(`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 Ve(o.promise,u?.signal),Iu(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let d=u?.bytes??n.byteLength;if(n.byteLength<d){if(Iu(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,d),new Ir(`Unexpected EOF - stream closed while reading ${n.byteLength}/${d} bytes`);return l.read(u)}let h=n.sublist(0,d);return n.consume(d),h},async write(u,f){if(s===!0)throw new gi("Stream was unwrapped");r.send(u)||await lt(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.unshift(n))),r}};return l}function yi(r,e={}){let t=Pu(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=be(e.maxDataLength));let n=e?.lengthDecoder??ur,o=e?.lengthEncoder??jt;return{async read(i){let a=-1,c=new re;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 Cu("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Lu(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Tu(`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 Ir(`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 Ir(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new re(o(i.byteLength),i),a)},async writeV(i,a){let c=new re(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}var bi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},vn=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},wi=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Po=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function xi(r){return r[Symbol.asyncIterator]!=null}function Np(r,e){if(r.byteLength>e)throw new vn("Message length too long")}var vi=r=>{let e=be(r),t=ye(e);return jt(r,t),vi.bytes=e,t};vi.bytes=0;function Si(r,e){e=e??{};let t=e.lengthEncoder??vi,n=e?.maxDataLength??4194304;function*o(s){Np(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return xi(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}Si.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??vi,n=e?.maxDataLength??4194304;return Np(r,n),new re(t(r.byteLength),r)};var Cr;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Cr||(Cr={}));var Ru=r=>{let e=ur(r);return Ru.bytes=be(e),e};Ru.bytes=0;function Du(r,e){let t=new re,n=Cr.LENGTH,o=-1,s=e?.lengthDecoder??Ru,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Cr.LENGTH)try{if(o=s(t),o<0)throw new bi("Invalid message length");if(o>a)throw new vn("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Cr.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new wi("Message length length too long");break}throw l}if(n===Cr.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Cr.LENGTH}}}return xi(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Po("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Po("Unexpected end of input")})()}Du.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 Du(n,{...e??{},onLength:s=>{t=s}})};var Ai=class extends wn{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var _i=class extends wn{constructor(e={}){super({...e,sort:(t,n)=>t.options.priority>n.options.priority?-1:t.options.priority<n.options.priority?1:0})}};var Ii=class{memoryStorage;points;duration;blockDuration;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new ku}consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new fi("Rate limit exceeded",i);return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},ku=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};var Ou=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Te(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Ou({name:e,metrics:t}):n=new Map,n}var Nu=class extends et{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Mu(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Nu({name:e,metrics:t}):n=new et,n}var Do;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.publicKey!=null&&s.publicKey.byteLength>0&&(i.uint32(10),i.bytes(s.publicKey)),s.payloadType!=null&&s.payloadType.byteLength>0&&(i.uint32(18),i.bytes(s.payloadType)),s.payload!=null&&s.payload.byteLength>0&&(i.uint32(26),i.bytes(s.payload)),s.signature!=null&&s.signature.byteLength>0&&(i.uint32(42),i.bytes(s.signature)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={publicKey:le(0),payloadType:le(0),payload:le(0),signature:le(0)},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.publicKey=s.bytes();break}case 2:{c.payloadType=s.bytes();break}case 3:{c.payload=s.bytes();break}case 5:{c.signature=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.publicKey`,value:s.bytes()};break}case 2:{yield{field:`${a}.payloadType`,value:s.bytes()};break}case 3:{yield{field:`${a}.payload`,value:s.bytes()};break}case 5:{yield{field:`${a}.signature`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Do||(Do={}));var Ci=class extends Error{constructor(e="Invalid signature"){super(e),this.name="InvalidSignatureError"}};var Sn=class r{static createFromProtobuf=e=>{let t=Do.decode(e),n=en(t.publicKey);return new r({publicKey:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t,n)=>{if(t==null)throw new Error("Missing private key");let o=e.domain,s=e.codec,i=e.marshal(),a=Mp(o,s,i),c=await t.sign(a.subarray(),n);return new r({publicKey:t.publicKey,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t,n)=>{let o=r.createFromProtobuf(e);if(!await o.validate(t,n))throw new Ci("Envelope signature is not valid for the given domain");return o};publicKey;payloadType;payload;signature;marshaled;constructor(e){let{publicKey:t,payloadType:n,payload:o,signature:s}=e;this.publicKey=t,this.payloadType=n,this.payload=o,this.signature=s}marshal(){return this.marshaled==null&&(this.marshaled=Do.encode({publicKey:Xe(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return e==null?!1:Z(this.marshal(),e.marshal())}async validate(e,t){let n=Mp(e,this.payloadType,this.payload);return this.publicKey.verify(n.subarray(),this.signature,t)}},Mp=(r,e,t)=>{let n=D(r),o=jt(n.byteLength),s=jt(e.length),i=jt(t.length);return new re(o,n,s,e,i,t)};var Bp="libp2p-peer-record",Fp=Uint8Array.from([3,1]);var Ro;(function(r){let e;(function(i){let a;i.codec=()=>(a==null&&(a=Me((f,d,h={})=>{h.lengthDelimited!==!1&&d.fork(),f.multiaddr!=null&&f.multiaddr.byteLength>0&&(d.uint32(10),d.bytes(f.multiaddr)),h.lengthDelimited!==!1&&d.ldelim()},(f,d,h={})=>{let b={multiaddr:le(0)},m=d==null?f.len:f.pos+d;for(;f.pos<m;){let p=f.uint32();p>>>3===1?b.multiaddr=f.bytes():f.skipType(p&7)}return b},function*(f,d,h,b={}){let m=d==null?f.len:f.pos+d;for(;f.pos<m;){let p=f.uint32();p>>>3===1?yield{field:`${h}.multiaddr`,value:f.bytes()}:f.skipType(p&7)}})),a);function c(f){return Oe(f,i.codec())}i.encode=c;function l(f,d){return ke(f,i.codec(),d)}i.decode=l;function u(f,d){return Ne(f,i.codec(),d)}i.stream=u})(e=r.AddressInfo||(r.AddressInfo={}));let t;r.codec=()=>(t==null&&(t=Me((i,a,c={})=>{if(c.lengthDelimited!==!1&&a.fork(),i.peerId!=null&&i.peerId.byteLength>0&&(a.uint32(10),a.bytes(i.peerId)),i.seq!=null&&i.seq!==0n&&(a.uint32(16),a.uint64(i.seq)),i.addresses!=null&&i.addresses.length>0)for(let l of i.addresses)a.uint32(26),r.AddressInfo.codec().encode(l,a);c.lengthDelimited!==!1&&a.ldelim()},(i,a,c={})=>{let l={peerId:le(0),seq:0n,addresses:[]},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:{l.peerId=i.bytes();break}case 2:{l.seq=i.uint64();break}case 3:{if(c.limits?.addresses!=null&&l.addresses.length===c.limits.addresses)throw new Je('Decode error - repeated field "addresses" had too many elements');l.addresses.push(r.AddressInfo.codec().decode(i,i.uint32(),{limits:c.limits?.addresses$}));break}default:{i.skipType(f&7);break}}}return l},function*(i,a,c,l={}){let u={addresses:0},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let d=i.uint32();switch(d>>>3){case 1:{yield{field:`${c}.peerId`,value:i.bytes()};break}case 2:{yield{field:`${c}.seq`,value:i.uint64()};break}case 3:{if(l.limits?.addresses!=null&&u.addresses===l.limits.addresses)throw new Je('Streaming decode error - repeated field "addresses" had too many elements');for(let h of r.AddressInfo.codec().stream(i,i.uint32(),`${c}.addresses[]`,{limits:l.limits?.addresses$}))yield{...h,index:u.addresses};u.addresses++;break}default:{i.skipType(d&7);break}}}})),t);function n(i){return Oe(i,r.codec())}r.encode=n;function o(i,a){return ke(i,r.codec(),a)}r.decode=o;function s(i,a){return Ne(i,r.codec(),a)}r.stream=s})(Ro||(Ro={}));function Up(r,e){let t=(n,o)=>n.toString().localeCompare(o.toString());return r.length!==e.length?!1:(e.sort(t),r.sort(t).every((n,o)=>e[o].equals(n)))}var Tr=class r{static createFromProtobuf=e=>{let t=Ro.decode(e),n=tn(Et(t.peerId)),o=(t.addresses??[]).map(i=>te(i.multiaddr)),s=t.seq;return new r({peerId:n,multiaddrs:o,seqNumber:s})};static DOMAIN=Bp;static CODEC=Fp;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(e){let{peerId:t,multiaddrs:n,seqNumber:o}=e;this.peerId=t,this.multiaddrs=n??[],this.seqNumber=o??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Ro.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof r)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Up(this.multiaddrs,e.multiaddrs))}};function mw(r){return r[Symbol.asyncIterator]!=null}function gw(r){if(mw(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var ko=gw;var He=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function Ti(r,e,t,n){let o=new He(n?.errorMessage);n?.errorCode!=null&&(o.code=n.errorCode);let s=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(o):new Promise((i,a)=>{function c(){Fu(t,"abort",f),Fu(r,e,l),Fu(r,s,u)}let l=d=>{try{if(n?.filter?.(d)===!1)return}catch(h){c(),a(h);return}c(),i(d)},u=d=>{if(c(),d instanceof Error){a(d);return}a(d.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(o)};Bu(t,"abort",f),Bu(r,e,l),Bu(r,s,u)})}function Bu(r,e,t){r!=null&&(Kp(r)?r.addEventListener(e,t):r.addListener(e,t))}function Fu(r,e,t){r!=null&&(Kp(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function Kp(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var Li=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Pi=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new He)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function yw(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Di=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=yw(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new He),this.cleanup())}async join(e={}){let t=new Pi(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ve(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Uu(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Oo=class extends De{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Uu(this.emitEmpty.bind(this),1),this.emitIdle=Uu(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Li;let n=new Di(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new He)}),this.clear()}async onEmpty(e){this.size!==0&&await Ti(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Ti(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Ti(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=bn({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail.result)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new He("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var Ri="lock:worker:request-read",ki="lock:worker:abort-read-request",Oi="lock:worker:release-read",Ni="lock:master:grant-read",Mi="lock:master:error-read",Bi="lock:worker:request-write",Fi="lock:worker:abort-write-request",Ui="lock:worker:release-write",Ki="lock:master:grant-write",qi="lock:master:error-write",$i="lock:worker:finalize",zi="mortice",qp={singleProcess:!1};var Ku=(r,e,t,n,o,s,i,a,c)=>l=>{if(l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===o&&r.safeDispatchEvent(t,{detail:{name:u.name,identifier:u.identifier,handler:async()=>{e.postMessage({type:c,name:u.name,identifier:u.identifier}),await new Promise(f=>{let d=h=>{if(h?.data==null)return;let b={type:h.data.type,name:h.data.name,identifier:h.data.identifier};b.type===a&&b.identifier===u.identifier&&(e.removeEventListener("message",d),f())};e.addEventListener("message",d)})},onError:f=>{e.postMessage({type:i,name:u.name,identifier:u.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),u.type===s&&r.safeDispatchEvent(n,{detail:{name:u.name,identifier:u.identifier}}),u.type===$i&&r.safeDispatchEvent("finalizeRequest",{detail:{name:u.name}})};var $p=(r=10)=>Math.random().toString().substring(2,r+2);var Vi=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(zi)}readLock(e){return this.sendRequest(Ri,ki,Ni,Mi,Oi,e)}writeLock(e){return this.sendRequest(Bi,Fi,Ki,qi,Ui,e)}finalize(){this.channel.postMessage({type:$i,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,s,i){i?.signal?.throwIfAborted();let a=$p();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,l)=>{let u=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};i?.signal?.addEventListener("abort",u,{once:!0});let f=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u),c(()=>{this.channel.postMessage({type:s,identifier:a,name:this.name})})),d.data.type===o)){this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u);let h=new Error;d.data.error!=null&&(h.message=d.data.error.message,h.name=d.data.error.name,h.stack=d.data.error.stack),l(h)}};this.channel.addEventListener("message",f)})}};var zp=r=>{if(r=Object.assign({},qp,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(zi),n=new De;return t.addEventListener("message",Ku(n,t,"requestReadLock","abortReadLockRequest",Ri,ki,Mi,Oi,Ni)),t.addEventListener("message",Ku(n,t,"requestWriteLock","abortWriteLockRequest",Bi,Fi,qi,Ui,Ki)),n}return new Vi(r.name)};var Lr=new Map,No;function Vp(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function bw(r){if(No==null&&(No=zp(r),!Vp(No))){let e=No;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=Lr.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortReadLockRequest",a),s.readLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=Lr.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortWriteLockRequest",a),s.writeLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=Lr.get(n);o?.finalize()})}return No}async function qu(r,e){let t,n,o=new Promise((i,a)=>{t=i,n=a}),s=()=>{n(new He)};return e?.signal?.addEventListener("abort",s,{once:!0}),r.add(async()=>{await new Promise(i=>{t(()=>{e?.signal?.removeEventListener("abort",s),i()})})},{signal:e?.signal}).catch(i=>{n(i)}),o}var Hp=(r,e)=>{let t=Lr.get(r);if(t!=null)return t;let n=bw(e);if(Vp(n))return t=n,Lr.set(r,t),t;let o=new Oo({concurrency:1}),s;return t={async readLock(i){if(s!=null)return qu(s,i);s=new Oo({concurrency:e.concurrency,autoStart:!1});let a=s,c=qu(s,i);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{s===a&&(s=null)})}),c},async writeLock(i){return s=null,qu(o,i)},finalize:()=>{Lr.delete(r)},queue:o},Lr.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var ww={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function $u(r){let e=Object.assign({},ww,r);return Hp(e.name,e)}var Pt;(function(r){let e;(function(a){let c;a.codec=()=>(c==null&&(c=Me((d,h,b={})=>{b.lengthDelimited!==!1&&h.fork(),d.key!=null&&d.key!==""&&(h.uint32(10),h.string(d.key)),d.value!=null&&d.value.byteLength>0&&(h.uint32(18),h.bytes(d.value)),b.lengthDelimited!==!1&&h.ldelim()},(d,h,b={})=>{let m={key:"",value:le(0)},p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{m.key=d.string();break}case 2:{m.value=d.bytes();break}default:{d.skipType(g&7);break}}}return m},function*(d,h,b,m={}){let p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{yield{field:`${b}.key`,value:d.string()};break}case 2:{yield{field:`${b}.value`,value:d.bytes()};break}default:{d.skipType(g&7);break}}}})),c);function l(d){return Oe(d,a.codec())}a.encode=l;function u(d,h){return ke(d,a.codec(),h)}a.decode=u;function f(d,h){return Ne(d,a.codec(),h)}a.stream=f})(e=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let t;(function(a){let c;a.codec=()=>(c==null&&(c=Me((d,h,b={})=>{b.lengthDelimited!==!1&&h.fork(),d.key!=null&&d.key!==""&&(h.uint32(10),h.string(d.key)),d.value!=null&&(h.uint32(18),Bo.codec().encode(d.value,h)),b.lengthDelimited!==!1&&h.ldelim()},(d,h,b={})=>{let m={key:""},p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{m.key=d.string();break}case 2:{m.value=Bo.codec().decode(d,d.uint32(),{limits:b.limits?.value});break}default:{d.skipType(g&7);break}}}return m},function*(d,h,b,m={}){let p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{yield{field:`${b}.key`,value:d.string()};break}case 2:{yield*Bo.codec().stream(d,d.uint32(),`${b}.value`,{limits:m.limits?.value});break}default:{d.skipType(g&7);break}}}})),c);function l(d){return Oe(d,a.codec())}a.encode=l;function u(d,h){return ke(d,a.codec(),h)}a.decode=u;function f(d,h){return Ne(d,a.codec(),h)}a.stream=f})(t=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Me((a,c,l={})=>{if(l.lengthDelimited!==!1&&c.fork(),a.addresses!=null&&a.addresses.length>0)for(let u of a.addresses)c.uint32(10),Mo.codec().encode(u,c);if(a.protocols!=null&&a.protocols.length>0)for(let u of a.protocols)c.uint32(18),c.string(u);if(a.publicKey!=null&&(c.uint32(34),c.bytes(a.publicKey)),a.peerRecordEnvelope!=null&&(c.uint32(42),c.bytes(a.peerRecordEnvelope)),a.metadata!=null&&a.metadata.size>0)for(let[u,f]of a.metadata.entries())c.uint32(50),r.Peer$metadataEntry.codec().encode({key:u,value:f},c);if(a.tags!=null&&a.tags.size>0)for(let[u,f]of a.tags.entries())c.uint32(58),r.Peer$tagsEntry.codec().encode({key:u,value:f},c);a.updated!=null&&(c.uint32(64),c.uint64Number(a.updated)),l.lengthDelimited!==!1&&c.ldelim()},(a,c,l={})=>{let u={addresses:[],protocols:[],metadata:new Map,tags:new Map},f=c==null?a.len:a.pos+c;for(;a.pos<f;){let d=a.uint32();switch(d>>>3){case 1:{if(l.limits?.addresses!=null&&u.addresses.length===l.limits.addresses)throw new Je('Decode error - repeated field "addresses" had too many elements');u.addresses.push(Mo.codec().decode(a,a.uint32(),{limits:l.limits?.addresses$}));break}case 2:{if(l.limits?.protocols!=null&&u.protocols.length===l.limits.protocols)throw new Je('Decode error - repeated field "protocols" had too many elements');u.protocols.push(a.string());break}case 4:{u.publicKey=a.bytes();break}case 5:{u.peerRecordEnvelope=a.bytes();break}case 6:{if(l.limits?.metadata!=null&&u.metadata.size===l.limits.metadata)throw new co('Decode error - map field "metadata" had too many elements');let h=r.Peer$metadataEntry.codec().decode(a,a.uint32(),{limits:{value:l.limits?.metadata$value}});u.metadata.set(h.key,h.value);break}case 7:{if(l.limits?.tags!=null&&u.tags.size===l.limits.tags)throw new co('Decode error - map field "tags" had too many elements');let h=r.Peer$tagsEntry.codec().decode(a,a.uint32(),{limits:{value:l.limits?.tags$value}});u.tags.set(h.key,h.value);break}case 8:{u.updated=a.uint64Number();break}default:{a.skipType(d&7);break}}}return u},function*(a,c,l,u={}){let f={addresses:0,protocols:0,metadata:0,tags:0},d=c==null?a.len:a.pos+c;for(;a.pos<d;){let h=a.uint32();switch(h>>>3){case 1:{if(u.limits?.addresses!=null&&f.addresses===u.limits.addresses)throw new Je('Streaming decode error - repeated field "addresses" had too many elements');for(let b of Mo.codec().stream(a,a.uint32(),`${l}.addresses[]`,{limits:u.limits?.addresses$}))yield{...b,index:f.addresses};f.addresses++;break}case 2:{if(u.limits?.protocols!=null&&f.protocols===u.limits.protocols)throw new Je('Streaming decode error - repeated field "protocols" had too many elements');yield{field:`${l}.protocols[]`,index:f.protocols,value:a.string()},f.protocols++;break}case 4:{yield{field:`${l}.publicKey`,value:a.bytes()};break}case 5:{yield{field:`${l}.peerRecordEnvelope`,value:a.bytes()};break}case 6:{if(u.limits?.metadata!=null&&f.metadata===u.limits.metadata)throw new Je('Decode error - map field "metadata" had too many elements');yield*r.Peer$metadataEntry.codec().stream(a,a.uint32(),`${l}.metadata{}`,{limits:{value:u.limits?.metadata$value}}),f.metadata++;break}case 7:{if(u.limits?.tags!=null&&f.tags===u.limits.tags)throw new Je('Decode error - map field "tags" had too many elements');yield*r.Peer$tagsEntry.codec().stream(a,a.uint32(),`${l}.tags{}`,{limits:{value:u.limits?.tags$value}}),f.tags++;break}case 8:{yield{field:`${l}.updated`,value:a.uint64Number()};break}default:{a.skipType(h&7);break}}}})),n);function o(a){return Oe(a,r.codec())}r.encode=o;function s(a,c){return ke(a,r.codec(),c)}r.decode=s;function i(a,c){return Ne(a,r.codec(),c)}r.stream=i})(Pt||(Pt={}));var Mo;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(i.uint32(10),i.bytes(s.multiaddr)),s.isCertified!=null&&(i.uint32(16),i.bool(s.isCertified)),s.observed!=null&&(i.uint32(24),i.uint64Number(s.observed)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={multiaddr:le(0)},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.multiaddr=s.bytes();break}case 2:{c.isCertified=s.bool();break}case 3:{c.observed=s.uint64Number();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.multiaddr`,value:s.bytes()};break}case 2:{yield{field:`${a}.isCertified`,value:s.bool()};break}case 3:{yield{field:`${a}.observed`,value:s.uint64Number()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Mo||(Mo={}));var Bo;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.value!=null&&s.value!==0&&(i.uint32(8),i.uint32(s.value)),s.expiry!=null&&(i.uint32(16),i.uint64(s.expiry)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={value:0},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.value=s.uint32();break}case 2:{c.expiry=s.uint64();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.value`,value:s.uint32()};break}case 2:{yield{field:`${a}.expiry`,value:s.uint64()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Bo||(Bo={}));function xw(r,e){if(r.publicKey!=null||e.publicKey==null)return r;let t;r.type==="RSA"&&(t=r.toMultihash());let n=en(e.publicKey,t);return Dl(n)}function Wp(r,e,t){let n=Pt.decode(e);return An(r,n,t)}function An(r,e,t){let n=new Map,o=BigInt(Date.now());for(let[s,i]of e.tags.entries())i.expiry!=null&&i.expiry<o||n.set(s,i);return{...e,id:xw(r,e),addresses:e.addresses.filter(({observed:s})=>s!=null&&s>Date.now()-t).map(({multiaddr:s,isCertified:i})=>({multiaddr:te(s),isCertified:i??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}function Gp(r,e){return Ew(r.addresses,e.addresses)&&vw(r.protocols,e.protocols)&&Sw(r.publicKey,e.publicKey)&&Aw(r.peerRecordEnvelope,e.peerRecordEnvelope)&&_w(r.metadata,e.metadata)&&Iw(r.tags,e.tags)}function Ew(r,e){return Yp(r,e,(t,n)=>!(t.isCertified!==n.isCertified||!Z(t.multiaddr,n.multiaddr)))}function vw(r,e){return Yp(r,e,(t,n)=>t===n)}function Sw(r,e){return jp(r,e)}function Aw(r,e){return jp(r,e)}function _w(r,e){return Xp(r,e,(t,n)=>Z(t,n))}function Iw(r,e){return Xp(r,e,(t,n)=>t.value===n.value&&t.expiry===n.expiry)}function jp(r,e){return r==null&&e==null?!0:r!=null&&e!=null?Z(r,e):!1}function Yp(r,e,t){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function Xp(r,e,t){if(r.size!==e.size)return!1;for(let[n,o]of r.entries()){let s=e.get(n);if(s==null||!t(o,s))return!1}return!0}var Dt="/",Zp=new TextEncoder().encode(Dt),Hi=Zp[0],Pr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=D(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Hi)throw new Error("Invalid key")}toString(e="utf8"){return q(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Dt))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Zp),this._buf[0]!==Hi){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Hi,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Hi;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Dt).slice(1)}type(){return Cw(this.baseNamespace())}name(){return Tw(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Dt)||(e+=Dt),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Dt):new r(e.slice(0,-1).join(Dt))}child(e){return this.toString()===Dt?e:e.toString()===Dt?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Lw(e.map(t=>t.namespaces()))])}};function Cw(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Tw(r){let e=r.split(":");return e[e.length-1]}function Lw(r){return[].concat(...r)}var zu="/peers/";function Fo(r){if(!Mt(r)||r.type==null)throw new R("Invalid PeerId");let e=r.toCID().toString();return new Pr(`${zu}${e}`)}async function Qp(r,e,t,n,o){let s=new Map;for(let i of t){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=te(i.multiaddr)),!Qt(i.multiaddr))throw new R("Multiaddr was invalid");if(!await e(r,i.multiaddr,o))continue;let a=i.isCertified??!1,c=i.multiaddr.toString(),l=s.get(c);l!=null?i.isCertified=l.isCertified||a:s.set(c,{multiaddr:i.multiaddr,isCertified:a})}return[...s.values()].sort((i,a)=>i.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({isCertified:i,multiaddr:a})=>{let c=a.getComponents().find(l=>l.code===421)?.value;return r.equals(c)&&(a=a.decapsulate(te(`/p2p/${r}`))),{isCertified:i,multiaddr:a.bytes}})}async function Gi(r,e,t,n){if(e==null)throw new R("Invalid PeerData");if(e.publicKey!=null&&!r.equals(e.publicKey.toMultihash().bytes))throw new R("publicKey does not match peer id");let o=n.existingPeer?.peer;if(o!=null&&!r.equals(o.id))throw new R("peer id did not match existing peer id");let s=o?.addresses??[],i=new Set(o?.protocols??[]),a=o?.metadata??new Map,c=o?.tags??new Map,l=o?.peerRecordEnvelope;if(t==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(i=new Set(e.protocols)),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Wi(d,{validate:Jp})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Wi(d,{validate:em,map:tm})}e.peerRecordEnvelope!=null&&(l=e.peerRecordEnvelope)}if(t==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(i=new Set([...i,...e.protocols])),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,b]of d)b==null?a.delete(h):a.set(h,b);a=Wi([...a.entries()],{validate:Jp})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[b,m]of d)m==null?h.delete(b):h.set(b,m);c=Wi([...h.entries()],{validate:em,map:tm})}e.peerRecordEnvelope!=null&&(l=e.peerRecordEnvelope)}let u;o?.id.publicKey!=null?u=Xe(o.id.publicKey):e.publicKey!=null?u=Xe(e.publicKey):r.publicKey!=null&&(u=Xe(r.publicKey));let f={addresses:await Qp(r,n.addressFilter??(async()=>!0),s,n.existingPeer?.peerPB.addresses,n),protocols:[...i.values()].sort((d,h)=>d.localeCompare(h)),metadata:a,tags:c,publicKey:u,peerRecordEnvelope:l};return f.addresses.forEach(d=>{d.observed=n.existingPeer?.peerPB.addresses?.find(h=>Z(h.multiaddr,d.multiaddr))?.observed??Date.now()}),r.type!=="RSA"&&delete f.publicKey,f}function Wi(r,e){let t=new Map;for(let[n,o]of r)o!=null&&e.validate(n,o);for(let[n,o]of r.sort(([s],[i])=>s.localeCompare(i)))o!=null&&t.set(n,e.map?.(n,o)??o);return t}function Jp(r,e){if(typeof r!="string")throw new R("Metadata key must be a string");if(!(e instanceof Uint8Array))throw new R("Metadata value must be a Uint8Array")}function em(r,e){if(typeof r!="string")throw new R("Tag name must be a string");if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new R("Tag value must be an integer");if(e.value<0||e.value>100)throw new R("Tag value must be between 0-100")}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new R("Tag ttl must be an integer");if(e.ttl<0)throw new R("Tag ttl must be between greater than 0")}}function tm(r,e){let t;e.expiry!=null&&(t=e.expiry),e.ttl!=null&&(t=BigInt(Date.now()+Number(e.ttl)));let n={value:e.value??0};return t!=null&&(n.expiry=t),n}function rm(r){let e=r.toString().split("/")[2],t=me.parse(e,je);return bo(t)}function Vu(r,e,t){let n=rm(r);return Wp(n,e,t)}function Pw(r,e){return{prefix:zu,filters:(r.filters??[]).map(t=>({key:n,value:o})=>t(Vu(n,o,e))),orders:(r.orders??[]).map(t=>(n,o)=>t(Vu(n.key,n.value,e),Vu(o.key,o.value,e)))}}var ji=class{peerId;datastore;locks;addressFilter;log;maxAddressAge;maxPeerAge;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.locks=Mu({name:"libp2p_peer_store_locks",metrics:e.metrics}),this.maxAddressAge=t.maxAddressAge??36e5,this.maxPeerAge=t.maxPeerAge??216e5}getLock(e){let t=this.locks.get(e);return t==null&&(t={refs:0,lock:$u({name:e.toString(),singleProcess:!0})},this.locks.set(e,t)),t.refs++,t}maybeRemoveLock(e,t){t.refs--,t.refs===0&&(t.lock.finalize(),this.locks.delete(e))}async getReadLock(e,t){let n=this.getLock(e);try{let o=await n.lock.readLock(t);return()=>{o(),this.maybeRemoveLock(e,n)}}catch(o){throw this.maybeRemoveLock(e,n),o}}async getWriteLock(e,t){let n=this.getLock(e);try{let o=await n.lock.writeLock(t);return()=>{o(),this.maybeRemoveLock(e,n)}}catch(o){throw this.maybeRemoveLock(e,n),o}}async has(e,t){try{return await this.load(e,t),!0}catch(n){if(n.name!=="NotFoundError")throw n}return!1}async delete(e,t){this.peerId.equals(e)||await this.datastore.delete(Fo(e),t)}async load(e,t){let n=Fo(e),o=await this.datastore.get(n,t),s=Pt.decode(o);if(this.#n(e,s))throw await this.datastore.delete(n,t),new tr;return An(e,s,this.peerId.equals(e)?1/0:this.maxAddressAge)}async save(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"patch",{...n,addressFilter:this.addressFilter});return this.#t(e,s,o)}async patch(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"patch",{...n,addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,o)}async merge(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,o)}async*all(e){for await(let{key:t,value:n}of this.datastore.query(Pw(e??{},this.maxAddressAge),e)){let o=rm(t);if(o.equals(this.peerId))continue;let s=Pt.decode(n);if(this.#n(o,s)){await this.datastore.delete(t,e);continue}yield An(o,s,this.peerId.equals(o)?1/0:this.maxAddressAge)}}async#e(e,t){try{let n=Fo(e),o=await this.datastore.get(n,t),s=Pt.decode(o);if(this.#n(e,s))throw await this.datastore.delete(n,t),new tr;return{peerPB:s,peer:An(e,s,this.maxAddressAge)}}catch(n){n.name!=="NotFoundError"&&this.log.error("invalid peer data found in peer store - %e",n)}}async#t(e,t,n,o){t.updated=Date.now();let s=Pt.encode(t);return await this.datastore.put(Fo(e),s,o),{peer:An(e,t,this.maxAddressAge),previous:n?.peer,updated:n==null||!Gp(t,n.peerPB)}}#n(e,t){if(t.updated==null)return!0;if(this.peerId.equals(e))return!1;let n=t.updated<Date.now()-this.maxPeerAge,o=Date.now()-this.maxAddressAge,s=t.addresses.filter(i=>i.observed!=null&&i.observed>o);return n&&s.length===0}};var Hu=class{store;events;peerId;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new ji(e,t)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(e,t){for await(let n of this.store.all(t))e(n)}async all(e){return ko(this.store.all(e))}async delete(e,t){let n=await this.store.getReadLock(e,t);try{await this.store.delete(e,t)}finally{n()}}async has(e,t){let n=await this.store.getReadLock(e,t);try{return await this.store.has(e,t)}finally{this.log.trace("has release read lock"),n?.()}}async get(e,t){let n=await this.store.getReadLock(e,t);try{return await this.store.load(e,t)}finally{n?.()}}async getInfo(e,t){let n=await this.get(e,t);return{id:n.id,multiaddrs:n.addresses.map(({multiaddr:o})=>o)}}async save(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.save(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async patch(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.patch(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async merge(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.merge(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async consumePeerRecord(e,t,n){let o=Mt(t)?t:Mt(t?.expectedPeer)?t.expectedPeer:void 0,s=Mt(t)||t===void 0?n:t,i=await Sn.openAndCertify(e,Tr.DOMAIN,s),a=bo(i.publicKey.toCID());if(o?.equals(a)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",o,a),!1;let c=Tr.createFromProtobuf(i.payload);if(!c.peerId.equals(a))return this.log("signing key did not match peer id in the peer record - signer: %p record: %p",a,c.peerId),!1;let l;try{l=await this.get(a,s)}catch(u){if(u.name!=="NotFoundError")throw u}if(l?.peerRecordEnvelope!=null){let u=Sn.createFromProtobuf(l.peerRecordEnvelope),f=Tr.createFromProtobuf(u.payload);if(f.seqNumber>=c.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",f.seqNumber,c.seqNumber),!1}return await this.patch(c.peerId,{peerRecordEnvelope:e,addresses:c.multiaddrs.map(u=>({isCertified:!0,multiaddr:u}))},s),!0}#e(e,t){t.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:t}):this.events.safeDispatchEvent("peer:update",{detail:t}))}};function nm(r,e={}){return new Hu(r,e)}var Yi=class r extends Error{static name="NotFoundError";name=r.name;static code="ERR_NOT_FOUND";code=r.code;constructor(e="Not Found"){super(e)}};function Dw(r){return r[Symbol.asyncIterator]!=null}function Rw(r){if(Dw(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Wu=Rw;function kw(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var om=kw;function Ow(r){return r[Symbol.asyncIterator]!=null}function Nw(r,e){let t=0;if(Ow(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=om(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){await i&&(yield o);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){i===!0&&(yield o);for(let c of n)a(c,t++)&&(yield c)})()}var Dr=Nw;function Mw(r){return r[Symbol.asyncIterator]!=null}function Bw(r,e){return Mw(r)?(async function*(){yield*(await ko(r)).sort(e)})():(function*(){yield*ko(r).sort(e)})()}var Gu=Bw;function Fw(r){return r[Symbol.asyncIterator]!=null}function Uw(r,e){return Fw(r)?(async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}})():(function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}})()}var ju=Uw;var Xi=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await Wu(this.putMany(e,n)),e=[],await Wu(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=Dr(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Dr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gu(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=Dr(n,()=>o++>=s)}return e.limit!=null&&(n=ju(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=Dr(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Dr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gu(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=Dr(n,()=>s++>=o)}return e.limit!=null&&(n=ju(n,e.limit)),n}};var Zi=class extends Xi{data;constructor(){super(),this.data=new Map}put(e,t,n){return n?.signal?.throwIfAborted(),this.data.set(e.toString(),t),e}get(e,t){t?.signal?.throwIfAborted();let n=this.data.get(e.toString());if(n==null)throw new Yi;return n}has(e,t){return t?.signal?.throwIfAborted(),this.data.has(e.toString())}delete(e,t){t?.signal?.throwIfAborted(),this.data.delete(e.toString())}*_all(e,t){t?.signal?.throwIfAborted();for(let[n,o]of this.data.entries())yield{key:new Pr(n),value:o},t?.signal?.throwIfAborted()}*_allKeys(e,t){t?.signal?.throwIfAborted();for(let n of this.data.keys())yield new Pr(n),t?.signal?.throwIfAborted()}};var sm=864e13;var Qi=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:dns-mappings"),this.mappings=Te({name:"libp2p_address_manager_dns_mappings",metrics:e.metrics})}has(e){let t=G(e),n=t.host;(t.type==="ip4"||t.type==="ip6")&&t.sni!=null&&(n=t.sni);for(let o of this.mappings.values())if(o.domain===n)return!0;return!1}add(e,t){t.forEach(n=>{this.log("add DNS mapping %s to %s",n,e);let o=ln(n)===!0;this.mappings.set(n,{domain:e,verified:o,expires:o?sm-Date.now():0,lastVerified:o?sm-Date.now():void 0})})}remove(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;let n=!1;for(let[o,s]of this.mappings.entries())s.domain===t.sni&&(this.log("removing %s to %s DNS mapping %e",o,s.domain),this.mappings.delete(o),n=n||s.verified);return n}getAll(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n].multiaddr;if(!ve(o))continue;let s=G(o);for(let[i,a]of this.mappings.entries()){if(s.host!==i)continue;let c=this.maybeAddSNIComponent(o,a.domain);c!=null&&(e.splice(n,1),n--,t.push({multiaddr:c,verified:a.verified,type:"dns-mapping",expires:a.expires,lastVerified:a.lastVerified}))}}return t}maybeAddSNIComponent(e,t){let n=e.getComponents();for(let o=0;o<n.length;o++)if(n[o].code===448&&n[o+1]?.code!==449)return n.splice(o+1,0,{name:"sni",code:449,value:t}),te(n)}confirm(e,t){let n=G(e),o=n.host;(n.type==="ip4"||n.type==="ip6")&&n.sni!=null&&(o=n.sni);let s=!1;for(let[i,a]of this.mappings.entries())a.domain===o&&(this.log("marking %s to %s DNS mapping as verified",i,a.domain),s=a.verified,a.verified=!0,a.expires=Date.now()+t,a.lastVerified=Date.now());return s}unconfirm(e,t){let n=G(e);if(n.type!=="ip4"&&n.type!=="ip6")return!1;let o=n.sni??n.host,s=!1;for(let[i,a]of this.mappings.entries())a.domain===o&&(this.log("removing verification of %s to %s DNS mapping",i,a.domain),s=s||a.verified,a.verified=!1,a.expires=Date.now()+t);return s}};var Ji=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:ip-mappings"),this.mappings=Te({name:"libp2p_address_manager_ip_mappings",metrics:e.metrics})}has(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;for(let n of this.mappings.values())for(let o of n)if(o.externalIp===t.host)return!0;return!1}add(e,t,n,o=t,s="tcp"){let i=`${e}-${t}-${s}`,a=this.mappings.get(i)??[],c={internalIp:e,internalPort:t,externalIp:n,externalPort:o,externalFamily:ct(n)?4:6,protocol:s,verified:!1,expires:0};a.push(c),this.mappings.set(i,a)}remove(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;let n=!1;for(let[o,s]of this.mappings.entries()){for(let i=0;i<s.length;i++){let a=s[i];a.externalIp===t.host&&a.externalPort===t.port&&a.protocol===t.protocol&&(this.log("removing %s:%s to %s:%s %s IP mapping",a.externalIp,a.externalPort,t.host,t.port,t.protocol),n=n||a.verified,s.splice(i,1),i--)}s.length===0&&this.mappings.delete(o)}return n}getAll(e){let t=[];for(let{multiaddr:n}of e){if(!ve(n))continue;let o=G(n);if(o.type!=="ip4"&&o.type!=="ip6")continue;let s;if(o.protocol==="tcp"?s=`${o.host}-${o.port}-tcp`:o.protocol==="udp"&&(s=`${o.host}-${o.port}-udp`),s==null)continue;let i=this.mappings.get(s);if(i!=null)for(let a of i)t.push({multiaddr:this.maybeOverrideIp(n,a.externalIp,a.externalFamily,a.protocol,a.externalPort),verified:a.verified,type:"ip-mapping",expires:a.expires,lastVerified:a.lastVerified})}return t}maybeOverrideIp(e,t,n,o,s){let i=e.getComponents(),a=i.findIndex(l=>l.code===4||l.code===41),c=i.findIndex(l=>l.name===o);return a>-1&&c>-1?(i[a].value=t,i[a].code=n===4?4:41,i[c].value=`${s}`,te(i)):e}confirm(e,t){if(!ve(e))return!1;let n=G(e),o=!1;for(let s of this.mappings.values())for(let i of s)i.externalIp===n.host&&(this.log("marking %s to %s IP mapping as verified",i.internalIp,i.externalIp),o=i.verified,i.verified=!0,i.expires=Date.now()+t,i.lastVerified=Date.now());return o}unconfirm(e,t){if(!ve(e))return!1;let n=G(e),o=!1;for(let s of this.mappings.values())for(let i=0;i<s.length;i++){let a=s[i];a.externalIp===n.host&&a.externalPort===n.port&&a.protocol===n.protocol&&(this.log("removing verification of %s:%s to %s:%s %s IP mapping",a.externalIp,a.externalPort,n.host,n.port,n.protocol),o=o||a.verified,a.verified=!1,a.expires=Date.now()+t)}return o}};var Kw={maxObservedAddresses:10},ea=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=Te({name:"libp2p_address_manager_observed_addresses",metrics:e.metrics}),this.maxObservedAddresses=t.maxObservedAddresses??Kw.maxObservedAddresses}has(e){return this.addresses.has(e.toString())}removePrefixed(e){for(let t of this.addresses.keys())t.toString().startsWith(e)&&this.addresses.delete(t)}add(e){this.addresses.size!==this.maxObservedAddresses&&(It(e)||rp(e)||(this.log("adding observed address %a",e),this.addresses.set(e.toString(),{verified:!1,expires:0})))}getAll(){return Array.from(this.addresses).map(([e,t])=>({multiaddr:te(e),verified:t.verified,type:"observed",expires:t.expires,lastVerified:t.lastVerified}))}remove(e){let t=this.addresses.get(e.toString())?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(e.toString()),t}confirm(e,t){let n=e.toString(),o=this.addresses.get(n)??{verified:!1,expires:Date.now()+t,lastVerified:Date.now()},s=o.verified;return o.verified=!0,o.expires=Date.now()+t,o.lastVerified=Date.now(),this.log("marking observed address %a as verified",n),this.addresses.set(n,o),s}};var qw={maxObservedAddresses:10},ta=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=Te({name:"libp2p_address_manager_transport_addresses",metrics:e.metrics}),this.maxObservedAddresses=t.maxObservedAddresses??qw.maxObservedAddresses}get(e,t){if(It(e))return{multiaddr:e,verified:!0,type:"transport",expires:Date.now()+t,lastVerified:Date.now()};let n=this.toKey(e),o=this.addresses.get(n);return o==null&&(o={verified:!ve(e),expires:0},this.addresses.set(n,o)),{multiaddr:e,verified:o.verified,type:"transport",expires:o.expires,lastVerified:o.lastVerified}}has(e){let t=this.toKey(e);return this.addresses.has(t)}remove(e){let t=this.toKey(e),n=this.addresses.get(t)?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(t),n}confirm(e,t){let n=this.toKey(e),o=this.addresses.get(n)??{verified:!1,expires:0,lastVerified:0},s=o.verified;return o.verified=!0,o.expires=Date.now()+t,o.lastVerified=Date.now(),this.addresses.set(n,o),s}unconfirm(e,t){let n=this.toKey(e),o=this.addresses.get(n)??{verified:!1,expires:0},s=o.verified;return o.verified=!1,o.expires=Date.now()+t,this.addresses.set(n,o),s}toKey(e){if(!ve(e))return e.toString();let t=G(e);return`${t.host}-${t.port}-${t.protocol}`}};var im=6e4,am={maxObservedAddresses:10,addressVerificationTTL:im*10,addressVerificationRetry:im*5},$w=r=>r;function Yu(r,e){let t=r.getComponents().findLast(n=>n.code===421)?.value;return t!=null&>(t).equals(e)&&(r=r.decapsulate(te(`/p2p/${e.toString()}`))),r}var ra=class{log;components;listen;announce;appendAnnounce;announceFilter;observed;dnsMappings;ipMappings;transportAddresses;observedAddressFilter;addressVerificationTTL;addressVerificationRetry;constructor(e,t={}){let{listen:n=[],announce:o=[],appendAnnounce:s=[]}=t;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(i=>i.toString()),this.announce=new Set(o.map(i=>i.toString())),this.appendAnnounce=new Set(s.map(i=>i.toString())),this.observed=new ea(e,t),this.dnsMappings=new Qi(e,t),this.ipMappings=new Ji(e,t),this.transportAddresses=new ta(e,t),this.announceFilter=t.announceFilter??$w,this.observedAddressFilter=Eo(1024),this.addressVerificationTTL=t.addressVerificationTTL??am.addressVerificationTTL,this.addressVerificationRetry=t.addressVerificationRetry??am.addressVerificationRetry,this._updatePeerStoreAddresses=Lo(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}[Symbol.toStringTag]="@libp2p/address-manager";_updatePeerStoreAddresses(){let e=this.getAddresses().map(t=>t.getComponents().findLast(n=>n.code===421)?.value===this.components.peerId.toString()?t.decapsulate(`/p2p/${this.components.peerId.toString()}`):t);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(t=>{this.log.error("error updating addresses - %e",t)})}getListenAddrs(){return Array.from(this.listen).map(e=>te(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>te(e))}getAppendAnnounceAddrs(){return Array.from(this.appendAnnounce).map(e=>te(e))}getObservedAddrs(){return this.observed.getAll().map(e=>e.multiaddr)}addObservedAddr(e){let t=G(e),n;switch(t.type){case"ip4":{n=`${t.host}:${t.port}`;break}case"ip6":{n=`[${t.host}]:${t.port}`;break}default:return}this.observedAddressFilter.has(n)||(this.observedAddressFilter.add(n),e=Yu(e,this.components.peerId),!this.ipMappings.has(e)&&(this.dnsMappings.has(e)||this.observed.add(e)))}confirmObservedAddr(e,t){e=Yu(e,this.components.peerId);let n=!0;(t?.type==="transport"||this.transportAddresses.has(e))&&!this.transportAddresses.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="dns-mapping"||this.dnsMappings.has(e))&&!this.dnsMappings.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="ip-mapping"||this.ipMappings.has(e))&&!this.ipMappings.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="observed"||this.observed.has(e))&&(this.maybeUpgradeToIPMapping(e)?(this.ipMappings.confirm(e,t?.ttl??this.addressVerificationTTL),n=!1):!this.observed.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1)),n||this._updatePeerStoreAddresses()}removeObservedAddr(e,t){e=Yu(e,this.components.peerId);let n=!0;this.observed.has(e)&&this.observed.remove(e)&&n&&(n=!1),this.transportAddresses.has(e)&&this.transportAddresses.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),this.dnsMappings.has(e)&&this.dnsMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),this.ipMappings.has(e)&&this.ipMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),n||this._updatePeerStoreAddresses()}getAddresses(){let e=new Set,t=this.getAddressesWithMetadata().filter(n=>{if(!n.verified)return!1;let o=n.multiaddr.toString();return e.has(o)?!1:(e.add(o),!0)}).map(n=>n.multiaddr);return this.announceFilter(t.map(n=>{let o=te(n);return o.getComponents().pop()?.value===this.components.peerId.toString()?o:o.encapsulate(`/p2p/${this.components.peerId.toString()}`)}))}getAddressesWithMetadata(){let e=this.getAnnounceAddrs();if(e.length>0)return this.components.transportManager.getListeners().forEach(o=>{o.updateAnnounceAddrs(e)}),e.map(o=>({multiaddr:o,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()}));let t=[];t=t.concat(this.components.transportManager.getAddrs().map(o=>this.transportAddresses.get(o,this.addressVerificationTTL)));let n=this.getAppendAnnounceAddrs();return n.length>0&&(this.components.transportManager.getListeners().forEach(o=>{o.updateAnnounceAddrs(n)}),t=t.concat(n.map(o=>({multiaddr:o,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()})))),t=t.concat(this.observed.getAll()),t=t.concat(this.ipMappings.getAll(t)),t=t.concat(this.dnsMappings.getAll(t)),t}addDNSMapping(e,t){this.dnsMappings.add(e,t)}removeDNSMapping(e){this.dnsMappings.remove(te(`/dns/${e}`))&&this._updatePeerStoreAddresses()}addPublicAddressMapping(e,t,n,o=t,s="tcp"){this.ipMappings.add(e,t,n,o,s),this.observed.removePrefixed(`/ip${ct(n)?4:6}/${n}/${s}/${o}`)}removePublicAddressMapping(e,t,n,o=t,s="tcp"){this.ipMappings.remove(te(`/ip${ct(n)?4:6}/${n}/${s}/${o}`))&&this._updatePeerStoreAddresses()}maybeUpgradeToIPMapping(e){if(this.ipMappings.has(e)||!ve(e))return!1;let t=G(e);if(t.type!=="ip4"||ln(t.host)===!0)return!1;let n=this.components.transportManager.getListeners(),o=[s=>Ar.exactMatch(s)||Co.exactMatch(s),s=>Io.exactMatch(s),s=>Ap.exactMatch(s)];for(let s of o){if(!s(e))continue;let i=n.filter(l=>l.getAddrs().filter(u=>G(u).type==="ip4"&&s(u)).length>0);if(i.length!==1)continue;let a=i[0].getAddrs().filter(l=>!So(l)).pop();if(a==null)continue;let c=G(a);return c.port==null?!1:(this.observed.remove(e),this.ipMappings.add(c.host,c.port,t.host,t.port,t.protocol),!0)}return!1}};var cm;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.NOT_FOUND="Not found"})(cm||(cm={}));var na=class extends Error{constructor(e="Missing service"){super(e),this.name="MissingServiceError"}},oa=class extends Error{constructor(e="Unmet service dependencies"){super(e),this.name="UnmetServiceDependenciesError"}},_n=class extends Error{constructor(e="No content routers available"){super(e),this.name="NoContentRoutersError"}},Uo=class extends Error{constructor(e="No peer routers available"){super(e),this.name="NoPeerRoutersError"}},sa=class extends Error{constructor(e="Should not try to find self"){super(e),this.name="QueriedForSelfError"}},ia=class extends Error{constructor(e="Unhandled protocol error"){super(e),this.name="UnhandledProtocolError"}},aa=class extends Error{constructor(e="Duplicate protocol handler error"){super(e),this.name="DuplicateProtocolHandlerError"}},Ko=class extends Error{constructor(e="Dial denied error"){super(e),this.name="DialDeniedError"}},ca=class extends Error{constructor(e="No transport was configured to listen on this address"){super(e),this.name="UnsupportedListenAddressError"}},la=class extends Error{constructor(e="Configured listen addresses could not be listened on"){super(e),this.name="UnsupportedListenAddressesError"}},ua=class extends Error{constructor(e="No valid addresses"){super(e),this.name="NoValidAddressesError"}},fa=class extends Error{constructor(e="Connection intercepted"){super(e),this.name="ConnectionInterceptedError"}},da=class extends Error{constructor(e="Connection denied"){super(e),this.name="ConnectionDeniedError"}},Jt=class extends Error{constructor(e="Stream is not multiplexed"){super(e),this.name="MuxerUnavailableError"}},Rr=class extends Error{constructor(e="Encryption failed"){super(e),this.name="EncryptionFailedError"}},ha=class extends Error{constructor(e="Transport unavailable"){super(e),this.name="TransportUnavailableError"}},pa=class extends Error{constructor(e="Max recursive depth reached"){super(e),this.name="RecursionLimitError"}};var Xu=class{components={};_started=!1;constructor(e={}){this.components={};for(let[t,n]of Object.entries(e))this.components[t]=n;this.components.logger==null&&(this.components.logger=zs())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(t=>rs(t)).map(async t=>{await t[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},zw=["metrics","connectionProtector","dns"],Vw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function lm(r={}){let e=new Xu(r);return new Proxy(e,{get(n,o,s){if(typeof o=="string"&&!Vw.includes(o)){let i=e.components[o];if(i==null&&!zw.includes(o))throw new na(`${o} not set`);return i}return Reflect.get(n,o,s)},set(n,o,s){return typeof o=="string"?e.components[o]=s:Reflect.set(n,o,s),!0}})}function um(r){let e={};for(let t of Object.values(r.components))for(let n of Hw(t))e[n]=!0;for(let t of Object.values(r.components))for(let n of Ww(t))if(e[n]!==!0)throw new oa(`Service "${Gw(t)}" required capability "${n}" but it was not provided by any component, you may need to add additional configuration when creating your node.`)}function Hw(r){return Array.isArray(r?.[Mn])?r[Mn]:[]}function Ww(r){return Array.isArray(r?.[Ga])?r[Ga]:[]}function Gw(r){return r?.[Symbol.toStringTag]??r?.toString()??"unknown"}function fm(r={}){return r.denyDialMultiaddr==null&&(r.denyDialMultiaddr=e=>Ar.matches(e)?!0:It(e)),r}var ne=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};function ma(r){if(Mt(r))return{peerId:r,multiaddrs:[]};let e=Array.isArray(r)?r:[r],t;if(e.length>0){let n=e[0].getComponents().findLast(o=>o.code===421)?.value;t=n==null?void 0:gt(n),e.forEach(o=>{if(!Qt(o))throw new Ot("Invalid multiaddr");let s=o.getComponents().findLast(i=>i.code===421)?.value;if(s==null){if(t!=null)throw new R("Multiaddrs must all have the same peer id or have no peer id")}else{let i=gt(s);if(t?.equals(i)!==!0)throw new R("Multiaddrs must all have the same peer id or have no peer id")}})}return e=e.filter(n=>!Ep.exactMatch(n)),{peerId:t,multiaddrs:e}}var jw=["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/libp2p/autonat/1.0.0","/libp2p/dcutr"];async function dm(r,e){let t=r?.streams?.map(o=>o.protocol)??[],n=e?.closableProtocols??jw;if(!(t.filter(o=>o!=null&&!n.includes(o)).length>0))try{await r?.close(e)}catch(o){r?.abort(o)}}function qo(r){let e=G(r),t=e.cidr;if(e.type!=="ip4"&&e.type!=="ip6")throw new R(`Multiaddr ${r} was not an IPv4 or IPv6 address`);if(t==null)switch(e.type){case"ip4":{t=32;break}case"ip6":{t=128;break}default:throw new R(`Multiaddr ${r} was not an IPv4 or IPv6 address`)}return new on(e.host,t)}function Zu(r){return!_r.exactMatch(r)}function ga(r,e,t){if(r==null||e==null)return;let n=e.filter(s=>s.status==="open").sort((s,i)=>s.direct?-1:i.direct?1:0).find(s=>s.limits==null);if(n==null||n.direct||t==null)return n;if(!t.some(s=>Zu(s)))return n}var ya=class{connectionManager;peerStore;allow;events;log;constructor(e,t={}){this.allow=(t.allow??[]).map(n=>qo(n)),this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),this.maybePruneConnections=this.maybePruneConnections.bind(this)}start(){this.events.addEventListener("connection:open",this.maybePruneConnections)}stop(){this.events.removeEventListener("connection:open",this.maybePruneConnections)}maybePruneConnections(){this._maybePruneConnections().catch(e=>{this.log.error("error while pruning connections - %e",e)})}async _maybePruneConnections(){let e=this.connectionManager.getConnections(),t=e.length,n=this.connectionManager.getMaxConnections();if(this.log("checking max connections limit %d/%d",t,n),t<=n)return;let o=new et;for(let c of e){let l=c.remotePeer;if(!o.has(l)){o.set(l,0);try{let u=await this.peerStore.get(l);o.set(l,[...u.tags.values()].reduce((f,d)=>f+d.value,0))}catch(u){u.name!=="NotFoundError"&&this.log.error("error loading peer tags - %e",u)}}}let s=this.sortConnections(e,o),i=Math.max(t-n,0),a=[];for(let c of s)if(this.log("too many connections open - closing a connection to %p",c.remotePeer),this.allow.some(u=>{if(ve(c.remoteAddr)){let f=G(c.remoteAddr);return u.contains(f.host)}return!0})||a.push(c),a.length===i)break;await Promise.all(a.map(async c=>{await dm(c,{signal:AbortSignal.timeout(1e3)})})),this.events.safeDispatchEvent("connection:prune",{detail:a})}sortConnections(e,t){return e.sort((n,o)=>{let s=n.timeline.open,i=o.timeline.open;return s<i?1:s>i?-1:0}).sort((n,o)=>n.direction==="outbound"&&o.direction==="inbound"?1:n.direction==="inbound"&&o.direction==="outbound"?-1:0).sort((n,o)=>n.streams.length>o.streams.length?1:n.streams.length<o.streams.length?-1:0).sort((n,o)=>{let s=t.get(n.remotePeer)??0,i=t.get(o.remotePeer)??0;return s>i?1:s<i?-1:0})}};var hm="last-dial-failure",pm="last-dial-success";var mm=100,ba=50;function Yw(r,e){return r.isCertified&&!e.isCertified?-1:!r.isCertified&&e.isCertified?1:0}function gm(r){return r.sort((e,t)=>Pp(e.multiaddr,t.multiaddr)||Dp(e.multiaddr,t.multiaddr)||Rp(e.multiaddr,t.multiaddr)||Yw(e,t)||Lp(e.multiaddr,t.multiaddr))}var wa=class extends AggregateError{static name="DNSQueryFailedError";name="DNSQueryFailedError"},xa=class extends AggregateError{static name="EmptyDNSAnswerError";name="EmptyDNSAnswerError"};var Ju=qa(bm(),1);function ef(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Qw=100,In=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:o}=t??{},{size:s}=this,i={priority:n,id:o,run:e};if(s===0){this.#e.length=0,this.#t=0,this.#e.push(i);return}if(this.#e.at(-1).priority>=n){this.#e.push(i);return}this.#n();let a=ef(this.#e,i,(c,l)=>l.priority-c.priority);this.#e.splice(a,0,i)}setPriority(e,t){let n=this.#e.findIndex((s,i)=>i>=this.#t&&s.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((n,o)=>o<this.#t?!1:typeof e=="string"?n.id===e:n.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>Qw&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let o=this.#e[n];o.priority===e.priority&&t.push(o.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}};var zo=class extends Ju.default{#e;#t;#n=0;#h;#m=!1;#w=!1;#l;#x=0;#c;#u;#a;#i=[];#s=0;#r;#I;#o=0;#g;#f;#R=1n;#y=new Map;#E=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:In,strict:!1,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#h=e.intervalCap,this.#l=e.interval,this.#a=e.strict,this.#r=new e.queueClass,this.#I=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#f=e.autoStart===!1,this.#K()}#v(e){for(;this.#s<this.#i.length;){let n=this.#i[this.#s];if(n!==void 0&&e-n>=this.#l)this.#s++;else break}(this.#s>100&&this.#s>this.#i.length/2||this.#s===this.#i.length)&&(this.#i=this.#i.slice(this.#s),this.#s=0)}#k(e){this.#a?this.#i.push(e):this.#n++}#O(){this.#a?this.#i.length>this.#s&&this.#i.pop():this.#n>0&&this.#n--}#S(){return this.#i.length-this.#s}get#N(){return this.#t?!0:this.#a?this.#S()<this.#h:this.#n<this.#h}get#M(){return this.#o<this.#g}#B(){this.#o--,this.#o===0&&this.emit("pendingZero"),this.#b(),this.emit("next")}#F(){this.#u=void 0,this.#P(),this.#L()}#U(e){if(this.#a){if(this.#v(e),this.#S()>=this.#h){let n=this.#i[this.#s],o=this.#l-(e-n);return this.#C(o),!0}return!1}if(this.#c===void 0){let t=this.#x-e;if(t<0)this.#n=this.#e?this.#o:0;else return this.#C(t),!0}return!1}#C(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#F()},e))}#A(){this.#c&&(clearInterval(this.#c),this.#c=void 0)}#T(){this.#u&&(clearTimeout(this.#u),this.#u=void 0)}#b(){if(this.#r.size===0){if(this.#A(),this.emit("empty"),this.#o===0){if(this.#T(),this.#a&&this.#s>0){let t=Date.now();this.#v(t)}this.emit("idle")}return!1}let e=!1;if(!this.#f){let t=Date.now(),n=!this.#U(t);if(this.#N&&this.#M){let o=this.#r.dequeue();this.#t||(this.#k(t),this.#p()),n&&this.#L(),this.emit("active"),o(),e=!0}}return e}#L(){this.#t||this.#c!==void 0||this.#a||(this.#c=setInterval(()=>{this.#P()},this.#l),this.#x=Date.now()+this.#l)}#P(){this.#a||(this.#c!==void 0&&(this.#n===0&&this.#o===0?this.#A():this.#x=Date.now()+this.#l),this.#n=this.#e?this.#o:0),this.#_(),this.#p()}#_(){for(;this.#b(););}get concurrency(){return this.#g}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#g=e,this.#_()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#r.setPriority(e,t)}async add(e,t={}){if(t={timeout:this.timeout,...t,id:t.id??(this.#R++).toString()},t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);return new Promise((n,o)=>{let s=Symbol(`task-${t.id}`),i=()=>{},a=async()=>{i(),this.#o++,this.#y.set(s,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let l;try{try{t.signal?.throwIfAborted()}catch(d){throw this.#q(),this.#y.delete(s),d}let u=e({signal:t.signal});if(t.timeout!==void 0&&(u=To(Promise.resolve(u),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#o} running, ${this.#r.size} waiting)`})),t.signal){let{signal:d}=t;u=Promise.race([u,new Promise((h,b)=>{l=()=>{b(d.reason)},d.addEventListener("abort",l,{once:!0})})])}let f=await u;n(f),this.emit("completed",f)}catch(u){o(u),this.emit("error",u)}finally{l&&t.signal?.removeEventListener("abort",l),this.#y.delete(s),queueMicrotask(()=>{this.#B()})}};this.#r.enqueue(a,t);let c=()=>{if(this.#r instanceof In){this.#r.remove(a);return}this.#r.remove?.(t.id)};if(t.signal){let{signal:l}=t,u=()=>{i(),c(),o(l.reason),this.#b(),this.emit("next")};if(i=()=>{l.removeEventListener("abort",u),this.#E.delete(i)},l.aborted){u();return}l.addEventListener("abort",u,{once:!0}),this.#E.add(i)}this.emit("add"),this.#b()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#f?(this.#f=!1,this.#_(),this):this}pause(){this.#f=!0}clear(){for(let e of this.#E)e();this.#r=new this.#I,this.#A(),this.#D(),this.emit("empty"),this.#o===0&&(this.#T(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#d(["next","active"],()=>this.#r.size<e)}async onIdle(){this.#o===0&&this.#r.size===0||await this.#d("idle")}async onPendingZero(){this.#o!==0&&await this.#d("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#d("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#d("rateLimitCleared")}onError(){return new Promise((e,t)=>{let n=o=>{this.off("error",n),t(o)};this.on("error",n)})}async#d(e,t){let n=Array.isArray(e)?e:[e];return new Promise(o=>{let s=()=>{if(!(t&&!t())){for(let i of n)this.off(i,s);o()}};for(let i of n)this.on(i,s)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#o}get isPaused(){return this.#f}#K(){this.#t||(this.on("add",()=>{this.#r.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#t||this.#w||(this.#w=!0,queueMicrotask(()=>{this.#w=!1,this.#D()}))}#q(){this.#t||(this.#O(),this.#p())}#D(){let e=this.#m;if(this.#t||this.#r.size===0){e&&(this.#m=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){let o=Date.now();this.#v(o),t=this.#S()}else t=this.#n;let n=t>=this.#h;n!==e&&(this.#m=n,this.emit(n?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#o===this.#g&&this.#r.size>0||this.isRateLimited&&this.#r.size>0}get runningTasks(){return[...this.#y.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}};function va(r){let e=[We.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var tf=60;function Sa(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:We[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:We[e.type],TTL:e.TTL??e.ttl??tf,data:e.data instanceof Uint8Array?q(e.data):e.data}))}}var Jw=4;function rf(r,e={}){let t=new zo({concurrency:e.queryConcurrency??Jw});return async(n,o={})=>{let s=o?.logger?.forComponent("dns:dns-json-over-https"),i=new URLSearchParams;i.set("name",n),va(o.types).forEach(c=>{i.append("type",We[c])}),o.onProgress?.(new ne("dns:query",n)),s?.("GET %s",`${r}?${i}`);let a=await t.add(async()=>{let c=await fetch(`${r}?${i}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(s?.("GET %s %d",c.url,c.status),c.status!==200)throw new Error(`Unexpected HTTP status: ${c.status} - ${c.statusText}`);let l=Sa(await c.json());return o.onProgress?.(new ne("dns:response",l)),l},{signal:o.signal});if(a==null)throw new Error("No DNS response received");return a}}function wm(){return[rf("https://cloudflare-dns.com/dns-query"),rf("https://dns.google/resolve")]}var vm=qa(Em(),1);var nf=class{lru;constructor(e){this.lru=(0,vm.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return Sa({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:We[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??tf)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Sm(r){return new nf(r)}var ex=1e3,tx=()=>Math.random()>.5?-1:1,Aa=class{resolvers;cache;logger;sorter;constructor(e){this.resolvers={},this.cache=Sm(e.cacheSize??ex),this.logger=e.logger,this.sorter=e.sorter??tx,Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=wm())}async query(e,t={}){let n=va(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new ne("dns:cache",o)),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(this.sorter),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let l=await c(e,{...t,logger:this.logger,types:n});if(l.Answer.length===0)throw new xa("Query result had no answers");for(let u of l.Answer)this.cache.add(e,u);return l}catch(l){a.push(l),t.onProgress?.(new ne("dns:error",l))}}throw new wa(a,`DNS lookup of ${e} ${n} failed`)}};var We;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(We||(We={}));function Am(r={}){return new Aa(r)}var of=class{dns;canResolve(e){return e.getComponents().some(({name:t})=>t==="dnsaddr")}async resolve(e,t){let n=e.getComponents().find(c=>c.name==="dnsaddr")?.value;if(n==null)return[e];let o=this.getDNS(t),s;try{s=await o.query(`_dnsaddr.${n}`,{signal:t?.signal,types:[We.TXT]})}catch(c){if(c.name==="DNSQueryFailedError"&&Array.isArray(c.errors)&&c.errors.length>0&&c.errors.every(u=>u.name==="EmptyDNSAnswerError"))return[];throw c}let i=e.getComponents().find(c=>c.name==="p2p")?.value,a=[];for(let c of s.Answer){let l=c.data.replace(/["']/g,"").trim().split("=")[1];l!=null&&(i!=null&&!l.includes(i)||a.push(te(l)))}return a}getDNS(e){return e.dns!=null?e.dns:(this.dns==null&&(this.dns=Am()),this.dns)}},kr=new of;async function sf(r,e,t){let n=t.depth??0;if(n>(t.maxRecursiveDepth??32))throw new pa("Max recursive depth reached");let o=!1,s=[];for(let i of Object.values(e))if(i.canResolve(r)){o=!0;let a=await i.resolve(r,t);for(let c of a)s.push(...await sf(c,e,{...t,depth:n+1}))}return o===!1&&s.push(r),s}var Cn={maxParallelDials:ba,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:1e4,addressDialTimeout:6e3,resolvers:{dnsaddr:kr}},_a=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;addressDialTimeout;shutDownController;connections;log;resolvers;constructor(e,t={}){this.addressSorter=t.addressSorter,this.maxPeerAddrsToDial=t.maxPeerAddrsToDial??Cn.maxPeerAddrsToDial,this.maxDialQueueLength=t.maxDialQueueLength??Cn.maxDialQueueLength,this.dialTimeout=t.dialTimeout??Cn.dialTimeout,this.addressDialTimeout=t.addressDialTimeout??Cn.addressDialTimeout,this.connections=t.connections??new et,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.resolvers=t.resolvers??Cn.resolvers,this.shutDownController=new AbortController,this.shutDownController.signal,this.queue=new _i({concurrency:t.maxParallelDials??Cn.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("failure",n=>{n.detail?.error.name!==tt.name&&this.log.error("error in dial queue - %e",n.detail.error)})}start(){this.shutDownController=new AbortController,this.shutDownController.signal}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,t={}){let{peerId:n,multiaddrs:o}=ma(e);if(n!=null&&t.force!==!0){let i=ga(n,this.connections.get(n),o);if(i!=null)return this.log("already connected to %a",i.remoteAddr),t.onProgress?.(new ne("dial-queue:already-connected",i)),i}let s=this.queue.queue.find(i=>{if(n?.equals(i.options.peerId)===!0)return!0;let a=i.options.multiaddrs;if(a==null)return!1;for(let c of o)if(a.has(c.toString()))return!0;return!1});if(s!=null){this.log("joining existing dial target for %p",n);for(let i of o)s.options.multiaddrs.add(i.toString());return t.onProgress?.(new ne("dial-queue:already-in-dial-queue")),s.join(t)}if(this.queue.size>=this.maxDialQueueLength)throw new Mr("Dial queue is full");return this.log("creating dial target for %p",n,o.map(i=>i.toString())),t.onProgress?.(new ne("dial-queue:add-to-dial-queue")),this.queue.add(async i=>{i.onProgress?.(new ne("dial-queue:start-dial"));let a=bt([this.shutDownController.signal,i.signal]);try{return await this.dialPeer(i,a)}finally{a.clear()}},{peerId:n,priority:t.priority??ff,multiaddrs:new Set(o.map(i=>i.toString())),signal:t.signal??AbortSignal.timeout(this.dialTimeout),onProgress:t.onProgress})}async dialPeer(e,t){let n=e.peerId,o=e.multiaddrs,s=new Set,i=e.multiaddrs.size===0,a=0,c=0,l=[];for(this.log("starting dial to %p",n);i||o.size>0;){c++,i=!1;let u=[],f=new Set(e.multiaddrs);o.clear(),this.log("calculating addrs to dial %p from %s",n,[...f]);let d=await this.calculateMultiaddrs(n,f,{...e,signal:t});for(let h of d){if(s.has(h.multiaddr.toString())){this.log.trace("skipping previously failed multiaddr %a while dialing %p",h.multiaddr,n);continue}u.push(h)}this.log("%s dial to %p with %s",c===1?"starting":"continuing",n,u.map(h=>h.multiaddr.toString())),e?.onProgress?.(new ne("dial-queue:calculated-addresses",u));for(let h of u){if(a===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",a,e.peerId),new Mr("Peer had more than maxPeerAddrsToDial");a++;let b=bt([t,AbortSignal.timeout(this.addressDialTimeout)]);try{let m=await this.components.transportManager.dial(h.multiaddr,{...e,signal:b});this.log("dial to %a succeeded",h.multiaddr);try{await this.components.peerStore.merge(m.remotePeer,{multiaddrs:[m.remoteAddr],metadata:{[pm]:D(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p - %e",n,p)}return m}catch(m){if(this.log.error("dial failed to %a - %e",h.multiaddr,m),s.add(h.multiaddr.toString()),n!=null)try{await this.components.peerStore.merge(n,{metadata:{[hm]:D(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p - %e",n,p)}if(t.aborted)throw new Zo(m.message);l.push(m)}finally{b.clear()}}}throw l.length===1?l[0]:new AggregateError(l,"All multiaddr dials failed")}async calculateMultiaddrs(e,t=new Set,n={}){let o=[...t].map(f=>({multiaddr:te(f),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new Mr("Tried to dial self");if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new Ko("The dial request is blocked by gater.allowDialPeer");if(o.length===0){this.log("loading multiaddrs for %p",e);try{let f=await this.components.peerStore.get(e);o.push(...f.addresses),this.log("loaded multiaddrs for %p",e,o.map(({multiaddr:d})=>d.toString()))}catch(f){if(f.name!=="NotFoundError")throw f}}if(o.length===0){this.log("looking up multiaddrs for %p in the peer routing",e);try{let f=await this.components.peerRouting.findPeer(e,n);this.log("found multiaddrs for %p in the peer routing",e,o.map(({multiaddr:d})=>d.toString())),o.push(...f.multiaddrs.map(d=>({multiaddr:d,isCertified:!1})))}catch(f){f.name==="NoPeerRoutersError"?this.log("no peer routers configured",e):this.log.error("looking up multiaddrs for %p in the peer routing failed - %e",e,f)}}}let s=(await Promise.all(o.map(async f=>{let d=await sf(f.multiaddr,this.resolvers,{dns:this.components.dns,log:this.log,...n});return d.length===1&&d[0].equals(f.multiaddr)?f:d.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(e!=null){let f=`/p2p/${e.toString()}`;s=s.map(d=>d.multiaddr.getComponents().pop()?.name!=="p2p"?{multiaddr:d.multiaddr.encapsulate(f),isCertified:d.isCertified}:d)}let i=s.filter(f=>{if(this.components.transportManager.dialTransportForMultiaddr(f.multiaddr)==null)return!1;let d=f.multiaddr.getComponents().findLast(h=>h.code===421)?.value;return e!=null&&d!=null?e.equals(d):!0}),a=new Map;for(let f of i){let d=f.multiaddr.toString(),h=a.get(d);if(h!=null){h.isCertified=h.isCertified||f.isCertified||!1;continue}a.set(d,f)}let c=[...a.values()];if(c.length===0)throw new ua(`The dial request has no valid addresses for peer: ${e?.toString()??"unknown peer"}`);let l=[];for(let f of c)this.components.connectionGater.denyDialMultiaddr!=null&&await this.components.connectionGater.denyDialMultiaddr(f.multiaddr)||l.push(f);let u=this.addressSorter==null?gm(l):l.sort(this.addressSorter);if(u.length===0)throw new Ko(`The connection gater denied all addresses in the dial request for peer: ${e?.toString()??"unknown peer"}`);return this.log.trace("addresses for %p before filtering",e??"unknown peer",s.map(({multiaddr:f})=>f.toString())),this.log.trace("addresses for %p after filtering",e??"unknown peer",u.map(({multiaddr:f})=>f.toString())),u}async isDialable(e,t={}){Array.isArray(e)||(e=[e]);try{let n=await this.calculateMultiaddrs(void 0,new Set(e.map(o=>o.toString())),t);return t.runOnLimitedConnection===!1?n.find(o=>!_r.matches(o.multiaddr))!=null:!0}catch{}return!1}};var rx=Object.prototype.toString,nx=r=>rx.call(r)==="[object Error]",ox=new Set(["network error","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function df(r){if(!(r&&nx(r)&&r.name==="TypeError"&&typeof r.message=="string"))return!1;let{message:t,stack:n}=r;return t==="Load failed"||t.startsWith("Load failed (")&&t.endsWith(")")?n===void 0||"__sentry_captured__"in r:t.startsWith("error sending request for url")||t==="Failed to fetch"||t.startsWith("Failed to fetch (")&&t.endsWith(")")?!0:ox.has(t)}function sx(r){if(typeof r=="number"){if(r<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(r))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(r!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function Ia(r,e,{min:t=0,allowInfinity:n=!1}={}){if(e!==void 0){if(typeof e!="number"||Number.isNaN(e))throw new TypeError(`Expected \`${r}\` to be a number${n?" or Infinity":""}.`);if(!n&&!Number.isFinite(e))throw new TypeError(`Expected \`${r}\` to be a finite number.`);if(e<t)throw new TypeError(`Expected \`${r}\` to be \u2265 ${t}.`)}}function hf(r,e){if(e!==void 0&&typeof e!="function")throw new TypeError(`Expected \`${r}\` to be a function.`)}var pf=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}};function ix(r,e){let t=Math.max(1,r+1),n=e.randomize?Math.random()+1:1,o=Math.round(n*e.minTimeout*e.factor**(t-1));return o=Math.min(o,e.maxTimeout),o}function Ca(r,e){return Number.isFinite(e)?e-(performance.now()-r):e}async function ax(r,e){r<=0||await new Promise((t,n)=>{let o=()=>{clearTimeout(s),e.signal?.removeEventListener("abort",o),n(e.signal.reason)},s=setTimeout(()=>{e.signal?.removeEventListener("abort",o),t()},r);e.unref&&s.unref?.(),e.signal?.addEventListener("abort",o,{once:!0})})}async function cx({error:r,attemptNumber:e,retriesConsumed:t,startTime:n,options:o}){let s=r instanceof Error?r:new TypeError(`Non-error was thrown: "${r}". You should only throw errors.`);if(s instanceof pf)throw s.originalError;let i=Number.isFinite(o.retries)?Math.max(0,o.retries-t):o.retries,a=o.maxRetryTime??Number.POSITIVE_INFINITY,c=ix(t,o);if(Ca(n,a)<=0){let g=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:0});throw await o.onFailedAttempt(g),s}let u=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:i>0?c:0}),f=await o.shouldConsumeRetry(u),d=f&&i>0?c:0,h=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:d});if(await o.onFailedAttempt(h),Ca(n,a)<=0||Ca(n,a)<=0||i<=0||s instanceof TypeError&&!df(s)||!await o.shouldRetry(h))throw s;let m=Ca(n,a);if(m<=0)throw s;if(!f)return o.signal?.throwIfAborted(),!1;let p=Math.min(d,m);return o.signal?.throwIfAborted(),await ax(p,o),o.signal?.throwIfAborted(),!0}async function mf(r,e={}){if(e={...e},sx(e.retries),Object.hasOwn(e,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");e.retries??=10,e.factor??=2,e.minTimeout??=1e3,e.maxTimeout??=Number.POSITIVE_INFINITY,e.maxRetryTime??=Number.POSITIVE_INFINITY,e.randomize??=!1,e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.shouldConsumeRetry??=()=>!0,hf("onFailedAttempt",e.onFailedAttempt),hf("shouldRetry",e.shouldRetry),hf("shouldConsumeRetry",e.shouldConsumeRetry),Ia("factor",e.factor,{min:0,allowInfinity:!1}),Ia("minTimeout",e.minTimeout,{min:0,allowInfinity:!1}),Ia("maxTimeout",e.maxTimeout,{min:0,allowInfinity:!0}),Ia("maxRetryTime",e.maxRetryTime,{min:0,allowInfinity:!0}),e.factor>0||(e.factor=1),e.signal?.throwIfAborted();let t=0,n=0,o=performance.now();for(;!Number.isFinite(e.retries)||n<=e.retries;){t++;try{e.signal?.throwIfAborted();let s=await r(t);return e.signal?.throwIfAborted(),s}catch(s){await cx({error:s,attemptNumber:t,retriesConsumed:n,startTime:o,options:e})&&n++}}throw new Error("Retry attempts exhausted without throwing an error.")}var Ta=class{log;queue;started;peerStore;retries;retryInterval;backoffFactor;connectionManager;events;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:reconnect-queue"),this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.queue=new Ai({concurrency:t.maxParallelReconnects??5,metricName:"libp2p_reconnect_queue",metrics:e.metrics}),this.started=!1,this.retries=t.retries??5,this.backoffFactor=t.backoffFactor,this.retryInterval=t.retryInterval,this.events=e.events,e.events.addEventListener("peer:disconnect",n=>{this.maybeReconnect(n.detail).catch(o=>{this.log.error("failed to maybe reconnect to %p - %e",n.detail,o)})})}async maybeReconnect(e){if(!this.started)return;let t=await this.peerStore.get(e);_m(t)&&(this.queue.has(e)||this.queue.add(async n=>{await mf(async o=>{if(this.started)try{await this.connectionManager.openConnection(e,{signal:n?.signal})}catch(s){throw this.log("reconnecting to %p attempt %d of %d failed - %e",e,o,this.retries,s),s}},{signal:n?.signal,retries:this.retries,factor:this.backoffFactor,minTimeout:this.retryInterval})},{peerId:e}).catch(async n=>{this.log.error("failed to reconnect to %p - %e",e,n);let o={};[...t.tags.keys()].forEach(s=>{s.startsWith(Ha)&&(o[s]=void 0)}),await this.peerStore.merge(e,{tags:o}),this.events.safeDispatchEvent("peer:reconnect-failure",{detail:e})}).catch(async n=>{this.log.error("failed to remove keep-alive tag from %p - %e",e,n)}))}start(){this.started=!0}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[t=>_m(t)]});await Promise.all(e.map(async t=>{await this.connectionManager.openConnection(t.id).catch(n=>{this.log.error("could not open connection to keepalive peer - %e",n)})}))}).catch(e=>{this.log.error("error reconnect to peers after start - %e",e)})}stop(){this.started=!1,this.queue.abort()}};function _m(r){for(let e of r.tags.keys())if(e.startsWith(Ha))return!0;return!1}var ff=50,gf={maxConnections:mm,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},La=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;outboundPendingConnections;maxConnections;dialQueue;reconnectQueue;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;peerId;constructor(e,t={}){if(this.maxConnections=t.maxConnections??gf.maxConnections,this.maxConnections<1)throw new R("Connection Manager maxConnections must be greater than 0");this.connections=new et,this.started=!1,this.peerId=e.peerId,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.allow=(t.allow??[]).map(n=>qo(te(n))),this.deny=(t.deny??[]).map(n=>qo(te(n))),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=t.maxIncomingPendingConnections??gf.maxIncomingPendingConnections,this.outboundPendingConnections=0,this.inboundConnectionRateLimiter=new Ii({points:t.inboundConnectionThreshold??gf.inboundConnectionThreshold,duration:1}),this.connectionPruner=new ya({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{allow:t.allow?.map(n=>te(n))}),this.dialQueue=new _a(e,{addressSorter:t.addressSorter,maxParallelDials:t.maxParallelDials??ba,maxDialQueueLength:t.maxDialQueueLength??500,maxPeerAddrsToDial:t.maxPeerAddrsToDial??25,dialTimeout:t.dialTimeout??1e4,addressDialTimeout:t.addressDialTimeout??6e3,resolvers:t.resolvers??{dnsaddr:kr},connections:this.connections}),this.reconnectQueue=new Ta({events:e.events,peerStore:e.peerStore,logger:e.logger,connectionManager:this},{retries:t.reconnectRetries,retryInterval:t.reconnectRetryInterval,backoffFactor:t.reconnectBackoffFactor,maxParallelReconnects:t.maxParallelReconnects})}[Symbol.toStringTag]="@libp2p/connection-manager";async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,"inbound pending":this.incomingPendingConnections,outbound:0,"outbound pending":this.outboundPendingConnections};for(let t of this.connections.values())for(let n of t)e[n.direction]++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let t of this.connections.values())for(let n of t)for(let o of n.streams){let s=`${o.direction} ${o.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let o of n){let s={};for(let i of o.streams){let a=`${i.direction} ${i.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[i,a]of Object.entries(s))e[i]=e[i]??[],e[i].push(a)}let t={};for(let[n,o]of Object.entries(e)){o=o.sort((i,a)=>i-a);let s=Math.floor(o.length*.9);t[n]=o[s]}return t}}),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),await _f(this.dialQueue,this.reconnectQueue,this.connectionPruner),this.started=!0,this.log("started")}async stop(){this.events.removeEventListener("connection:open",this.onConnect),this.events.removeEventListener("connection:close",this.onDisconnect),await If(this.reconnectQueue,this.dialQueue,this.connectionPruner);let e=[];for(let t of this.connections.values())for(let n of t)e.push(Promise.all([lt(n,"close",{signal:AbortSignal.timeout(500)}),n.close({signal:AbortSignal.timeout(500)})]).catch(o=>{n.abort(o)}));this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}getMaxConnections(){return this.maxConnections}setMaxConnections(e){if(e<1)throw new R("Connection Manager maxConnections must be greater than 0");let t=!1;e<this.maxConnections&&(t=!0),this.maxConnections=e,t&&this.connectionPruner.maybePruneConnections()}onConnect(e){this._onConnect(e).catch(t=>{this.log.error("could not connect - %e",t)})}async _onConnect(e){let{detail:t}=e;if(!this.started){await t.close();return}if(t.status!=="open")return;let n=t.remotePeer,o=!this.connections.has(n),s=this.connections.get(n)??[];s.push(t),this.connections.set(n,s),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),o&&this.events.safeDispatchEvent("peer:connect",{detail:t.remotePeer})}onDisconnect(e){let{detail:t}=e,n=t.remotePeer,s=(this.connections.get(n)??[]).filter(i=>i.id!==t.id);this.connections.set(n,s),s.length===0&&(this.log.trace("peer %p disconnected, removing connection map entry",n),this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:n}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let t=[];for(let n of this.connections.values())t=t.concat(n);return t}getConnectionsMap(){return this.connections}async openConnection(e,t={}){if(!this.started)throw new xt("Not started");this.outboundPendingConnections++;try{t.signal?.throwIfAborted(),t?.onProgress?.(new ne("connection:open",e));let{peerId:n,multiaddrs:o}=ma(e);if(this.peerId.equals(n))throw new Nr("Can not dial self");if(n!=null&&t.force!==!0){this.log("dial %p",n);let c=ga(n,this.getConnections(n),o);if(c!=null)return this.log("had an existing connection to %p as %a",n,c.remoteAddr),t.onProgress?.(new ne("dial-queue:already-connected")),t.onProgress?.(new ne("connection:opened",c)),c}let s=await this.dialQueue.dial(e,{...t,priority:t.priority??ff});if(s.status!=="open")throw new er("Remote closed connection during opening");let i=this.connections.get(s.remotePeer);i==null&&(i=[],this.connections.set(s.remotePeer,i));let a=!1;for(let c of i)if(c.id===s.id&&(a=!0),t.force!==!0&&c.id!==s.id&&c.remoteAddr.equals(s.remoteAddr))return s.abort(new Ot("Duplicate multiaddr connection")),c;return a||i.push(s),t.onProgress?.(new ne("connection:opened",s)),s}finally{this.outboundPendingConnections--}}async openStream(e,t,n={}){return(await this.openConnection(e,n)).newStream(t,n)}async closeConnections(e,t={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async o=>{try{await Promise.all([lt(o,"close",t),o.close(t)])}catch(s){o.abort(s)}}))}acceptIncomingConnection(e){if(this.deny.some(o=>{if(ve(e.remoteAddr)){let s=G(e.remoteAddr);return o.contains(s.host)}return!1}))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(o=>{if(ve(e.remoteAddr)){let s=G(e.remoteAddr);return o.contains(s.host)}return!0}))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(ve(e.remoteAddr)){let o=G(e.remoteAddr);try{this.inboundConnectionRateLimiter.consume(o.host,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,o.host),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){let e={queued:"queued",running:"active",errored:"error",complete:"success"};return this.dialQueue.queue.queue.map(t=>({id:t.id,status:e[t.status],peerId:t.options.peerId,multiaddrs:[...t.options.multiaddrs].map(n=>te(n))}))}async isDialable(e,t={}){return this.dialQueue.isDialable(e,t)}};var fx=1e4,dx="1.0.0",hx="ping",px="ipfs",Im=32,mx=!0,Pa=class{protocol;components;log;heartbeatInterval;pingIntervalMs;abortController;timeout;abortConnectionOnPingFailure;constructor(e,t={}){this.components=e,this.protocol=`/${t.protocolPrefix??px}/${hx}/${dx}`,this.log=e.logger.forComponent("libp2p:connection-monitor"),this.pingIntervalMs=t.pingInterval??fx,this.abortConnectionOnPingFailure=t.abortConnectionOnPingFailure??mx,this.timeout=new mi({...t.pingTimeout??{},metrics:e.metrics,metricName:"libp2p_connection_monitor_ping_time_milliseconds"})}[Symbol.toStringTag]="@libp2p/connection-monitor";[Mn]=["@libp2p/connection-monitor"];start(){this.abortController=new AbortController,this.abortController.signal,this.heartbeatInterval=setInterval(()=>{this.components.connectionManager.getConnections().forEach(e=>{Promise.resolve().then(async()=>{let t=Date.now(),n=this.timeout.getTimeoutSignal({signal:this.abortController?.signal}),o;try{o=await e.newStream(this.protocol,{signal:n,runOnLimitedConnection:!0});let s=Pu(o);t=Date.now(),await Promise.all([s.write(crypto.getRandomValues(new Uint8Array(Im)),{signal:n}),s.read({bytes:Im,signal:n})]),e.rtt=Date.now()-t,await o.close({signal:n})}catch(s){if(o?.abort(s),s.name!=="UnsupportedProtocolError")throw s;e.rtt=(Date.now()-t)/2}finally{this.timeout.cleanUp(n)}}).catch(t=>{this.log.error("error during heartbeat - %e",t),this.abortConnectionOnPingFailure?(this.log.error("aborting connection due to ping failure"),e.abort(t)):this.log("connection ping failed, but not aborting due to abortConnectionOnPingFailure flag")})})},this.pingIntervalMs)}stop(){this.abortController?.abort(),this.heartbeatInterval!=null&&clearInterval(this.heartbeatInterval)}};var Da=class{routers;started;components;constructor(e,t){this.routers=t.routers??[],this.started=!1,this.components=e,this.findProviders=e.metrics?.traceFunction("libp2p.contentRouting.findProviders",this.findProviders.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()}),getAttributesFromYieldedValue:(n,o)=>({...o,providers:[...Array.isArray(o.providers)?o.providers:[],n.id.toString()]})})??this.findProviders,this.provide=e.metrics?.traceFunction("libp2p.contentRouting.provide",this.provide.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()})})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("libp2p.contentRouting.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()})})??this.cancelReprovide,this.put=e.metrics?.traceFunction("libp2p.contentRouting.put",this.put.bind(this),{optionsIndex:2,getAttributesFromArgs:([n])=>({key:q(n,"base36")})})??this.put,this.get=e.metrics?.traceFunction("libp2p.contentRouting.get",this.get.bind(this),{optionsIndex:1,getAttributesFromArgs:([n])=>({key:q(n,"base36")})})??this.get}[Symbol.toStringTag]="@libp2p/content-routing";isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");let n=this,o=new gr;for await(let s of En(...n.routers.filter(i=>i.findProviders instanceof Function).map(i=>i.findProviders(e,t))))s!=null&&(s.multiaddrs.length>0&&await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),!o.has(s.id)&&(o.add(s.id),yield s))}async provide(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");await Promise.all(this.routers.filter(n=>n.provide instanceof Function).map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");await Promise.all(this.routers.filter(n=>n.cancelReprovide instanceof Function).map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){if(!this.isStarted())throw new xt;await Promise.all(this.routers.filter(o=>o.put instanceof Function).map(async o=>{await o.put(e,t,n)}))}async get(e,t){if(!this.isStarted())throw new xt;return Promise.any(this.routers.filter(n=>n.get instanceof Function).map(async n=>n.get(e,t)))}};var Ra=globalThis.CustomEvent??Event;async function*yf(r,e={}){let t=e.concurrency??1/0;t<1&&(t=1/0);let n=e.ordered??!1,o=new EventTarget,s=[],i=xe(),a=xe(),c=!1,l,u=!1,f=!1;o.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let m of r){if(s.length===t&&(i=xe(),await i.promise),u||f)break;let p={done:!1};s.push(p),m().then(g=>{p.done=!0,p.ok=!0,p.value=g,o.dispatchEvent(new Ra("task-complete"))},g=>{p.done=!0,p.err=g,o.dispatchEvent(new Ra("task-complete"))})}c=!0,o.dispatchEvent(new Ra("task-complete"))}catch(m){l=m,o.dispatchEvent(new Ra("task-complete"))}});function d(){return n?s[0]?.done:!!s.find(m=>m.done)}function*h(){for(;s.length>0&&s[0].done;){let m=s[0];if(s.shift(),m.ok)yield m.value;else throw u=!0,i.resolve(),m.err;i.resolve()}}function*b(){for(;d();)for(let m=0;m<s.length;m++)if(s[m].done){let p=s[m];if(s.splice(m,1),m--,p.ok)yield p.value;else throw u=!0,i.resolve(),p.err;i.resolve()}}try{for(;;){if(d()||(a=xe(),await a.promise),l!=null||(n?yield*h():yield*b(),l!=null))throw l;if(c&&s.length===0)break}}finally{f=!0,i.resolve()}}var ka=class{log;peerId;peerStore;routers;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=t.routers??[],this.findPeer=e.metrics?.traceFunction("libp2p.peerRouting.findPeer",this.findPeer.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,peer:n.toString()})})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("libp2p.peerRouting.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,key:q(n,"base36")}),getAttributesFromYieldedValue:(n,o)=>({...o,peers:[...Array.isArray(o.peers)?o.peers:[],n.id.toString()]})})??this.getClosestPeers}[Symbol.toStringTag]="@libp2p/peer-routing";async findPeer(e,t){if(this.routers.length===0)throw new Uo("No peer routers available");if(e.toString()===this.peerId.toString())throw new sa("Should not try to find self");let n=this,o=En(...this.routers.filter(s=>s.findPeer instanceof Function).map(s=>(async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error("router failed to find peer - %e",i)}})()));for await(let s of o)if(s!=null)return s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),s;throw new tr}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Uo("No peer routers available");let n=this,o=Eo(1024);for await(let s of yf((async function*(){let i=En(...n.routers.filter(a=>a.getClosestPeers instanceof Function).map(a=>a.getClosestPeers(e,t)));for await(let a of i)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...t,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs - %e",c);return}return a}})()))s!=null&&(s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),!o.has(s.id.toMultihash().bytes)&&(o.add(s.id.toMultihash().bytes),yield s))}};var Oa=class extends De{peerRouting;log;walking;walkers;shutdownController;walkController;needNext;constructor(e){super(),this.log=e.logger.forComponent("libp2p:random-walk"),this.peerRouting=e.peerRouting,this.walkers=0,this.walking=!1,this.shutdownController=new AbortController,this.shutdownController.signal}[Symbol.toStringTag]="@libp2p/random-walk";start(){this.shutdownController=new AbortController,this.shutdownController.signal}stop(){this.shutdownController.abort()}async*walk(e){this.walking||this.startWalk(),this.walkers++;let t=bt([this.shutdownController.signal,e?.signal]);try{for(;;)this.needNext?.resolve(),this.needNext=xe(),yield(await lt(this,"walk:peer",{signal:t,rejectionEvents:["walk:error"]})).detail}catch(n){throw n.detail!=null?n.detail:n}finally{t.clear(),this.walkers--,this.walkers===0&&(this.walkController?.abort(),this.walkController=void 0)}}startWalk(){this.walking=!0,this.walkController=new AbortController,this.walkController.signal;let e=bt([this.walkController.signal,this.shutdownController.signal]);let t=Date.now(),n=0;Promise.resolve().then(async()=>{for(this.log("start walk");this.walkers>0;)try{let o=crypto.getRandomValues(new Uint8Array(32)),s=Date.now();for await(let i of this.peerRouting.getClosestPeers(o,{signal:e}))e.aborted&&this.log("aborting walk"),e.throwIfAborted(),this.log("found peer %p after %dms for %d walkers",i.id,Date.now()-s,this.walkers),n++,this.safeDispatchEvent("walk:peer",{detail:i}),this.walkers===1&&this.needNext!=null&&(this.log("wait for need next"),await Ve(this.needNext.promise,e)),s=Date.now();this.log("walk iteration for %b and %d walkers finished, found %d peers",o,this.walkers,n)}catch(o){this.log.error("random walk errored - %e",o),this.safeDispatchEvent("walk:error",{detail:o})}this.log("no walkers left, ended walk")}).catch(o=>{this.log.error("random walk errored - %e",o)}).finally(()=>{this.log("finished walk, found %d peers after %dms",n,Date.now()-t),this.walking=!1})}};var bf=32,wf=64,Na=class{log;topologies;handlers;components;middleware;constructor(e){this.components=e,this.log=e.logger.forComponent("libp2p:registrar"),this.middleware=new Map,this.topologies=new Map,e.metrics?.registerMetricGroup("libp2p_registrar_topologies",{calculate:()=>{let t={};for(let[n,o]of this.topologies)t[n]=o.size;return t}}),this.handlers=Te({name:"libp2p_registrar_protocol_handlers",metrics:e.metrics}),this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}[Symbol.toStringTag]="@libp2p/registrar";getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let t=this.handlers.get(e);if(t==null)throw new ia(`No handler registered for protocol ${e}`);return t}getTopologies(e){let t=this.topologies.get(e);return t==null?[]:[...t.values()]}async handle(e,t,n){if(this.handlers.has(e)&&n?.force!==!0)throw new aa(`Handler already registered for protocol ${e}`);this.handlers.set(e,{handler:t,options:{maxInboundStreams:bf,maxOutboundStreams:wf,...n}}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]},n)}async unhandle(e,t){(Array.isArray(e)?e:[e]).forEach(o=>{this.handlers.delete(o)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()},t)}async register(e,t){if(t==null)throw new R("invalid topology");let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,o=this.topologies.get(e);return o==null&&(o=new Map,this.topologies.set(e,o)),o.set(n,t),n}unregister(e){for(let[t,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(t))}use(e,t){this.middleware.set(e,t)}unuse(e){this.middleware.delete(e)}getMiddleware(e){return this.middleware.get(e)??[]}async _onDisconnect(e){let t=e.detail,n={signal:AbortSignal.timeout(5e3)};try{let o=await this.components.peerStore.get(t,n);for(let s of o.protocols){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{a.filter!=null&&a.filter.has(t)!==!0||(a.filter?.remove(t),await a.onDisconnect?.(t))}))}}catch(o){if(o.name==="NotFoundError")return;this.log.error("could not inform topologies of disconnecting peer %p - %e",t,o)}}async _onPeerUpdate(e){let{peer:t,previous:n}=e.detail,o=(n?.protocols??[]).filter(s=>!t.protocols.includes(s));try{for(let s of o){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{a.filter!=null&&a.filter.has(t.id)!==!0||(a.filter?.remove(t.id),await a.onDisconnect?.(t.id))}))}}catch(s){this.log.error("could not inform topologies of updated peer %p - %e",t.id,s)}}async _onPeerIdentify(e){let t=e.detail.protocols,n=e.detail.connection,o=e.detail.peerId;try{for(let s of t){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{n.limits!=null&&a.notifyOnLimitedConnection!==!0||a.filter?.has(o)!==!0&&(a.filter?.add(o),await a.onConnect?.(o,n))}))}}catch(s){this.log.error("could not inform topologies of updated peer after identify %p - %e",o,s)}}};var Ma=class{log;components;transports;listeners;faultTolerance;started;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=Te({name:"libp2p_transport_manager_transports",metrics:this.components.metrics}),this.listeners=Te({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=t.faultTolerance??Nn.FATAL_ALL}[Symbol.toStringTag]="@libp2p/transport-manager";add(e){let t=e[Symbol.toStringTag];if(t==null)throw new R("Transport must have a valid tag");if(this.transports.has(t))throw new R(`There is already a transport with the tag ${t}`);this.log("adding transport %s",t),this.transports.set(t,e),this.listeners.has(t)||this.listeners.set(t,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[t,n]of this.listeners)for(this.log("closing listeners for %s",t);n.length>0;){let o=n.pop();o!=null&&e.push(o.close())}await Promise.all(e),this.log("all listeners closed");for(let t of this.listeners.keys())this.listeners.set(t,[]);this.started=!1}async dial(e,t){let n=this.dialTransportForMultiaddr(e);if(n==null)throw new ha(`No transport available for address ${String(e)}`);return t?.onProgress?.(new ne("transport-manager:selected-transport",n[Symbol.toStringTag])),n.dial(e,{...t,upgrader:this.components.upgrader})}getAddrs(){let e=[];for(let t of this.listeners.values())for(let n of t)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}dialTransportForMultiaddr(e){for(let t of this.transports.values())if(t.dialFilter([e]).length>0)return t}listenTransportForMultiaddr(e){for(let t of this.transports.values())if(t.listenFilter([e]).length>0)return t}async listen(e){if(!this.isStarted())throw new xt("Not started");if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let t={errors:new Map,ipv4:{success:0,attempts:0},ipv6:{success:0,attempts:0}};e.forEach(s=>{t.errors.set(s.toString(),new ca)});let n=[];for(let[s,i]of this.transports.entries()){let a=i.listenFilter(e);for(let c of a){this.log("creating listener for %s on %a",s,c);let l=i.createListener({upgrader:this.components.upgrader}),u=this.listeners.get(s)??[];u==null&&(u=[],this.listeners.set(s,u)),u.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let f=u.findIndex(d=>d===l);u.splice(f,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),gu.matches(c)?t.ipv4.attempts++:yu.matches(c)&&t.ipv6.attempts++,n.push(l.listen(c).then(()=>{t.errors.delete(c.toString()),gu.matches(c)&&t.ipv4.success++,yu.matches(c)&&t.ipv6.success++},f=>{throw this.log.error("transport %s could not listen on address %a - %e",s,c,f),t.errors.set(c.toString(),f),f}))}}let o=await Promise.allSettled(n);if(!(o.length>0&&o.every(s=>s.status==="fulfilled"))){if(this.ipv6Unsupported(t)){this.log("all IPv4 addresses succeed but all IPv6 failed");return}if(this.faultTolerance===Nn.NO_FATAL){this.log("failed to listen on any address but fault tolerance allows this");return}throw new la(`Some configured addresses failed to be listened on, you may need to remove one or more listen addresses from your configuration or set \`transportManager.faultTolerance\` to NO_FATAL:
|
|
12
|
+
${e}[Error list was empty]`,t.trim()}return zh(r,e)}$e.formatters.e=r=>r==null?"undefined":Hh(r);function Z0(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e.useColors=()=>!1,e}function zs(r){return{forComponent(e){return Wh(e,r)}}}function Wh(r,e){let t=Z0(`${r}:trace`);return $e.enabled(`${r}:trace`)&&$e.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=$e(`${r}:trace`,e)),Object.assign($e(r,e),{error:$e(`${r}:error`,e),trace:t,newScope:n=>Wh(`${r}:${n}`,e)})}function Vh(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}function mr(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),o=n.value;return n.done===!0||o==null?{done:!0,value:void 0}:{done:!1,value:e(o)}}};return t}function Vs(r){let e=Et(oe.decode(`z${r}`));return tn(e)}var et=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),{key:t,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return mr(this.map.entries(),e=>[e[1].key,e[1].value])}forEach(e){this.map.forEach((t,n)=>{e(t.value,t.key,this)})}get(e){return this.map.get(e.toString())?.value}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),{key:e,value:t})}keys(){return mr(this.map.values(),e=>e.key)}values(){return mr(this.map.values(),e=>e.value)}get size(){return this.map.size}};var gr=class r{set;constructor(e){if(this.set=new Set,e!=null)for(let t of e)this.set.add(t.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return mr(this.set.entries(),e=>{let t=Vs(e[0]);return[t,t]})}forEach(e){this.set.forEach(t=>{let n=Vs(t);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return mr(this.set.values(),e=>Vs(e))}intersection(e){let t=new r;for(let n of e)this.has(n)&&t.add(n);return t}difference(e){let t=new r;for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=new r;for(let n of e)t.add(n);for(let n of this)t.add(n);return t}};var kl={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Gh={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},jh=new globalThis.TextEncoder;function Q0(r,e){let t=kl[e],n=Gh[e];for(let o=0;o<r.length;o++)n^=BigInt(r[o]),n=BigInt.asUintN(e,n*t);return n}function J0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=kl[e],o=Gh[e],s=r;for(;s.length>0;){let i=jh.encodeInto(s,t);s=s.slice(i.read);for(let a=0;a<i.written;a++)o^=BigInt(t[a]),o=BigInt.asUintN(e,o*n)}return o}function Ol(r,{size:e=32,utf8Buffer:t}={}){if(!kl[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return J0(r,e,t);r=jh.encode(r)}return Q0(r,e)}var wo={hash:r=>Number(Ol(r,{size:32})),hashV:(r,e)=>eb(wo.hash(r,e))};function eb(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),D(e,"base16")}var Nl=64,at=class{fp;h;seed;constructor(e,t,n,o=2){if(o>Nl)throw new TypeError("Invalid Fingerprint Size");let s=t.hashV(e,n),i=le(o);for(let a=0;a<i.length;a++)i[a]=s[a];i.length===0&&(i[0]=7),this.fp=i,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?Z(this.fp,e.fp):!1}};function yr(r,e){return Math.floor(Math.random()*(e-r))+r}var br=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");let t=yr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof at))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var tb=500,xo=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??wo,this.seed=e.seed??yr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new br(this.bucketSize)),this.buckets[o]==null&&(this.buckets[o]=new br(this.bucketSize)),this.buckets[n].add(t)||this.buckets[o].add(t))return this.count++,!0;let s=[n,o],i=s[yr(0,s.length-1)];this.buckets[i]==null&&(this.buckets[i]=new br(this.bucketSize));for(let a=0;a<tb;a++){let c=this.buckets[i].swap(t);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new br(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.has(t)??!1;if(o)return o;let s=(n^t.hash())%this.filterSize;return this.buckets[s]?.has(t)??!1}remove(e){typeof e=="string"&&(e=D(e));let t=new at(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,o=this.buckets[n]?.remove(t)??!1;if(o)return this.count--,o;let s=(n^t.hash())%this.filterSize,i=this.buckets[s]?.remove(t)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},rb={1:.5,2:.84,4:.95,8:.98};function nb(r=.001){return r>.002?2:r>1e-5?4:8}function Yh(r,e=.001){let t=nb(e),n=rb[t],o=Math.round(r/n),s=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),Nl);return{filterSize:o,bucketSize:t,fingerprintSize:s}}var Hs=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??wo,this.seed=e.seed??yr(0,Math.pow(2,10)),this.filterSeries=[new xo({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=D(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new xo({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=D(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=D(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function Eo(r,e=.001,t){return new Hs({...Yh(r,e),...t??{}})}function Ml(r){let e=r.getComponents(),t={},n=0;return 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?null:(e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t)}function G(r){let e=Ml(r);if(e==null)throw new R(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e}var Ws=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",l=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(u===void 0)break;if(s*=e,s+=u,s>l||(i+=1,t!==void 0&&i>t))return}if(i!==0)return!n&&c&&i>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let o=n*2;if(n<t.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return t[o]=i[0],t[o+1]=i[1],t[o+2]=i[2],t[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];t[o]=s>>8,t[o+1]=s&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,o]=e(t);if(n===16)return t;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=e(s.subarray(0,i));return t.set(s.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Xh=45,ob=15,rn=new Ws;function Gs(r){if(!(r.length>ob))return rn.new(r).parseWith(()=>rn.readIPv4Addr())}function js(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Xh))return rn.new(r).parseWith(()=>rn.readIPv6Addr())}function nn(r,e=!1){if(r.includes("%")&&(r=r.split("%")[0]),r.length>Xh)return;let t=rn.new(r).parseWith(()=>rn.readIPAddr());if(t)return e&&t.length===4?Uint8Array.from([0,0,0,0,0,0,0,0,0,0,255,255,t[0],t[1],t[2],t[3]]):t}function Zh(r,e,t){let n=0;for(let o of r)if(!(n<e)){if(n>t)break;if(o!==255)return!1;n++}return!0}function Qh(r,e,t,n){let o=0;for(let s of r)if(!(o<t)){if(o>n)break;if(s!==e[o])return!1;o++}return!0}function Bl(r){switch(r.length){case wr:return r.join(".");case xr:{let e=[];for(let t=0;t<r.length;t++)t%2===0&&e.push(r[t].toString(16).padStart(2,"0")+r[t+1].toString(16).padStart(2,"0"));return e.join(":")}default:throw new Error("Invalid ip length")}}function Jh(r){let e=0;for(let[t,n]of r.entries()){if(n===255){e+=8;continue}for(;(n&128)!=0;)e++,n=n<<1;if((n&128)!=0)return-1;for(let o=t+1;o<r.length;o++)if(r[o]!=0)return-1;break}return e}function ep(r){let e="0x";for(let t of r)e+=(t>>4).toString(16)+(t&15).toString(16);return e}var wr=4,xr=16,FA=parseInt("0xFFFF",16),sb=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function vo(r,e){e.length===xr&&r.length===wr&&Zh(e,0,11)&&(e=e.slice(12)),e.length===wr&&r.length===xr&&Qh(r,sb,0,11)&&(r=r.slice(12));let t=r.length;if(t!=e.length)throw new Error("Failed to mask ip");let n=new Uint8Array(t);for(let o=0;o<t;o++)n[o]=r[o]&e[o];return n}function tp(r,e){if(typeof e=="string"&&(e=nn(e)),e==null)throw new Error("Invalid ip");if(e.length!==r.network.length)return!1;for(let t=0;t<e.length;t++)if((r.network[t]&r.mask[t])!==(e[t]&r.mask[t]))return!1;return!0}function Fl(r){let[e,t]=r.split("/");if(!e||!t)throw new Error("Failed to parse given CIDR: "+r);let n=wr,o=Gs(e);if(o==null&&(n=xr,o=js(e),o==null))throw new Error("Failed to parse given CIDR: "+r);let s=parseInt(t,10);if(Number.isNaN(s)||String(s).length!==t.length||s<0||s>n*8)throw new Error("Failed to parse given CIDR: "+r);let i=Ul(s,8*n);return{network:vo(o,i),mask:i}}function Ul(r,e){if(e!==8*wr&&e!==8*xr)throw new Error("Invalid CIDR mask");if(r<0||r>e)throw new Error("Invalid CIDR mask");let t=e/8,n=new Uint8Array(t);for(let o=0;o<t;o++){if(r>=8){n[o]=255,r-=8;continue}n[o]=255-(255>>r),r=0}return n}var on=class{constructor(e,t){if(t==null)({network:this.network,mask:this.mask}=Fl(e));else{let n=nn(e);if(n==null)throw new Error("Failed to parse network");t=String(t);let o=parseInt(t,10);if(Number.isNaN(o)||String(o).length!==t.length||o<0||o>n.length*8){let s=nn(t);if(s==null)throw new Error("Failed to parse mask");this.mask=s}else this.mask=Ul(o,8*n.length);this.network=vo(n,this.mask)}}contains(e){return tp({network:this.network,mask:this.mask},e)}toString(){let e=Jh(this.mask),t=e!==-1?String(e):ep(this.mask);return Bl(this.network)+"/"+t}};function rp(r){try{let e=G(r);switch(e.type){case"ip4":return e.host.startsWith("169.254.");case"ip6":return e.host.toLowerCase().startsWith("fe80");default:return!1}}catch{return!1}}function np(r){if(typeof r!="string"||!/^[0-9a-fA-FxX.:]+$/.test(r))return!1;let e=r.includes(":")?`[${r}]`:r,t;try{t=new URL(`http://${e}`)}catch{return!1}if(t.href!==`http://${t.hostname}/`)return!1;let n=t.hostname;if(n.startsWith("["))return n==="[::1]";let o=n.split(".");return o.length===4&&o[0]==="127"&&o.every(s=>/^\d{1,3}$/.test(s))}function So(r){try{let e=G(r);switch(e.type){case"ip4":case"ip6":return np(e.host);default:return!1}}catch{return!1}}function ve(r){return Ml(r)!==null}function ct(r){return!!Gs(r)}function Ys(r){return!!js(r)}var ap=qa(ip(),1),db=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],hb=db.map(r=>new ap.Netmask(r));function Wl(r){for(let e of hb)if(e.contains(r))return!0;return!1}function pb(r){return/^::ffff:([0-9a-fA-F]{1,4}):([0-9a-fA-F]{1,4})$/.test(r)}function mb(r){let e=r.split(":");if(e.length<2)return!1;let t=e[e.length-1].padStart(4,"0"),n=e[e.length-2].padStart(4,"0"),o=`${parseInt(n.substring(0,2),16)}.${parseInt(n.substring(2),16)}.${parseInt(t.substring(0,2),16)}.${parseInt(t.substring(2),16)}`;return Wl(o)}function gb(r){return/^::ffff:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)}function yb(r){let e=r.split(":"),t=e[e.length-1];return Wl(t)}function bb(r){return/^::$/.test(r)||/^::1$/.test(r)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(r)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(r)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(r)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(r)||/^ff([0-9a-fA-F]{2,2}):/i.test(r)}function ln(r){if(ct(r))return Wl(r);if(pb(r))return mb(r);if(gb(r))return yb(r);if(Ys(r))return bb(r)}function It(r){try{let e=G(r);switch(e.type){case"ip4":case"ip6":return ln(e.host)??!1;default:return e.host==="localhost"}}catch{return!1}}var Se=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},Ct=class extends Error{static name="ValidationError";name="ValidationError"},Zs=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Qs=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function jl(r){return e=>q(e,r)}function Yl(r){return e=>D(e,r)}function un(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function vr(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function cp(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=D(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=vr(n);return Ye([t,o],t.length+o.length)}function lp(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=je.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=vr(n);return Ye([t,o],t.length+o.length)}function Xl(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=q(e,"base32"),o=un(t);return`${n}:${o}`}var Zl=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 Se("Invalid byte value in IP address");e[n]=o}),e},up=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=ct(t[n]),i;s&&(i=Zl(t[n]),t[n]=q(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,q(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 Se("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},fp=function(r){if(r.byteLength!==4)throw new Se("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},dp=function(r){if(r.byteLength!==16)throw new Se("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 Se(`Invalid IPv6 address "${t}"`)}};function hp(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new Se(`Invalid IPv6 address "${r}"`)}}var Gl=Object.values(qn).map(r=>r.decoder),wb=(function(){let r=Gl[0].or(Gl[1]);return Gl.slice(2).forEach(e=>r=r.or(e)),r})();function pp(r){return wb.decode(r)}function mp(r){return e=>r.encoder.encode(e)}function xb(r){if(parseInt(r).toString()!==r)throw new Ct("Value must be an integer")}function Eb(r){if(r<0)throw new Ct("Value must be a positive integer, or zero")}function vb(r){return e=>{if(e>r)throw new Ct(`Value must be smaller than or equal to ${r}`)}}function Sb(...r){return e=>{for(let t of r)t(e)}}var Ao=Sb(xb,Eb,vb(65535));var we=-1,Ql=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 Qs(`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)}))}},Lt=new Ql,Bb=[{code:4,name:"ip4",size:32,valueToBytes:Zl,bytesToValue:fp,validate:r=>{if(!ct(r))throw new Ct(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:273,name:"udp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:33,name:"dccp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:41,name:"ip6",size:128,valueToBytes:up,bytesToValue:dp,stringToValue:hp,validate:r=>{if(!Ys(r))throw new Ct(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:we},{code:43,name:"ipcidr",size:8,bytesToValue:jl("base10"),valueToBytes:Yl("base10")},{code:53,name:"dns",size:we},{code:54,name:"dns4",size:we},{code:55,name:"dns6",size:we},{code:56,name:"dnsaddr",size:we},{code:132,name:"sctp",size:16,valueToBytes:vr,bytesToValue:un,validate:Ao},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:we,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:we,bytesToValue:jl("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Yl("base58btc")(r):me.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Xl,valueToBytes:cp},{code:445,name:"onion3",size:296,bytesToValue:Xl,valueToBytes:lp},{code:446,name:"garlic64",size:we},{code:447,name:"garlic32",size:we},{code:448,name:"tls"},{code:449,name:"sni",size:we},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:we,bytesToValue:mp(uc),valueToBytes:pp},{code:480,name:"http"},{code:481,name:"http-path",size:we,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:we}];Bb.forEach(r=>{Lt.addProtocol(r)});function gp(r){let e=[],t=0;for(;t<r.length;){let n=ur(r,t),o=Lt.getProtocol(n),s=be(n),i=Fb(o,r,t+s),a=0;i>0&&o.size===we&&(a=be(i));let c=s+a+i,l={code:n,name:o.name,bytes:Ee(r.subarray(t,t+c))};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??q(f)}e.push(l),t+=c}return e}function yp(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=Lt.getProtocol(n.code),s=be(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??D(n.value),a=i.byteLength,o.size===we&&(c=be(a)));let l=new Uint8Array(s+c+a),u=0;Qr(n.code,l,u),u+=s,i!=null&&(o.size===we&&(Qr(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return Ye(t,e)}function bp(r){if(r.charAt(0)!=="/")throw new Se('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=Lt.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 Se(`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 Se(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new Se("Incomplete multiaddr");return e}function wp(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=Lt.getProtocol(e.code);if(t==null)throw new Se(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function Fb(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:ur(e,t)}var Ub=Symbol.for("nodejs.util.inspect.custom"),du=Symbol.for("@multiformats/multiaddr");function Kb(r){if(r==null&&(r="/"),Qt(r))return r.getComponents();if(r instanceof Uint8Array)return gp(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),bp(r);if(Array.isArray(r))return r;throw new Se("Must be a string, Uint8Array, Component[], or another Multiaddr")}var oi=class r{[du]=!0;#e;#t;#n;constructor(e="/",t={}){this.#e=Kb(e),t.validate!==!1&&qb(this)}get bytes(){return this.#n==null&&(this.#n=yp(this.#e)),this.#n}toString(){return this.#t==null&&(this.#t=wp(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 Zs(`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 Z(this.bytes,e.bytes)}[Ub](){return`Multiaddr(${this.toString()})`}};function qb(r){r.getComponents().forEach(e=>{let t=Lt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function Qt(r){return!!r?.[du]}function te(r){return new oi(r)}var se=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),B=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),xp=r=>({match:e=>r.match(e)===!1?e:!1}),H=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),Ce=(...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}}),j=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function ie(...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 $b=B(421),Ep=ie($b),ii=B(54),ai=B(55),ci=B(56),pu=B(53),AI=ie(ii,H(B(421))),_I=ie(ai,H(B(421))),II=ie(ci,H(B(421))),CI=ie(Ce(pu,ci,ii,ai),H(B(421))),vp=j(B(4),H(B(43))),Sp=j(H(B(42)),B(41),H(B(43))),mu=Ce(vp,Sp),gn=Ce(mu,pu,ii,ai,ci),TI=ie(Ce(mu,j(Ce(pu,ci,ii,ai),H(B(421))))),gu=ie(vp),yu=ie(Sp),LI=ie(mu),bu=j(gn,B(6)),_o=j(gn,B(273)),Io=ie(j(bu,H(B(421)))),PI=ie(_o),wu=j(_o,se(460),H(B(421))),li=j(_o,se(461),H(B(421))),zb=Ce(wu,li),DI=ie(wu),Ap=ie(li),hu=Ce(gn,bu,_o,wu,li),_p=Ce(j(hu,se(477),H(B(421)))),Ar=ie(_p),Ip=Ce(j(hu,se(478),H(B(421))),j(hu,se(448),H(B(449)),se(477),H(B(421)))),Co=ie(Ip),Cp=j(_o,se(280),H(B(466)),H(B(466)),H(B(421))),xu=ie(Cp),Tp=j(li,se(465),H(B(466)),H(B(466)),H(B(421))),Eu=ie(Tp),si=Ce(_p,Ip,j(bu,H(B(421))),j(zb,H(B(421))),j(gn,H(B(421))),Cp,Tp,B(421)),RI=ie(si),Vb=j(H(si),se(290),xp(se(281)),H(B(421))),_r=ie(Vb),Hb=Ce(j(si,se(290),se(281),H(B(421))),j(si,se(281),H(B(421))),j(se(281),H(B(421)))),vu=ie(Hb),Wb=j(gn,Ce(j(B(6,"80")),j(B(6),se(480)),se(480)),H(B(481)),H(B(421))),kI=ie(Wb),Gb=j(gn,Ce(j(B(6,"443")),j(B(6,"443"),se(480)),j(B(6),se(443)),j(B(6),se(448),se(480)),j(se(448),se(480)),se(448),se(443)),H(B(481)),H(B(421))),OI=ie(Gb),jb=Ce(j(B(777),H(B(421)))),NI=ie(jb),Yb=Ce(j(B(400),H(B(421)))),MI=ie(Yb);function Lp(r,e){let t=Io.exactMatch(r),n=Io.exactMatch(e);if(t&&!n)return-1;if(!t&&n)return 1;let o=Co.exactMatch(r),s=Co.exactMatch(e);if(o&&!s)return-1;if(!o&&s)return 1;let i=Ar.exactMatch(r),a=Ar.exactMatch(e);if(i&&!a)return-1;if(!i&&a)return 1;let c=vu.exactMatch(r),l=vu.exactMatch(e);if(c&&!l)return-1;if(!c&&l)return 1;let u=xu.exactMatch(r),f=xu.exactMatch(e);if(u&&!f)return-1;if(!u&&f)return 1;let d=Eu.exactMatch(r),h=Eu.exactMatch(e);return d&&!h?-1:!d&&h?1:0}function Pp(r,e){let t=So(r),n=So(e);return t&&!n?1:!t&&n?-1:0}function Dp(r,e){let t=It(r),n=It(e);return t&&!n?1:!t&&n?-1:0}function Rp(r,e){let t=_r.exactMatch(r),n=_r.exactMatch(e);return t&&!n?1:!t&&n?-1:0}function xe(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var ui=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}},yn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ui(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 ui(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 Su=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function bn(r={}){return Xb(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 Xb(r,e){e=e??{};let t=e.onEnd,n=new yn,o,s,i,a=xe(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((p,g)=>{s=E=>{s=null,n.push(E);try{p(r(n))}catch(x){g(x)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=xe()})}},l=p=>s!=null?s(p):(n.push(p),o),u=p=>(n=new yn,s!=null?s({error:p}):(n.push({error:p}),o)),f=p=>{if(i)return o;if(e?.objectMode!==!0&&p?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:p})},d=p=>i?o:(i=!0,p!=null?u(p):l({done:!0})),h=()=>(n=new yn,d(),{done:!0}),b=p=>(d(p),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:h,throw:b,push:f,end:d,get readableLength(){return n.size},onEmpty:async p=>{let g=p?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let E,x;g!=null&&(E=new Promise((A,_)=>{x=()=>{_(new Su)},g.addEventListener("abort",x)}));try{await Promise.race([a.promise,E])}finally{x!=null&&g!=null&&g?.removeEventListener("abort",x)}}},t==null)return o;let m=o;return o={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(p){return m.throw(p),t!=null&&(t(p),t=void 0),{done:!0}},return(){return m.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(p){return m.end(p),t!=null&&(t(p),t=void 0),o},get readableLength(){return m.readableLength},onEmpty:p=>m.onEmpty(p)},o}var Au=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},kp=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function To(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=e,a,c,u=new Promise((f,d)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(i?.aborted){d(kp(i));return}if(i&&(c=()=>{d(kp(i))},i.addEventListener("abort",c,{once:!0})),r.then(f,d),t===Number.POSITIVE_INFINITY)return;let h=new Au;a=s.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(b){d(b)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?f():o instanceof Error?d(o):(h.message=o??`Promise timed out after ${t} milliseconds`,d(h))},t)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var Zb=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 Qb(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}=Zb(r),f=async(...h)=>{let b=t.multiArgs?h:h[0];if(t.filter)try{if(!await t.filter(b))return}catch(m){n(),i(m);return}c.push(b),t.count===c.length&&(n(),s(c))},d=(...h)=>{n(),i(t.rejectionMultiArgs?h:h[0])};n=()=>{for(let h of a)u(h,f);for(let h of t.rejectionEvents)a.includes(h)||u(h,d)};for(let h of a)l(h,f);for(let h of t.rejectionEvents)a.includes(h)||l(h,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=To(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function lt(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Qb(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}function Lo(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var fi=class extends Error{remainingPoints;msBeforeNext;consumedPoints;isFirstInDuration;constructor(e="Rate limit exceeded",t){super(e),this.name="RateLimitError",this.remainingPoints=t.remainingPoints,this.msBeforeNext=t.msBeforeNext,this.consumedPoints=t.consumedPoints,this.isFirstInDuration=t.isFirstInDuration}},di=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}},Ir=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};function Jb(r){return r.reason}function Ve(r,e,t){if(e==null||r==null)return r;let n=t?.translateError??Jb;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;return Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})]).finally(()=>{o!=null&&e.removeEventListener("abort",o)})}var hi=class{deferred;signal;onProgress;constructor(e){this.signal=e?.signal,this.onProgress=e?.onProgress,this.deferred=xe(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new tt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function ew(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var pi=class{id;fn;options;recipients;status;timeline;controller;dispatchingProgress;constructor(e,t){this.id=ew(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.dispatchingProgress=!1,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new tt),this.cleanup())}async join(e){let t=new hi(e);return this.recipients.push(t),e?.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ve(this.fn({...this.options??{},signal:this.controller.signal,onProgress:t=>{if(!this.dispatchingProgress){this.dispatchingProgress=!0;try{this.recipients.forEach(n=>{n.onProgress?.(t)})}finally{this.dispatchingProgress=!1}}}}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var wn=class extends De{concurrency;maxSize;queue;pending;sort;paused;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.paused=!1,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[],this.emitEmpty=Lo(this.emitEmpty.bind(this),1),this.emitIdle=Lo(this.emitIdle.bind(this),1)}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}pause(){this.paused=!0}resume(){this.paused&&(this.paused=!1,this.tryToStartAnother())}tryToStartAnother(){if(this.paused)return!1;if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new di;let n=new pi(e,t);this.enqueue(n),this.safeDispatchEvent("add");let o=n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s});return this.tryToStartAnother(),o}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new tt)}),this.clear()}async onEmpty(e){this.size!==0&&await lt(this,"empty",e)}async onSizeLessThan(e,t){this.size<e||await lt(this,"next",{...t,filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await lt(this,"idle",e)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=bn({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new tt("Queue aborted"))};this.addEventListener("completed",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};function bt(r){let e=new globalThis.AbortController;function t(){let s=r.filter(i=>i?.aborted===!0).map(i=>i?.reason).pop();e.abort(s);for(let i of r)i?.removeEventListener!=null&&i.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 xn=class{movingAverage;variance;deviation;forecast;timeSpan;previousTime;constructor(e){this.timeSpan=e,this.movingAverage=0,this.variance=0,this.deviation=0,this.forecast=0}alpha(e,t){return 1-Math.exp(-(e-t)/this.timeSpan)}push(e,t=Date.now()){if(this.previousTime!=null){let n=this.alpha(t,this.previousTime),o=e-this.movingAverage,s=n*o;this.movingAverage=n*e+(1-n)*this.movingAverage,this.variance=(1-n)*(this.variance+o*s),this.deviation=Math.sqrt(this.variance),this.forecast=this.movingAverage+n*o}else this.movingAverage=e;this.previousTime=t}};var tw=1.2,rw=2,nw=5e3,ow=6e4,sw=5e3,mi=class{success;failure;next;metric;timeoutMultiplier;failureMultiplier;minTimeout;maxTimeout;constructor(e={}){let t=e.interval??sw;this.success=new xn(t),this.failure=new xn(t),this.next=new xn(t),this.failureMultiplier=e.failureMultiplier??rw,this.timeoutMultiplier=e.timeoutMultiplier??tw,this.minTimeout=e.minTimeout??nw,this.maxTimeout=e.maxTimeout??ow,e.metricName!=null&&(this.metric=e.metrics?.registerMetricGroup(e.metricName))}getTimeoutSignal(e={}){let t=Math.round(this.next.movingAverage*(e.timeoutFactor??this.timeoutMultiplier));t<this.minTimeout&&(t=this.minTimeout),t>this.maxTimeout&&(t=this.maxTimeout);let n=AbortSignal.timeout(t),o=bt([e.signal,n]);return o.start=Date.now(),o.timeout=t,o}cleanUp(e){e.clear();let t=Date.now()-e.start;e.aborted?(this.failure.push(t),this.next.push(t*this.failureMultiplier),this.metric?.update({failureMovingAverage:this.failure.movingAverage,failureDeviation:this.failure.deviation,failureForecast:this.failure.forecast,failureVariance:this.failure.variance,failure:t})):(this.success.push(t),this.next.push(t),this.metric?.update({successMovingAverage:this.success.movingAverage,successDeviation:this.success.deviation,successForecast:this.success.forecast,successVariance:this.success.variance,success:t}))}};var _u=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=xe(),this.haveNext=xe()}[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=xe(),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=xe(),await Ve(this.readNext.promise,t?.signal,t)}};function Op(){return new _u}function Np(r){return r[Symbol.asyncIterator]!=null}async function iw(r,e,t){try{await Promise.all(r.map(async n=>{for(;;){let{value:o,done:s}=await n.next();if(s===!0)break;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*aw(r){let e=new AbortController,t=Op(),n=r.map(o=>Np(o)?o[Symbol.asyncIterator]():o[Symbol.iterator]());iw(n,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort();for(let o of n)try{Promise.resolve(o.return?.()).catch(()=>{})}catch{}}}function*cw(r){for(let e of r)yield*e}function lw(...r){let e=[];for(let t of r)Np(t)||e.push(t);return e.length===r.length?cw(e):aw(r)}var En=lw;var uw=4194304,gi=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Cu=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Tu=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Lu=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function fw(r){return typeof r?.closeRead=="function"}function dw(r){return typeof r?.close=="function"}function Iu(r){return fw(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:dw(r)?r.status!=="open":!1}function hw(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Pu(r,e){let t=e?.maxBufferSize??uw,n=new re,o,s=!1;if(!hw(r))throw new R("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 gi("Stream was unwrapped");if(Iu(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new Ir(`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 Ve(o.promise,u?.signal),Iu(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let d=u?.bytes??n.byteLength;if(n.byteLength<d){if(Iu(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,d),new Ir(`Unexpected EOF - stream closed while reading ${n.byteLength}/${d} bytes`);return l.read(u)}let h=n.sublist(0,d);return n.consume(d),h},async write(u,f){if(s===!0)throw new gi("Stream was unwrapped");r.send(u)||await lt(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.unshift(n))),r}};return l}function yi(r,e={}){let t=Pu(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=be(e.maxDataLength));let n=e?.lengthDecoder??ur,o=e?.lengthEncoder??jt;return{async read(i){let a=-1,c=new re;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 Cu("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Lu(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Tu(`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 Ir(`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 Ir(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new re(o(i.byteLength),i),a)},async writeV(i,a){let c=new re(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}var bi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},vn=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},wi=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Po=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function xi(r){return r[Symbol.asyncIterator]!=null}function Mp(r,e){if(r.byteLength>e)throw new vn("Message length too long")}var vi=r=>{let e=be(r),t=ye(e);return jt(r,t),vi.bytes=e,t};vi.bytes=0;function Si(r,e){e=e??{};let t=e.lengthEncoder??vi,n=e?.maxDataLength??4194304;function*o(s){Mp(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return xi(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}Si.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??vi,n=e?.maxDataLength??4194304;return Mp(r,n),new re(t(r.byteLength),r)};var Cr;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Cr||(Cr={}));var Ru=r=>{let e=ur(r);return Ru.bytes=be(e),e};Ru.bytes=0;function Du(r,e){let t=new re,n=Cr.LENGTH,o=-1,s=e?.lengthDecoder??Ru,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Cr.LENGTH)try{if(o=s(t),o<0)throw new bi("Invalid message length");if(o>a)throw new vn("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Cr.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new wi("Message length length too long");break}throw l}if(n===Cr.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Cr.LENGTH}}}return xi(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Po("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Po("Unexpected end of input")})()}Du.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 Du(n,{...e??{},onLength:s=>{t=s}})};var Ai=class extends wn{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var _i=class extends wn{constructor(e={}){super({...e,sort:(t,n)=>t.options.priority>n.options.priority?-1:t.options.priority<n.options.priority?1:0})}};var Ii=class{memoryStorage;points;duration;blockDuration;keyPrefix;constructor(e={}){this.points=e.points??4,this.duration=e.duration??1,this.blockDuration=e.blockDuration??0,this.keyPrefix=e.keyPrefix??"rlflx",this.memoryStorage=new ku}consume(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);if(i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.consumedPoints>this.points)throw this.blockDuration>0&&i.consumedPoints<=this.points+t&&(i=this.memoryStorage.set(o,i.consumedPoints,this.blockDuration)),new fi("Rate limit exceeded",i);return i}penalty(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}reward(e,t=1,n={}){let o=this.getKey(e),s=this._getKeySecDuration(n),i=this.memoryStorage.incrby(o,-t,s);return i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i}block(e,t){let n=t*1e3,o=this.points+1;return this.memoryStorage.set(this.getKey(e),o,t),{remainingPoints:0,msBeforeNext:n===0?-1:n,consumedPoints:o,isFirstInDuration:!1}}set(e,t,n=0){let o=(n>=0?n:this.duration)*1e3;return this.memoryStorage.set(this.getKey(e),t,n),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:t,isFirstInDuration:!1}}get(e){let t=this.memoryStorage.get(this.getKey(e));return t!=null&&(t.remainingPoints=Math.max(this.points-t.consumedPoints,0)),t}delete(e){this.memoryStorage.delete(this.getKey(e))}_getKeySecDuration(e){return e?.customDuration!=null&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}},ku=class{storage;constructor(){this.storage=new Map}incrby(e,t,n){let o=this.storage.get(e);if(o!=null){let s=o.expiresAt!=null?o.expiresAt.getTime()-new Date().getTime():-1;return o.expiresAt==null||s>0?(o.value+=t,{remainingPoints:0,msBeforeNext:s,consumedPoints:o.value,isFirstInDuration:!1}):this.set(e,t,n)}return this.set(e,t,n)}set(e,t,n){let o=n*1e3,s=this.storage.get(e);s!=null&&clearTimeout(s.timeoutId);let i={value:t,expiresAt:o>0?new Date(Date.now()+o):void 0};return this.storage.set(e,i),o>0&&(i.timeoutId=setTimeout(()=>{this.storage.delete(e)},o),i.timeoutId.unref!=null&&i.timeoutId.unref()),{remainingPoints:0,msBeforeNext:o===0?-1:o,consumedPoints:i.value,isFirstInDuration:!0}}get(e){let t=this.storage.get(e);if(t!=null)return{remainingPoints:0,msBeforeNext:t.expiresAt!=null?t.expiresAt.getTime()-new Date().getTime():-1,consumedPoints:t.value,isFirstInDuration:!1}}delete(e){let t=this.storage.get(e);return t!=null?(t.timeoutId!=null&&clearTimeout(t.timeoutId),this.storage.delete(e),!0):!1}};var Ou=class extends Map{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Te(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Ou({name:e,metrics:t}):n=new Map,n}var Nu=class extends et{metric;constructor(e){super();let{name:t,metrics:n}=e;this.metric=n.registerMetric(t),this.updateComponentMetric()}set(e,t){return super.set(e,t),this.updateComponentMetric(),this}delete(e){let t=super.delete(e);return this.updateComponentMetric(),t}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Mu(r){let{name:e,metrics:t}=r,n;return t!=null?n=new Nu({name:e,metrics:t}):n=new et,n}var Do;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.publicKey!=null&&s.publicKey.byteLength>0&&(i.uint32(10),i.bytes(s.publicKey)),s.payloadType!=null&&s.payloadType.byteLength>0&&(i.uint32(18),i.bytes(s.payloadType)),s.payload!=null&&s.payload.byteLength>0&&(i.uint32(26),i.bytes(s.payload)),s.signature!=null&&s.signature.byteLength>0&&(i.uint32(42),i.bytes(s.signature)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={publicKey:le(0),payloadType:le(0),payload:le(0),signature:le(0)},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.publicKey=s.bytes();break}case 2:{c.payloadType=s.bytes();break}case 3:{c.payload=s.bytes();break}case 5:{c.signature=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.publicKey`,value:s.bytes()};break}case 2:{yield{field:`${a}.payloadType`,value:s.bytes()};break}case 3:{yield{field:`${a}.payload`,value:s.bytes()};break}case 5:{yield{field:`${a}.signature`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Do||(Do={}));var Ci=class extends Error{constructor(e="Invalid signature"){super(e),this.name="InvalidSignatureError"}};var Sn=class r{static createFromProtobuf=e=>{let t=Do.decode(e),n=en(t.publicKey);return new r({publicKey:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t,n)=>{if(t==null)throw new Error("Missing private key");let o=e.domain,s=e.codec,i=e.marshal(),a=Bp(o,s,i),c=await t.sign(a.subarray(),n);return new r({publicKey:t.publicKey,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t,n)=>{let o=r.createFromProtobuf(e);if(!await o.validate(t,n))throw new Ci("Envelope signature is not valid for the given domain");return o};publicKey;payloadType;payload;signature;marshaled;constructor(e){let{publicKey:t,payloadType:n,payload:o,signature:s}=e;this.publicKey=t,this.payloadType=n,this.payload=o,this.signature=s}marshal(){return this.marshaled==null&&(this.marshaled=Do.encode({publicKey:Xe(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return e==null?!1:Z(this.marshal(),e.marshal())}async validate(e,t){let n=Bp(e,this.payloadType,this.payload);return this.publicKey.verify(n.subarray(),this.signature,t)}},Bp=(r,e,t)=>{let n=D(r),o=jt(n.byteLength),s=jt(e.length),i=jt(t.length);return new re(o,n,s,e,i,t)};var Fp="libp2p-peer-record",Up=Uint8Array.from([3,1]);var Ro;(function(r){let e;(function(i){let a;i.codec=()=>(a==null&&(a=Me((f,d,h={})=>{h.lengthDelimited!==!1&&d.fork(),f.multiaddr!=null&&f.multiaddr.byteLength>0&&(d.uint32(10),d.bytes(f.multiaddr)),h.lengthDelimited!==!1&&d.ldelim()},(f,d,h={})=>{let b={multiaddr:le(0)},m=d==null?f.len:f.pos+d;for(;f.pos<m;){let p=f.uint32();p>>>3===1?b.multiaddr=f.bytes():f.skipType(p&7)}return b},function*(f,d,h,b={}){let m=d==null?f.len:f.pos+d;for(;f.pos<m;){let p=f.uint32();p>>>3===1?yield{field:`${h}.multiaddr`,value:f.bytes()}:f.skipType(p&7)}})),a);function c(f){return Oe(f,i.codec())}i.encode=c;function l(f,d){return ke(f,i.codec(),d)}i.decode=l;function u(f,d){return Ne(f,i.codec(),d)}i.stream=u})(e=r.AddressInfo||(r.AddressInfo={}));let t;r.codec=()=>(t==null&&(t=Me((i,a,c={})=>{if(c.lengthDelimited!==!1&&a.fork(),i.peerId!=null&&i.peerId.byteLength>0&&(a.uint32(10),a.bytes(i.peerId)),i.seq!=null&&i.seq!==0n&&(a.uint32(16),a.uint64(i.seq)),i.addresses!=null&&i.addresses.length>0)for(let l of i.addresses)a.uint32(26),r.AddressInfo.codec().encode(l,a);c.lengthDelimited!==!1&&a.ldelim()},(i,a,c={})=>{let l={peerId:le(0),seq:0n,addresses:[]},u=a==null?i.len:i.pos+a;for(;i.pos<u;){let f=i.uint32();switch(f>>>3){case 1:{l.peerId=i.bytes();break}case 2:{l.seq=i.uint64();break}case 3:{if(c.limits?.addresses!=null&&l.addresses.length===c.limits.addresses)throw new Je('Decode error - repeated field "addresses" had too many elements');l.addresses.push(r.AddressInfo.codec().decode(i,i.uint32(),{limits:c.limits?.addresses$}));break}default:{i.skipType(f&7);break}}}return l},function*(i,a,c,l={}){let u={addresses:0},f=a==null?i.len:i.pos+a;for(;i.pos<f;){let d=i.uint32();switch(d>>>3){case 1:{yield{field:`${c}.peerId`,value:i.bytes()};break}case 2:{yield{field:`${c}.seq`,value:i.uint64()};break}case 3:{if(l.limits?.addresses!=null&&u.addresses===l.limits.addresses)throw new Je('Streaming decode error - repeated field "addresses" had too many elements');for(let h of r.AddressInfo.codec().stream(i,i.uint32(),`${c}.addresses[]`,{limits:l.limits?.addresses$}))yield{...h,index:u.addresses};u.addresses++;break}default:{i.skipType(d&7);break}}}})),t);function n(i){return Oe(i,r.codec())}r.encode=n;function o(i,a){return ke(i,r.codec(),a)}r.decode=o;function s(i,a){return Ne(i,r.codec(),a)}r.stream=s})(Ro||(Ro={}));function Kp(r,e){let t=(n,o)=>n.toString().localeCompare(o.toString());return r.length!==e.length?!1:(e.sort(t),r.sort(t).every((n,o)=>e[o].equals(n)))}var Tr=class r{static createFromProtobuf=e=>{let t=Ro.decode(e),n=tn(Et(t.peerId)),o=(t.addresses??[]).map(i=>te(i.multiaddr)),s=t.seq;return new r({peerId:n,multiaddrs:o,seqNumber:s})};static DOMAIN=Fp;static CODEC=Up;peerId;multiaddrs;seqNumber;domain=r.DOMAIN;codec=r.CODEC;marshaled;constructor(e){let{peerId:t,multiaddrs:n,seqNumber:o}=e;this.peerId=t,this.multiaddrs=n??[],this.seqNumber=o??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Ro.encode({peerId:this.peerId.toMultihash().bytes,seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof r)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Kp(this.multiaddrs,e.multiaddrs))}};function mw(r){return r[Symbol.asyncIterator]!=null}function gw(r){if(mw(r))return(async()=>{let t=[];for await(let n of r)t.push(n);return t})();let e=[];for(let t of r)e.push(t);return e}var ko=gw;var He=class extends Error{static name="AbortError";name="AbortError";constructor(e="The operation was aborted",...t){super(e,...t)}};async function Ti(r,e,t,n){let o=new He(n?.errorMessage);n?.errorCode!=null&&(o.code=n.errorCode);let s=n?.errorEvent??"error";return t?.aborted===!0?Promise.reject(o):new Promise((i,a)=>{function c(){Fu(t,"abort",f),Fu(r,e,l),Fu(r,s,u)}let l=d=>{try{if(n?.filter?.(d)===!1)return}catch(h){c(),a(h);return}c(),i(d)},u=d=>{if(c(),d instanceof Error){a(d);return}a(d.detail??n?.error??new Error(`The "${n?.errorEvent}" event was emitted but the event had no '.detail' field. Pass an 'error' option to race-event to change this message.`))},f=()=>{c(),a(o)};Bu(t,"abort",f),Bu(r,e,l),Bu(r,s,u)})}function Bu(r,e,t){r!=null&&(qp(r)?r.addEventListener(e,t):r.addListener(e,t))}function Fu(r,e,t){r!=null&&(qp(r)?r.removeEventListener(e,t):r.removeListener(e,t))}function qp(r){return typeof r.addEventListener=="function"&&typeof r.removeEventListener=="function"}var Li=class extends Error{static name="QueueFullError";constructor(e="The queue was full"){super(e),this.name="QueueFullError"}};var Pi=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Promise.withResolvers(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new He)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function yw(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Di=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=yw(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,this.controller.signal,this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new He),this.cleanup())}async join(e={}){let t=new Pi(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Ve(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};function Uu(r,e){let t,n=function(){let o=function(){t=void 0,r()};clearTimeout(t),t=setTimeout(o,e)};return n.start=()=>{},n.stop=()=>{clearTimeout(t)},n}var Oo=class extends De{concurrency;maxSize;queue;pending;sort;autoStart;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.maxSize=e.maxSize??Number.POSITIVE_INFINITY,this.pending=0,this.autoStart=e.autoStart??!0,this.sort=e.sort,this.queue=[],this.emitEmpty=Uu(this.emitEmpty.bind(this),1),this.emitIdle=Uu(this.emitIdle.bind(this),1)}[Symbol.asyncIterator](){return this.toGenerator()}emitEmpty(){this.size===0&&this.safeDispatchEvent("empty")}emitIdle(){this.running===0&&this.safeDispatchEvent("idle")}tryToStartAnother(){if(this.size===0)return this.emitEmpty(),this.running===0&&this.emitIdle(),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.safeDispatchEvent("next"),this.autoStart&&this.tryToStartAnother()}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}start(){this.autoStart===!1&&(this.autoStart=!0,this.tryToStartAnother())}pause(){this.autoStart=!1}async add(e,t){if(t?.signal?.throwIfAborted(),this.size===this.maxSize)throw new Li;let n=new Di(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.autoStart&&this.tryToStartAnother(),n.join(t).then(o=>(this.safeDispatchEvent("success",{detail:{job:n,result:o}}),o)).catch(o=>{if(n.status==="queued"){for(let s=0;s<this.queue.length;s++)if(this.queue[s]===n){this.queue.splice(s,1);break}}throw this.safeDispatchEvent("failure",{detail:{job:n,error:o}}),o})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new He)}),this.clear()}async onEmpty(e){this.size!==0&&await Ti(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await Ti(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await Ti(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=bn({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},o=c=>{c.detail!=null&&t.push(c.detail.result)},s=c=>{n(c.detail.error)},i=()=>{n()},a=()=>{n(new He("Queue aborted"))};this.addEventListener("success",o),this.addEventListener("failure",s),this.addEventListener("idle",i),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("success",o),this.removeEventListener("failure",s),this.removeEventListener("idle",i),e?.signal?.removeEventListener("abort",a),n()}}};var Ri="lock:worker:request-read",ki="lock:worker:abort-read-request",Oi="lock:worker:release-read",Ni="lock:master:grant-read",Mi="lock:master:error-read",Bi="lock:worker:request-write",Fi="lock:worker:abort-write-request",Ui="lock:worker:release-write",Ki="lock:master:grant-write",qi="lock:master:error-write",$i="lock:worker:finalize",zi="mortice",$p={singleProcess:!1};var Ku=(r,e,t,n,o,s,i,a,c)=>l=>{if(l.data==null)return;let u={type:l.data.type,name:l.data.name,identifier:l.data.identifier};u.type===o&&r.safeDispatchEvent(t,{detail:{name:u.name,identifier:u.identifier,handler:async()=>{e.postMessage({type:c,name:u.name,identifier:u.identifier}),await new Promise(f=>{let d=h=>{if(h?.data==null)return;let b={type:h.data.type,name:h.data.name,identifier:h.data.identifier};b.type===a&&b.identifier===u.identifier&&(e.removeEventListener("message",d),f())};e.addEventListener("message",d)})},onError:f=>{e.postMessage({type:i,name:u.name,identifier:u.identifier,error:{message:f.message,name:f.name,stack:f.stack}})}}}),u.type===s&&r.safeDispatchEvent(n,{detail:{name:u.name,identifier:u.identifier}}),u.type===$i&&r.safeDispatchEvent("finalizeRequest",{detail:{name:u.name}})};var zp=(r=10)=>Math.random().toString().substring(2,r+2);var Vi=class{name;channel;constructor(e){this.name=e,this.channel=new BroadcastChannel(zi)}readLock(e){return this.sendRequest(Ri,ki,Ni,Mi,Oi,e)}writeLock(e){return this.sendRequest(Bi,Fi,Ki,qi,Ui,e)}finalize(){this.channel.postMessage({type:$i,name:this.name}),this.channel.close()}async sendRequest(e,t,n,o,s,i){i?.signal?.throwIfAborted();let a=zp();return this.channel.postMessage({type:e,identifier:a,name:this.name}),new Promise((c,l)=>{let u=()=>{this.channel.postMessage({type:t,identifier:a,name:this.name})};i?.signal?.addEventListener("abort",u,{once:!0});let f=d=>{if(d.data?.identifier===a&&(d.data?.type===n&&(this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u),c(()=>{this.channel.postMessage({type:s,identifier:a,name:this.name})})),d.data.type===o)){this.channel.removeEventListener("message",f),i?.signal?.removeEventListener("abort",u);let h=new Error;d.data.error!=null&&(h.message=d.data.error.message,h.name=d.data.error.name,h.stack=d.data.error.stack),l(h)}};this.channel.addEventListener("message",f)})}};var Vp=r=>{if(r=Object.assign({},$p,r),!!globalThis.document||r.singleProcess){let t=new BroadcastChannel(zi),n=new De;return t.addEventListener("message",Ku(n,t,"requestReadLock","abortReadLockRequest",Ri,ki,Mi,Oi,Ni)),t.addEventListener("message",Ku(n,t,"requestWriteLock","abortWriteLockRequest",Bi,Fi,qi,Ui,Ki)),n}return new Vi(r.name)};var Lr=new Map,No;function Hp(r){return typeof r?.readLock=="function"&&typeof r?.writeLock=="function"}function bw(r){if(No==null&&(No=Vp(r),!Hp(No))){let e=No;e.addEventListener("requestReadLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=Lr.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortReadLockRequest",a),s.readLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortReadLockRequest",a)})}),e.addEventListener("requestWriteLock",t=>{let n=t.detail.name,o=t.detail.identifier,s=Lr.get(n);if(s==null)return;let i=new AbortController,a=c=>{c.detail.name!==n||c.detail.identifier!==o||i.abort()};e.addEventListener("abortWriteLockRequest",a),s.writeLock({signal:i.signal}).then(async c=>{await t.detail.handler().finally(()=>{c()})}).catch(c=>{t.detail.onError(c)}).finally(()=>{e.removeEventListener("abortWriteLockRequest",a)})}),e.addEventListener("finalizeRequest",t=>{let n=t.detail.name,o=Lr.get(n);o?.finalize()})}return No}async function qu(r,e){let t,n,o=new Promise((i,a)=>{t=i,n=a}),s=()=>{n(new He)};return e?.signal?.addEventListener("abort",s,{once:!0}),r.add(async()=>{await new Promise(i=>{t(()=>{e?.signal?.removeEventListener("abort",s),i()})})},{signal:e?.signal}).catch(i=>{n(i)}),o}var Wp=(r,e)=>{let t=Lr.get(r);if(t!=null)return t;let n=bw(e);if(Hp(n))return t=n,Lr.set(r,t),t;let o=new Oo({concurrency:1}),s;return t={async readLock(i){if(s!=null)return qu(s,i);s=new Oo({concurrency:e.concurrency,autoStart:!1});let a=s,c=qu(s,i);return o.add(async()=>{a.start(),await a.onIdle().then(()=>{s===a&&(s=null)})}),c},async writeLock(i){return s=null,qu(o,i)},finalize:()=>{Lr.delete(r)},queue:o},Lr.set(r,t),e.autoFinalize===!0&&o.addEventListener("idle",()=>{t.finalize()},{once:!0}),t};var ww={name:"lock",concurrency:1/0,singleProcess:!1,autoFinalize:!1};function $u(r){let e=Object.assign({},ww,r);return Wp(e.name,e)}var Pt;(function(r){let e;(function(a){let c;a.codec=()=>(c==null&&(c=Me((d,h,b={})=>{b.lengthDelimited!==!1&&h.fork(),d.key!=null&&d.key!==""&&(h.uint32(10),h.string(d.key)),d.value!=null&&d.value.byteLength>0&&(h.uint32(18),h.bytes(d.value)),b.lengthDelimited!==!1&&h.ldelim()},(d,h,b={})=>{let m={key:"",value:le(0)},p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{m.key=d.string();break}case 2:{m.value=d.bytes();break}default:{d.skipType(g&7);break}}}return m},function*(d,h,b,m={}){let p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{yield{field:`${b}.key`,value:d.string()};break}case 2:{yield{field:`${b}.value`,value:d.bytes()};break}default:{d.skipType(g&7);break}}}})),c);function l(d){return Oe(d,a.codec())}a.encode=l;function u(d,h){return ke(d,a.codec(),h)}a.decode=u;function f(d,h){return Ne(d,a.codec(),h)}a.stream=f})(e=r.Peer$metadataEntry||(r.Peer$metadataEntry={}));let t;(function(a){let c;a.codec=()=>(c==null&&(c=Me((d,h,b={})=>{b.lengthDelimited!==!1&&h.fork(),d.key!=null&&d.key!==""&&(h.uint32(10),h.string(d.key)),d.value!=null&&(h.uint32(18),Bo.codec().encode(d.value,h)),b.lengthDelimited!==!1&&h.ldelim()},(d,h,b={})=>{let m={key:""},p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{m.key=d.string();break}case 2:{m.value=Bo.codec().decode(d,d.uint32(),{limits:b.limits?.value});break}default:{d.skipType(g&7);break}}}return m},function*(d,h,b,m={}){let p=h==null?d.len:d.pos+h;for(;d.pos<p;){let g=d.uint32();switch(g>>>3){case 1:{yield{field:`${b}.key`,value:d.string()};break}case 2:{yield*Bo.codec().stream(d,d.uint32(),`${b}.value`,{limits:m.limits?.value});break}default:{d.skipType(g&7);break}}}})),c);function l(d){return Oe(d,a.codec())}a.encode=l;function u(d,h){return ke(d,a.codec(),h)}a.decode=u;function f(d,h){return Ne(d,a.codec(),h)}a.stream=f})(t=r.Peer$tagsEntry||(r.Peer$tagsEntry={}));let n;r.codec=()=>(n==null&&(n=Me((a,c,l={})=>{if(l.lengthDelimited!==!1&&c.fork(),a.addresses!=null&&a.addresses.length>0)for(let u of a.addresses)c.uint32(10),Mo.codec().encode(u,c);if(a.protocols!=null&&a.protocols.length>0)for(let u of a.protocols)c.uint32(18),c.string(u);if(a.publicKey!=null&&(c.uint32(34),c.bytes(a.publicKey)),a.peerRecordEnvelope!=null&&(c.uint32(42),c.bytes(a.peerRecordEnvelope)),a.metadata!=null&&a.metadata.size>0)for(let[u,f]of a.metadata.entries())c.uint32(50),r.Peer$metadataEntry.codec().encode({key:u,value:f},c);if(a.tags!=null&&a.tags.size>0)for(let[u,f]of a.tags.entries())c.uint32(58),r.Peer$tagsEntry.codec().encode({key:u,value:f},c);a.updated!=null&&(c.uint32(64),c.uint64Number(a.updated)),l.lengthDelimited!==!1&&c.ldelim()},(a,c,l={})=>{let u={addresses:[],protocols:[],metadata:new Map,tags:new Map},f=c==null?a.len:a.pos+c;for(;a.pos<f;){let d=a.uint32();switch(d>>>3){case 1:{if(l.limits?.addresses!=null&&u.addresses.length===l.limits.addresses)throw new Je('Decode error - repeated field "addresses" had too many elements');u.addresses.push(Mo.codec().decode(a,a.uint32(),{limits:l.limits?.addresses$}));break}case 2:{if(l.limits?.protocols!=null&&u.protocols.length===l.limits.protocols)throw new Je('Decode error - repeated field "protocols" had too many elements');u.protocols.push(a.string());break}case 4:{u.publicKey=a.bytes();break}case 5:{u.peerRecordEnvelope=a.bytes();break}case 6:{if(l.limits?.metadata!=null&&u.metadata.size===l.limits.metadata)throw new co('Decode error - map field "metadata" had too many elements');let h=r.Peer$metadataEntry.codec().decode(a,a.uint32(),{limits:{value:l.limits?.metadata$value}});u.metadata.set(h.key,h.value);break}case 7:{if(l.limits?.tags!=null&&u.tags.size===l.limits.tags)throw new co('Decode error - map field "tags" had too many elements');let h=r.Peer$tagsEntry.codec().decode(a,a.uint32(),{limits:{value:l.limits?.tags$value}});u.tags.set(h.key,h.value);break}case 8:{u.updated=a.uint64Number();break}default:{a.skipType(d&7);break}}}return u},function*(a,c,l,u={}){let f={addresses:0,protocols:0,metadata:0,tags:0},d=c==null?a.len:a.pos+c;for(;a.pos<d;){let h=a.uint32();switch(h>>>3){case 1:{if(u.limits?.addresses!=null&&f.addresses===u.limits.addresses)throw new Je('Streaming decode error - repeated field "addresses" had too many elements');for(let b of Mo.codec().stream(a,a.uint32(),`${l}.addresses[]`,{limits:u.limits?.addresses$}))yield{...b,index:f.addresses};f.addresses++;break}case 2:{if(u.limits?.protocols!=null&&f.protocols===u.limits.protocols)throw new Je('Streaming decode error - repeated field "protocols" had too many elements');yield{field:`${l}.protocols[]`,index:f.protocols,value:a.string()},f.protocols++;break}case 4:{yield{field:`${l}.publicKey`,value:a.bytes()};break}case 5:{yield{field:`${l}.peerRecordEnvelope`,value:a.bytes()};break}case 6:{if(u.limits?.metadata!=null&&f.metadata===u.limits.metadata)throw new Je('Decode error - map field "metadata" had too many elements');yield*r.Peer$metadataEntry.codec().stream(a,a.uint32(),`${l}.metadata{}`,{limits:{value:u.limits?.metadata$value}}),f.metadata++;break}case 7:{if(u.limits?.tags!=null&&f.tags===u.limits.tags)throw new Je('Decode error - map field "tags" had too many elements');yield*r.Peer$tagsEntry.codec().stream(a,a.uint32(),`${l}.tags{}`,{limits:{value:u.limits?.tags$value}}),f.tags++;break}case 8:{yield{field:`${l}.updated`,value:a.uint64Number()};break}default:{a.skipType(h&7);break}}}})),n);function o(a){return Oe(a,r.codec())}r.encode=o;function s(a,c){return ke(a,r.codec(),c)}r.decode=s;function i(a,c){return Ne(a,r.codec(),c)}r.stream=i})(Pt||(Pt={}));var Mo;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(i.uint32(10),i.bytes(s.multiaddr)),s.isCertified!=null&&(i.uint32(16),i.bool(s.isCertified)),s.observed!=null&&(i.uint32(24),i.uint64Number(s.observed)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={multiaddr:le(0)},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.multiaddr=s.bytes();break}case 2:{c.isCertified=s.bool();break}case 3:{c.observed=s.uint64Number();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.multiaddr`,value:s.bytes()};break}case 2:{yield{field:`${a}.isCertified`,value:s.bool()};break}case 3:{yield{field:`${a}.observed`,value:s.uint64Number()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Mo||(Mo={}));var Bo;(function(r){let e;r.codec=()=>(e==null&&(e=Me((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.value!=null&&s.value!==0&&(i.uint32(8),i.uint32(s.value)),s.expiry!=null&&(i.uint32(16),i.uint64(s.expiry)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={value:0},l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{c.value=s.uint32();break}case 2:{c.expiry=s.uint64();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let l=i==null?s.len:s.pos+i;for(;s.pos<l;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.value`,value:s.uint32()};break}case 2:{yield{field:`${a}.expiry`,value:s.uint64()};break}default:{s.skipType(u&7);break}}}})),e);function t(s){return Oe(s,r.codec())}r.encode=t;function n(s,i){return ke(s,r.codec(),i)}r.decode=n;function o(s,i){return Ne(s,r.codec(),i)}r.stream=o})(Bo||(Bo={}));function xw(r,e){if(r.publicKey!=null||e.publicKey==null)return r;let t;r.type==="RSA"&&(t=r.toMultihash());let n=en(e.publicKey,t);return Dl(n)}function Gp(r,e,t){let n=Pt.decode(e);return An(r,n,t)}function An(r,e,t){let n=new Map,o=BigInt(Date.now());for(let[s,i]of e.tags.entries())i.expiry!=null&&i.expiry<o||n.set(s,i);return{...e,id:xw(r,e),addresses:e.addresses.filter(({observed:s})=>s!=null&&s>Date.now()-t).map(({multiaddr:s,isCertified:i})=>({multiaddr:te(s),isCertified:i??!1})),metadata:e.metadata,peerRecordEnvelope:e.peerRecordEnvelope??void 0,tags:n}}function jp(r,e){return Ew(r.addresses,e.addresses)&&vw(r.protocols,e.protocols)&&Sw(r.publicKey,e.publicKey)&&Aw(r.peerRecordEnvelope,e.peerRecordEnvelope)&&_w(r.metadata,e.metadata)&&Iw(r.tags,e.tags)}function Ew(r,e){return Xp(r,e,(t,n)=>!(t.isCertified!==n.isCertified||!Z(t.multiaddr,n.multiaddr)))}function vw(r,e){return Xp(r,e,(t,n)=>t===n)}function Sw(r,e){return Yp(r,e)}function Aw(r,e){return Yp(r,e)}function _w(r,e){return Zp(r,e,(t,n)=>Z(t,n))}function Iw(r,e){return Zp(r,e,(t,n)=>t.value===n.value&&t.expiry===n.expiry)}function Yp(r,e){return r==null&&e==null?!0:r!=null&&e!=null?Z(r,e):!1}function Xp(r,e,t){if(r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function Zp(r,e,t){if(r.size!==e.size)return!1;for(let[n,o]of r.entries()){let s=e.get(n);if(s==null||!t(o,s))return!1}return!0}var Dt="/",Qp=new TextEncoder().encode(Dt),Hi=Qp[0],Pr=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=D(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Hi)throw new Error("Invalid key")}toString(e="utf8"){return q(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Dt))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Qp),this._buf[0]!==Hi){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Hi,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Hi;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let s=t[o],i=n[o];if(s<i)return!0;if(s>i)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Dt).slice(1)}type(){return Cw(this.baseNamespace())}name(){return Tw(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Dt)||(e+=Dt),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Dt):new r(e.slice(0,-1).join(Dt))}child(e){return this.toString()===Dt?e:e.toString()===Dt?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...Lw(e.map(t=>t.namespaces()))])}};function Cw(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Tw(r){let e=r.split(":");return e[e.length-1]}function Lw(r){return[].concat(...r)}var zu="/peers/";function Fo(r){if(!Mt(r)||r.type==null)throw new R("Invalid PeerId");let e=r.toCID().toString();return new Pr(`${zu}${e}`)}async function Jp(r,e,t,n,o){let s=new Map;for(let i of t){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=te(i.multiaddr)),!Qt(i.multiaddr))throw new R("Multiaddr was invalid");if(!await e(r,i.multiaddr,o))continue;let a=i.isCertified??!1,c=i.multiaddr.toString(),l=s.get(c);l!=null?i.isCertified=l.isCertified||a:s.set(c,{multiaddr:i.multiaddr,isCertified:a})}return[...s.values()].sort((i,a)=>i.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({isCertified:i,multiaddr:a})=>{let c=a.getComponents().find(l=>l.code===421)?.value;return r.equals(c)&&(a=a.decapsulate(te(`/p2p/${r}`))),{isCertified:i,multiaddr:a.bytes}})}async function Gi(r,e,t,n){if(e==null)throw new R("Invalid PeerData");if(e.publicKey!=null&&!r.equals(e.publicKey.toMultihash().bytes))throw new R("publicKey does not match peer id");let o=n.existingPeer?.peer;if(o!=null&&!r.equals(o.id))throw new R("peer id did not match existing peer id");let s=o?.addresses??[],i=new Set(o?.protocols??[]),a=o?.metadata??new Map,c=o?.tags??new Map,l=o?.peerRecordEnvelope;if(t==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(i=new Set(e.protocols)),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Wi(d,{validate:em})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Wi(d,{validate:tm,map:rm})}e.peerRecordEnvelope!=null&&(l=e.peerRecordEnvelope)}if(t==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(d=>({isCertified:!1,multiaddr:d}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(i=new Set([...i,...e.protocols])),e.metadata!=null){let d=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,b]of d)b==null?a.delete(h):a.set(h,b);a=Wi([...a.entries()],{validate:em})}if(e.tags!=null){let d=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[b,m]of d)m==null?h.delete(b):h.set(b,m);c=Wi([...h.entries()],{validate:tm,map:rm})}e.peerRecordEnvelope!=null&&(l=e.peerRecordEnvelope)}let u;o?.id.publicKey!=null?u=Xe(o.id.publicKey):e.publicKey!=null?u=Xe(e.publicKey):r.publicKey!=null&&(u=Xe(r.publicKey));let f={addresses:await Jp(r,n.addressFilter??(async()=>!0),s,n.existingPeer?.peerPB.addresses,n),protocols:[...i.values()].sort((d,h)=>d.localeCompare(h)),metadata:a,tags:c,publicKey:u,peerRecordEnvelope:l};return f.addresses.forEach(d=>{d.observed=n.existingPeer?.peerPB.addresses?.find(h=>Z(h.multiaddr,d.multiaddr))?.observed??Date.now()}),r.type!=="RSA"&&delete f.publicKey,f}function Wi(r,e){let t=new Map;for(let[n,o]of r)o!=null&&e.validate(n,o);for(let[n,o]of r.sort(([s],[i])=>s.localeCompare(i)))o!=null&&t.set(n,e.map?.(n,o)??o);return t}function em(r,e){if(typeof r!="string")throw new R("Metadata key must be a string");if(!(e instanceof Uint8Array))throw new R("Metadata value must be a Uint8Array")}function tm(r,e){if(typeof r!="string")throw new R("Tag name must be a string");if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new R("Tag value must be an integer");if(e.value<0||e.value>100)throw new R("Tag value must be between 0-100")}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new R("Tag ttl must be an integer");if(e.ttl<0)throw new R("Tag ttl must be between greater than 0")}}function rm(r,e){let t;e.expiry!=null&&(t=e.expiry),e.ttl!=null&&(t=BigInt(Date.now()+Number(e.ttl)));let n={value:e.value??0};return t!=null&&(n.expiry=t),n}function nm(r){let e=r.toString().split("/")[2],t=me.parse(e,je);return bo(t)}function Vu(r,e,t){let n=nm(r);return Gp(n,e,t)}function Pw(r,e){return{prefix:zu,filters:(r.filters??[]).map(t=>({key:n,value:o})=>t(Vu(n,o,e))),orders:(r.orders??[]).map(t=>(n,o)=>t(Vu(n.key,n.value,e),Vu(o.key,o.value,e)))}}var ji=class{peerId;datastore;locks;addressFilter;log;maxAddressAge;maxPeerAge;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=t.addressFilter,this.locks=Mu({name:"libp2p_peer_store_locks",metrics:e.metrics}),this.maxAddressAge=t.maxAddressAge??36e5,this.maxPeerAge=t.maxPeerAge??216e5}getLock(e){let t=this.locks.get(e);return t==null&&(t={refs:0,lock:$u({name:e.toString(),singleProcess:!0})},this.locks.set(e,t)),t.refs++,t}maybeRemoveLock(e,t){t.refs--,t.refs===0&&(t.lock.finalize(),this.locks.delete(e))}async getReadLock(e,t){let n=this.getLock(e);try{let o=await n.lock.readLock(t);return()=>{o(),this.maybeRemoveLock(e,n)}}catch(o){throw this.maybeRemoveLock(e,n),o}}async getWriteLock(e,t){let n=this.getLock(e);try{let o=await n.lock.writeLock(t);return()=>{o(),this.maybeRemoveLock(e,n)}}catch(o){throw this.maybeRemoveLock(e,n),o}}async has(e,t){try{return await this.load(e,t),!0}catch(n){if(n.name!=="NotFoundError")throw n}return!1}async delete(e,t){this.peerId.equals(e)||await this.datastore.delete(Fo(e),t)}async load(e,t){let n=Fo(e),o=await this.datastore.get(n,t),s=Pt.decode(o);if(this.#n(e,s))throw await this.datastore.delete(n,t),new tr;return An(e,s,this.peerId.equals(e)?1/0:this.maxAddressAge)}async save(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"patch",{...n,addressFilter:this.addressFilter});return this.#t(e,s,o)}async patch(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"patch",{...n,addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,o)}async merge(e,t,n){let o=await this.#e(e,n),s=await Gi(e,t,"merge",{addressFilter:this.addressFilter,existingPeer:o});return this.#t(e,s,o)}async*all(e){for await(let{key:t,value:n}of this.datastore.query(Pw(e??{},this.maxAddressAge),e)){let o=nm(t);if(o.equals(this.peerId))continue;let s=Pt.decode(n);if(this.#n(o,s)){await this.datastore.delete(t,e);continue}yield An(o,s,this.peerId.equals(o)?1/0:this.maxAddressAge)}}async#e(e,t){try{let n=Fo(e),o=await this.datastore.get(n,t),s=Pt.decode(o);if(this.#n(e,s))throw await this.datastore.delete(n,t),new tr;return{peerPB:s,peer:An(e,s,this.maxAddressAge)}}catch(n){n.name!=="NotFoundError"&&this.log.error("invalid peer data found in peer store - %e",n)}}async#t(e,t,n,o){t.updated=Date.now();let s=Pt.encode(t);return await this.datastore.put(Fo(e),s,o),{peer:An(e,t,this.maxAddressAge),previous:n?.peer,updated:n==null||!jp(t,n.peerPB)}}#n(e,t){if(t.updated==null)return!0;if(this.peerId.equals(e))return!1;let n=t.updated<Date.now()-this.maxPeerAge,o=Date.now()-this.maxAddressAge,s=t.addresses.filter(i=>i.observed!=null&&i.observed>o);return n&&s.length===0}};var Hu=class{store;events;peerId;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new ji(e,t)}[Symbol.toStringTag]="@libp2p/peer-store";async forEach(e,t){for await(let n of this.store.all(t))e(n)}async all(e){return ko(this.store.all(e))}async delete(e,t){let n=await this.store.getReadLock(e,t);try{await this.store.delete(e,t)}finally{n()}}async has(e,t){let n=await this.store.getReadLock(e,t);try{return await this.store.has(e,t)}finally{this.log.trace("has release read lock"),n?.()}}async get(e,t){let n=await this.store.getReadLock(e,t);try{return await this.store.load(e,t)}finally{n?.()}}async getInfo(e,t){let n=await this.get(e,t);return{id:n.id,multiaddrs:n.addresses.map(({multiaddr:o})=>o)}}async save(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.save(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async patch(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.patch(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async merge(e,t,n){let o=await this.store.getWriteLock(e,n);try{let s=await this.store.merge(e,t,n);return this.#e(e,s),s.peer}finally{o?.()}}async consumePeerRecord(e,t,n){let o=Mt(t)?t:Mt(t?.expectedPeer)?t.expectedPeer:void 0,s=Mt(t)||t===void 0?n:t,i=await Sn.openAndCertify(e,Tr.DOMAIN,s),a=bo(i.publicKey.toCID());if(o?.equals(a)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",o,a),!1;let c=Tr.createFromProtobuf(i.payload);if(!c.peerId.equals(a))return this.log("signing key did not match peer id in the peer record - signer: %p record: %p",a,c.peerId),!1;let l;try{l=await this.get(a,s)}catch(u){if(u.name!=="NotFoundError")throw u}if(l?.peerRecordEnvelope!=null){let u=Sn.createFromProtobuf(l.peerRecordEnvelope),f=Tr.createFromProtobuf(u.payload);if(f.seqNumber>=c.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",f.seqNumber,c.seqNumber),!1}return await this.patch(c.peerId,{peerRecordEnvelope:e,addresses:c.multiaddrs.map(u=>({isCertified:!0,multiaddr:u}))},s),!0}#e(e,t){t.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:t}):this.events.safeDispatchEvent("peer:update",{detail:t}))}};function om(r,e={}){return new Hu(r,e)}var Yi=class r extends Error{static name="NotFoundError";name=r.name;static code="ERR_NOT_FOUND";code=r.code;constructor(e="Not Found"){super(e)}};function Dw(r){return r[Symbol.asyncIterator]!=null}function Rw(r){if(Dw(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Wu=Rw;function kw(r){let[e,t]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:o=>{n.push(o)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[t](){return this}}}var sm=kw;function Ow(r){return r[Symbol.asyncIterator]!=null}function Nw(r,e){let t=0;if(Ow(r))return(async function*(){for await(let c of r)await e(c,t++)&&(yield c)})();let n=sm(r),{value:o,done:s}=n.next();if(s===!0)return(function*(){})();let i=e(o,t++);if(typeof i.then=="function")return(async function*(){await i&&(yield o);for(let c of n)await e(c,t++)&&(yield c)})();let a=e;return(function*(){i===!0&&(yield o);for(let c of n)a(c,t++)&&(yield c)})()}var Dr=Nw;function Mw(r){return r[Symbol.asyncIterator]!=null}function Bw(r,e){return Mw(r)?(async function*(){yield*(await ko(r)).sort(e)})():(function*(){yield*ko(r).sort(e)})()}var Gu=Bw;function Fw(r){return r[Symbol.asyncIterator]!=null}function Uw(r,e){return Fw(r)?(async function*(){let t=0;if(!(e<1)){for await(let n of r)if(yield n,t++,t===e)return}})():(function*(){let t=0;if(!(e<1)){for(let n of r)if(yield n,t++,t===e)return}})()}var ju=Uw;var Xi=class{put(e,t,n){return Promise.reject(new Error(".put is not implemented"))}get(e,t){return Promise.reject(new Error(".get is not implemented"))}has(e,t){return Promise.reject(new Error(".has is not implemented"))}delete(e,t){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,t={}){for await(let{key:n,value:o}of e)await this.put(n,o,t),yield n}async*getMany(e,t={}){for await(let n of e)yield{key:n,value:await this.get(n,t)}}async*deleteMany(e,t={}){for await(let n of e)await this.delete(n,t),yield n}batch(){let e=[],t=[];return{put(n,o){e.push({key:n,value:o})},delete(n){t.push(n)},commit:async n=>{await Wu(this.putMany(e,n)),e=[],await Wu(this.deleteMany(t,n)),t=[]}}}async*_all(e,t){throw new Error("._all is not implemented")}async*_allKeys(e,t){throw new Error("._allKeys is not implemented")}query(e,t){let n=this._all(e,t);if(e.prefix!=null){let o=e.prefix;n=Dr(n,s=>s.key.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Dr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gu(o,s),n)),e.offset!=null){let o=0,s=e.offset;n=Dr(n,()=>o++>=s)}return e.limit!=null&&(n=ju(n,e.limit)),n}queryKeys(e,t){let n=this._allKeys(e,t);if(e.prefix!=null){let o=e.prefix;n=Dr(n,s=>s.toString().startsWith(o))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((o,s)=>Dr(o,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((o,s)=>Gu(o,s),n)),e.offset!=null){let o=e.offset,s=0;n=Dr(n,()=>s++>=o)}return e.limit!=null&&(n=ju(n,e.limit)),n}};var Zi=class extends Xi{data;constructor(){super(),this.data=new Map}put(e,t,n){return n?.signal?.throwIfAborted(),this.data.set(e.toString(),t),e}get(e,t){t?.signal?.throwIfAborted();let n=this.data.get(e.toString());if(n==null)throw new Yi;return n}has(e,t){return t?.signal?.throwIfAborted(),this.data.has(e.toString())}delete(e,t){t?.signal?.throwIfAborted(),this.data.delete(e.toString())}*_all(e,t){t?.signal?.throwIfAborted();for(let[n,o]of this.data.entries())yield{key:new Pr(n),value:o},t?.signal?.throwIfAborted()}*_allKeys(e,t){t?.signal?.throwIfAborted();for(let n of this.data.keys())yield new Pr(n),t?.signal?.throwIfAborted()}};var im=864e13;var Qi=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:dns-mappings"),this.mappings=Te({name:"libp2p_address_manager_dns_mappings",metrics:e.metrics})}has(e){let t=G(e),n=t.host;(t.type==="ip4"||t.type==="ip6")&&t.sni!=null&&(n=t.sni);for(let o of this.mappings.values())if(o.domain===n)return!0;return!1}add(e,t){t.forEach(n=>{this.log("add DNS mapping %s to %s",n,e);let o=ln(n)===!0;this.mappings.set(n,{domain:e,verified:o,expires:o?im-Date.now():0,lastVerified:o?im-Date.now():void 0})})}remove(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;let n=!1;for(let[o,s]of this.mappings.entries())s.domain===t.sni&&(this.log("removing %s to %s DNS mapping %e",o,s.domain),this.mappings.delete(o),n=n||s.verified);return n}getAll(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n].multiaddr;if(!ve(o))continue;let s=G(o);for(let[i,a]of this.mappings.entries()){if(s.host!==i)continue;let c=this.maybeAddSNIComponent(o,a.domain);c!=null&&(e.splice(n,1),n--,t.push({multiaddr:c,verified:a.verified,type:"dns-mapping",expires:a.expires,lastVerified:a.lastVerified}))}}return t}maybeAddSNIComponent(e,t){let n=e.getComponents();for(let o=0;o<n.length;o++)if(n[o].code===448&&n[o+1]?.code!==449)return n.splice(o+1,0,{name:"sni",code:449,value:t}),te(n)}confirm(e,t){let n=G(e),o=n.host;(n.type==="ip4"||n.type==="ip6")&&n.sni!=null&&(o=n.sni);let s=!1;for(let[i,a]of this.mappings.entries())a.domain===o&&(this.log("marking %s to %s DNS mapping as verified",i,a.domain),s=a.verified,a.verified=!0,a.expires=Date.now()+t,a.lastVerified=Date.now());return s}unconfirm(e,t){let n=G(e);if(n.type!=="ip4"&&n.type!=="ip6")return!1;let o=n.sni??n.host,s=!1;for(let[i,a]of this.mappings.entries())a.domain===o&&(this.log("removing verification of %s to %s DNS mapping",i,a.domain),s=s||a.verified,a.verified=!1,a.expires=Date.now()+t);return s}};var Ji=class{log;mappings;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:ip-mappings"),this.mappings=Te({name:"libp2p_address_manager_ip_mappings",metrics:e.metrics})}has(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;for(let n of this.mappings.values())for(let o of n)if(o.externalIp===t.host)return!0;return!1}add(e,t,n,o=t,s="tcp"){let i=`${e}-${t}-${s}`,a=this.mappings.get(i)??[],c={internalIp:e,internalPort:t,externalIp:n,externalPort:o,externalFamily:ct(n)?4:6,protocol:s,verified:!1,expires:0};a.push(c),this.mappings.set(i,a)}remove(e){let t=G(e);if(t.type!=="ip4"&&t.type!=="ip6")return!1;let n=!1;for(let[o,s]of this.mappings.entries()){for(let i=0;i<s.length;i++){let a=s[i];a.externalIp===t.host&&a.externalPort===t.port&&a.protocol===t.protocol&&(this.log("removing %s:%s to %s:%s %s IP mapping",a.externalIp,a.externalPort,t.host,t.port,t.protocol),n=n||a.verified,s.splice(i,1),i--)}s.length===0&&this.mappings.delete(o)}return n}getAll(e){let t=[];for(let{multiaddr:n}of e){if(!ve(n))continue;let o=G(n);if(o.type!=="ip4"&&o.type!=="ip6")continue;let s;if(o.protocol==="tcp"?s=`${o.host}-${o.port}-tcp`:o.protocol==="udp"&&(s=`${o.host}-${o.port}-udp`),s==null)continue;let i=this.mappings.get(s);if(i!=null)for(let a of i)t.push({multiaddr:this.maybeOverrideIp(n,a.externalIp,a.externalFamily,a.protocol,a.externalPort),verified:a.verified,type:"ip-mapping",expires:a.expires,lastVerified:a.lastVerified})}return t}maybeOverrideIp(e,t,n,o,s){let i=e.getComponents(),a=i.findIndex(l=>l.code===4||l.code===41),c=i.findIndex(l=>l.name===o);return a>-1&&c>-1?(i[a].value=t,i[a].code=n===4?4:41,i[c].value=`${s}`,te(i)):e}confirm(e,t){if(!ve(e))return!1;let n=G(e),o=!1;for(let s of this.mappings.values())for(let i of s)i.externalIp===n.host&&(this.log("marking %s to %s IP mapping as verified",i.internalIp,i.externalIp),o=i.verified,i.verified=!0,i.expires=Date.now()+t,i.lastVerified=Date.now());return o}unconfirm(e,t){if(!ve(e))return!1;let n=G(e),o=!1;for(let s of this.mappings.values())for(let i=0;i<s.length;i++){let a=s[i];a.externalIp===n.host&&a.externalPort===n.port&&a.protocol===n.protocol&&(this.log("removing verification of %s:%s to %s:%s %s IP mapping",a.externalIp,a.externalPort,n.host,n.port,n.protocol),o=o||a.verified,a.verified=!1,a.expires=Date.now()+t)}return o}};var Kw={maxObservedAddresses:10},ea=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=Te({name:"libp2p_address_manager_observed_addresses",metrics:e.metrics}),this.maxObservedAddresses=t.maxObservedAddresses??Kw.maxObservedAddresses}has(e){return this.addresses.has(e.toString())}removePrefixed(e){for(let t of this.addresses.keys())t.toString().startsWith(e)&&this.addresses.delete(t)}add(e){this.addresses.size!==this.maxObservedAddresses&&(It(e)||rp(e)||(this.log("adding observed address %a",e),this.addresses.set(e.toString(),{verified:!1,expires:0})))}getAll(){return Array.from(this.addresses).map(([e,t])=>({multiaddr:te(e),verified:t.verified,type:"observed",expires:t.expires,lastVerified:t.lastVerified}))}remove(e){let t=this.addresses.get(e.toString())?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(e.toString()),t}confirm(e,t){let n=e.toString(),o=this.addresses.get(n)??{verified:!1,expires:Date.now()+t,lastVerified:Date.now()},s=o.verified;return o.verified=!0,o.expires=Date.now()+t,o.lastVerified=Date.now(),this.log("marking observed address %a as verified",n),this.addresses.set(n,o),s}};var qw={maxObservedAddresses:10},ta=class{log;addresses;maxObservedAddresses;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:address-manager:observed-addresses"),this.addresses=Te({name:"libp2p_address_manager_transport_addresses",metrics:e.metrics}),this.maxObservedAddresses=t.maxObservedAddresses??qw.maxObservedAddresses}get(e,t){if(It(e))return{multiaddr:e,verified:!0,type:"transport",expires:Date.now()+t,lastVerified:Date.now()};let n=this.toKey(e),o=this.addresses.get(n);return o==null&&(o={verified:!ve(e),expires:0},this.addresses.set(n,o)),{multiaddr:e,verified:o.verified,type:"transport",expires:o.expires,lastVerified:o.lastVerified}}has(e){let t=this.toKey(e);return this.addresses.has(t)}remove(e){let t=this.toKey(e),n=this.addresses.get(t)?.verified??!1;return this.log("removing observed address %a",e),this.addresses.delete(t),n}confirm(e,t){let n=this.toKey(e),o=this.addresses.get(n)??{verified:!1,expires:0,lastVerified:0},s=o.verified;return o.verified=!0,o.expires=Date.now()+t,o.lastVerified=Date.now(),this.addresses.set(n,o),s}unconfirm(e,t){let n=this.toKey(e),o=this.addresses.get(n)??{verified:!1,expires:0},s=o.verified;return o.verified=!1,o.expires=Date.now()+t,this.addresses.set(n,o),s}toKey(e){if(!ve(e))return e.toString();let t=G(e);return`${t.host}-${t.port}-${t.protocol}`}};var am=6e4,cm={maxObservedAddresses:10,addressVerificationTTL:am*10,addressVerificationRetry:am*5},$w=r=>r;function Yu(r,e){let t=r.getComponents().findLast(n=>n.code===421)?.value;return t!=null&>(t).equals(e)&&(r=r.decapsulate(te(`/p2p/${e.toString()}`))),r}var ra=class{log;components;listen;announce;appendAnnounce;announceFilter;observed;dnsMappings;ipMappings;transportAddresses;observedAddressFilter;addressVerificationTTL;addressVerificationRetry;constructor(e,t={}){let{listen:n=[],announce:o=[],appendAnnounce:s=[]}=t;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(i=>i.toString()),this.announce=new Set(o.map(i=>i.toString())),this.appendAnnounce=new Set(s.map(i=>i.toString())),this.observed=new ea(e,t),this.dnsMappings=new Qi(e,t),this.ipMappings=new Ji(e,t),this.transportAddresses=new ta(e,t),this.announceFilter=t.announceFilter??$w,this.observedAddressFilter=Eo(1024),this.addressVerificationTTL=t.addressVerificationTTL??cm.addressVerificationTTL,this.addressVerificationRetry=t.addressVerificationRetry??cm.addressVerificationRetry,this._updatePeerStoreAddresses=Lo(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}[Symbol.toStringTag]="@libp2p/address-manager";_updatePeerStoreAddresses(){let e=this.getAddresses().map(t=>t.getComponents().findLast(n=>n.code===421)?.value===this.components.peerId.toString()?t.decapsulate(`/p2p/${this.components.peerId.toString()}`):t);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(t=>{this.log.error("error updating addresses - %e",t)})}getListenAddrs(){return Array.from(this.listen).map(e=>te(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>te(e))}getAppendAnnounceAddrs(){return Array.from(this.appendAnnounce).map(e=>te(e))}getObservedAddrs(){return this.observed.getAll().map(e=>e.multiaddr)}addObservedAddr(e){let t=G(e),n;switch(t.type){case"ip4":{n=`${t.host}:${t.port}`;break}case"ip6":{n=`[${t.host}]:${t.port}`;break}default:return}this.observedAddressFilter.has(n)||(this.observedAddressFilter.add(n),e=Yu(e,this.components.peerId),!this.ipMappings.has(e)&&(this.dnsMappings.has(e)||this.observed.add(e)))}confirmObservedAddr(e,t){e=Yu(e,this.components.peerId);let n=!0;(t?.type==="transport"||this.transportAddresses.has(e))&&!this.transportAddresses.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="dns-mapping"||this.dnsMappings.has(e))&&!this.dnsMappings.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="ip-mapping"||this.ipMappings.has(e))&&!this.ipMappings.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1),(t?.type==="observed"||this.observed.has(e))&&(this.maybeUpgradeToIPMapping(e)?(this.ipMappings.confirm(e,t?.ttl??this.addressVerificationTTL),n=!1):!this.observed.confirm(e,t?.ttl??this.addressVerificationTTL)&&n&&(n=!1)),n||this._updatePeerStoreAddresses()}removeObservedAddr(e,t){e=Yu(e,this.components.peerId);let n=!0;this.observed.has(e)&&this.observed.remove(e)&&n&&(n=!1),this.transportAddresses.has(e)&&this.transportAddresses.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),this.dnsMappings.has(e)&&this.dnsMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),this.ipMappings.has(e)&&this.ipMappings.unconfirm(e,t?.ttl??this.addressVerificationRetry)&&n&&(n=!1),n||this._updatePeerStoreAddresses()}getAddresses(){let e=new Set,t=this.getAddressesWithMetadata().filter(n=>{if(!n.verified)return!1;let o=n.multiaddr.toString();return e.has(o)?!1:(e.add(o),!0)}).map(n=>n.multiaddr);return this.announceFilter(t.map(n=>{let o=te(n);return o.getComponents().pop()?.value===this.components.peerId.toString()?o:o.encapsulate(`/p2p/${this.components.peerId.toString()}`)}))}getAddressesWithMetadata(){let e=this.getAnnounceAddrs();if(e.length>0)return this.components.transportManager.getListeners().forEach(o=>{o.updateAnnounceAddrs(e)}),e.map(o=>({multiaddr:o,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()}));let t=[];t=t.concat(this.components.transportManager.getAddrs().map(o=>this.transportAddresses.get(o,this.addressVerificationTTL)));let n=this.getAppendAnnounceAddrs();return n.length>0&&(this.components.transportManager.getListeners().forEach(o=>{o.updateAnnounceAddrs(n)}),t=t.concat(n.map(o=>({multiaddr:o,verified:!0,type:"announce",expires:Date.now()+this.addressVerificationTTL,lastVerified:Date.now()})))),t=t.concat(this.observed.getAll()),t=t.concat(this.ipMappings.getAll(t)),t=t.concat(this.dnsMappings.getAll(t)),t}addDNSMapping(e,t){this.dnsMappings.add(e,t)}removeDNSMapping(e){this.dnsMappings.remove(te(`/dns/${e}`))&&this._updatePeerStoreAddresses()}addPublicAddressMapping(e,t,n,o=t,s="tcp"){this.ipMappings.add(e,t,n,o,s),this.observed.removePrefixed(`/ip${ct(n)?4:6}/${n}/${s}/${o}`)}removePublicAddressMapping(e,t,n,o=t,s="tcp"){this.ipMappings.remove(te(`/ip${ct(n)?4:6}/${n}/${s}/${o}`))&&this._updatePeerStoreAddresses()}maybeUpgradeToIPMapping(e){if(this.ipMappings.has(e)||!ve(e))return!1;let t=G(e);if(t.type!=="ip4"||ln(t.host)===!0)return!1;let n=this.components.transportManager.getListeners(),o=[s=>Ar.exactMatch(s)||Co.exactMatch(s),s=>Io.exactMatch(s),s=>Ap.exactMatch(s)];for(let s of o){if(!s(e))continue;let i=n.filter(l=>l.getAddrs().filter(u=>G(u).type==="ip4"&&s(u)).length>0);if(i.length!==1)continue;let a=i[0].getAddrs().filter(l=>!So(l)).pop();if(a==null)continue;let c=G(a);return c.port==null?!1:(this.observed.remove(e),this.ipMappings.add(c.host,c.port,t.host,t.port,t.protocol),!0)}return!1}};var lm;(function(r){r.NOT_STARTED_YET="The libp2p node is not started yet",r.NOT_FOUND="Not found"})(lm||(lm={}));var na=class extends Error{constructor(e="Missing service"){super(e),this.name="MissingServiceError"}},oa=class extends Error{constructor(e="Unmet service dependencies"){super(e),this.name="UnmetServiceDependenciesError"}},_n=class extends Error{constructor(e="No content routers available"){super(e),this.name="NoContentRoutersError"}},Uo=class extends Error{constructor(e="No peer routers available"){super(e),this.name="NoPeerRoutersError"}},sa=class extends Error{constructor(e="Should not try to find self"){super(e),this.name="QueriedForSelfError"}},ia=class extends Error{constructor(e="Unhandled protocol error"){super(e),this.name="UnhandledProtocolError"}},aa=class extends Error{constructor(e="Duplicate protocol handler error"){super(e),this.name="DuplicateProtocolHandlerError"}},Ko=class extends Error{constructor(e="Dial denied error"){super(e),this.name="DialDeniedError"}},ca=class extends Error{constructor(e="No transport was configured to listen on this address"){super(e),this.name="UnsupportedListenAddressError"}},la=class extends Error{constructor(e="Configured listen addresses could not be listened on"){super(e),this.name="UnsupportedListenAddressesError"}},ua=class extends Error{constructor(e="No valid addresses"){super(e),this.name="NoValidAddressesError"}},fa=class extends Error{constructor(e="Connection intercepted"){super(e),this.name="ConnectionInterceptedError"}},da=class extends Error{constructor(e="Connection denied"){super(e),this.name="ConnectionDeniedError"}},Jt=class extends Error{constructor(e="Stream is not multiplexed"){super(e),this.name="MuxerUnavailableError"}},Rr=class extends Error{constructor(e="Encryption failed"){super(e),this.name="EncryptionFailedError"}},ha=class extends Error{constructor(e="Transport unavailable"){super(e),this.name="TransportUnavailableError"}},pa=class extends Error{constructor(e="Max recursive depth reached"){super(e),this.name="RecursionLimitError"}};var Xu=class{components={};_started=!1;constructor(e={}){this.components={};for(let[t,n]of Object.entries(e))this.components[t]=n;this.components.logger==null&&(this.components.logger=zs())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(t=>rs(t)).map(async t=>{await t[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},zw=["metrics","connectionProtector","dns"],Vw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function um(r={}){let e=new Xu(r);return new Proxy(e,{get(n,o,s){if(typeof o=="string"&&!Vw.includes(o)){let i=e.components[o];if(i==null&&!zw.includes(o))throw new na(`${o} not set`);return i}return Reflect.get(n,o,s)},set(n,o,s){return typeof o=="string"?e.components[o]=s:Reflect.set(n,o,s),!0}})}function fm(r){let e={};for(let t of Object.values(r.components))for(let n of Hw(t))e[n]=!0;for(let t of Object.values(r.components))for(let n of Ww(t))if(e[n]!==!0)throw new oa(`Service "${Gw(t)}" required capability "${n}" but it was not provided by any component, you may need to add additional configuration when creating your node.`)}function Hw(r){return Array.isArray(r?.[Mn])?r[Mn]:[]}function Ww(r){return Array.isArray(r?.[Ga])?r[Ga]:[]}function Gw(r){return r?.[Symbol.toStringTag]??r?.toString()??"unknown"}function dm(r={}){return r.denyDialMultiaddr==null&&(r.denyDialMultiaddr=e=>Ar.matches(e)?!0:It(e)),r}var ne=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};function ma(r){if(Mt(r))return{peerId:r,multiaddrs:[]};let e=Array.isArray(r)?r:[r],t;if(e.length>0){let n=e[0].getComponents().findLast(o=>o.code===421)?.value;t=n==null?void 0:gt(n),e.forEach(o=>{if(!Qt(o))throw new Ot("Invalid multiaddr");let s=o.getComponents().findLast(i=>i.code===421)?.value;if(s==null){if(t!=null)throw new R("Multiaddrs must all have the same peer id or have no peer id")}else{let i=gt(s);if(t?.equals(i)!==!0)throw new R("Multiaddrs must all have the same peer id or have no peer id")}})}return e=e.filter(n=>!Ep.exactMatch(n)),{peerId:t,multiaddrs:e}}var jw=["/ipfs/id/1.0.0","/ipfs/id/push/1.0.0","/libp2p/autonat/1.0.0","/libp2p/dcutr"];async function hm(r,e){let t=r?.streams?.map(o=>o.protocol)??[],n=e?.closableProtocols??jw;if(!(t.filter(o=>o!=null&&!n.includes(o)).length>0))try{await r?.close(e)}catch(o){r?.abort(o)}}function qo(r){let e=G(r),t=e.cidr;if(e.type!=="ip4"&&e.type!=="ip6")throw new R(`Multiaddr ${r} was not an IPv4 or IPv6 address`);if(t==null)switch(e.type){case"ip4":{t=32;break}case"ip6":{t=128;break}default:throw new R(`Multiaddr ${r} was not an IPv4 or IPv6 address`)}return new on(e.host,t)}function Zu(r){return!_r.exactMatch(r)}function ga(r,e,t){if(r==null||e==null)return;let n=e.filter(s=>s.status==="open").sort((s,i)=>s.direct?-1:i.direct?1:0).find(s=>s.limits==null);if(n==null||n.direct||t==null)return n;if(!t.some(s=>Zu(s)))return n}var ya=class{connectionManager;peerStore;allow;events;log;constructor(e,t={}){this.allow=(t.allow??[]).map(n=>qo(n)),this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),this.maybePruneConnections=this.maybePruneConnections.bind(this)}start(){this.events.addEventListener("connection:open",this.maybePruneConnections)}stop(){this.events.removeEventListener("connection:open",this.maybePruneConnections)}maybePruneConnections(){this._maybePruneConnections().catch(e=>{this.log.error("error while pruning connections - %e",e)})}async _maybePruneConnections(){let e=this.connectionManager.getConnections(),t=e.length,n=this.connectionManager.getMaxConnections();if(this.log("checking max connections limit %d/%d",t,n),t<=n)return;let o=new et;for(let c of e){let l=c.remotePeer;if(!o.has(l)){o.set(l,0);try{let u=await this.peerStore.get(l);o.set(l,[...u.tags.values()].reduce((f,d)=>f+d.value,0))}catch(u){u.name!=="NotFoundError"&&this.log.error("error loading peer tags - %e",u)}}}let s=this.sortConnections(e,o),i=Math.max(t-n,0),a=[];for(let c of s)if(this.log("too many connections open - closing a connection to %p",c.remotePeer),this.allow.some(u=>{if(ve(c.remoteAddr)){let f=G(c.remoteAddr);return u.contains(f.host)}return!0})||a.push(c),a.length===i)break;await Promise.all(a.map(async c=>{await hm(c,{signal:AbortSignal.timeout(1e3)})})),this.events.safeDispatchEvent("connection:prune",{detail:a})}sortConnections(e,t){return e.sort((n,o)=>{let s=n.timeline.open,i=o.timeline.open;return s<i?1:s>i?-1:0}).sort((n,o)=>n.direction==="outbound"&&o.direction==="inbound"?1:n.direction==="inbound"&&o.direction==="outbound"?-1:0).sort((n,o)=>n.streams.length>o.streams.length?1:n.streams.length<o.streams.length?-1:0).sort((n,o)=>{let s=t.get(n.remotePeer)??0,i=t.get(o.remotePeer)??0;return s>i?1:s<i?-1:0})}};var pm="last-dial-failure",mm="last-dial-success";var gm=100,ba=50;function Yw(r,e){return r.isCertified&&!e.isCertified?-1:!r.isCertified&&e.isCertified?1:0}function ym(r){return r.sort((e,t)=>Pp(e.multiaddr,t.multiaddr)||Dp(e.multiaddr,t.multiaddr)||Rp(e.multiaddr,t.multiaddr)||Yw(e,t)||Lp(e.multiaddr,t.multiaddr))}var wa=class extends AggregateError{static name="DNSQueryFailedError";name="DNSQueryFailedError"},xa=class extends AggregateError{static name="EmptyDNSAnswerError";name="EmptyDNSAnswerError"};var Ju=qa(wm(),1);function ef(r,e,t){let n=0,o=r.length;for(;o>0;){let s=Math.trunc(o/2),i=n+s;t(r[i],e)<=0?(n=++i,o-=s+1):o=s}return n}var Qw=100,In=class{#e=[];#t=0;enqueue(e,t){let{priority:n=0,id:o}=t??{},{size:s}=this,i={priority:n,id:o,run:e};if(s===0){this.#e.length=0,this.#t=0,this.#e.push(i);return}if(this.#e.at(-1).priority>=n){this.#e.push(i);return}this.#n();let a=ef(this.#e,i,(c,l)=>l.priority-c.priority);this.#e.splice(a,0,i)}setPriority(e,t){let n=this.#e.findIndex((s,i)=>i>=this.#t&&s.id===e);if(n===-1)throw new ReferenceError(`No promise function with the id "${e}" exists in the queue.`);let[o]=this.#e.splice(n,1);this.enqueue(o.run,{priority:t,id:e})}remove(e){let t=this.#e.findIndex((n,o)=>o<this.#t?!1:typeof e=="string"?n.id===e:n.run===e);t!==-1&&this.#e.splice(t,1)}dequeue(){if(this.#t===this.#e.length)return;let e=this.#e[this.#t];return this.#t++,this.#t===this.#e.length?(this.#e.length=0,this.#t=0):this.#t>Qw&&this.#t>this.#e.length/2&&this.#n(),e?.run}filter(e){let t=[];for(let n=this.#t;n<this.#e.length;n++){let o=this.#e[n];o.priority===e.priority&&t.push(o.run)}return t}get size(){return this.#e.length-this.#t}#n(){this.#t!==0&&(this.#e.splice(0,this.#t),this.#t=0)}};var zo=class extends Ju.default{#e;#t;#n=0;#h;#m=!1;#w=!1;#l;#x=0;#c;#u;#a;#i=[];#s=0;#r;#I;#o=0;#g;#f;#R=1n;#y=new Map;#E=new Set;timeout;constructor(e){if(super(),e={carryoverIntervalCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:In,strict:!1,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);if(e.strict&&e.interval===0)throw new TypeError("The `strict` option requires a non-zero `interval`");if(e.strict&&e.intervalCap===Number.POSITIVE_INFINITY)throw new TypeError("The `strict` option requires a finite `intervalCap`");if(this.#e=e.carryoverIntervalCount??e.carryoverConcurrencyCount??!1,this.#t=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#h=e.intervalCap,this.#l=e.interval,this.#a=e.strict,this.#r=new e.queueClass,this.#I=e.queueClass,this.concurrency=e.concurrency,e.timeout!==void 0&&!(Number.isFinite(e.timeout)&&e.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${e.timeout}\` (${typeof e.timeout})`);this.timeout=e.timeout,this.#f=e.autoStart===!1,this.#K()}#v(e){for(;this.#s<this.#i.length;){let n=this.#i[this.#s];if(n!==void 0&&e-n>=this.#l)this.#s++;else break}(this.#s>100&&this.#s>this.#i.length/2||this.#s===this.#i.length)&&(this.#i=this.#i.slice(this.#s),this.#s=0)}#k(e){this.#a?this.#i.push(e):this.#n++}#O(){this.#a?this.#i.length>this.#s&&this.#i.pop():this.#n>0&&this.#n--}#S(){return this.#i.length-this.#s}get#N(){return this.#t?!0:this.#a?this.#S()<this.#h:this.#n<this.#h}get#M(){return this.#o<this.#g}#B(){this.#o--,this.#o===0&&this.emit("pendingZero"),this.#b(),this.emit("next")}#F(){this.#u=void 0,this.#P(),this.#L()}#U(e){if(this.#a){if(this.#v(e),this.#S()>=this.#h){let n=this.#i[this.#s],o=this.#l-(e-n);return this.#C(o),!0}return!1}if(this.#c===void 0){let t=this.#x-e;if(t<0)this.#n=this.#e?this.#o:0;else return this.#C(t),!0}return!1}#C(e){this.#u===void 0&&(this.#u=setTimeout(()=>{this.#F()},e))}#A(){this.#c&&(clearInterval(this.#c),this.#c=void 0)}#T(){this.#u&&(clearTimeout(this.#u),this.#u=void 0)}#b(){if(this.#r.size===0){if(this.#A(),this.emit("empty"),this.#o===0){if(this.#T(),this.#a&&this.#s>0){let t=Date.now();this.#v(t)}this.emit("idle")}return!1}let e=!1;if(!this.#f){let t=Date.now(),n=!this.#U(t);if(this.#N&&this.#M){let o=this.#r.dequeue();this.#t||(this.#k(t),this.#p()),n&&this.#L(),this.emit("active"),o(),e=!0}}return e}#L(){this.#t||this.#c!==void 0||this.#a||(this.#c=setInterval(()=>{this.#P()},this.#l),this.#x=Date.now()+this.#l)}#P(){this.#a||(this.#c!==void 0&&(this.#n===0&&this.#o===0?this.#A():this.#x=Date.now()+this.#l),this.#n=this.#e?this.#o:0),this.#_(),this.#p()}#_(){for(;this.#b(););}get concurrency(){return this.#g}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#g=e,this.#_()}setPriority(e,t){if(typeof t!="number"||!Number.isFinite(t))throw new TypeError(`Expected \`priority\` to be a finite number, got \`${t}\` (${typeof t})`);this.#r.setPriority(e,t)}async add(e,t={}){if(t={timeout:this.timeout,...t,id:t.id??(this.#R++).toString()},t.timeout!==void 0&&!(Number.isFinite(t.timeout)&&t.timeout>0))throw new TypeError(`Expected \`timeout\` to be a positive finite number, got \`${t.timeout}\` (${typeof t.timeout})`);return new Promise((n,o)=>{let s=Symbol(`task-${t.id}`),i=()=>{},a=async()=>{i(),this.#o++,this.#y.set(s,{id:t.id,priority:t.priority??0,startTime:Date.now(),timeout:t.timeout});let l;try{try{t.signal?.throwIfAborted()}catch(d){throw this.#q(),this.#y.delete(s),d}let u=e({signal:t.signal});if(t.timeout!==void 0&&(u=To(Promise.resolve(u),{milliseconds:t.timeout,message:`Task timed out after ${t.timeout}ms (queue has ${this.#o} running, ${this.#r.size} waiting)`})),t.signal){let{signal:d}=t;u=Promise.race([u,new Promise((h,b)=>{l=()=>{b(d.reason)},d.addEventListener("abort",l,{once:!0})})])}let f=await u;n(f),this.emit("completed",f)}catch(u){o(u),this.emit("error",u)}finally{l&&t.signal?.removeEventListener("abort",l),this.#y.delete(s),queueMicrotask(()=>{this.#B()})}};this.#r.enqueue(a,t);let c=()=>{if(this.#r instanceof In){this.#r.remove(a);return}this.#r.remove?.(t.id)};if(t.signal){let{signal:l}=t,u=()=>{i(),c(),o(l.reason),this.#b(),this.emit("next")};if(i=()=>{l.removeEventListener("abort",u),this.#E.delete(i)},l.aborted){u();return}l.addEventListener("abort",u,{once:!0}),this.#E.add(i)}this.emit("add"),this.#b()})}async addAll(e,t){return Promise.all(e.map(async n=>this.add(n,t)))}start(){return this.#f?(this.#f=!1,this.#_(),this):this}pause(){this.#f=!0}clear(){for(let e of this.#E)e();this.#r=new this.#I,this.#A(),this.#D(),this.emit("empty"),this.#o===0&&(this.#T(),this.emit("idle")),this.emit("next")}async onEmpty(){this.#r.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#r.size<e||await this.#d(["next","active"],()=>this.#r.size<e)}async onIdle(){this.#o===0&&this.#r.size===0||await this.#d("idle")}async onPendingZero(){this.#o!==0&&await this.#d("pendingZero")}async onRateLimit(){this.isRateLimited||await this.#d("rateLimit")}async onRateLimitCleared(){this.isRateLimited&&await this.#d("rateLimitCleared")}onError(){return new Promise((e,t)=>{let n=o=>{this.off("error",n),t(o)};this.on("error",n)})}async#d(e,t){let n=Array.isArray(e)?e:[e];return new Promise(o=>{let s=()=>{if(!(t&&!t())){for(let i of n)this.off(i,s);o()}};for(let i of n)this.on(i,s)})}get size(){return this.#r.size}sizeBy(e){return this.#r.filter(e).length}get pending(){return this.#o}get isPaused(){return this.#f}#K(){this.#t||(this.on("add",()=>{this.#r.size>0&&this.#p()}),this.on("next",()=>{this.#p()}))}#p(){this.#t||this.#w||(this.#w=!0,queueMicrotask(()=>{this.#w=!1,this.#D()}))}#q(){this.#t||(this.#O(),this.#p())}#D(){let e=this.#m;if(this.#t||this.#r.size===0){e&&(this.#m=!1,this.emit("rateLimitCleared"));return}let t;if(this.#a){let o=Date.now();this.#v(o),t=this.#S()}else t=this.#n;let n=t>=this.#h;n!==e&&(this.#m=n,this.emit(n?"rateLimit":"rateLimitCleared"))}get isRateLimited(){return this.#m}get isSaturated(){return this.#o===this.#g&&this.#r.size>0||this.isRateLimited&&this.#r.size>0}get runningTasks(){return[...this.#y.values()].map(e=>({...e,timeoutRemaining:e.timeout?Math.max(0,e.startTime+e.timeout-Date.now()):void 0}))}};function va(r){let e=[We.A];return r==null?e:Array.isArray(r)?r.length===0?e:r:[r]}var tf=60;function Sa(r){return{Status:r.Status??0,TC:r.TC??r.flag_tc??!1,RD:r.RD??r.flag_rd??!1,RA:r.RA??r.flag_ra??!1,AD:r.AD??r.flag_ad??!1,CD:r.CD??r.flag_cd??!1,Question:(r.Question??r.questions??[]).map(e=>({name:e.name,type:We[e.type]})),Answer:(r.Answer??r.answers??[]).map(e=>({name:e.name,type:We[e.type],TTL:e.TTL??e.ttl??tf,data:e.data instanceof Uint8Array?q(e.data):e.data}))}}var Jw=4;function rf(r,e={}){let t=new zo({concurrency:e.queryConcurrency??Jw});return async(n,o={})=>{let s=o?.logger?.forComponent("dns:dns-json-over-https"),i=new URLSearchParams;i.set("name",n),va(o.types).forEach(c=>{i.append("type",We[c])}),o.onProgress?.(new ne("dns:query",n)),s?.("GET %s",`${r}?${i}`);let a=await t.add(async()=>{let c=await fetch(`${r}?${i}`,{headers:{accept:"application/dns-json"},signal:o?.signal});if(s?.("GET %s %d",c.url,c.status),c.status!==200)throw new Error(`Unexpected HTTP status: ${c.status} - ${c.statusText}`);let l=Sa(await c.json());return o.onProgress?.(new ne("dns:response",l)),l},{signal:o.signal});if(a==null)throw new Error("No DNS response received");return a}}function xm(){return[rf("https://cloudflare-dns.com/dns-query"),rf("https://dns.google/resolve")]}var Sm=qa(vm(),1);var nf=class{lru;constructor(e){this.lru=(0,Sm.default)(e)}get(e,t){let n=!0,o=[];for(let s of t){let i=this.getAnswers(e,s);if(i.length===0){n=!1;break}o.push(...i)}if(n)return Sa({answers:o})}getAnswers(e,t){let n=`${e.toLowerCase()}-${t}`,o=this.lru.get(n);if(o!=null){let s=o.filter(i=>i.expires>Date.now()).map(({expires:i,value:a})=>({...a,TTL:Math.round((i-Date.now())/1e3),type:We[a.type]}));return s.length===0&&this.lru.remove(n),s}return[]}add(e,t){let n=`${e.toLowerCase()}-${t.type}`,o=this.lru.get(n)??[];o.push({expires:Date.now()+(t.TTL??tf)*1e3,value:t}),this.lru.set(n,o)}remove(e,t){let n=`${e.toLowerCase()}-${t}`;this.lru.remove(n)}clear(){this.lru.clear()}};function Am(r){return new nf(r)}var ex=1e3,tx=()=>Math.random()>.5?-1:1,Aa=class{resolvers;cache;logger;sorter;constructor(e){this.resolvers={},this.cache=Am(e.cacheSize??ex),this.logger=e.logger,this.sorter=e.sorter??tx,Object.entries(e.resolvers??{}).forEach(([t,n])=>{Array.isArray(n)||(n=[n]),t.endsWith(".")||(t=`${t}.`),this.resolvers[t]=n}),this.resolvers["."]==null&&(this.resolvers["."]=xm())}async query(e,t={}){let n=va(t.types),o=t.cached!==!1?this.cache.get(e,n):void 0;if(o!=null)return t.onProgress?.(new ne("dns:cache",o)),o;let s=`${e.split(".").pop()}.`,i=(this.resolvers[s]??this.resolvers["."]).sort(this.sorter),a=[];for(let c of i){if(t.signal?.aborted===!0)break;try{let l=await c(e,{...t,logger:this.logger,types:n});if(l.Answer.length===0)throw new xa("Query result had no answers");for(let u of l.Answer)this.cache.add(e,u);return l}catch(l){a.push(l),t.onProgress?.(new ne("dns:error",l))}}throw new wa(a,`DNS lookup of ${e} ${n} failed`)}};var We;(function(r){r[r.A=1]="A",r[r.CNAME=5]="CNAME",r[r.TXT=16]="TXT",r[r.AAAA=28]="AAAA"})(We||(We={}));function _m(r={}){return new Aa(r)}var of=class{dns;canResolve(e){return e.getComponents().some(({name:t})=>t==="dnsaddr")}async resolve(e,t){let n=e.getComponents().find(c=>c.name==="dnsaddr")?.value;if(n==null)return[e];let o=this.getDNS(t),s;try{s=await o.query(`_dnsaddr.${n}`,{signal:t?.signal,types:[We.TXT]})}catch(c){if(c.name==="DNSQueryFailedError"&&Array.isArray(c.errors)&&c.errors.length>0&&c.errors.every(u=>u.name==="EmptyDNSAnswerError"))return[];throw c}let i=e.getComponents().find(c=>c.name==="p2p")?.value,a=[];for(let c of s.Answer){let l=c.data.replace(/["']/g,"").trim().split("=")[1];l!=null&&(i!=null&&!l.includes(i)||a.push(te(l)))}return a}getDNS(e){return e.dns!=null?e.dns:(this.dns==null&&(this.dns=_m()),this.dns)}},kr=new of;async function sf(r,e,t){let n=t.depth??0;if(n>(t.maxRecursiveDepth??32))throw new pa("Max recursive depth reached");let o=!1,s=[];for(let i of Object.values(e))if(i.canResolve(r)){o=!0;let a=await i.resolve(r,t);for(let c of a)s.push(...await sf(c,e,{...t,depth:n+1}))}return o===!1&&s.push(r),s}var Cn={maxParallelDials:ba,maxDialQueueLength:500,maxPeerAddrsToDial:25,dialTimeout:1e4,addressDialTimeout:6e3,resolvers:{dnsaddr:kr}},_a=class{queue;components;addressSorter;maxPeerAddrsToDial;maxDialQueueLength;dialTimeout;addressDialTimeout;shutDownController;connections;log;resolvers;constructor(e,t={}){this.addressSorter=t.addressSorter,this.maxPeerAddrsToDial=t.maxPeerAddrsToDial??Cn.maxPeerAddrsToDial,this.maxDialQueueLength=t.maxDialQueueLength??Cn.maxDialQueueLength,this.dialTimeout=t.dialTimeout??Cn.dialTimeout,this.addressDialTimeout=t.addressDialTimeout??Cn.addressDialTimeout,this.connections=t.connections??new et,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.components=e,this.resolvers=t.resolvers??Cn.resolvers,this.shutDownController=new AbortController,this.shutDownController.signal,this.queue=new _i({concurrency:t.maxParallelDials??Cn.maxParallelDials,metricName:"libp2p_dial_queue",metrics:e.metrics}),this.queue.addEventListener("failure",n=>{n.detail?.error.name!==tt.name&&this.log.error("error in dial queue - %e",n.detail.error)})}start(){this.shutDownController=new AbortController,this.shutDownController.signal}stop(){this.shutDownController.abort(),this.queue.abort()}async dial(e,t={}){let{peerId:n,multiaddrs:o}=ma(e);if(n!=null&&t.force!==!0){let i=ga(n,this.connections.get(n),o);if(i!=null)return this.log("already connected to %a",i.remoteAddr),t.onProgress?.(new ne("dial-queue:already-connected",i)),i}let s=this.queue.queue.find(i=>{if(n?.equals(i.options.peerId)===!0)return!0;let a=i.options.multiaddrs;if(a==null)return!1;for(let c of o)if(a.has(c.toString()))return!0;return!1});if(s!=null){this.log("joining existing dial target for %p",n);for(let i of o)s.options.multiaddrs.add(i.toString());return t.onProgress?.(new ne("dial-queue:already-in-dial-queue")),s.join(t)}if(this.queue.size>=this.maxDialQueueLength)throw new Mr("Dial queue is full");return this.log("creating dial target for %p",n,o.map(i=>i.toString())),t.onProgress?.(new ne("dial-queue:add-to-dial-queue")),this.queue.add(async i=>{i.onProgress?.(new ne("dial-queue:start-dial"));let a=bt([this.shutDownController.signal,i.signal]);try{return await this.dialPeer(i,a)}finally{a.clear()}},{peerId:n,priority:t.priority??ff,multiaddrs:new Set(o.map(i=>i.toString())),signal:t.signal??AbortSignal.timeout(this.dialTimeout),onProgress:t.onProgress})}async dialPeer(e,t){let n=e.peerId,o=e.multiaddrs,s=new Set,i=e.multiaddrs.size===0,a=0,c=0,l=[];for(this.log("starting dial to %p",n);i||o.size>0;){c++,i=!1;let u=[],f=new Set(e.multiaddrs);o.clear(),this.log("calculating addrs to dial %p from %s",n,[...f]);let d=await this.calculateMultiaddrs(n,f,{...e,signal:t});for(let h of d){if(s.has(h.multiaddr.toString())){this.log.trace("skipping previously failed multiaddr %a while dialing %p",h.multiaddr,n);continue}u.push(h)}this.log("%s dial to %p with %s",c===1?"starting":"continuing",n,u.map(h=>h.multiaddr.toString())),e?.onProgress?.(new ne("dial-queue:calculated-addresses",u));for(let h of u){if(a===this.maxPeerAddrsToDial)throw this.log("dialed maxPeerAddrsToDial (%d) addresses for %p, not trying any others",a,e.peerId),new Mr("Peer had more than maxPeerAddrsToDial");a++;let b=bt([t,AbortSignal.timeout(this.addressDialTimeout)]);try{let m=await this.components.transportManager.dial(h.multiaddr,{...e,signal:b});this.log("dial to %a succeeded",h.multiaddr);try{await this.components.peerStore.merge(m.remotePeer,{multiaddrs:[m.remoteAddr],metadata:{[mm]:D(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p - %e",n,p)}return m}catch(m){if(this.log.error("dial failed to %a - %e",h.multiaddr,m),s.add(h.multiaddr.toString()),n!=null)try{await this.components.peerStore.merge(n,{metadata:{[pm]:D(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p - %e",n,p)}if(t.aborted)throw new Zo(m.message);l.push(m)}finally{b.clear()}}}throw l.length===1?l[0]:new AggregateError(l,"All multiaddr dials failed")}async calculateMultiaddrs(e,t=new Set,n={}){let o=[...t].map(f=>({multiaddr:te(f),isCertified:!1}));if(e!=null){if(this.components.peerId.equals(e))throw new Mr("Tried to dial self");if(await this.components.connectionGater.denyDialPeer?.(e)===!0)throw new Ko("The dial request is blocked by gater.allowDialPeer");if(o.length===0){this.log("loading multiaddrs for %p",e);try{let f=await this.components.peerStore.get(e);o.push(...f.addresses),this.log("loaded multiaddrs for %p",e,o.map(({multiaddr:d})=>d.toString()))}catch(f){if(f.name!=="NotFoundError")throw f}}if(o.length===0){this.log("looking up multiaddrs for %p in the peer routing",e);try{let f=await this.components.peerRouting.findPeer(e,n);this.log("found multiaddrs for %p in the peer routing",e,o.map(({multiaddr:d})=>d.toString())),o.push(...f.multiaddrs.map(d=>({multiaddr:d,isCertified:!1})))}catch(f){f.name==="NoPeerRoutersError"?this.log("no peer routers configured",e):this.log.error("looking up multiaddrs for %p in the peer routing failed - %e",e,f)}}}let s=(await Promise.all(o.map(async f=>{let d=await sf(f.multiaddr,this.resolvers,{dns:this.components.dns,log:this.log,...n});return d.length===1&&d[0].equals(f.multiaddr)?f:d.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(e!=null){let f=`/p2p/${e.toString()}`;s=s.map(d=>d.multiaddr.getComponents().pop()?.name!=="p2p"?{multiaddr:d.multiaddr.encapsulate(f),isCertified:d.isCertified}:d)}let i=s.filter(f=>{if(this.components.transportManager.dialTransportForMultiaddr(f.multiaddr)==null)return!1;let d=f.multiaddr.getComponents().findLast(h=>h.code===421)?.value;return e!=null&&d!=null?e.equals(d):!0}),a=new Map;for(let f of i){let d=f.multiaddr.toString(),h=a.get(d);if(h!=null){h.isCertified=h.isCertified||f.isCertified||!1;continue}a.set(d,f)}let c=[...a.values()];if(c.length===0)throw new ua(`The dial request has no valid addresses for peer: ${e?.toString()??"unknown peer"}`);let l=[];for(let f of c)this.components.connectionGater.denyDialMultiaddr!=null&&await this.components.connectionGater.denyDialMultiaddr(f.multiaddr)||l.push(f);let u=this.addressSorter==null?ym(l):l.sort(this.addressSorter);if(u.length===0)throw new Ko(`The connection gater denied all addresses in the dial request for peer: ${e?.toString()??"unknown peer"}`);return this.log.trace("addresses for %p before filtering",e??"unknown peer",s.map(({multiaddr:f})=>f.toString())),this.log.trace("addresses for %p after filtering",e??"unknown peer",u.map(({multiaddr:f})=>f.toString())),u}async isDialable(e,t={}){Array.isArray(e)||(e=[e]);try{let n=await this.calculateMultiaddrs(void 0,new Set(e.map(o=>o.toString())),t);return t.runOnLimitedConnection===!1?n.find(o=>!_r.matches(o.multiaddr))!=null:!0}catch{}return!1}};var rx=Object.prototype.toString,nx=r=>rx.call(r)==="[object Error]",ox=new Set(["network error","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed","fetch failed","terminated"," A network error occurred.","Network connection lost"]);function df(r){if(!(r&&nx(r)&&r.name==="TypeError"&&typeof r.message=="string"))return!1;let{message:t,stack:n}=r;return t==="Load failed"||t.startsWith("Load failed (")&&t.endsWith(")")?n===void 0||"__sentry_captured__"in r:t.startsWith("error sending request for url")||t==="Failed to fetch"||t.startsWith("Failed to fetch (")&&t.endsWith(")")?!0:ox.has(t)}function sx(r){if(typeof r=="number"){if(r<0)throw new TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(r))throw new TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(r!==void 0)throw new TypeError("Expected `retries` to be a number or Infinity.")}function Ia(r,e,{min:t=0,allowInfinity:n=!1}={}){if(e!==void 0){if(typeof e!="number"||Number.isNaN(e))throw new TypeError(`Expected \`${r}\` to be a number${n?" or Infinity":""}.`);if(!n&&!Number.isFinite(e))throw new TypeError(`Expected \`${r}\` to be a finite number.`);if(e<t)throw new TypeError(`Expected \`${r}\` to be \u2265 ${t}.`)}}function hf(r,e){if(e!==void 0&&typeof e!="function")throw new TypeError(`Expected \`${r}\` to be a function.`)}var pf=class extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,{message:e}=e):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}};function ix(r,e){let t=Math.max(1,r+1),n=e.randomize?Math.random()+1:1,o=Math.round(n*e.minTimeout*e.factor**(t-1));return o=Math.min(o,e.maxTimeout),o}function Ca(r,e){return Number.isFinite(e)?e-(performance.now()-r):e}async function ax(r,e){r<=0||await new Promise((t,n)=>{let o=()=>{clearTimeout(s),e.signal?.removeEventListener("abort",o),n(e.signal.reason)},s=setTimeout(()=>{e.signal?.removeEventListener("abort",o),t()},r);e.unref&&s.unref?.(),e.signal?.addEventListener("abort",o,{once:!0})})}async function cx({error:r,attemptNumber:e,retriesConsumed:t,startTime:n,options:o}){let s=r instanceof Error?r:new TypeError(`Non-error was thrown: "${r}". You should only throw errors.`);if(s instanceof pf)throw s.originalError;let i=Number.isFinite(o.retries)?Math.max(0,o.retries-t):o.retries,a=o.maxRetryTime??Number.POSITIVE_INFINITY,c=ix(t,o);if(Ca(n,a)<=0){let g=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:0});throw await o.onFailedAttempt(g),s}let u=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:i>0?c:0}),f=await o.shouldConsumeRetry(u),d=f&&i>0?c:0,h=Object.freeze({error:s,attemptNumber:e,retriesLeft:i,retriesConsumed:t,retryDelay:d});if(await o.onFailedAttempt(h),Ca(n,a)<=0||Ca(n,a)<=0||i<=0||s instanceof TypeError&&!df(s)||!await o.shouldRetry(h))throw s;let m=Ca(n,a);if(m<=0)throw s;if(!f)return o.signal?.throwIfAborted(),!1;let p=Math.min(d,m);return o.signal?.throwIfAborted(),await ax(p,o),o.signal?.throwIfAborted(),!0}async function mf(r,e={}){if(e={...e},sx(e.retries),Object.hasOwn(e,"forever"))throw new Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");e.retries??=10,e.factor??=2,e.minTimeout??=1e3,e.maxTimeout??=Number.POSITIVE_INFINITY,e.maxRetryTime??=Number.POSITIVE_INFINITY,e.randomize??=!1,e.onFailedAttempt??=()=>{},e.shouldRetry??=()=>!0,e.shouldConsumeRetry??=()=>!0,hf("onFailedAttempt",e.onFailedAttempt),hf("shouldRetry",e.shouldRetry),hf("shouldConsumeRetry",e.shouldConsumeRetry),Ia("factor",e.factor,{min:0,allowInfinity:!1}),Ia("minTimeout",e.minTimeout,{min:0,allowInfinity:!1}),Ia("maxTimeout",e.maxTimeout,{min:0,allowInfinity:!0}),Ia("maxRetryTime",e.maxRetryTime,{min:0,allowInfinity:!0}),e.factor>0||(e.factor=1),e.signal?.throwIfAborted();let t=0,n=0,o=performance.now();for(;!Number.isFinite(e.retries)||n<=e.retries;){t++;try{e.signal?.throwIfAborted();let s=await r(t);return e.signal?.throwIfAborted(),s}catch(s){await cx({error:s,attemptNumber:t,retriesConsumed:n,startTime:o,options:e})&&n++}}throw new Error("Retry attempts exhausted without throwing an error.")}var Ta=class{log;queue;started;peerStore;retries;retryInterval;backoffFactor;connectionManager;events;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:reconnect-queue"),this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.queue=new Ai({concurrency:t.maxParallelReconnects??5,metricName:"libp2p_reconnect_queue",metrics:e.metrics}),this.started=!1,this.retries=t.retries??5,this.backoffFactor=t.backoffFactor,this.retryInterval=t.retryInterval,this.events=e.events,e.events.addEventListener("peer:disconnect",n=>{this.maybeReconnect(n.detail).catch(o=>{this.log.error("failed to maybe reconnect to %p - %e",n.detail,o)})})}async maybeReconnect(e){if(!this.started)return;let t=await this.peerStore.get(e);Im(t)&&(this.queue.has(e)||this.queue.add(async n=>{await mf(async o=>{if(this.started)try{await this.connectionManager.openConnection(e,{signal:n?.signal})}catch(s){throw this.log("reconnecting to %p attempt %d of %d failed - %e",e,o,this.retries,s),s}},{signal:n?.signal,retries:this.retries,factor:this.backoffFactor,minTimeout:this.retryInterval})},{peerId:e}).catch(async n=>{this.log.error("failed to reconnect to %p - %e",e,n);let o={};[...t.tags.keys()].forEach(s=>{s.startsWith(Ha)&&(o[s]=void 0)}),await this.peerStore.merge(e,{tags:o}),this.events.safeDispatchEvent("peer:reconnect-failure",{detail:e})}).catch(async n=>{this.log.error("failed to remove keep-alive tag from %p - %e",e,n)}))}start(){this.started=!0}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[t=>Im(t)]});await Promise.all(e.map(async t=>{await this.connectionManager.openConnection(t.id).catch(n=>{this.log.error("could not open connection to keepalive peer - %e",n)})}))}).catch(e=>{this.log.error("error reconnect to peers after start - %e",e)})}stop(){this.started=!1,this.queue.abort()}};function Im(r){for(let e of r.tags.keys())if(e.startsWith(Ha))return!0;return!1}var ff=50,gf={maxConnections:gm,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},La=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;outboundPendingConnections;maxConnections;dialQueue;reconnectQueue;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;peerId;constructor(e,t={}){if(this.maxConnections=t.maxConnections??gf.maxConnections,this.maxConnections<1)throw new R("Connection Manager maxConnections must be greater than 0");this.connections=new et,this.started=!1,this.peerId=e.peerId,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.allow=(t.allow??[]).map(n=>qo(te(n))),this.deny=(t.deny??[]).map(n=>qo(te(n))),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=t.maxIncomingPendingConnections??gf.maxIncomingPendingConnections,this.outboundPendingConnections=0,this.inboundConnectionRateLimiter=new Ii({points:t.inboundConnectionThreshold??gf.inboundConnectionThreshold,duration:1}),this.connectionPruner=new ya({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{allow:t.allow?.map(n=>te(n))}),this.dialQueue=new _a(e,{addressSorter:t.addressSorter,maxParallelDials:t.maxParallelDials??ba,maxDialQueueLength:t.maxDialQueueLength??500,maxPeerAddrsToDial:t.maxPeerAddrsToDial??25,dialTimeout:t.dialTimeout??1e4,addressDialTimeout:t.addressDialTimeout??6e3,resolvers:t.resolvers??{dnsaddr:kr},connections:this.connections}),this.reconnectQueue=new Ta({events:e.events,peerStore:e.peerStore,logger:e.logger,connectionManager:this},{retries:t.reconnectRetries,retryInterval:t.reconnectRetryInterval,backoffFactor:t.reconnectBackoffFactor,maxParallelReconnects:t.maxParallelReconnects})}[Symbol.toStringTag]="@libp2p/connection-manager";async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,"inbound pending":this.incomingPendingConnections,outbound:0,"outbound pending":this.outboundPendingConnections};for(let t of this.connections.values())for(let n of t)e[n.direction]++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let t of this.connections.values())for(let n of t)for(let o of n.streams){let s=`${o.direction} ${o.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let o of n){let s={};for(let i of o.streams){let a=`${i.direction} ${i.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[i,a]of Object.entries(s))e[i]=e[i]??[],e[i].push(a)}let t={};for(let[n,o]of Object.entries(e)){o=o.sort((i,a)=>i-a);let s=Math.floor(o.length*.9);t[n]=o[s]}return t}}),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),await _f(this.dialQueue,this.reconnectQueue,this.connectionPruner),this.started=!0,this.log("started")}async stop(){this.events.removeEventListener("connection:open",this.onConnect),this.events.removeEventListener("connection:close",this.onDisconnect),await If(this.reconnectQueue,this.dialQueue,this.connectionPruner);let e=[];for(let t of this.connections.values())for(let n of t)e.push(Promise.all([lt(n,"close",{signal:AbortSignal.timeout(500)}),n.close({signal:AbortSignal.timeout(500)})]).catch(o=>{n.abort(o)}));this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}getMaxConnections(){return this.maxConnections}setMaxConnections(e){if(e<1)throw new R("Connection Manager maxConnections must be greater than 0");let t=!1;e<this.maxConnections&&(t=!0),this.maxConnections=e,t&&this.connectionPruner.maybePruneConnections()}onConnect(e){this._onConnect(e).catch(t=>{this.log.error("could not connect - %e",t)})}async _onConnect(e){let{detail:t}=e;if(!this.started){await t.close();return}if(t.status!=="open")return;let n=t.remotePeer,o=!this.connections.has(n),s=this.connections.get(n)??[];s.push(t),this.connections.set(n,s),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),o&&this.events.safeDispatchEvent("peer:connect",{detail:t.remotePeer})}onDisconnect(e){let{detail:t}=e,n=t.remotePeer,s=(this.connections.get(n)??[]).filter(i=>i.id!==t.id);this.connections.set(n,s),s.length===0&&(this.log.trace("peer %p disconnected, removing connection map entry",n),this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:n}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let t=[];for(let n of this.connections.values())t=t.concat(n);return t}getConnectionsMap(){return this.connections}async openConnection(e,t={}){if(!this.started)throw new xt("Not started");this.outboundPendingConnections++;try{t.signal?.throwIfAborted(),t?.onProgress?.(new ne("connection:open",e));let{peerId:n,multiaddrs:o}=ma(e);if(this.peerId.equals(n))throw new Nr("Can not dial self");if(n!=null&&t.force!==!0){this.log("dial %p",n);let c=ga(n,this.getConnections(n),o);if(c!=null)return this.log("had an existing connection to %p as %a",n,c.remoteAddr),t.onProgress?.(new ne("dial-queue:already-connected")),t.onProgress?.(new ne("connection:opened",c)),c}let s=await this.dialQueue.dial(e,{...t,priority:t.priority??ff});if(s.status!=="open")throw new er("Remote closed connection during opening");let i=this.connections.get(s.remotePeer);i==null&&(i=[],this.connections.set(s.remotePeer,i));let a=!1;for(let c of i)if(c.id===s.id&&(a=!0),t.force!==!0&&c.id!==s.id&&c.remoteAddr.equals(s.remoteAddr))return s.abort(new Ot("Duplicate multiaddr connection")),c;return a||i.push(s),t.onProgress?.(new ne("connection:opened",s)),s}finally{this.outboundPendingConnections--}}async openStream(e,t,n={}){return(await this.openConnection(e,n)).newStream(t,n)}async closeConnections(e,t={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async o=>{try{await Promise.all([lt(o,"close",t),o.close(t)])}catch(s){o.abort(s)}}))}acceptIncomingConnection(e){if(this.deny.some(o=>{if(ve(e.remoteAddr)){let s=G(e.remoteAddr);return o.contains(s.host)}return!1}))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(o=>{if(ve(e.remoteAddr)){let s=G(e.remoteAddr);return o.contains(s.host)}return!0}))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(ve(e.remoteAddr)){let o=G(e.remoteAddr);try{this.inboundConnectionRateLimiter.consume(o.host,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,o.host),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){let e={queued:"queued",running:"active",errored:"error",complete:"success"};return this.dialQueue.queue.queue.map(t=>({id:t.id,status:e[t.status],peerId:t.options.peerId,multiaddrs:[...t.options.multiaddrs].map(n=>te(n))}))}async isDialable(e,t={}){return this.dialQueue.isDialable(e,t)}};var fx=1e4,dx="1.0.0",hx="ping",px="ipfs",Cm=32,mx=!0,Pa=class{protocol;components;log;heartbeatInterval;pingIntervalMs;abortController;timeout;abortConnectionOnPingFailure;constructor(e,t={}){this.components=e,this.protocol=`/${t.protocolPrefix??px}/${hx}/${dx}`,this.log=e.logger.forComponent("libp2p:connection-monitor"),this.pingIntervalMs=t.pingInterval??fx,this.abortConnectionOnPingFailure=t.abortConnectionOnPingFailure??mx,this.timeout=new mi({...t.pingTimeout??{},metrics:e.metrics,metricName:"libp2p_connection_monitor_ping_time_milliseconds"})}[Symbol.toStringTag]="@libp2p/connection-monitor";[Mn]=["@libp2p/connection-monitor"];start(){this.abortController=new AbortController,this.abortController.signal,this.heartbeatInterval=setInterval(()=>{this.components.connectionManager.getConnections().forEach(e=>{Promise.resolve().then(async()=>{let t=Date.now(),n=this.timeout.getTimeoutSignal({signal:this.abortController?.signal}),o;try{o=await e.newStream(this.protocol,{signal:n,runOnLimitedConnection:!0});let s=Pu(o);t=Date.now(),await Promise.all([s.write(crypto.getRandomValues(new Uint8Array(Cm)),{signal:n}),s.read({bytes:Cm,signal:n})]),e.rtt=Date.now()-t,await o.close({signal:n})}catch(s){if(o?.abort(s),s.name!=="UnsupportedProtocolError")throw s;e.rtt=(Date.now()-t)/2}finally{this.timeout.cleanUp(n)}}).catch(t=>{this.log.error("error during heartbeat - %e",t),this.abortConnectionOnPingFailure?(this.log.error("aborting connection due to ping failure"),e.abort(t)):this.log("connection ping failed, but not aborting due to abortConnectionOnPingFailure flag")})})},this.pingIntervalMs)}stop(){this.abortController?.abort(),this.heartbeatInterval!=null&&clearInterval(this.heartbeatInterval)}};var Da=class{routers;started;components;constructor(e,t){this.routers=t.routers??[],this.started=!1,this.components=e,this.findProviders=e.metrics?.traceFunction("libp2p.contentRouting.findProviders",this.findProviders.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()}),getAttributesFromYieldedValue:(n,o)=>({...o,providers:[...Array.isArray(o.providers)?o.providers:[],n.id.toString()]})})??this.findProviders,this.provide=e.metrics?.traceFunction("libp2p.contentRouting.provide",this.provide.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()})})??this.provide,this.cancelReprovide=e.metrics?.traceFunction("libp2p.contentRouting.cancelReprovide",this.cancelReprovide.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,cid:n.toString()})})??this.cancelReprovide,this.put=e.metrics?.traceFunction("libp2p.contentRouting.put",this.put.bind(this),{optionsIndex:2,getAttributesFromArgs:([n])=>({key:q(n,"base36")})})??this.put,this.get=e.metrics?.traceFunction("libp2p.contentRouting.get",this.get.bind(this),{optionsIndex:1,getAttributesFromArgs:([n])=>({key:q(n,"base36")})})??this.get}[Symbol.toStringTag]="@libp2p/content-routing";isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");let n=this,o=new gr;for await(let s of En(...n.routers.filter(i=>i.findProviders instanceof Function).map(i=>i.findProviders(e,t))))s!=null&&(s.multiaddrs.length>0&&await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),!o.has(s.id)&&(o.add(s.id),yield s))}async provide(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");await Promise.all(this.routers.filter(n=>n.provide instanceof Function).map(async n=>{await n.provide(e,t)}))}async cancelReprovide(e,t={}){if(this.routers.length===0)throw new _n("No content routers available");await Promise.all(this.routers.filter(n=>n.cancelReprovide instanceof Function).map(async n=>{await n.cancelReprovide(e,t)}))}async put(e,t,n){if(!this.isStarted())throw new xt;await Promise.all(this.routers.filter(o=>o.put instanceof Function).map(async o=>{await o.put(e,t,n)}))}async get(e,t){if(!this.isStarted())throw new xt;return Promise.any(this.routers.filter(n=>n.get instanceof Function).map(async n=>n.get(e,t)))}};var Ra=globalThis.CustomEvent??Event;async function*yf(r,e={}){let t=e.concurrency??1/0;t<1&&(t=1/0);let n=e.ordered??!1,o=new EventTarget,s=[],i=xe(),a=xe(),c=!1,l,u=!1,f=!1;o.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let m of r){if(s.length===t&&(i=xe(),await i.promise),u||f)break;let p={done:!1};s.push(p),m().then(g=>{p.done=!0,p.ok=!0,p.value=g,o.dispatchEvent(new Ra("task-complete"))},g=>{p.done=!0,p.err=g,o.dispatchEvent(new Ra("task-complete"))})}c=!0,o.dispatchEvent(new Ra("task-complete"))}catch(m){l=m,o.dispatchEvent(new Ra("task-complete"))}});function d(){return n?s[0]?.done:!!s.find(m=>m.done)}function*h(){for(;s.length>0&&s[0].done;){let m=s[0];if(s.shift(),m.ok)yield m.value;else throw u=!0,i.resolve(),m.err;i.resolve()}}function*b(){for(;d();)for(let m=0;m<s.length;m++)if(s[m].done){let p=s[m];if(s.splice(m,1),m--,p.ok)yield p.value;else throw u=!0,i.resolve(),p.err;i.resolve()}}try{for(;;){if(d()||(a=xe(),await a.promise),l!=null||(n?yield*h():yield*b(),l!=null))throw l;if(c&&s.length===0)break}}finally{f=!0,i.resolve()}}var ka=class{log;peerId;peerStore;routers;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=t.routers??[],this.findPeer=e.metrics?.traceFunction("libp2p.peerRouting.findPeer",this.findPeer.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,peer:n.toString()})})??this.findPeer,this.getClosestPeers=e.metrics?.traceFunction("libp2p.peerRouting.getClosestPeers",this.getClosestPeers.bind(this),{optionsIndex:1,getAttributesFromArgs:([n],o)=>({...o,key:q(n,"base36")}),getAttributesFromYieldedValue:(n,o)=>({...o,peers:[...Array.isArray(o.peers)?o.peers:[],n.id.toString()]})})??this.getClosestPeers}[Symbol.toStringTag]="@libp2p/peer-routing";async findPeer(e,t){if(this.routers.length===0)throw new Uo("No peer routers available");if(e.toString()===this.peerId.toString())throw new sa("Should not try to find self");let n=this,o=En(...this.routers.filter(s=>s.findPeer instanceof Function).map(s=>(async function*(){try{yield await s.findPeer(e,t)}catch(i){n.log.error("router failed to find peer - %e",i)}})()));for await(let s of o)if(s!=null)return s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),s;throw new tr}async*getClosestPeers(e,t={}){if(this.routers.length===0)throw new Uo("No peer routers available");let n=this,o=Eo(1024);for await(let s of yf((async function*(){let i=En(...n.routers.filter(a=>a.getClosestPeers instanceof Function).map(a=>a.getClosestPeers(e,t)));for await(let a of i)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...t,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs - %e",c);return}return a}})()))s!=null&&(s.multiaddrs.length>0&&await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs},t),!o.has(s.id.toMultihash().bytes)&&(o.add(s.id.toMultihash().bytes),yield s))}};var Oa=class extends De{peerRouting;log;walking;walkers;shutdownController;walkController;needNext;constructor(e){super(),this.log=e.logger.forComponent("libp2p:random-walk"),this.peerRouting=e.peerRouting,this.walkers=0,this.walking=!1,this.shutdownController=new AbortController,this.shutdownController.signal}[Symbol.toStringTag]="@libp2p/random-walk";start(){this.shutdownController=new AbortController,this.shutdownController.signal}stop(){this.shutdownController.abort()}async*walk(e){this.walking||this.startWalk(),this.walkers++;let t=bt([this.shutdownController.signal,e?.signal]);try{for(;;)this.needNext?.resolve(),this.needNext=xe(),yield(await lt(this,"walk:peer",{signal:t,rejectionEvents:["walk:error"]})).detail}catch(n){throw n.detail!=null?n.detail:n}finally{t.clear(),this.walkers--,this.walkers===0&&(this.walkController?.abort(),this.walkController=void 0)}}startWalk(){this.walking=!0,this.walkController=new AbortController,this.walkController.signal;let e=bt([this.walkController.signal,this.shutdownController.signal]);let t=Date.now(),n=0;Promise.resolve().then(async()=>{for(this.log("start walk");this.walkers>0;)try{let o=crypto.getRandomValues(new Uint8Array(32)),s=Date.now();for await(let i of this.peerRouting.getClosestPeers(o,{signal:e}))e.aborted&&this.log("aborting walk"),e.throwIfAborted(),this.log("found peer %p after %dms for %d walkers",i.id,Date.now()-s,this.walkers),n++,this.safeDispatchEvent("walk:peer",{detail:i}),this.walkers===1&&this.needNext!=null&&(this.log("wait for need next"),await Ve(this.needNext.promise,e)),s=Date.now();this.log("walk iteration for %b and %d walkers finished, found %d peers",o,this.walkers,n)}catch(o){this.log.error("random walk errored - %e",o),this.safeDispatchEvent("walk:error",{detail:o})}this.log("no walkers left, ended walk")}).catch(o=>{this.log.error("random walk errored - %e",o)}).finally(()=>{this.log("finished walk, found %d peers after %dms",n,Date.now()-t),this.walking=!1})}};var bf=32,wf=64,Na=class{log;topologies;handlers;components;middleware;constructor(e){this.components=e,this.log=e.logger.forComponent("libp2p:registrar"),this.middleware=new Map,this.topologies=new Map,e.metrics?.registerMetricGroup("libp2p_registrar_topologies",{calculate:()=>{let t={};for(let[n,o]of this.topologies)t[n]=o.size;return t}}),this.handlers=Te({name:"libp2p_registrar_protocol_handlers",metrics:e.metrics}),this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}[Symbol.toStringTag]="@libp2p/registrar";getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let t=this.handlers.get(e);if(t==null)throw new ia(`No handler registered for protocol ${e}`);return t}getTopologies(e){let t=this.topologies.get(e);return t==null?[]:[...t.values()]}async handle(e,t,n){if(this.handlers.has(e)&&n?.force!==!0)throw new aa(`Handler already registered for protocol ${e}`);this.handlers.set(e,{handler:t,options:{maxInboundStreams:bf,maxOutboundStreams:wf,...n}}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]},n)}async unhandle(e,t){(Array.isArray(e)?e:[e]).forEach(o=>{this.handlers.delete(o)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()},t)}async register(e,t){if(t==null)throw new R("invalid topology");let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,o=this.topologies.get(e);return o==null&&(o=new Map,this.topologies.set(e,o)),o.set(n,t),n}unregister(e){for(let[t,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(t))}use(e,t){this.middleware.set(e,t)}unuse(e){this.middleware.delete(e)}getMiddleware(e){return this.middleware.get(e)??[]}async _onDisconnect(e){let t=e.detail,n={signal:AbortSignal.timeout(5e3)};try{let o=await this.components.peerStore.get(t,n);for(let s of o.protocols){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{a.filter!=null&&a.filter.has(t)!==!0||(a.filter?.remove(t),await a.onDisconnect?.(t))}))}}catch(o){if(o.name==="NotFoundError")return;this.log.error("could not inform topologies of disconnecting peer %p - %e",t,o)}}async _onPeerUpdate(e){let{peer:t,previous:n}=e.detail,o=(n?.protocols??[]).filter(s=>!t.protocols.includes(s));try{for(let s of o){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{a.filter!=null&&a.filter.has(t.id)!==!0||(a.filter?.remove(t.id),await a.onDisconnect?.(t.id))}))}}catch(s){this.log.error("could not inform topologies of updated peer %p - %e",t.id,s)}}async _onPeerIdentify(e){let t=e.detail.protocols,n=e.detail.connection,o=e.detail.peerId;try{for(let s of t){let i=this.topologies.get(s);i!=null&&await Promise.all([...i.values()].map(async a=>{n.limits!=null&&a.notifyOnLimitedConnection!==!0||a.filter?.has(o)!==!0&&(a.filter?.add(o),await a.onConnect?.(o,n))}))}}catch(s){this.log.error("could not inform topologies of updated peer after identify %p - %e",o,s)}}};var Ma=class{log;components;transports;listeners;faultTolerance;started;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=Te({name:"libp2p_transport_manager_transports",metrics:this.components.metrics}),this.listeners=Te({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=t.faultTolerance??Nn.FATAL_ALL}[Symbol.toStringTag]="@libp2p/transport-manager";add(e){let t=e[Symbol.toStringTag];if(t==null)throw new R("Transport must have a valid tag");if(this.transports.has(t))throw new R(`There is already a transport with the tag ${t}`);this.log("adding transport %s",t),this.transports.set(t,e),this.listeners.has(t)||this.listeners.set(t,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[t,n]of this.listeners)for(this.log("closing listeners for %s",t);n.length>0;){let o=n.pop();o!=null&&e.push(o.close())}await Promise.all(e),this.log("all listeners closed");for(let t of this.listeners.keys())this.listeners.set(t,[]);this.started=!1}async dial(e,t){let n=this.dialTransportForMultiaddr(e);if(n==null)throw new ha(`No transport available for address ${String(e)}`);return t?.onProgress?.(new ne("transport-manager:selected-transport",n[Symbol.toStringTag])),n.dial(e,{...t,upgrader:this.components.upgrader})}getAddrs(){let e=[];for(let t of this.listeners.values())for(let n of t)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}dialTransportForMultiaddr(e){for(let t of this.transports.values())if(t.dialFilter([e]).length>0)return t}listenTransportForMultiaddr(e){for(let t of this.transports.values())if(t.listenFilter([e]).length>0)return t}async listen(e){if(!this.isStarted())throw new xt("Not started");if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let t={errors:new Map,ipv4:{success:0,attempts:0},ipv6:{success:0,attempts:0}};e.forEach(s=>{t.errors.set(s.toString(),new ca)});let n=[];for(let[s,i]of this.transports.entries()){let a=i.listenFilter(e);for(let c of a){this.log("creating listener for %s on %a",s,c);let l=i.createListener({upgrader:this.components.upgrader}),u=this.listeners.get(s)??[];u==null&&(u=[],this.listeners.set(s,u)),u.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let f=u.findIndex(d=>d===l);u.splice(f,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),gu.matches(c)?t.ipv4.attempts++:yu.matches(c)&&t.ipv6.attempts++,n.push(l.listen(c).then(()=>{t.errors.delete(c.toString()),gu.matches(c)&&t.ipv4.success++,yu.matches(c)&&t.ipv6.success++},f=>{throw this.log.error("transport %s could not listen on address %a - %e",s,c,f),t.errors.set(c.toString(),f),f}))}}let o=await Promise.allSettled(n);if(!(o.length>0&&o.every(s=>s.status==="fulfilled"))){if(this.ipv6Unsupported(t)){this.log("all IPv4 addresses succeed but all IPv6 failed");return}if(this.faultTolerance===Nn.NO_FATAL){this.log("failed to listen on any address but fault tolerance allows this");return}throw new la(`Some configured addresses failed to be listened on, you may need to remove one or more listen addresses from your configuration or set \`transportManager.faultTolerance\` to NO_FATAL:
|
|
13
13
|
${[...t.errors.entries()].map(([s,i])=>`
|
|
14
14
|
${s}: ${`${gx(i)}`.split(`
|
|
15
15
|
`).join(`
|
|
@@ -23,7 +23,7 @@ ${[...t.errors.entries()].map(([s,i])=>`
|
|
|
23
23
|
`),t),n.trace('responded with "%s" for "%s"',s,s),o.unwrap(),s;if(s==="ls"){let i=new re(...e.map(a=>Si.single(D(`${a}
|
|
24
24
|
`))),D(`
|
|
25
25
|
`));n.trace('respond with "%s" for %s',e,s),await o.write(i,t),n.trace('responded with "%s" for %s',e,s);continue}n.trace('respond with "na" for "%s"',s),await o.write(D(`na
|
|
26
|
-
`),t),n('responded with "na" for "%s"',s)}}var Ef=class extends De{id;remoteAddr;remotePeer;direction;timeline;direct;multiplexer;encryption;limits;log;maConn;muxer;components;outboundStreamProtocolNegotiationTimeout;inboundStreamProtocolNegotiationTimeout;closeTimeout;constructor(e,t){super(),this.components=e,this.id=t.id,this.remoteAddr=t.maConn.remoteAddr,this.remotePeer=t.remotePeer,this.direction=t.direction??"outbound",this.timeline=t.maConn.timeline,this.encryption=t.cryptoProtocol,this.limits=t.limits,this.maConn=t.maConn,this.log=t.maConn.log,this.outboundStreamProtocolNegotiationTimeout=t.outboundStreamProtocolNegotiationTimeout??1e4,this.inboundStreamProtocolNegotiationTimeout=t.inboundStreamProtocolNegotiationTimeout??1e4,this.closeTimeout=t.closeTimeout??1e3,this.direct=Zu(t.maConn.remoteAddr),this.onIncomingStream=this.onIncomingStream.bind(this),this.remoteAddr.getComponents().find(n=>n.code===421)==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),t.muxer!=null&&(this.multiplexer=t.muxer.protocol,this.muxer=t.muxer,this.muxer.addEventListener("stream",this.onIncomingStream)),this.maConn.addEventListener("close",n=>{this.dispatchEvent(new es(n.local,n.error))})}[Symbol.toStringTag]="Connection";[Af]=!0;get streams(){return this.muxer?.streams??[]}get status(){return this.maConn.status}newStream=async(e,t={})=>{if(this.muxer==null)throw new Jt("Connection is not multiplexed");if(this.muxer.status!=="open")throw new er(`The connection muxer is "${this.muxer.status}" and not "open"`);if(this.maConn.status!=="open")throw new er(`The connection is "${this.status}" and not "open"`);if(this.limits!=null&&t?.runOnLimitedConnection!==!0)throw new On("Cannot open protocol stream on limited connection");Array.isArray(e)||(e=[e]),t.onProgress?.(new ne("connection:open-stream",{connection:this,protocols:e})),this.log.trace("starting new stream for protocols %s",e);let n=await this.muxer.createStream({...t,protocol:e.length===1?e[0]:void 0});this.log.trace("started new stream %s for protocols %s",n.id,e);try{if(t.signal==null){n.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",e);let c=AbortSignal.timeout(this.outboundStreamProtocolNegotiationTimeout);t={...t,signal:c}}n.protocol===""?(n.log.trace("selecting protocol from protocols %s",e),n.protocol=await Tn(n,e,t),n.log("negotiated protocol %s",n.protocol)):n.log("pre-negotiated protocol %s",n.protocol);let o=xx(n.protocol,this.components.registrar,t),s=Pm(n.protocol,"outbound",this);if(s>o){let c=new Jo(`Too many outbound protocol streams for protocol "${n.protocol}" - ${s}/${o}`);throw n.abort(c),c}await this.components.peerStore.merge(this.remotePeer,{protocols:[n.protocol]}),this.components.metrics?.trackProtocolStream(n);let i=this.components.registrar.getMiddleware(n.protocol),a=await this.runMiddlewareChain(n,this,i);return t.onProgress?.(new ne("connection:opened-stream",{connection:this,stream:a})),a}catch(o){throw n.status==="open"?n.abort(o):this.log.error("could not create new outbound stream on connection %s %a for protocols %s - %e",this.direction==="inbound"?"from":"to",this.remoteAddr,e,o),o}};async onIncomingStream(e){let t=e.detail,n=AbortSignal.timeout(this.inboundStreamProtocolNegotiationTimeout);t.log("start protocol negotiation, timing out after %dms",this.inboundStreamProtocolNegotiationTimeout);try{if(t.protocol===""){let l=this.components.registrar.getProtocols();t.log.trace("selecting protocol from protocols %s",l),t.protocol=await Ln(t,l,{signal:n}),t.log("negotiated protocol %s",t.protocol)}else t.log("pre-negotiated protocol %s",t.protocol);let o=wx(t.protocol,this.components.registrar);if(Pm(t.protocol,"inbound",this)>o)throw new Qo(`Too many inbound protocol streams for protocol "${t.protocol}" - limit ${o}`);await this.components.peerStore.merge(this.remotePeer,{protocols:[t.protocol]},{signal:n}),this.components.metrics?.trackProtocolStream(t);let{handler:i,options:a}=this.components.registrar.getHandler(t.protocol);if(this.limits!=null&&a.runOnLimitedConnection!==!0)throw new On("Cannot open protocol stream on limited connection");let c=this.components.registrar.getMiddleware(t.protocol);c.push(async(l,u,f)=>{await i(l,u),f(l,u)}),await this.runMiddlewareChain(t,this,c)}catch(o){t.abort(o)}}async runMiddlewareChain(e,t,n){for(let o=0;o<n.length;o++){let s=n[o];e.log.trace("running middleware",o,s),await new Promise((i,a)=>{try{let c=s(e,t,(l,u)=>{e=l,t=u,i()});c instanceof Promise&&c.catch(a)}catch(c){a(c)}}),e.log.trace("ran middleware",o,s)}return e}async close(e={}){if(this.log("closing connection to %a",this.remoteAddr),e.signal==null){let t=AbortSignal.timeout(this.closeTimeout);e={...e,signal:t}}await this.muxer?.close(e),await this.maConn.close(e)}abort(e){this.muxer?.abort(e),this.maConn.abort(e)}};function Dm(r,e){return new Ef(r,e)}function wx(r,e){try{let{options:t}=e.getHandler(r);if(t.maxInboundStreams!=null)return t.maxInboundStreams}catch(t){if(t.name!=="UnhandledProtocolError")throw t}return bf}function xx(r,e,t={}){try{let{options:n}=e.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.name!=="UnhandledProtocolError")throw n}return t.maxOutboundStreams??wf}function Pm(r,e,t){let n=0;return t.streams.forEach(o=>{o.direction===e&&o.protocol===r&&n++}),n}var Ba=class{components;connectionEncrypters;streamMuxers;inboundUpgradeTimeout;inboundStreamProtocolNegotiationTimeout;outboundStreamProtocolNegotiationTimeout;events;metrics;connectionCloseTimeout;constructor(e,t){this.components=e,this.connectionEncrypters=Te({name:"libp2p_upgrader_connection_encrypters",metrics:this.components.metrics}),t.connectionEncrypters.forEach(n=>{this.connectionEncrypters.set(n.protocol,n)}),this.streamMuxers=Te({name:"libp2p_upgrader_stream_multiplexers",metrics:this.components.metrics}),t.streamMuxers.forEach(n=>{this.streamMuxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=t.inboundUpgradeTimeout??1e4,this.inboundStreamProtocolNegotiationTimeout=t.inboundStreamProtocolNegotiationTimeout??1e4,this.outboundStreamProtocolNegotiationTimeout=t.outboundStreamProtocolNegotiationTimeout??1e4,this.connectionCloseTimeout=t.connectionCloseTimeout??1e3,this.events=e.events,this.metrics={dials:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_total"),errors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dial_errors_total"),inboundErrors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_inbound_errors_total"),outboundErrors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_outbound_errors_total")}}[Symbol.toStringTag]="@libp2p/upgrader";async shouldBlockConnection(e,...t){let n=this.components.connectionGater[e];if(n==null)return;if(await n.apply(this.components.connectionGater,t)===!0)throw new fa(`The multiaddr connection is blocked by gater.${e}`)}createInboundAbortSignal(e){let t=bt([AbortSignal.timeout(this.inboundUpgradeTimeout),e]);return t}async upgradeInbound(e,t){let n=!1,o=this.createInboundAbortSignal(t.signal);try{if(this.metrics.dials?.increment({inbound:!0}),n=this.components.connectionManager.acceptIncomingConnection(e),!n)throw new da("Connection denied");await Ve(this.shouldBlockConnection("denyInboundConnection",e),o),await this._performUpgrade(e,"inbound",{...t,signal:o})}catch(s){throw this.metrics.errors?.increment({inbound:!0}),this.metrics.inboundErrors?.increment({[s.name??"Error"]:!0}),s}finally{o.clear(),n&&this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t){try{this.metrics.dials?.increment({outbound:!0});let n=e.remoteAddr.getComponents().findLast(i=>i.code===421)?.value,o;n!=null&&(o=gt(n),await Ve(this.shouldBlockConnection("denyOutboundConnection",o,e),t.signal));let s="outbound";return t.initiator===!1&&(s="inbound"),await this._performUpgrade(e,s,t)}catch(n){throw this.metrics.errors?.increment({outbound:!0}),this.metrics.outboundErrors?.increment({[n.name??"Error"]:!0}),n}}async _performUpgrade(e,t,n){let o=e,s,i,a,c,l=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`;if(e.log=e.log.newScope(`${t}:${l}`),this.components.metrics?.trackMultiaddrConnection(e),e.log.trace("starting the %s connection upgrade",t),n?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(e.log("protecting the %s connection",t),o=await f.protect(o,n))}try{if(Ex(n)){if(n.remotePeer==null)throw new Ot(`${t} connection that skipped encryption must have a peer id`);c="native",s=n.remotePeer}else{let f=e.remoteAddr.getComponents().findLast(h=>h.code===421)?.value,d;f!=null&&(d=gt(f)),n?.onProgress?.(new ne(`upgrader:encrypt-${t}-connection`)),{connection:o,remotePeer:s,protocol:c,streamMuxer:i}=await(t==="inbound"?this._encryptInbound(o,{...n,remotePeer:d}):this._encryptOutbound(o,{...n,remotePeer:d}))}if(s.equals(this.components.peerId)){let f=new Nr("Can not dial self");throw e.abort(f),f}await this.shouldBlockConnection(t==="inbound"?"denyInboundEncryptedConnection":"denyOutboundEncryptedConnection",s,e),n?.muxerFactory!=null?i=n.muxerFactory:i==null&&this.streamMuxers.size>0&&(n?.onProgress?.(new ne(`upgrader:multiplex-${t}-connection`)),i=await(t==="inbound"?this._multiplexInbound(o,this.streamMuxers,n):this._multiplexOutbound(o,this.streamMuxers,n)))}catch(f){throw e.log.error("failed to upgrade %s connection %s %a - %e",t,t==="inbound"?"from":"to",e.remoteAddr,f),f}i!=null&&(e.log("create muxer %s",i.protocol),a=i.createStreamMuxer(o)),await this.shouldBlockConnection(t==="inbound"?"denyInboundUpgradedConnection":"denyOutboundUpgradedConnection",s,e);let u=this._createConnection({id:l,cryptoProtocol:c,direction:t,maConn:e,stream:o,muxer:a,remotePeer:s,limits:n?.limits,closeTimeout:this.connectionCloseTimeout});return u.log("successfully upgraded connection"),u}_createConnection(e){let t=Dm(this.components,{...e,outboundStreamProtocolNegotiationTimeout:this.outboundStreamProtocolNegotiationTimeout,inboundStreamProtocolNegotiationTimeout:this.inboundStreamProtocolNegotiationTimeout});return t.addEventListener("close",()=>{this.events.safeDispatchEvent("connection:close",{detail:t})}),this.events.safeDispatchEvent("connection:open",{detail:t}),t}async _encryptInbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{let o=await Ln(e,n,t),s=this.connectionEncrypters.get(o);if(s==null)throw new Rr(`no crypto module found for ${o}`);return e.log("encrypting inbound connection using %s",o),{...await s.secureInbound(e,t),protocol:o}}catch(o){throw new Rr(o.message)}}async _encryptOutbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{e.log.trace("selecting encrypter from %s",n);let o=await Tn(e,n,t),s=this.connectionEncrypters.get(o);if(s==null)throw new Rr(`no crypto module found for ${o}`);return e.log("encrypting outbound connection using %s",o),{...await s.secureOutbound(e,t),protocol:o}}catch(o){throw new Rr(o.message)}}async _multiplexOutbound(e,t,n){let o=Array.from(t.keys());e.log("outbound selecting muxer %s",o);try{e.log.trace("selecting stream muxer from %s",o);let s=await Tn(e,o,n),i=t.get(s);if(i==null)throw new Jt(`No muxer configured for protocol "${s}"`);return e.log("selected %s as muxer protocol",s),i}catch(s){throw e.log.error("error multiplexing outbound connection - %e",s),new Jt(String(s))}}async _multiplexInbound(e,t,n){let o=Array.from(t.keys());e.log("inbound handling muxers %s",o);try{e.log.trace("selecting stream muxer from %s",o);let s=await Ln(e,o,n),i=t.get(s);if(i==null)throw new Jt(`No muxer configured for protocol "${s}"`);return e.log("selected %s as muxer protocol",s),i}catch(s){throw e.log.error("error multiplexing inbound connection - %e",s),s}}getConnectionEncrypters(){return this.connectionEncrypters}getStreamMuxers(){return this.streamMuxers}};function Ex(r){return r.skipEncryption===!0}var Fa="3.3.8-d5534174d",Ua="js-libp2p";function km(r,e){return`${r??Ua}/${e??Fa} browser/${globalThis.navigator.userAgent}`}var Ho=class extends De{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let t=new De,n=t.dispatchEvent.bind(t);t.dispatchEvent=l=>{let u=n(l),f=this.dispatchEvent(new CustomEvent(l.type,{detail:l.detail}));return u||f},this.peerId=e.peerId,this.logger=e.logger??zs(),this.log=this.logger.forComponent("libp2p"),this.services={};let o=e.nodeInfo?.name??Ua,s=e.nodeInfo?.version??Fa,i=this.components=lm({peerId:e.peerId,privateKey:e.privateKey,nodeInfo:{name:o,version:s,userAgent:e.nodeInfo?.userAgent??km(o,s)},logger:this.logger,events:t,datastore:e.datastore??new Zi,connectionGater:fm(e.connectionGater),dns:e.dns});e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),this.peerStore=this.configureComponent("peerStore",nm(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),i.events.addEventListener("peer:update",l=>{if(l.detail.previous==null){let u={id:l.detail.peer.id,multiaddrs:l.detail.peer.addresses.map(f=>f.multiaddr)};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Ba(this.components,{connectionEncrypters:(e.connectionEncrypters??[]).map((l,u)=>this.configureComponent(`connection-encryption-${u}`,l(this.components))),streamMuxers:(e.streamMuxers??[]).map((l,u)=>this.configureComponent(`stream-muxers-${u}`,l(this.components))),inboundUpgradeTimeout:e.connectionManager?.inboundUpgradeTimeout,inboundStreamProtocolNegotiationTimeout:e.connectionManager?.inboundStreamProtocolNegotiationTimeout,outboundStreamProtocolNegotiationTimeout:e.connectionManager?.outboundStreamProtocolNegotiationTimeout,connectionCloseTimeout:e.connectionManager?.connectionCloseTimeout}),this.configureComponent("transportManager",new Ma(this.components,e.transportManager)),this.configureComponent("connectionManager",new La(this.components,e.connectionManager)),e.connectionMonitor?.enabled!==!1&&this.configureComponent("connectionMonitor",new Pa(this.components,e.connectionMonitor)),this.configureComponent("registrar",new Na(this.components)),this.configureComponent("addressManager",new ra(this.components,e.addresses));let a=(e.peerRouters??[]).map((l,u)=>this.configureComponent(`peer-router-${u}`,l(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new ka(this.components,{routers:a}));let c=(e.contentRouters??[]).map((l,u)=>this.configureComponent(`content-router-${u}`,l(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Da(this.components,{routers:c})),this.configureComponent("randomWalk",new Oa(this.components)),(e.peerDiscovery??[]).forEach((l,u)=>{this.configureComponent(`peer-discovery-${u}`,l(this.components)).addEventListener("peer",d=>{this.#e(d)})}),e.transports?.forEach((l,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,l(this.components)))}),e.services!=null)for(let l of Object.keys(e.services)){let u=e.services[l],f=u(this.components);if(f==null){this.log.error("service factory %s returned null or undefined instance",l);continue}this.services[l]=f,this.configureComponent(l,f),f[$a]!=null&&(this.log("registering service %s for content routing",l),c.push(f[$a])),f[Va]!=null&&(this.log("registering service %s for peer routing",l),a.push(f[Va])),f[za]!=null&&(this.log("registering service %s for peer discovery",l),f[za].addEventListener?.("peer",d=>{this.#e(d)}))}um(i)}configureComponent(e,t){return t==null&&this.log.error("component %s was null or undefined",e),this.components[e]=t,t}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started with peer id %p",this.peerId)}catch(e){throw this.log.error("an error occurred starting libp2p - %e",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new gr;for(let t of this.components.connectionManager.getConnections())e.add(t.remotePeer);return Array.from(e)}async dial(e,t={}){return this.components.connectionManager.openConnection(e,{priority:75,...t})}async dialProtocol(e,t,n={}){if(t==null)throw new R("no protocols were provided to open a stream");if(t=Array.isArray(t)?t:[t],t.length===0)throw new R("no protocols were provided to open a stream");return this.components.connectionManager.openStream(e,t,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,t={}){Qt(e)&&(e=gt(e.getComponents().findLast(n=>n.code===421)?.value??"")),await this.components.connectionManager.closeConnections(e,t)}async getPublicKey(e,t={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;try{let i=await this.peerStore.get(e,t);if(i.id.publicKey!=null)return i.id.publicKey}catch(i){if(i.name!=="NotFoundError")throw i}let n=Ye([D("/pk/"),e.toMultihash().bytes]),o=await this.contentRouting.get(n,t),s=en(o);if(!e.equals(s.toMultihash().bytes))throw new kt("public key did not match requested peer");return await this.peerStore.patch(e,{publicKey:s},t),s}async handle(e,t,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async o=>{await this.components.registrar.handle(o,t,n)}))}async unhandle(e,t){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async n=>{await this.components.registrar.unhandle(n,t)}))}async register(e,t,n){return this.components.registrar.register(e,t,n)}unregister(e){this.components.registrar.unregister(e)}use(e,t){this.components.registrar.use(e,Array.isArray(t)?t:[t])}unuse(e){this.components.registrar.unuse(e)}async isDialable(e,t={}){return this.components.connectionManager.isDialable(e,t)}#e(e){let{detail:t}=e;if(t.id.toString()===this.peerId.toString()){this.log.error("peer discovery mechanism discovered self");return}this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs}).catch(n=>{this.log.error("could not update multiaddrs of discovered peer - %e",n)})}};async function vx(r={}){r.privateKey??=await Mh("Ed25519");let e=new Ho({...await qh(r),peerId:Kh(r.privateKey)});return r.start!==!1&&await e.start(),e}var Sx=["dial","dialProtocol","hangUp","handle","unhandle","getMultiaddrs","getProtocols"];function Ax(r){return r==null?!1:r instanceof Ho?!0:Sx.every(e=>typeof r[e]=="function")}return $m(_x);})();
|
|
26
|
+
`),t),n('responded with "na" for "%s"',s)}}var Ef=class extends De{id;remoteAddr;remotePeer;direction;timeline;direct;multiplexer;encryption;limits;log;maConn;muxer;components;outboundStreamProtocolNegotiationTimeout;inboundStreamProtocolNegotiationTimeout;closeTimeout;constructor(e,t){super(),this.components=e,this.id=t.id,this.remoteAddr=t.maConn.remoteAddr,this.remotePeer=t.remotePeer,this.direction=t.direction??"outbound",this.timeline=t.maConn.timeline,this.encryption=t.cryptoProtocol,this.limits=t.limits,this.maConn=t.maConn,this.log=t.maConn.log,this.outboundStreamProtocolNegotiationTimeout=t.outboundStreamProtocolNegotiationTimeout??1e4,this.inboundStreamProtocolNegotiationTimeout=t.inboundStreamProtocolNegotiationTimeout??1e4,this.closeTimeout=t.closeTimeout??1e3,this.direct=Zu(t.maConn.remoteAddr),this.onIncomingStream=this.onIncomingStream.bind(this),this.remoteAddr.getComponents().find(n=>n.code===421)==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),t.muxer!=null&&(this.multiplexer=t.muxer.protocol,this.muxer=t.muxer,this.muxer.addEventListener("stream",this.onIncomingStream)),this.maConn.addEventListener("close",n=>{this.dispatchEvent(new es(n.local,n.error))})}[Symbol.toStringTag]="Connection";[Af]=!0;get streams(){return this.muxer?.streams??[]}get status(){return this.maConn.status}newStream=async(e,t={})=>{if(this.muxer==null)throw new Jt("Connection is not multiplexed");if(this.muxer.status!=="open")throw new er(`The connection muxer is "${this.muxer.status}" and not "open"`);if(this.maConn.status!=="open")throw new er(`The connection is "${this.status}" and not "open"`);if(this.limits!=null&&t?.runOnLimitedConnection!==!0)throw new On("Cannot open protocol stream on limited connection");Array.isArray(e)||(e=[e]),t.onProgress?.(new ne("connection:open-stream",{connection:this,protocols:e})),this.log.trace("starting new stream for protocols %s",e);let n=await this.muxer.createStream({...t,protocol:e.length===1?e[0]:void 0});this.log.trace("started new stream %s for protocols %s",n.id,e);try{if(t.signal==null){n.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",e);let c=AbortSignal.timeout(this.outboundStreamProtocolNegotiationTimeout);t={...t,signal:c}}n.protocol===""?(n.log.trace("selecting protocol from protocols %s",e),n.protocol=await Tn(n,e,t),n.log("negotiated protocol %s",n.protocol)):n.log("pre-negotiated protocol %s",n.protocol);let o=xx(n.protocol,this.components.registrar,t),s=Dm(n.protocol,"outbound",this);if(s>o){let c=new Jo(`Too many outbound protocol streams for protocol "${n.protocol}" - ${s}/${o}`);throw n.abort(c),c}await this.components.peerStore.merge(this.remotePeer,{protocols:[n.protocol]}),this.components.metrics?.trackProtocolStream(n);let i=this.components.registrar.getMiddleware(n.protocol),a=await this.runMiddlewareChain(n,this,i);return t.onProgress?.(new ne("connection:opened-stream",{connection:this,stream:a})),a}catch(o){throw n.status==="open"?n.abort(o):this.log.error("could not create new outbound stream on connection %s %a for protocols %s - %e",this.direction==="inbound"?"from":"to",this.remoteAddr,e,o),o}};async onIncomingStream(e){let t=e.detail,n=AbortSignal.timeout(this.inboundStreamProtocolNegotiationTimeout);t.log("start protocol negotiation, timing out after %dms",this.inboundStreamProtocolNegotiationTimeout);try{if(t.protocol===""){let l=this.components.registrar.getProtocols();t.log.trace("selecting protocol from protocols %s",l),t.protocol=await Ln(t,l,{signal:n}),t.log("negotiated protocol %s",t.protocol)}else t.log("pre-negotiated protocol %s",t.protocol);let o=wx(t.protocol,this.components.registrar);if(Dm(t.protocol,"inbound",this)>o)throw new Qo(`Too many inbound protocol streams for protocol "${t.protocol}" - limit ${o}`);await this.components.peerStore.merge(this.remotePeer,{protocols:[t.protocol]},{signal:n}),this.components.metrics?.trackProtocolStream(t);let{handler:i,options:a}=this.components.registrar.getHandler(t.protocol);if(this.limits!=null&&a.runOnLimitedConnection!==!0)throw new On("Cannot open protocol stream on limited connection");let c=this.components.registrar.getMiddleware(t.protocol);c.push(async(l,u,f)=>{await i(l,u),f(l,u)}),await this.runMiddlewareChain(t,this,c)}catch(o){t.abort(o)}}async runMiddlewareChain(e,t,n){for(let o=0;o<n.length;o++){let s=n[o];e.log.trace("running middleware",o,s),await new Promise((i,a)=>{try{let c=s(e,t,(l,u)=>{e=l,t=u,i()});c instanceof Promise&&c.catch(a)}catch(c){a(c)}}),e.log.trace("ran middleware",o,s)}return e}async close(e={}){if(this.log("closing connection to %a",this.remoteAddr),e.signal==null){let t=AbortSignal.timeout(this.closeTimeout);e={...e,signal:t}}await this.muxer?.close(e),await this.maConn.close(e)}abort(e){this.muxer?.abort(e),this.maConn.abort(e)}};function Rm(r,e){return new Ef(r,e)}function wx(r,e){try{let{options:t}=e.getHandler(r);if(t.maxInboundStreams!=null)return t.maxInboundStreams}catch(t){if(t.name!=="UnhandledProtocolError")throw t}return bf}function xx(r,e,t={}){try{let{options:n}=e.getHandler(r);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.name!=="UnhandledProtocolError")throw n}return t.maxOutboundStreams??wf}function Dm(r,e,t){let n=0;return t.streams.forEach(o=>{o.direction===e&&o.protocol===r&&n++}),n}var Ba=class{components;connectionEncrypters;streamMuxers;inboundUpgradeTimeout;inboundStreamProtocolNegotiationTimeout;outboundStreamProtocolNegotiationTimeout;events;metrics;connectionCloseTimeout;constructor(e,t){this.components=e,this.connectionEncrypters=Te({name:"libp2p_upgrader_connection_encrypters",metrics:this.components.metrics}),t.connectionEncrypters.forEach(n=>{this.connectionEncrypters.set(n.protocol,n)}),this.streamMuxers=Te({name:"libp2p_upgrader_stream_multiplexers",metrics:this.components.metrics}),t.streamMuxers.forEach(n=>{this.streamMuxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=t.inboundUpgradeTimeout??1e4,this.inboundStreamProtocolNegotiationTimeout=t.inboundStreamProtocolNegotiationTimeout??1e4,this.outboundStreamProtocolNegotiationTimeout=t.outboundStreamProtocolNegotiationTimeout??1e4,this.connectionCloseTimeout=t.connectionCloseTimeout??1e3,this.events=e.events,this.metrics={dials:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_total"),errors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dial_errors_total"),inboundErrors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_inbound_errors_total"),outboundErrors:e.metrics?.registerCounterGroup("libp2p_connection_manager_dials_outbound_errors_total")}}[Symbol.toStringTag]="@libp2p/upgrader";async shouldBlockConnection(e,...t){let n=this.components.connectionGater[e];if(n==null)return;if(await n.apply(this.components.connectionGater,t)===!0)throw new fa(`The multiaddr connection is blocked by gater.${e}`)}createInboundAbortSignal(e){let t=bt([AbortSignal.timeout(this.inboundUpgradeTimeout),e]);return t}async upgradeInbound(e,t){let n=!1,o=this.createInboundAbortSignal(t.signal);try{if(this.metrics.dials?.increment({inbound:!0}),n=this.components.connectionManager.acceptIncomingConnection(e),!n)throw new da("Connection denied");await Ve(this.shouldBlockConnection("denyInboundConnection",e),o),await this._performUpgrade(e,"inbound",{...t,signal:o})}catch(s){throw this.metrics.errors?.increment({inbound:!0}),this.metrics.inboundErrors?.increment({[s.name??"Error"]:!0}),s}finally{o.clear(),n&&this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,t){try{this.metrics.dials?.increment({outbound:!0});let n=e.remoteAddr.getComponents().findLast(i=>i.code===421)?.value,o;n!=null&&(o=gt(n),await Ve(this.shouldBlockConnection("denyOutboundConnection",o,e),t.signal));let s="outbound";return t.initiator===!1&&(s="inbound"),await this._performUpgrade(e,s,t)}catch(n){throw this.metrics.errors?.increment({outbound:!0}),this.metrics.outboundErrors?.increment({[n.name??"Error"]:!0}),n}}async _performUpgrade(e,t,n){let o=e,s,i,a,c,l=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`;if(e.log=e.log.newScope(`${t}:${l}`),this.components.metrics?.trackMultiaddrConnection(e),e.log.trace("starting the %s connection upgrade",t),n?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(e.log("protecting the %s connection",t),o=await f.protect(o,n))}try{if(Ex(n)){if(n.remotePeer==null)throw new Ot(`${t} connection that skipped encryption must have a peer id`);c="native",s=n.remotePeer}else{let f=e.remoteAddr.getComponents().findLast(h=>h.code===421)?.value,d;f!=null&&(d=gt(f)),n?.onProgress?.(new ne(`upgrader:encrypt-${t}-connection`)),{connection:o,remotePeer:s,protocol:c,streamMuxer:i}=await(t==="inbound"?this._encryptInbound(o,{...n,remotePeer:d}):this._encryptOutbound(o,{...n,remotePeer:d}))}if(s.equals(this.components.peerId)){let f=new Nr("Can not dial self");throw e.abort(f),f}await this.shouldBlockConnection(t==="inbound"?"denyInboundEncryptedConnection":"denyOutboundEncryptedConnection",s,e),n?.muxerFactory!=null?i=n.muxerFactory:i==null&&this.streamMuxers.size>0&&(n?.onProgress?.(new ne(`upgrader:multiplex-${t}-connection`)),i=await(t==="inbound"?this._multiplexInbound(o,this.streamMuxers,n):this._multiplexOutbound(o,this.streamMuxers,n)))}catch(f){throw e.log.error("failed to upgrade %s connection %s %a - %e",t,t==="inbound"?"from":"to",e.remoteAddr,f),f}i!=null&&(e.log("create muxer %s",i.protocol),a=i.createStreamMuxer(o)),await this.shouldBlockConnection(t==="inbound"?"denyInboundUpgradedConnection":"denyOutboundUpgradedConnection",s,e);let u=this._createConnection({id:l,cryptoProtocol:c,direction:t,maConn:e,stream:o,muxer:a,remotePeer:s,limits:n?.limits,closeTimeout:this.connectionCloseTimeout});return u.log("successfully upgraded connection"),u}_createConnection(e){let t=Rm(this.components,{...e,outboundStreamProtocolNegotiationTimeout:this.outboundStreamProtocolNegotiationTimeout,inboundStreamProtocolNegotiationTimeout:this.inboundStreamProtocolNegotiationTimeout});return t.addEventListener("close",()=>{this.events.safeDispatchEvent("connection:close",{detail:t})}),this.events.safeDispatchEvent("connection:open",{detail:t}),t}async _encryptInbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{let o=await Ln(e,n,t),s=this.connectionEncrypters.get(o);if(s==null)throw new Rr(`no crypto module found for ${o}`);return e.log("encrypting inbound connection using %s",o),{...await s.secureInbound(e,t),protocol:o}}catch(o){throw new Rr(o.message)}}async _encryptOutbound(e,t){let n=Array.from(this.connectionEncrypters.keys());try{e.log.trace("selecting encrypter from %s",n);let o=await Tn(e,n,t),s=this.connectionEncrypters.get(o);if(s==null)throw new Rr(`no crypto module found for ${o}`);return e.log("encrypting outbound connection using %s",o),{...await s.secureOutbound(e,t),protocol:o}}catch(o){throw new Rr(o.message)}}async _multiplexOutbound(e,t,n){let o=Array.from(t.keys());e.log("outbound selecting muxer %s",o);try{e.log.trace("selecting stream muxer from %s",o);let s=await Tn(e,o,n),i=t.get(s);if(i==null)throw new Jt(`No muxer configured for protocol "${s}"`);return e.log("selected %s as muxer protocol",s),i}catch(s){throw e.log.error("error multiplexing outbound connection - %e",s),new Jt(String(s))}}async _multiplexInbound(e,t,n){let o=Array.from(t.keys());e.log("inbound handling muxers %s",o);try{e.log.trace("selecting stream muxer from %s",o);let s=await Ln(e,o,n),i=t.get(s);if(i==null)throw new Jt(`No muxer configured for protocol "${s}"`);return e.log("selected %s as muxer protocol",s),i}catch(s){throw e.log.error("error multiplexing inbound connection - %e",s),s}}getConnectionEncrypters(){return this.connectionEncrypters}getStreamMuxers(){return this.streamMuxers}};function Ex(r){return r.skipEncryption===!0}var Fa="3.3.9",Ua="js-libp2p";function Om(r,e){return`${r??Ua}/${e??Fa} browser/${globalThis.navigator.userAgent}`}var Ho=class extends De{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let t=new De,n=t.dispatchEvent.bind(t);t.dispatchEvent=l=>{let u=n(l),f=this.dispatchEvent(new CustomEvent(l.type,{detail:l.detail}));return u||f},this.peerId=e.peerId,this.logger=e.logger??zs(),this.log=this.logger.forComponent("libp2p"),this.services={};let o=e.nodeInfo?.name??Ua,s=e.nodeInfo?.version??Fa,i=this.components=um({peerId:e.peerId,privateKey:e.privateKey,nodeInfo:{name:o,version:s,userAgent:e.nodeInfo?.userAgent??Om(o,s)},logger:this.logger,events:t,datastore:e.datastore??new Zi,connectionGater:dm(e.connectionGater),dns:e.dns});e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),this.peerStore=this.configureComponent("peerStore",om(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),i.events.addEventListener("peer:update",l=>{if(l.detail.previous==null){let u={id:l.detail.peer.id,multiaddrs:l.detail.peer.addresses.map(f=>f.multiaddr)};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Ba(this.components,{connectionEncrypters:(e.connectionEncrypters??[]).map((l,u)=>this.configureComponent(`connection-encryption-${u}`,l(this.components))),streamMuxers:(e.streamMuxers??[]).map((l,u)=>this.configureComponent(`stream-muxers-${u}`,l(this.components))),inboundUpgradeTimeout:e.connectionManager?.inboundUpgradeTimeout,inboundStreamProtocolNegotiationTimeout:e.connectionManager?.inboundStreamProtocolNegotiationTimeout,outboundStreamProtocolNegotiationTimeout:e.connectionManager?.outboundStreamProtocolNegotiationTimeout,connectionCloseTimeout:e.connectionManager?.connectionCloseTimeout}),this.configureComponent("transportManager",new Ma(this.components,e.transportManager)),this.configureComponent("connectionManager",new La(this.components,e.connectionManager)),e.connectionMonitor?.enabled!==!1&&this.configureComponent("connectionMonitor",new Pa(this.components,e.connectionMonitor)),this.configureComponent("registrar",new Na(this.components)),this.configureComponent("addressManager",new ra(this.components,e.addresses));let a=(e.peerRouters??[]).map((l,u)=>this.configureComponent(`peer-router-${u}`,l(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new ka(this.components,{routers:a}));let c=(e.contentRouters??[]).map((l,u)=>this.configureComponent(`content-router-${u}`,l(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Da(this.components,{routers:c})),this.configureComponent("randomWalk",new Oa(this.components)),(e.peerDiscovery??[]).forEach((l,u)=>{this.configureComponent(`peer-discovery-${u}`,l(this.components)).addEventListener("peer",d=>{this.#e(d)})}),e.transports?.forEach((l,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,l(this.components)))}),e.services!=null)for(let l of Object.keys(e.services)){let u=e.services[l],f=u(this.components);if(f==null){this.log.error("service factory %s returned null or undefined instance",l);continue}this.services[l]=f,this.configureComponent(l,f),f[$a]!=null&&(this.log("registering service %s for content routing",l),c.push(f[$a])),f[Va]!=null&&(this.log("registering service %s for peer routing",l),a.push(f[Va])),f[za]!=null&&(this.log("registering service %s for peer discovery",l),f[za].addEventListener?.("peer",d=>{this.#e(d)}))}fm(i)}configureComponent(e,t){return t==null&&this.log.error("component %s was null or undefined",e),this.components[e]=t,t}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started with peer id %p",this.peerId)}catch(e){throw this.log.error("an error occurred starting libp2p - %e",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new gr;for(let t of this.components.connectionManager.getConnections())e.add(t.remotePeer);return Array.from(e)}async dial(e,t={}){return this.components.connectionManager.openConnection(e,{priority:75,...t})}async dialProtocol(e,t,n={}){if(t==null)throw new R("no protocols were provided to open a stream");if(t=Array.isArray(t)?t:[t],t.length===0)throw new R("no protocols were provided to open a stream");return this.components.connectionManager.openStream(e,t,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,t={}){Qt(e)&&(e=gt(e.getComponents().findLast(n=>n.code===421)?.value??"")),await this.components.connectionManager.closeConnections(e,t)}async getPublicKey(e,t={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;try{let i=await this.peerStore.get(e,t);if(i.id.publicKey!=null)return i.id.publicKey}catch(i){if(i.name!=="NotFoundError")throw i}let n=Ye([D("/pk/"),e.toMultihash().bytes]),o=await this.contentRouting.get(n,t),s=en(o);if(!e.equals(s.toMultihash().bytes))throw new kt("public key did not match requested peer");return await this.peerStore.patch(e,{publicKey:s},t),s}async handle(e,t,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async o=>{await this.components.registrar.handle(o,t,n)}))}async unhandle(e,t){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async n=>{await this.components.registrar.unhandle(n,t)}))}async register(e,t,n){return this.components.registrar.register(e,t,n)}unregister(e){this.components.registrar.unregister(e)}use(e,t){this.components.registrar.use(e,Array.isArray(t)?t:[t])}unuse(e){this.components.registrar.unuse(e)}async isDialable(e,t={}){return this.components.connectionManager.isDialable(e,t)}#e(e){let{detail:t}=e;if(t.id.toString()===this.peerId.toString()){this.log.error("peer discovery mechanism discovered self");return}this.components.peerStore.merge(t.id,{multiaddrs:t.multiaddrs}).catch(n=>{this.log.error("could not update multiaddrs of discovered peer - %e",n)})}};async function vx(r={}){r.privateKey??=await Mh("Ed25519");let e=new Ho({...await qh(r),peerId:Kh(r.privateKey)});return r.start!==!1&&await e.start(),e}var Sx=["dial","dialProtocol","hangUp","handle","unhandle","getMultiaddrs","getProtocols"];function Ax(r){return r==null?!1:r instanceof Ho?!0:Sx.every(e=>typeof r[e]=="function")}return zm(_x);})();
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@noble/curves/utils.js:
|