@libp2p/circuit-relay-v2 1.1.5-1675adee2 → 1.1.5-2265e59ba

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. package/dist/index.min.js +3 -3
  2. package/package.json +10 -10
package/dist/index.min.js CHANGED
@@ -1,10 +1,10 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PCircuitRelayV2 = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PCircuitRelayV2=(()=>{var cf=Object.create;var Rn=Object.defineProperty;var lf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var ff=Object.getPrototypeOf,hf=Object.prototype.hasOwnProperty;var bi=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ge=(r,e)=>{for(var t in e)Rn(r,t,{get:e[t],enumerable:!0})},Pa=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of uf(e))!hf.call(r,s)&&s!==t&&Rn(r,s,{get:()=>e[s],enumerable:!(n=lf(e,s))||n.enumerable});return r};var wi=(r,e,t)=>(t=r!=null?cf(ff(r)):{},Pa(e||!r||!r.__esModule?Rn(t,"default",{value:r,enumerable:!0}):t,r)),df=r=>Pa(Rn({},"__esModule",{value:!0}),r);var Yc=bi(Dr=>{"use strict";var jd="[object ArrayBuffer]",vt=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===jd}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),s=r.toUint8Array(t);if(n.length!==s.byteLength)return!1;for(let i=0;i<n.length;i++)if(n[i]!==s[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let o of t)n+=o.byteLength;let s=new Uint8Array(n),i=0;for(let o of t){let a=this.toUint8Array(o);s.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(s,e[e.length-1]):s.buffer}},Ro="string",Wd=/^[0-9a-f]+$/i,Yd=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Zd=/^[a-zA-Z0-9-_]+$/,Zn=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}static toString(e){let t=vt.toUint8Array(e),n="";for(let i=0;i<t.length;i++)n+=String.fromCharCode(t[i]);return decodeURIComponent(escape(n))}},Ge=class{static toString(e,t=!1){let n=vt.toArrayBuffer(e),s=new DataView(n),i="";for(let o=0;o<n.byteLength;o+=2){let a=s.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),s=new DataView(n);for(let i=0;i<e.length;i++)s.setUint16(i*2,e.charCodeAt(i),t);return n}},Xn=class r{static isHex(e){return typeof e===Ro&&Wd.test(e)}static isBase64(e){return typeof e===Ro&&Yd.test(e)}static isBase64Url(e){return typeof e===Ro&&Zd.test(e)}static ToString(e,t="utf8"){let n=vt.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return Ge.toString(n,!0);case"utf16":case"utf16be":return Ge.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Ge.fromString(e,!0);case"utf16":case"utf16be":return Ge.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=vt.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Zn.fromString(e);case"utf16":case"utf16be":return Ge.fromString(e);case"utf16le":case"usc2":return Ge.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Zn.toString(e);case"utf16":case"utf16be":return Ge.toString(e);case"utf16le":case"usc2":return Ge.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return n.buffer}static ToBinary(e){let t=vt.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return n}static ToHex(e){let t=vt.toUint8Array(e),n="",s=t.length;for(let i=0;i<s;i++){let o=t[i];o<16&&(n+="0"),n+=o.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let s=0;s<t.length;s=s+2){let i=t.slice(s,s+2);n[s/2]=parseInt(i,16)}return n.buffer}static ToUtf16String(e,t=!1){return Ge.toString(e,t)}static FromUtf16String(e,t=!1){return Ge.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Xn.DEFAULT_UTF8_ENCODING="utf8";function Xd(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let i in s)t[i]=s[i]}return t}function Jd(...r){let e=r.map(s=>s.byteLength).reduce((s,i)=>s+i),t=new Uint8Array(e),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let i of s)t[n++]=i}),t.buffer}function Qd(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<r.byteLength;s++)if(t[s]!==n[s])return!1;return!0}Dr.BufferSourceConverter=vt;Dr.Convert=Xn;Dr.assign=Xd;Dr.combine=Jd;Dr.isEqual=Qd});var Du=bi((_n,Qs)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(u){if(!Array.isArray(u)&&!ArrayBuffer.isView(u))return!1;for(var d=0;d<u.length;d++)if(!Number.isInteger(u[d])||u[d]<0||u[d]>255)return!1;return!0}function s(u,d){return(u&65535)*d+(((u>>>16)*d&65535)<<16)}function i(u,d){return u<<d|u>>>32-d}function o(u){return u^=u>>>16,u=s(u,2246822507),u^=u>>>13,u=s(u,3266489909),u^=u>>>16,u}function a(u,d){u=[u[0]>>>16,u[0]&65535,u[1]>>>16,u[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var p=[0,0,0,0];return p[3]+=u[3]+d[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=u[2]+d[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=u[1]+d[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=u[0]+d[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function c(u,d){u=[u[0]>>>16,u[0]&65535,u[1]>>>16,u[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var p=[0,0,0,0];return p[3]+=u[3]*d[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=u[2]*d[3],p[1]+=p[2]>>>16,p[2]&=65535,p[2]+=u[3]*d[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=u[1]*d[3],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=u[2]*d[2],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=u[3]*d[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=u[0]*d[3]+u[1]*d[2]+u[2]*d[1]+u[3]*d[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function h(u,d){return d%=64,d===32?[u[1],u[0]]:d<32?[u[0]<<d|u[1]>>>32-d,u[1]<<d|u[0]>>>32-d]:(d-=32,[u[1]<<d|u[0]>>>32-d,u[0]<<d|u[1]>>>32-d])}function f(u,d){return d%=64,d===0?u:d<32?[u[0]<<d|u[1]>>>32-d,u[1]<<d]:[u[1]<<d-32,0]}function l(u,d){return[u[0]^d[0],u[1]^d[1]]}function g(u){return u=l(u,[0,u[0]>>>1]),u=c(u,[4283543511,3981806797]),u=l(u,[0,u[0]>>>1]),u=c(u,[3301882366,444984403]),u=l(u,[0,u[0]>>>1]),u}t.x86.hash32=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%4,w=u.length-p,y=d,m=0,b=3432918353,A=461845907,S=0;S<w;S=S+4)m=u[S]|u[S+1]<<8|u[S+2]<<16|u[S+3]<<24,m=s(m,b),m=i(m,15),m=s(m,A),y^=m,y=i(y,13),y=s(y,5)+3864292196;switch(m=0,p){case 3:m^=u[S+2]<<16;case 2:m^=u[S+1]<<8;case 1:m^=u[S],m=s(m,b),m=i(m,15),m=s(m,A),y^=m}return y^=u.length,y=o(y),y>>>0},t.x86.hash128=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%16,w=u.length-p,y=d,m=d,b=d,A=d,S=0,B=0,v=0,_=0,$=597399067,H=2869860233,F=951274213,Q=2716044179,C=0;C<w;C=C+16)S=u[C]|u[C+1]<<8|u[C+2]<<16|u[C+3]<<24,B=u[C+4]|u[C+5]<<8|u[C+6]<<16|u[C+7]<<24,v=u[C+8]|u[C+9]<<8|u[C+10]<<16|u[C+11]<<24,_=u[C+12]|u[C+13]<<8|u[C+14]<<16|u[C+15]<<24,S=s(S,$),S=i(S,15),S=s(S,H),y^=S,y=i(y,19),y+=m,y=s(y,5)+1444728091,B=s(B,H),B=i(B,16),B=s(B,F),m^=B,m=i(m,17),m+=b,m=s(m,5)+197830471,v=s(v,F),v=i(v,17),v=s(v,Q),b^=v,b=i(b,15),b+=A,b=s(b,5)+2530024501,_=s(_,Q),_=i(_,18),_=s(_,$),A^=_,A=i(A,13),A+=y,A=s(A,5)+850148119;switch(S=0,B=0,v=0,_=0,p){case 15:_^=u[C+14]<<16;case 14:_^=u[C+13]<<8;case 13:_^=u[C+12],_=s(_,Q),_=i(_,18),_=s(_,$),A^=_;case 12:v^=u[C+11]<<24;case 11:v^=u[C+10]<<16;case 10:v^=u[C+9]<<8;case 9:v^=u[C+8],v=s(v,F),v=i(v,17),v=s(v,Q),b^=v;case 8:B^=u[C+7]<<24;case 7:B^=u[C+6]<<16;case 6:B^=u[C+5]<<8;case 5:B^=u[C+4],B=s(B,H),B=i(B,16),B=s(B,F),m^=B;case 4:S^=u[C+3]<<24;case 3:S^=u[C+2]<<16;case 2:S^=u[C+1]<<8;case 1:S^=u[C],S=s(S,$),S=i(S,15),S=s(S,H),y^=S}return y^=u.length,m^=u.length,b^=u.length,A^=u.length,y+=m,y+=b,y+=A,m+=y,b+=y,A+=y,y=o(y),m=o(m),b=o(b),A=o(A),y+=m,y+=b,y+=A,m+=y,b+=y,A+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(m>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(A>>>0).toString(16)).slice(-8)},t.x64.hash128=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%16,w=u.length-p,y=[0,d],m=[0,d],b=[0,0],A=[0,0],S=[2277735313,289559509],B=[1291169091,658871167],v=0;v<w;v=v+16)b=[u[v+4]|u[v+5]<<8|u[v+6]<<16|u[v+7]<<24,u[v]|u[v+1]<<8|u[v+2]<<16|u[v+3]<<24],A=[u[v+12]|u[v+13]<<8|u[v+14]<<16|u[v+15]<<24,u[v+8]|u[v+9]<<8|u[v+10]<<16|u[v+11]<<24],b=c(b,S),b=h(b,31),b=c(b,B),y=l(y,b),y=h(y,27),y=a(y,m),y=a(c(y,[0,5]),[0,1390208809]),A=c(A,B),A=h(A,33),A=c(A,S),m=l(m,A),m=h(m,31),m=a(m,y),m=a(c(m,[0,5]),[0,944331445]);switch(b=[0,0],A=[0,0],p){case 15:A=l(A,f([0,u[v+14]],48));case 14:A=l(A,f([0,u[v+13]],40));case 13:A=l(A,f([0,u[v+12]],32));case 12:A=l(A,f([0,u[v+11]],24));case 11:A=l(A,f([0,u[v+10]],16));case 10:A=l(A,f([0,u[v+9]],8));case 9:A=l(A,[0,u[v+8]]),A=c(A,B),A=h(A,33),A=c(A,S),m=l(m,A);case 8:b=l(b,f([0,u[v+7]],56));case 7:b=l(b,f([0,u[v+6]],48));case 6:b=l(b,f([0,u[v+5]],40));case 5:b=l(b,f([0,u[v+4]],32));case 4:b=l(b,f([0,u[v+3]],24));case 3:b=l(b,f([0,u[v+2]],16));case 2:b=l(b,f([0,u[v+1]],8));case 1:b=l(b,[0,u[v]]),b=c(b,S),b=h(b,31),b=c(b,B),y=l(y,b)}return y=l(y,[0,u.length]),m=l(m,[0,u.length]),y=a(y,m),m=a(m,y),y=g(y),m=g(m),y=a(y,m),m=a(m,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(m[0]>>>0).toString(16)).slice(-8)+("00000000"+(m[1]>>>0).toString(16)).slice(-8)},typeof _n<"u"?(typeof Qs<"u"&&Qs.exports&&(_n=Qs.exports=t),_n.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(_n)});var fa=bi((mx,Ou)=>{Ou.exports=Du()});var T0={};ge(T0,{RELAY_V2_HOP_CODEC:()=>je,RELAY_V2_STOP_CODEC:()=>ur,circuitRelayServer:()=>Fu,circuitRelayTransport:()=>Qu});var xi=Symbol.for("@libp2p/peer-id");var Va=Symbol.for("@libp2p/transport");var Ma;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Ma||(Ma={}));var Tt=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},L=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var Ke=(r,...e)=>{try{[...e]}catch{}};var qe=class extends EventTarget{#e=new Map;constructor(){super(),Ke(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let s=this.#e.get(e);s!=null&&(s=s.filter(({callback:i})=>i!==t),this.#e.set(e,s))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:s})=>!s),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new pf(e,t))}},pf=globalThis.CustomEvent;function Ha(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Fa(...r){let e=[];for(let t of r)Ha(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 Ka(...r){let e=[];for(let t of r)Ha(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 qa=Symbol.for("@libp2p/service-capabilities"),za=Symbol.for("@libp2p/service-dependencies");var Bi={};ge(Bi,{base58btc:()=>fe,base58flickr:()=>xf});var ag=new Uint8Array(0);function $a(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 ht(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ga(r){return new TextEncoder().encode(r)}function ja(r){return new TextDecoder().decode(r)}function gf(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),o=i.charCodeAt(0);if(t[o]!==255)throw new TypeError(i+" is ambiguous");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var p=0,w=0,y=0,m=d.length;y!==m&&d[y]===0;)y++,p++;for(var b=(m-y)*f+1>>>0,A=new Uint8Array(b);y!==m;){for(var S=d[y],B=0,v=b-1;(S!==0||B<w)&&v!==-1;v--,B++)S+=256*A[v]>>>0,A[v]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");w=B,y++}for(var _=b-w;_!==b&&A[_]===0;)_++;for(var $=c.repeat(p);_<b;++_)$+=r.charAt(A[_]);return $}function g(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var p=0;if(d[p]!==" "){for(var w=0,y=0;d[p]===c;)w++,p++;for(var m=(d.length-p)*h+1>>>0,b=new Uint8Array(m);d[p];){var A=t[d.charCodeAt(p)];if(A===255)return;for(var S=0,B=m-1;(A!==0||S<y)&&B!==-1;B--,S++)A+=a*b[B]>>>0,b[B]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");y=S,p++}if(d[p]!==" "){for(var v=m-y;v!==m&&b[v]===0;)v++;for(var _=new Uint8Array(w+(m-v)),$=w;v!==m;)_[$++]=b[v++];return _}}}function u(d){var p=g(d);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:g,decode:u}}var mf=gf,yf=mf,Ya=yf;var vi=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")}},Ei=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),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 Za(this,e)}},Ai=class{decoders;constructor(e){this.decoders=e}or(e){return Za(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 Za(r,e){return new Ai({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Si=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,s){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=s,this.encoder=new vi(e,t,n),this.decoder=new Ei(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function gr({name:r,prefix:e,encode:t,decode:n}){return new Si(r,e,t,n)}function Rt({name:r,prefix:e,alphabet:t}){let{encode:n,decode:s}=Ya(t,r);return gr({prefix:e,name:r,encode:n,decode:i=>ht(s(i))})}function bf(r,e,t,n){let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let l=s[r[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function wf(r,e,t){let n=e[e.length-1]==="=",s=(1<<t)-1,i="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,i+=e[s&a>>o];if(o!==0&&(i+=e[s&a<<t-o]),n)for(;i.length*t&7;)i+="=";return i}function ie({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return gr({prefix:e,name:r,encode(s){return wf(s,n,t)},decode(s){return bf(s,n,t,r)}})}var fe=Rt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),xf=Rt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var _i={};ge(_i,{base10:()=>vf});var vf=Rt({prefix:"9",name:"base10",alphabet:"0123456789"});var Ii={};ge(Ii,{base16:()=>Ef,base16upper:()=>Af});var Ef=ie({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Af=ie({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ki={};ge(ki,{base2:()=>Sf});var Sf=ie({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ti={};ge(Ti,{base256emoji:()=>Tf});var Xa=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}"),Bf=Xa.reduce((r,e,t)=>(r[t]=e,r),[]),_f=Xa.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function If(r){return r.reduce((e,t)=>(e+=Bf[t],e),"")}function kf(r){let e=[];for(let t of r){let n=_f[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Tf=gr({prefix:"\u{1F680}",name:"base256emoji",encode:If,decode:kf});var Ri={};ge(Ri,{base32:()=>dt,base32hex:()=>Lf,base32hexpad:()=>Df,base32hexpadupper:()=>Of,base32hexupper:()=>Uf,base32pad:()=>Nf,base32padupper:()=>Cf,base32upper:()=>Rf,base32z:()=>Pf});var dt=ie({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Rf=ie({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Nf=ie({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Cf=ie({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Lf=ie({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Uf=ie({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Df=ie({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Of=ie({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Pf=ie({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ni={};ge(Ni,{base36:()=>Mf,base36upper:()=>Vf});var Mf=Rt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Vf=Rt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Li={};ge(Li,{base64:()=>Ci,base64pad:()=>Hf,base64url:()=>Ff,base64urlpad:()=>Kf});var Ci=ie({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hf=ie({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ff=ie({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Kf=ie({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ui={};ge(Ui,{base8:()=>qf});var qf=ie({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Di={};ge(Di,{identity:()=>zf});var zf=gr({prefix:"\0",name:"identity",encode:r=>ja(r),decode:r=>Ga(r)});var Ag=new TextEncoder,Sg=new TextDecoder;var Pi={};ge(Pi,{identity:()=>pt});var jf=ec,Ja=128,Wf=127,Yf=~Wf,Zf=Math.pow(2,31);function ec(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Zf;)e[t++]=r&255|Ja,r/=128;for(;r&Yf;)e[t++]=r&255|Ja,r>>>=7;return e[t]=r|0,ec.bytes=t-n+1,e}var Xf=Oi,Jf=128,Qa=127;function Oi(r,n){var t=0,n=n||0,s=0,i=n,o,a=r.length;do{if(i>=a)throw Oi.bytes=0,new RangeError("Could not decode varint");o=r[i++],t+=s<28?(o&Qa)<<s:(o&Qa)*Math.pow(2,s),s+=7}while(o>=Jf);return Oi.bytes=i-n,t}var Qf=Math.pow(2,7),eh=Math.pow(2,14),th=Math.pow(2,21),rh=Math.pow(2,28),nh=Math.pow(2,35),sh=Math.pow(2,42),ih=Math.pow(2,49),oh=Math.pow(2,56),ah=Math.pow(2,63),ch=function(r){return r<Qf?1:r<eh?2:r<th?3:r<rh?4:r<nh?5:r<sh?6:r<ih?7:r<oh?8:r<ah?9:10},lh={encode:jf,decode:Xf,encodingLength:ch},uh=lh,Yr=uh;function Zr(r,e=0){return[Yr.decode(r,e),Yr.decode.bytes]}function mr(r,e,t=0){return Yr.encode(r,e,t),e}function yr(r){return Yr.encodingLength(r)}function st(r,e){let t=e.byteLength,n=yr(r),s=n+yr(t),i=new Uint8Array(s+t);return mr(r,i,0),mr(t,i,n),i.set(e,s),new br(r,t,e,i)}function Xt(r){let e=ht(r),[t,n]=Zr(e),[s,i]=Zr(e.subarray(n)),o=e.subarray(n+i);if(o.byteLength!==s)throw new Error("Incorrect length");return new br(t,s,o,e)}function tc(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&$a(r.bytes,t.bytes)}}var br=class{code;size;digest;bytes;constructor(e,t,n,s){this.code=e,this.size=t,this.digest=n,this.bytes=s}};var rc=0,fh="identity",nc=ht;function hh(r){return st(rc,nc(r))}var pt={code:rc,name:fh,encode:nc,digest:hh};var Hi={};ge(Hi,{sha256:()=>me,sha512:()=>dh});function Vi({name:r,code:e,encode:t}){return new Mi(r,e,t)}var Mi=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?st(this.code,t):t.then(n=>st(this.code,n))}else throw Error("Unknown type, must be binary type")}};function ic(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var me=Vi({name:"sha2-256",code:18,encode:ic("SHA-256")}),dh=Vi({name:"sha2-512",code:19,encode:ic("SHA-512")});function oc(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return gh(t,Fi(r),e??fe.encoder);default:return mh(t,Fi(r),e??dt.encoder)}}var ac=new WeakMap;function Fi(r){let e=ac.get(r);if(e==null){let t=new Map;return ac.set(r,t),t}return e}var Ue=class r{code;version;multihash;bytes;"/";constructor(e,t,n,s){this.code=t,this.version=e,this.multihash=n,this.bytes=s,this["/"]=s}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!==Xr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==yh)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=st(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&&tc(e.multihash,n.multihash)}toString(e){return oc(this,e)}toJSON(){return{"/":oc(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:s,multihash:i,bytes:o}=t;return new r(n,s,i,o??cc(n,s,i.bytes))}else if(t[bh]===!0){let{version:n,multihash:s,code:i}=t,o=Xt(s);return r.create(n,i,o)}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!==Xr)throw new Error(`Version 0 CID must use dag-pb (code: ${Xr}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let s=cc(e,t,n.bytes);return new r(e,t,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Xr,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,s=ht(e.subarray(n,n+t.multihashSize));if(s.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=s.subarray(t.multihashSize-t.digestSize),o=new br(t.multihashCode,t.digestSize,i,s);return[t.version===0?r.createV0(o):r.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,g]=Zr(e.subarray(t));return t+=g,l},s=n(),i=Xr;if(s===18?(s=0,t=0):i=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let o=t,a=n(),c=n(),h=t+c,f=h-o;return{version:s,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(e,t){let[n,s]=ph(e,t),i=r.decode(s);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Fi(i).set(n,e),i}};function ph(r,e){switch(r[0]){case"Q":{let t=e??fe;return[fe.prefix,t.decode(`${fe.prefix}${r}`)]}case fe.prefix:{let t=e??fe;return[fe.prefix,t.decode(r)]}case dt.prefix:{let t=e??dt;return[dt.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function gh(r,e,t){let{prefix:n}=t;if(n!==fe.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let s=e.get(n);if(s==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return s}function mh(r,e,t){let{prefix:n}=t,s=e.get(n);if(s==null){let i=t.encode(r);return e.set(n,i),i}else return s}var Xr=112,yh=18;function cc(r,e,t){let n=yr(r),s=n+yr(e),i=new Uint8Array(s+t.byteLength);return mr(r,i,0),mr(e,i,n),i.set(t,s),i}var bh=Symbol.for("@ipld/js-cid/CID");var Nt={...Di,...ki,...Ui,..._i,...Ii,...Ri,...Ni,...Bi,...Li,...Ti},$g={...Hi,...Pi};function oe(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 we(r=0){return new Uint8Array(r)}function Re(r=0){return new Uint8Array(r)}function uc(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var lc=uc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Ki=uc("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=Re(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),wh={utf8:lc,"utf-8":lc,hex:Nt.base16,latin1:Ki,ascii:Ki,binary:Ki,...Nt},Cn=wh;function M(r,e="utf8"){let t=Cn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function G(r,e="utf8"){let t=Cn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var hc=Symbol.for("nodejs.util.inspect.custom"),fc=Object.values(Nt).map(r=>r.decoder).reduce((r,e)=>r.or(e),Nt.identity.decoder),dc=114,$i=36,Gi=37,Jr=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[xi]=!0;toString(){return this.string==null&&(this.string=fe.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ue.createV1(dc,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return oe(this.multihash.bytes,e);if(typeof e=="string")return Ct(e).equals(this);if(e?.multihash?.bytes!=null)return oe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[hc](){return`PeerId(${this.toString()})`}},wr=class extends Jr{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},xr=class extends Jr{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},vr=class extends Jr{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}},qi=2336,zi=class{type="url";multihash;privateKey;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=pt.digest(M(this.url))}[hc](){return`PeerId(${this.url})`}[xi]=!0;toString(){return this.toCID().toString()}toCID(){return Ue.createV1(qi,this.multihash)}toBytes(){return this.toCID().bytes}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=G(e)),e.toString()===this.toString())}};function Ct(r,e){if(e=e??fc,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=Xt(fe.decode(`z${r}`));return r.startsWith("12D")?new xr({multihash:t}):r.startsWith("16U")?new vr({multihash:t}):new wr({multihash:t})}return Qr(fc.decode(r))}function Qr(r){try{let e=Xt(r);if(e.code===pt.code){if(e.digest.length===$i)return new xr({multihash:e});if(e.digest.length===Gi)return new vr({multihash:e})}if(e.code===me.code)return new wr({multihash:e})}catch{return xh(Ue.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function xh(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==dc&&r.code!==qi)throw new Error("Supplied PeerID CID is invalid");if(r.code===qi){let t=G(r.multihash.digest);return new zi(new URL(t))}let e=r.multihash;if(e.code===me.code)return new wr({multihash:r.multihash});if(e.code===pt.code){if(e.digest.length===$i)return new xr({multihash:r.multihash});if(e.digest.length===Gi)return new vr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function pc(r,e){return r.length===$i?new xr({multihash:st(pt.code,r),privateKey:e}):r.length===Gi?new vr({multihash:st(pt.code,r),privateKey:e}):new wr({multihash:await me.digest(r),publicKey:r,privateKey:e})}var ko={};ge(ko,{Ed25519PrivateKey:()=>or,Ed25519PublicKey:()=>cn,generateKeyPair:()=>zd,generateKeyPairFromSeed:()=>Wc,unmarshalEd25519PrivateKey:()=>Kd,unmarshalEd25519PublicKey:()=>qd});function _e(r,e){e==null&&(e=r.reduce((s,i)=>s+i.length,0));let t=Re(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}function ze(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Er(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function vh(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Ar(r,...e){if(!vh(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function Ln(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Er(r.outputLen),Er(r.blockLen)}function Sr(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function gc(r,e){Ar(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Un=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var _r=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Ze=(r,e)=>r<<32-e|r>>>e;var Sm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Eh=async()=>{};async function mc(r,e,t){let n=Date.now();for(let s=0;s<r;s++){t(s);let i=Date.now()-n;i>=0&&i<e||(await Eh(),n+=i)}}function yc(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Lt(r){return typeof r=="string"&&(r=yc(r)),Ar(r),r}function ji(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Ar(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}var Br=class{clone(){return this._cloneInto()}},Ah={}.toString;function bc(r,e){if(e!==void 0&&Ah.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function Dn(r){let e=n=>r().update(Lt(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Ir(r=32){if(Un&&typeof Un.getRandomValues=="function")return Un.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function Sh(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),i=BigInt(4294967295),o=Number(t>>s&i),a=Number(t&i),c=n?4:0,h=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+h,a,n)}var wc=(r,e,t)=>r&e^~r&t,xc=(r,e,t)=>r&e^r&t^e&t,kr=class extends Br{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_r(this.buffer)}update(e){Sr(this);let{view:t,buffer:n,blockLen:s}=this;e=Lt(e);let i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=_r(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Sr(this),gc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:i}=this,{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let l=o;l<s;l++)t[l]=0;Sh(n,s-8,BigInt(this.length*8),i),this.process(n,0);let a=_r(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<h;l++)a.setUint32(4*l,f[l],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=i,e.destroyed=o,s%t&&e.buffer.set(n),e}};var On=BigInt(4294967295),Wi=BigInt(32);function vc(r,e=!1){return e?{h:Number(r&On),l:Number(r>>Wi&On)}:{h:Number(r>>Wi&On)|0,l:Number(r&On)|0}}function Bh(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:i,l:o}=vc(r[s],e);[t[s],n[s]]=[i,o]}return[t,n]}var _h=(r,e)=>BigInt(r>>>0)<<Wi|BigInt(e>>>0),Ih=(r,e,t)=>r>>>t,kh=(r,e,t)=>r<<32-t|e>>>t,Th=(r,e,t)=>r>>>t|e<<32-t,Rh=(r,e,t)=>r<<32-t|e>>>t,Nh=(r,e,t)=>r<<64-t|e>>>t-32,Ch=(r,e,t)=>r>>>t-32|e<<64-t,Lh=(r,e)=>e,Uh=(r,e)=>r,Dh=(r,e,t)=>r<<t|e>>>32-t,Oh=(r,e,t)=>e<<t|r>>>32-t,Ph=(r,e,t)=>e<<t-32|r>>>64-t,Mh=(r,e,t)=>r<<t-32|e>>>64-t;function Vh(r,e,t,n){let s=(e>>>0)+(n>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}var Hh=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),Fh=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,Kh=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),qh=(r,e,t,n,s)=>e+t+n+s+(r/2**32|0)|0,zh=(r,e,t,n,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),$h=(r,e,t,n,s,i)=>e+t+n+s+i+(r/2**32|0)|0;var Gh={fromBig:vc,split:Bh,toBig:_h,shrSH:Ih,shrSL:kh,rotrSH:Th,rotrSL:Rh,rotrBH:Nh,rotrBL:Ch,rotr32H:Lh,rotr32L:Uh,rotlSH:Dh,rotlSL:Oh,rotlBH:Ph,rotlBL:Mh,add:Vh,add3L:Hh,add3H:Fh,add4L:Kh,add4H:qh,add5H:$h,add5L:zh},V=Gh;var[jh,Wh]=V.split(["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))),Ut=new Uint32Array(80),Dt=new Uint32Array(80),Yi=class extends kr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:l,Fl:g,Gh:u,Gl:d,Hh:p,Hl:w}=this;return[e,t,n,s,i,o,a,c,h,f,l,g,u,d,p,w]}set(e,t,n,s,i,o,a,c,h,f,l,g,u,d,p,w){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=l|0,this.Fl=g|0,this.Gh=u|0,this.Gl=d|0,this.Hh=p|0,this.Hl=w|0}process(e,t){for(let b=0;b<16;b++,t+=4)Ut[b]=e.getUint32(t),Dt[b]=e.getUint32(t+=4);for(let b=16;b<80;b++){let A=Ut[b-15]|0,S=Dt[b-15]|0,B=V.rotrSH(A,S,1)^V.rotrSH(A,S,8)^V.shrSH(A,S,7),v=V.rotrSL(A,S,1)^V.rotrSL(A,S,8)^V.shrSL(A,S,7),_=Ut[b-2]|0,$=Dt[b-2]|0,H=V.rotrSH(_,$,19)^V.rotrBH(_,$,61)^V.shrSH(_,$,6),F=V.rotrSL(_,$,19)^V.rotrBL(_,$,61)^V.shrSL(_,$,6),Q=V.add4L(v,F,Dt[b-7],Dt[b-16]),C=V.add4H(Q,B,H,Ut[b-7],Ut[b-16]);Ut[b]=C|0,Dt[b]=Q|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:l,El:g,Fh:u,Fl:d,Gh:p,Gl:w,Hh:y,Hl:m}=this;for(let b=0;b<80;b++){let A=V.rotrSH(l,g,14)^V.rotrSH(l,g,18)^V.rotrBH(l,g,41),S=V.rotrSL(l,g,14)^V.rotrSL(l,g,18)^V.rotrBL(l,g,41),B=l&u^~l&p,v=g&d^~g&w,_=V.add5L(m,S,v,Wh[b],Dt[b]),$=V.add5H(_,y,A,B,jh[b],Ut[b]),H=_|0,F=V.rotrSH(n,s,28)^V.rotrBH(n,s,34)^V.rotrBH(n,s,39),Q=V.rotrSL(n,s,28)^V.rotrBL(n,s,34)^V.rotrBL(n,s,39),C=n&i^n&a^i&a,N=s&o^s&c^o&c;y=p|0,m=w|0,p=u|0,w=d|0,u=l|0,d=g|0,{h:l,l:g}=V.add(h|0,f|0,$|0,H|0),h=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;let E=V.add3L(H,Q,N);n=V.add3H(E,$,F,C),s=E|0}({h:n,l:s}=V.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=V.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=V.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=V.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:l,l:g}=V.add(this.Eh|0,this.El|0,l|0,g|0),{h:u,l:d}=V.add(this.Fh|0,this.Fl|0,u|0,d|0),{h:p,l:w}=V.add(this.Gh|0,this.Gl|0,p|0,w|0),{h:y,l:m}=V.add(this.Hh|0,this.Hl|0,y|0,m|0),this.set(n,s,i,o,a,c,h,f,l,g,u,d,p,w,y,m)}roundClean(){Ut.fill(0),Dt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var en=Dn(()=>new Yi);var Mn={};ge(Mn,{aInRange:()=>Ne,abool:()=>Xe,abytes:()=>Tr,bitGet:()=>td,bitLen:()=>ed,bitMask:()=>rn,bitSet:()=>rd,bytesToHex:()=>mt,bytesToNumberBE:()=>yt,bytesToNumberLE:()=>Pt,concatBytes:()=>bt,createHmacDrbg:()=>eo,ensureBytes:()=>ae,equalBytes:()=>Jh,hexToBytes:()=>Qt,hexToNumber:()=>Qi,inRange:()=>tn,isBytes:()=>Ot,memoized:()=>tr,notImplemented:()=>sd,numberToBytesBE:()=>Mt,numberToBytesLE:()=>er,numberToHexUnpadded:()=>Sc,numberToVarBytesBE:()=>Xh,utf8ToBytes:()=>Qh,validateObject:()=>it});var Ji=BigInt(0),Pn=BigInt(1),Yh=BigInt(2);function Ot(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Tr(r){if(!Ot(r))throw new Error("Uint8Array expected")}function Xe(r,e){if(typeof e!="boolean")throw new Error(`${r} must be valid boolean, got "${e}".`)}var Zh=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function mt(r){Tr(r);let e="";for(let t=0;t<r.length;t++)e+=Zh[r[t]];return e}function Sc(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function Qi(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var gt={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function Ec(r){if(r>=gt._0&&r<=gt._9)return r-gt._0;if(r>=gt._A&&r<=gt._F)return r-(gt._A-10);if(r>=gt._a&&r<=gt._f)return r-(gt._a-10)}function Qt(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let s=0,i=0;s<t;s++,i+=2){let o=Ec(r.charCodeAt(i)),a=Ec(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function yt(r){return Qi(mt(r))}function Pt(r){return Tr(r),Qi(mt(Uint8Array.from(r).reverse()))}function Mt(r,e){return Qt(r.toString(16).padStart(e*2,"0"))}function er(r,e){return Mt(r,e).reverse()}function Xh(r){return Qt(Sc(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=Qt(e)}catch(i){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${i}`)}else if(Ot(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof t=="number"&&s!==t)throw new Error(`${r} expected ${t} bytes, got ${s}`);return n}function bt(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Tr(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}function Jh(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function Qh(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Zi=r=>typeof r=="bigint"&&Ji<=r;function tn(r,e,t){return Zi(r)&&Zi(e)&&Zi(t)&&e<=r&&r<t}function Ne(r,e,t,n){if(!tn(e,t,n))throw new Error(`expected valid ${r}: ${t} <= n < ${n}, got ${typeof e} ${e}`)}function ed(r){let e;for(e=0;r>Ji;r>>=Pn,e+=1);return e}function td(r,e){return r>>BigInt(e)&Pn}function rd(r,e,t){return r|(t?Pn:Ji)<<BigInt(e)}var rn=r=>(Yh<<BigInt(r-1))-Pn,Xi=r=>new Uint8Array(r),Ac=r=>Uint8Array.from(r);function eo(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Xi(r),s=Xi(r),i=0,o=()=>{n.fill(1),s.fill(0),i=0},a=(...l)=>t(s,n,...l),c=(l=Xi())=>{s=a(Ac([0]),l),n=a(),l.length!==0&&(s=a(Ac([1]),l),n=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,g=[];for(;l<e;){n=a();let u=n.slice();g.push(u),l+=n.length}return bt(...g)};return(l,g)=>{o(),c(l);let u;for(;!(u=g(h()));)c();return o(),u}}var nd={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Ot(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function it(r,e,t={}){let n=(s,i,o)=>{let a=nd[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(let[s,i]of Object.entries(e))n(s,i,!1);for(let[s,i]of Object.entries(t))n(s,i,!0);return r}var sd=()=>{throw new Error("not implemented")};function tr(r){let e=new WeakMap;return(t,...n)=>{let s=e.get(t);if(s!==void 0)return s;let i=r(t,...n);return e.set(t,i),i}}var he=BigInt(0),ee=BigInt(1),rr=BigInt(2),id=BigInt(3),to=BigInt(4),Bc=BigInt(5),_c=BigInt(8),od=BigInt(9),ad=BigInt(16);function X(r,e){let t=r%e;return t>=he?t:e+t}function cd(r,e,t){if(t<=he||e<he)throw new Error("Expected power/modulo > 0");if(t===ee)return he;let n=ee;for(;e>he;)e&ee&&(n=n*r%t),r=r*r%t,e>>=ee;return n}function te(r,e,t){let n=r;for(;e-- >he;)n*=n,n%=t;return n}function Vn(r,e){if(r===he||e<=he)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=X(r,e),n=e,s=he,i=ee,o=ee,a=he;for(;t!==he;){let h=n/t,f=n%t,l=s-o*h,g=i-a*h;n=t,t=f,s=o,i=a,o=l,a=g}if(n!==ee)throw new Error("invert: does not exist");return X(s,e)}function ld(r){let e=(r-ee)/rr,t,n,s;for(t=r-ee,n=0;t%rr===he;t/=rr,n++);for(s=rr;s<r&&cd(s,e,r)!==r-ee;s++);if(n===1){let o=(r+ee)/to;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(t+ee)/rr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),t),l=a.pow(c,i),g=a.pow(c,t);for(;!a.eql(g,a.ONE);){if(a.eql(g,a.ZERO))return a.ZERO;let u=1;for(let p=a.sqr(g);u<h&&!a.eql(p,a.ONE);u++)p=a.sqr(p);let d=a.pow(f,ee<<BigInt(h-u-1));f=a.sqr(d),l=a.mul(l,d),g=a.mul(g,f),h=u}return l}}function ud(r){if(r%to===id){let e=(r+ee)/to;return function(n,s){let i=n.pow(s,e);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%_c===Bc){let e=(r-Bc)/_c;return function(n,s){let i=n.mul(s,rr),o=n.pow(i,e),a=n.mul(s,o),c=n.mul(n.mul(a,rr),o),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%ad,ld(r)}var Ic=(r,e)=>(X(r,e)&ee)===ee,fd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ro(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=fd.reduce((n,s)=>(n[s]="function",n),e);return it(r,t)}function hd(r,e,t){if(t<he)throw new Error("Expected power > 0");if(t===he)return r.ONE;if(t===ee)return e;let n=r.ONE,s=e;for(;t>he;)t&ee&&(n=r.mul(n,s)),s=r.sqr(s),t>>=ee;return n}function dd(r,e){let t=new Array(e.length),n=e.reduce((i,o,a)=>r.is0(o)?i:(t[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return e.reduceRight((i,o,a)=>r.is0(o)?i:(t[a]=r.mul(i,t[a]),r.mul(i,o)),s),t}function no(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Hn(r,e,t=!1,n={}){if(r<=he)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:i}=no(r,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=ud(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:rn(s),ZERO:he,ONE:ee,create:c=>X(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return he<=c&&c<r},is0:c=>c===he,isOdd:c=>(c&ee)===ee,neg:c=>X(-c,r),eql:(c,h)=>c===h,sqr:c=>X(c*c,r),add:(c,h)=>X(c+h,r),sub:(c,h)=>X(c-h,r),mul:(c,h)=>X(c*h,r),pow:(c,h)=>hd(a,c,h),div:(c,h)=>X(c*Vn(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>Vn(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>dd(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>t?er(c,i):Mt(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Pt(c):yt(c)}});return Object.freeze(a)}function kc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function so(r){let e=kc(r);return e+Math.ceil(e/2)}function Tc(r,e,t=!1){let n=r.length,s=kc(e),i=so(e);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let o=t?yt(r):Pt(r),a=X(o,e-ee)+ee;return t?er(a,s):Mt(a,s)}var gd=BigInt(0),io=BigInt(1),oo=new WeakMap,Rc=new WeakMap;function Fn(r,e){let t=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},s=i=>{n(i);let o=Math.ceil(e/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:t,unsafeLadder(i,o){let a=r.ZERO,c=i;for(;o>gd;)o&io&&(a=a.add(c)),c=c.double(),o>>=io;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=s(o),h=[],f=i,l=f;for(let g=0;g<a;g++){l=f,h.push(l);for(let u=1;u<c;u++)l=l.add(f),h.push(l);f=l.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=s(i),f=r.ZERO,l=r.BASE,g=BigInt(2**i-1),u=2**i,d=BigInt(i);for(let p=0;p<c;p++){let w=p*h,y=Number(a&g);a>>=d,y>h&&(y-=u,a+=io);let m=w,b=w+Math.abs(y)-1,A=p%2!==0,S=y<0;y===0?l=l.add(t(A,o[m])):f=f.add(t(S,o[b]))}return{p:f,f:l}},wNAFCached(i,o,a){let c=Rc.get(i)||1,h=oo.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&oo.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){n(o),Rc.set(i,o),oo.delete(i)}}}function nn(r){return ro(r.Fp),it(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...no(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Je=BigInt(0),Ce=BigInt(1),Kn=BigInt(2),md=BigInt(8),yd={zip215:!0};function bd(r){let e=nn(r);return it(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Nc(r){let e=bd(r),{Fp:t,n,prehash:s,hash:i,randomBytes:o,nByteLength:a,h:c}=e,h=Kn<<BigInt(a*8)-Ce,f=t.create,l=e.uvRatio||((E,x)=>{try{return{isValid:!0,value:t.sqrt(E*t.inv(x))}}catch{return{isValid:!1,value:Je}}}),g=e.adjustScalarBytes||(E=>E),u=e.domain||((E,x,I)=>{if(Xe("phflag",I),x.length||I)throw new Error("Contexts/pre-hash are not supported");return E});function d(E,x){Ne("coordinate "+E,x,Je,h)}function p(E){if(!(E instanceof m))throw new Error("ExtendedPoint expected")}let w=tr((E,x)=>{let{ex:I,ey:T,ez:D}=E,O=E.is0();x==null&&(x=O?md:t.inv(D));let P=f(I*x),j=f(T*x),K=f(D*x);if(O)return{x:Je,y:Ce};if(K!==Ce)throw new Error("invZ was invalid");return{x:P,y:j}}),y=tr(E=>{let{a:x,d:I}=e;if(E.is0())throw new Error("bad point: ZERO");let{ex:T,ey:D,ez:O,et:P}=E,j=f(T*T),K=f(D*D),W=f(O*O),ne=f(W*W),se=f(j*x),Te=f(W*f(se+K)),de=f(ne+f(I*f(j*K)));if(Te!==de)throw new Error("bad point: equation left != right (1)");let ue=f(T*D),We=f(O*P);if(ue!==We)throw new Error("bad point: equation left != right (2)");return!0});class m{constructor(x,I,T,D){this.ex=x,this.ey=I,this.ez=T,this.et=D,d("x",x),d("y",I),d("z",T),d("t",D),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(x){if(x instanceof m)throw new Error("extended point not allowed");let{x:I,y:T}=x||{};return d("x",I),d("y",T),new m(I,T,Ce,f(I*T))}static normalizeZ(x){let I=t.invertBatch(x.map(T=>T.ez));return x.map((T,D)=>T.toAffine(I[D])).map(m.fromAffine)}_setWindowSize(x){S.setWindowSize(this,x)}assertValidity(){y(this)}equals(x){p(x);let{ex:I,ey:T,ez:D}=this,{ex:O,ey:P,ez:j}=x,K=f(I*j),W=f(O*D),ne=f(T*j),se=f(P*D);return K===W&&ne===se}is0(){return this.equals(m.ZERO)}negate(){return new m(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:x}=e,{ex:I,ey:T,ez:D}=this,O=f(I*I),P=f(T*T),j=f(Kn*f(D*D)),K=f(x*O),W=I+T,ne=f(f(W*W)-O-P),se=K+P,Te=se-j,de=K-P,ue=f(ne*Te),We=f(se*de),pe=f(ne*de),Ye=f(Te*se);return new m(ue,We,Ye,pe)}add(x){p(x);let{a:I,d:T}=e,{ex:D,ey:O,ez:P,et:j}=this,{ex:K,ey:W,ez:ne,et:se}=x;if(I===BigInt(-1)){let Ra=f((O-D)*(W+K)),Na=f((O+D)*(W-K)),yi=f(Na-Ra);if(yi===Je)return this.double();let Ca=f(P*Kn*se),La=f(j*Kn*ne),Ua=La+Ca,Da=Na+Ra,Oa=La-Ca,nf=f(Ua*yi),sf=f(Da*Oa),of=f(Ua*Oa),af=f(yi*Da);return new m(nf,sf,af,of)}let Te=f(D*K),de=f(O*W),ue=f(j*T*se),We=f(P*ne),pe=f((D+O)*(K+W)-Te-de),Ye=We-ue,Zt=We+ue,Wr=f(de-I*Te),Tn=f(pe*Ye),ef=f(Zt*Wr),tf=f(pe*Wr),rf=f(Ye*Zt);return new m(Tn,ef,rf,tf)}subtract(x){return this.add(x.negate())}wNAF(x){return S.wNAFCached(this,x,m.normalizeZ)}multiply(x){let I=x;Ne("scalar",I,Ce,n);let{p:T,f:D}=this.wNAF(I);return m.normalizeZ([T,D])[0]}multiplyUnsafe(x){let I=x;return Ne("scalar",I,Je,n),I===Je?A:this.equals(A)||I===Ce?this:this.equals(b)?this.wNAF(I).p:S.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return S.unsafeLadder(this,n).is0()}toAffine(x){return w(this,x)}clearCofactor(){let{h:x}=e;return x===Ce?this:this.multiplyUnsafe(x)}static fromHex(x,I=!1){let{d:T,a:D}=e,O=t.BYTES;x=ae("pointHex",x,O),Xe("zip215",I);let P=x.slice(),j=x[O-1];P[O-1]=j&-129;let K=Pt(P),W=I?h:t.ORDER;Ne("pointHex.y",K,Je,W);let ne=f(K*K),se=f(ne-Ce),Te=f(T*ne-D),{isValid:de,value:ue}=l(se,Te);if(!de)throw new Error("Point.fromHex: invalid y coordinate");let We=(ue&Ce)===Ce,pe=(j&128)!==0;if(!I&&ue===Je&&pe)throw new Error("Point.fromHex: x=0 and x_0=1");return pe!==We&&(ue=f(-ue)),m.fromAffine({x:ue,y:K})}static fromPrivateKey(x){return _(x).point}toRawBytes(){let{x,y:I}=this.toAffine(),T=er(I,t.BYTES);return T[T.length-1]|=x&Ce?128:0,T}toHex(){return mt(this.toRawBytes())}}m.BASE=new m(e.Gx,e.Gy,Ce,f(e.Gx*e.Gy)),m.ZERO=new m(Je,Ce,Ce,Je);let{BASE:b,ZERO:A}=m,S=Fn(m,a*8);function B(E){return X(E,n)}function v(E){return B(Pt(E))}function _(E){let x=a;E=ae("private key",E,x);let I=ae("hashed private key",i(E),2*x),T=g(I.slice(0,x)),D=I.slice(x,2*x),O=v(T),P=b.multiply(O),j=P.toRawBytes();return{head:T,prefix:D,scalar:O,point:P,pointBytes:j}}function $(E){return _(E).pointBytes}function H(E=new Uint8Array,...x){let I=bt(...x);return v(i(u(I,ae("context",E),!!s)))}function F(E,x,I={}){E=ae("message",E),s&&(E=s(E));let{prefix:T,scalar:D,pointBytes:O}=_(x),P=H(I.context,T,E),j=b.multiply(P).toRawBytes(),K=H(I.context,j,O,E),W=B(P+K*D);Ne("signature.s",W,Je,n);let ne=bt(j,er(W,t.BYTES));return ae("result",ne,a*2)}let Q=yd;function C(E,x,I,T=Q){let{context:D,zip215:O}=T,P=t.BYTES;E=ae("signature",E,2*P),x=ae("message",x),O!==void 0&&Xe("zip215",O),s&&(x=s(x));let j=Pt(E.slice(P,2*P)),K,W,ne;try{K=m.fromHex(I,O),W=m.fromHex(E.slice(0,P),O),ne=b.multiplyUnsafe(j)}catch{return!1}if(!O&&K.isSmallOrder())return!1;let se=H(D,W.toRawBytes(),K.toRawBytes(),x);return W.add(K.multiplyUnsafe(se)).subtract(ne).clearCofactor().equals(m.ZERO)}return b._setWindowSize(8),{CURVE:e,getPublicKey:$,sign:F,verify:C,ExtendedPoint:m,utils:{getExtendedPublicKey:_,randomPrivateKey:()=>o(t.BYTES),precompute(E=8,x=m.BASE){return x._setWindowSize(E),x.multiply(BigInt(3)),x}}}}var ao=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Cc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),jm=BigInt(0),wd=BigInt(1),Lc=BigInt(2),Wm=BigInt(3),xd=BigInt(5),vd=BigInt(8);function Ed(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),s=BigInt(80),i=ao,a=r*r%i*r%i,c=te(a,Lc,i)*a%i,h=te(c,wd,i)*r%i,f=te(h,xd,i)*h%i,l=te(f,e,i)*f%i,g=te(l,t,i)*l%i,u=te(g,n,i)*g%i,d=te(u,s,i)*u%i,p=te(d,s,i)*u%i,w=te(p,e,i)*f%i;return{pow_p_5_8:te(w,Lc,i)*r%i,b2:a}}function Ad(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Sd(r,e){let t=ao,n=X(e*e*e,t),s=X(n*n*e,t),i=Ed(r*s).pow_p_5_8,o=X(r*n*i,t),a=X(e*o*o,t),c=o,h=X(o*Cc,t),f=a===r,l=a===X(-r,t),g=a===X(-r*Cc,t);return f&&(o=c),(l||g)&&(o=h),Ic(o,t)&&(o=X(-o,t)),{isValid:f||l,value:o}}var Bd=Hn(ao,void 0,!0),_d={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Bd,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:vd,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:en,randomBytes:Ir,adjustScalarBytes:Ad,uvRatio:Sd},Rr=Nc(_d);var Nr=32,wt=64,qn=32;function Uc(){let r=Rr.utils.randomPrivateKey(),e=Rr.getPublicKey(r);return{privateKey:Mc(r,e),publicKey:e}}function Dc(r){if(r.length!==qn)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Rr.getPublicKey(e);return{privateKey:Mc(e,t),publicKey:t}}function Oc(r,e){let t=r.subarray(0,qn);return Rr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function Pc(r,e,t){return Rr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Mc(r,e){let t=new Uint8Array(wt);for(let n=0;n<qn;n++)t[n]=r[n],t[qn+n]=e[n];return t}var Ie={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw Object.assign(new Error("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"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var co={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Vc(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,s=r?.digest??"SHA-256",i=r?.saltLength??16,o=r?.iterations??32767,a=Ie.get();t*=8;async function c(l,g){let u=a.getRandomValues(new Uint8Array(i)),d=a.getRandomValues(new Uint8Array(n)),p={name:e,iv:d};typeof g=="string"&&(g=M(g));let w;if(g.length===0){w=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["encrypt"]);try{let m={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},b=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(m,b,{name:e,length:t},!0,["encrypt"])}catch{w=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["encrypt"])}}else{let m={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},b=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(m,b,{name:e,length:t},!0,["encrypt"])}let y=await a.subtle.encrypt(p,w,l);return _e([u,p.iv,new Uint8Array(y)])}async function h(l,g){let u=l.subarray(0,i),d=l.subarray(i,i+n),p=l.subarray(i+n),w={name:e,iv:d};typeof g=="string"&&(g=M(g));let y;if(g.length===0)try{let b={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},A=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},A=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}let m=await a.subtle.decrypt(w,y,p);return new Uint8Array(m)}return{encrypt:c,decrypt:h}}async function Cr(r,e){let n=await Vc().encrypt(r,e);return Ci.encode(n)}var Td=Math.pow(2,7),Rd=Math.pow(2,14),Nd=Math.pow(2,21),lo=Math.pow(2,28),uo=Math.pow(2,35),fo=Math.pow(2,42),ho=Math.pow(2,49),Y=128,Ee=127;function Ae(r){if(r<Td)return 1;if(r<Rd)return 2;if(r<Nd)return 3;if(r<lo)return 4;if(r<uo)return 5;if(r<fo)return 6;if(r<ho)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function po(r,e,t=0){switch(Ae(r)){case 8:e[t++]=r&255|Y,r/=128;case 7:e[t++]=r&255|Y,r/=128;case 6:e[t++]=r&255|Y,r/=128;case 5:e[t++]=r&255|Y,r/=128;case 4:e[t++]=r&255|Y,r>>>=7;case 3:e[t++]=r&255|Y,r>>>=7;case 2:e[t++]=r&255|Y,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Cd(r,e,t=0){switch(Ae(r)){case 8:e.set(t++,r&255|Y),r/=128;case 7:e.set(t++,r&255|Y),r/=128;case 6:e.set(t++,r&255|Y),r/=128;case 5:e.set(t++,r&255|Y),r/=128;case 4:e.set(t++,r&255|Y),r>>>=7;case 3:e.set(t++,r&255|Y),r>>>=7;case 2:e.set(t++,r&255|Y),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function go(r,e){let t=r[e],n=0;if(n+=t&Ee,t<Y||(t=r[e+1],n+=(t&Ee)<<7,t<Y)||(t=r[e+2],n+=(t&Ee)<<14,t<Y)||(t=r[e+3],n+=(t&Ee)<<21,t<Y)||(t=r[e+4],n+=(t&Ee)*lo,t<Y)||(t=r[e+5],n+=(t&Ee)*uo,t<Y)||(t=r[e+6],n+=(t&Ee)*fo,t<Y)||(t=r[e+7],n+=(t&Ee)*ho,t<Y))return n;throw new RangeError("Could not decode varint")}function Ld(r,e){let t=r.get(e),n=0;if(n+=t&Ee,t<Y||(t=r.get(e+1),n+=(t&Ee)<<7,t<Y)||(t=r.get(e+2),n+=(t&Ee)<<14,t<Y)||(t=r.get(e+3),n+=(t&Ee)<<21,t<Y)||(t=r.get(e+4),n+=(t&Ee)*lo,t<Y)||(t=r.get(e+5),n+=(t&Ee)*uo,t<Y)||(t=r.get(e+6),n+=(t&Ee)*fo,t<Y)||(t=r.get(e+7),n+=(t&Ee)*ho,t<Y))return n;throw new RangeError("Could not decode varint")}function $e(r,e,t=0){return e==null&&(e=Re(Ae(r))),e instanceof Uint8Array?po(r,e,t):Cd(r,e,t)}function xt(r,e=0){return r instanceof Uint8Array?go(r,e):Ld(r,e)}var mo=new Float32Array([-0]),Vt=new Uint8Array(mo.buffer);function Hc(r,e,t){mo[0]=r,e[t]=Vt[0],e[t+1]=Vt[1],e[t+2]=Vt[2],e[t+3]=Vt[3]}function Fc(r,e){return Vt[0]=r[e],Vt[1]=r[e+1],Vt[2]=r[e+2],Vt[3]=r[e+3],mo[0]}var yo=new Float64Array([-0]),Se=new Uint8Array(yo.buffer);function Kc(r,e,t){yo[0]=r,e[t]=Se[0],e[t+1]=Se[1],e[t+2]=Se[2],e[t+3]=Se[3],e[t+4]=Se[4],e[t+5]=Se[5],e[t+6]=Se[6],e[t+7]=Se[7]}function qc(r,e){return Se[0]=r[e],Se[1]=r[e+1],Se[2]=r[e+2],Se[3]=r[e+3],Se[4]=r[e+4],Se[5]=r[e+5],Se[6]=r[e+6],Se[7]=r[e+7],yo[0]}var Ud=BigInt(Number.MAX_SAFE_INTEGER),Dd=BigInt(Number.MIN_SAFE_INTEGER),De=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return nr;if(e<Ud&&e>Dd)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,s=e-(n<<32n);return t&&(n=~n|0n,s=~s|0n,++s>zc&&(s=0n,++n>zc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(e){if(e===0)return nr;let t=e<0;t&&(e=-e);let n=e>>>0,s=(e-n)/4294967296>>>0;return t&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}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):nr}},nr=new De(0,0);nr.toBigInt=function(){return 0n};nr.zzEncode=nr.zzDecode=function(){return this};nr.length=function(){return 1};var zc=4294967296n;function $c(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 Gc(r,e,t){if(t-e<1)return"";let s,i=[],o=0,a;for(;e<t;)a=r[e++],a<128?i[o++]=a:a>191&&a<224?i[o++]=(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,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,o>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,i)),o=0);return s!=null?(o>0&&s.push(String.fromCharCode.apply(String,i.slice(0,o))),s.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function bo(r,e,t){let n=t,s,i;for(let o=0;o<r.length;++o)s=r.charCodeAt(o),s<128?e[t++]=s:s<2048?(e[t++]=s>>6|192,e[t++]=s&63|128):(s&64512)===55296&&((i=r.charCodeAt(o+1))&64512)===56320?(s=65536+((s&1023)<<10)+(i&1023),++o,e[t++]=s>>18|240,e[t++]=s>>12&63|128,e[t++]=s>>6&63|128,e[t++]=s&63|128):(e[t++]=s>>12|224,e[t++]=s>>6&63|128,e[t++]=s&63|128);return t-n}function Qe(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function $n(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var wo=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Qe(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 Qe(this,4);return $n(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qe(this,4);return $n(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qe(this,4);let e=Fc(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Qe(this,4);let e=qc(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 Qe(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Gc(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Qe(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new De(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Qe(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 Qe(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 Qe(this,8);let e=$n(this.buf,this.pos+=4),t=$n(this.buf,this.pos+=4);return new De(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=go(this.buf,this.pos);return this.pos+=Ae(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function xo(r){return new wo(r instanceof Uint8Array?r:r.subarray())}function Oe(r,e,t){let n=xo(r);return e.decode(n,void 0,t)}function vo(r){let e=r??8192,t=e>>>1,n,s=e;return function(o){if(o<1||o>t)return Re(o);s+o>e&&(n=Re(e),s=0);let a=n.subarray(s,s+=o);return s&7&&(s=(s|7)+1),a}}var sr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Eo(){}var So=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Od=vo();function Pd(r){return globalThis.Buffer!=null?Re(r):Od(r)}var on=class{len;head;tail;states;constructor(){this.len=0,this.head=new sr(Eo,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new sr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Bo((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(Gn,10,De.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=De.fromBigInt(e);return this._push(Gn,t.length(),t)}uint64Number(e){return this._push(po,Ae(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=De.fromBigInt(e).zzEncode();return this._push(Gn,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Gn,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Ao,1,e?1:0)}fixed32(e){return this._push(sn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(sn,4,t.lo)._push(sn,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(sn,4,t.lo)._push(sn,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(Hc,4,e)}double(e){return this._push(Kc,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Ao,1,0):this.uint32(t)._push(Vd,t,e)}string(e){let t=$c(e);return t!==0?this.uint32(t)._push(bo,t,e):this._push(Ao,1,0)}fork(){return this.states=new So(this),this.head=this.tail=new sr(Eo,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new sr(Eo,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=Pd(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function Ao(r,e,t){e[t]=r&255}function Md(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Bo=class extends sr{next;constructor(e,t){super(Md,e,t),this.next=void 0}};function Gn(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 sn(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 Vd(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(on.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Hd,e,r),this},on.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(Fd,e,r),this});function Hd(r,e,t){e.set(r,t)}function Fd(r,e,t){r.length<40?bo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(M(r),t)}function _o(){return new on}function Pe(r,e){let t=_o();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Lr;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Lr||(Lr={}));function jn(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function ir(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,o){let a=e(i);o.int32(a)},n=function(i){let o=i.int32();return e(o)};return jn("enum",Lr.VARINT,t,n)}function Me(r,e){return jn("message",Lr.LENGTH_DELIMITED,r,e)}var an=class extends Error{code;constructor(e,t){super(e),this.code=t}};var re;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(re||(re={}));var Io;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Io||(Io={}));(function(r){r.codec=()=>ir(Io)})(re||(re={}));var ot;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),re.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=re.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(ot||(ot={}));var at;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),re.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=re.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(at||(at={}));var cn=class{_key;constructor(e){this._key=Ur(e,Nr)}verify(e,t){return Pc(this._key,t,e)}marshal(){return this._key}get bytes(){return ot.encode({Type:re.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}},or=class{_key;_publicKey;constructor(e,t){this._key=Ur(e,wt),this._publicKey=Ur(t,Nr)}sign(e){return Oc(this._key,e)}get public(){return new cn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:re.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return ze(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=pt.digest(this.public.bytes);return fe.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Kd(r){if(r.length>wt){r=Ur(r,wt+Nr);let n=r.subarray(0,wt),s=r.subarray(wt,r.length);return new or(n,s)}r=Ur(r,wt);let e=r.subarray(0,wt),t=r.subarray(Nr);return new or(e,t)}function qd(r){return r=Ur(r,Nr),new cn(r)}async function zd(){let{privateKey:r,publicKey:e}=Uc();return new or(r,e)}async function Wc(r){let{privateKey:e,publicKey:t}=Dc(r);return new or(e,t)}function Ur(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new L(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Mo={};ge(Mo,{MAX_RSA_KEY_SIZE:()=>xn,RsaPrivateKey:()=>Vr,RsaPublicKey:()=>wn,fromJwk:()=>yp,generateKeyPair:()=>bp,unmarshalRsaPrivateKey:()=>Oo,unmarshalRsaPublicKey:()=>mp});function ct(r){if(isNaN(r)||r<=0)throw new L("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ir(r)}var qt={};ge(qt,{exportToPem:()=>fp,importFromPem:()=>hp,jwkToPkcs1:()=>ap,jwkToPkix:()=>lp,pkcs1ToJwk:()=>op,pkixToJwk:()=>cp});var Yn=class extends Br{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ln(e);let n=Lt(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(e){return Sr(this),this.iHash.update(e),this}digestInto(e){Sr(this),Ar(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ln=(r,e,t)=>new Yn(r,e).update(t).digest();ln.create=(r,e)=>new Yn(r,e);function $d(r,e,t,n){Ln(r);let s=bc({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(Er(i),Er(o),Er(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Lt(e),h=Lt(t),f=new Uint8Array(o),l=ln.create(r,c),g=l._cloneInto().update(h);return{c:i,dkLen:o,asyncTick:a,DK:f,PRF:l,PRFSalt:g}}function Gd(r,e,t,n,s){return r.destroy(),e.destroy(),n&&n.destroy(),s.fill(0),t}async function To(r,e,t,n){let{c:s,dkLen:i,asyncTick:o,DK:a,PRF:c,PRFSalt:h}=$d(r,e,t,n),f,l=new Uint8Array(4),g=_r(l),u=new Uint8Array(c.outputLen);for(let d=1,p=0;p<i;d++,p+=c.outputLen){let w=a.subarray(p,p+c.outputLen);g.setInt32(0,d,!1),(f=h._cloneInto(f)).update(l).digestInto(u),w.set(u.subarray(0,w.length)),await mc(s-1,o,()=>{c._cloneInto(f).update(u).digestInto(u);for(let y=0;y<w.length;y++)w[y]^=u[y]})}return Gd(c,h,a,f,u)}var z=wi(Yc());function ar(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function Ht(r,e,t=-1){let n=t,s=r,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(r<o){let c;if(n<0)c=new ArrayBuffer(a),i=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),i=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let l=Math.pow(2,f*e);h[i-f-1]=Math.floor(s/l),s-=h[i-f-1]*l}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function Jn(...r){let e=0,t=0;for(let i of r)e+=i.length;let n=new ArrayBuffer(e),s=new Uint8Array(n);for(let i of r)s.set(i,t),t+=i.length;return s}function No(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=ar(t,8),s=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,ar(i,8)-n}function Zc(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let o=t-e,a=Ht(o,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=Ht(e,8,n),i=new Uint8Array(s);if(i[0]&128){let o=s.slice(0),a=new Uint8Array(o);s=new ArrayBuffer(s.byteLength+1),i=new Uint8Array(s);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return s}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Xc(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}function Le(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,s=new Array(n);for(let o=0;o<n;o++)s[o]="0";return s.join("").concat(t)}var eb=Math.log(2);function Qn(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Co(r){let e=0,t=0;for(let s=0;s<r.length;s++){let i=r[s];e+=i.byteLength}let n=new Uint8Array(e);for(let s=0;s<r.length;s++){let i=r[s];n.set(new Uint8Array(i),t),t+=i.byteLength}return n.buffer}function Bt(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var fn=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return Co(this.items)}},un=[new Uint8Array([1])],Jc="0123456789";var Pr="",tt=new ArrayBuffer(0),Lo=new Uint8Array(0),hn="EndOfContent",el="OCTET STRING",tl="BIT STRING";function _t(r){var e;return e=class extends r{constructor(...n){var s;super(...n);let i=n[0]||{};this.isHexOnly=(s=i.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=i.valueHex?z.BufferSourceConverter.toUint8Array(i.valueHex):Lo}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,i){let o=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!Bt(this,o,s,i))return-1;let a=s+i;return this.valueHexView=o.subarray(s,a),this.valueHexView.length?(this.blockLength=i,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",tt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:z.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Et=class{constructor({blockLength:e=0,error:t=Pr,warnings:n=[],valueBeforeDecode:s=Lo}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=z.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:z.Convert.ToHex(this.valueBeforeDecodeView)}}};Et.NAME="baseBlock";var Be=class extends Et{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Be.NAME="valueBlock";var es=class extends _t(Et){constructor({idBlock:e={}}={}){var t,n,s,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?z.BufferSourceConverter.toUint8Array(e.valueHex):Lo,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=e.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",tt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,s[0]=t}return s.buffer}if(!this.isHexOnly){let s=Ht(this.tagNumber,7),i=new Uint8Array(s),o=s.byteLength,a=new Uint8Array(o+1);if(a[0]=t|31,!e){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let s=this.valueHexView;for(let i=0;i<s.length-1;i++)n[i+1]=s[i]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;i[c]&128;){if(h[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let g=new Uint8Array(f);for(let u=0;u<h.length;u++)g[u]=h[u];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=i[c]&127;let l=new Uint8Array(c);for(let g=0;g<c;g++)l[g]=h[g];h=this.valueHexView=new Uint8Array(c),h.set(l),this.blockLength<=9?this.tagNumber=ar(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};es.NAME="identificationBlock";var ts=class extends Et{constructor({lenBlock:e={}}={}){var t,n,s;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=e.length)!==null&&s!==void 0?s:0}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=s.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=ar(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let s=Ht(this.length,8);if(s.byteLength>127)return this.error="Too big length",tt;if(t=new ArrayBuffer(s.byteLength+1),e)return t;let i=new Uint8Array(s);n=new Uint8Array(t),n[0]=s.byteLength|128;for(let o=0;o<s.byteLength;o++)n[o+1]=i[o];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};ts.NAME="lengthBlock";var R={},xe=class extends Et{constructor({name:e=Pr,optional:t=!1,primitiveSchema:n,...s}={},i){super(s),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new es(s),this.lenBlock=new ts(s),this.valueBlock=i?new i(s):new Be(s)}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(e,t){let n=t||new fn;t||rl(this);let s=this.idBlock.toBER(e);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(e);n.write(o),n.write(i)}return t?tt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():z.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${z.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Xc(t,n)}};xe.NAME="BaseBlock";function rl(r){if(r instanceof R.Constructed)for(let e of r.valueBlock.value)rl(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var rs=class extends xe{constructor({value:e=Pr,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};rs.NAME="BaseStringBlock";var ns=class extends _t(Be){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};ns.NAME="PrimitiveValueBlock";var nl,ss=class extends xe{constructor(e={}){super(e,ns),this.idBlock.isConstructed=!1}};nl=ss;R.Primitive=nl;ss.NAME="PRIMITIVE";function tp(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Ps(r,e=0,t=r.length){let n=e,s=new xe({},Be),i=new Et;if(!Bt(i,r,e,t))return s.error=i.error,{offset:-1,result:s};if(!r.subarray(e,e+t).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,e,t);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(e=a,t-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,e,t),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(e=a,t-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=xe;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=R.EndOfContent;break;case 1:c=R.Boolean;break;case 2:c=R.Integer;break;case 3:c=R.BitString;break;case 4:c=R.OctetString;break;case 5:c=R.Null;break;case 6:c=R.ObjectIdentifier;break;case 10:c=R.Enumerated;break;case 12:c=R.Utf8String;break;case 13:c=R.RelativeObjectIdentifier;break;case 14:c=R.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=R.Sequence;break;case 17:c=R.Set;break;case 18:c=R.NumericString;break;case 19:c=R.PrintableString;break;case 20:c=R.TeletexString;break;case 21:c=R.VideotexString;break;case 22:c=R.IA5String;break;case 23:c=R.UTCTime;break;case 24:c=R.GeneralizedTime;break;case 25:c=R.GraphicString;break;case 26:c=R.VisibleString;break;case 27:c=R.GeneralString;break;case 28:c=R.UniversalString;break;case 29:c=R.CharacterString;break;case 30:c=R.BmpString;break;case 31:c=R.DATE;break;case 32:c=R.TimeOfDay;break;case 33:c=R.DateTime;break;case 34:c=R.Duration;break;default:{let h=s.idBlock.isConstructed?new R.Constructed:new R.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?R.Constructed:R.Primitive}return s=tp(s,c),a=s.fromBER(r,e,s.lenBlock.isIndefiniteForm?t:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Mr(r){if(!r.byteLength){let e=new xe({},Be);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Ps(z.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function rp(r,e){return r?1:e}var lt=class extends Be{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;if(this.valueBeforeDecodeView=s.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;rp(this.isIndefiniteForm,n)>0;){let o=Ps(s,i,n);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,n-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===hn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===hn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let n=t||new fn;for(let s=0;s<this.value.length;s++)this.value[s].toBER(e,n);return t?tt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};lt.NAME="ConstructedValueBlock";var sl,Ft=class extends xe{constructor(e={}){super(e,lt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
2
+ "use strict";var Libp2PCircuitRelayV2=(()=>{var ff=Object.create;var Cn=Object.defineProperty;var hf=Object.getOwnPropertyDescriptor;var df=Object.getOwnPropertyNames;var pf=Object.getPrototypeOf,gf=Object.prototype.hasOwnProperty;var xi=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ge=(r,e)=>{for(var t in e)Cn(r,t,{get:e[t],enumerable:!0})},Ha=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of df(e))!gf.call(r,s)&&s!==t&&Cn(r,s,{get:()=>e[s],enumerable:!(n=hf(e,s))||n.enumerable});return r};var vi=(r,e,t)=>(t=r!=null?ff(pf(r)):{},Ha(e||!r||!r.__esModule?Cn(t,"default",{value:r,enumerable:!0}):t,r)),mf=r=>Ha(Cn({},"__esModule",{value:!0}),r);var Xc=xi(Mr=>{"use strict";var Yd="[object ArrayBuffer]",Et=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===Yd}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),s=r.toUint8Array(t);if(n.length!==s.byteLength)return!1;for(let i=0;i<n.length;i++)if(n[i]!==s[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let o of t)n+=o.byteLength;let s=new Uint8Array(n),i=0;for(let o of t){let a=this.toUint8Array(o);s.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(s,e[e.length-1]):s.buffer}},Co="string",Zd=/^[0-9a-f]+$/i,Xd=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Jd=/^[a-zA-Z0-9-_]+$/,Jn=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}static toString(e){let t=Et.toUint8Array(e),n="";for(let i=0;i<t.length;i++)n+=String.fromCharCode(t[i]);return decodeURIComponent(escape(n))}},We=class{static toString(e,t=!1){let n=Et.toArrayBuffer(e),s=new DataView(n),i="";for(let o=0;o<n.byteLength;o+=2){let a=s.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),s=new DataView(n);for(let i=0;i<e.length;i++)s.setUint16(i*2,e.charCodeAt(i),t);return n}},Qn=class r{static isHex(e){return typeof e===Co&&Zd.test(e)}static isBase64(e){return typeof e===Co&&Xd.test(e)}static isBase64Url(e){return typeof e===Co&&Jd.test(e)}static ToString(e,t="utf8"){let n=Et.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return We.toString(n,!0);case"utf16":case"utf16be":return We.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return We.fromString(e,!0);case"utf16":case"utf16be":return We.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=Et.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Jn.fromString(e);case"utf16":case"utf16be":return We.fromString(e);case"utf16le":case"usc2":return We.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Jn.toString(e);case"utf16":case"utf16be":return We.toString(e);case"utf16le":case"usc2":return We.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return n.buffer}static ToBinary(e){let t=Et.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return n}static ToHex(e){let t=Et.toUint8Array(e),n="",s=t.length;for(let i=0;i<s;i++){let o=t[i];o<16&&(n+="0"),n+=o.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let s=0;s<t.length;s=s+2){let i=t.slice(s,s+2);n[s/2]=parseInt(i,16)}return n.buffer}static ToUtf16String(e,t=!1){return We.toString(e,t)}static FromUtf16String(e,t=!1){return We.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Qn.DEFAULT_UTF8_ENCODING="utf8";function Qd(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let i in s)t[i]=s[i]}return t}function ep(...r){let e=r.map(s=>s.byteLength).reduce((s,i)=>s+i),t=new Uint8Array(e),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let i of s)t[n++]=i}),t.buffer}function tp(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<r.byteLength;s++)if(t[s]!==n[s])return!1;return!0}Mr.BufferSourceConverter=Et;Mr.Convert=Qn;Mr.assign=Qd;Mr.combine=ep;Mr.isEqual=tp});var Pu=xi((Rn,ti)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(l){if(!Array.isArray(l)&&!ArrayBuffer.isView(l))return!1;for(var p=0;p<l.length;p++)if(!Number.isInteger(l[p])||l[p]<0||l[p]>255)return!1;return!0}function s(l,p){return(l&65535)*p+(((l>>>16)*p&65535)<<16)}function i(l,p){return l<<p|l>>>32-p}function o(l){return l^=l>>>16,l=s(l,2246822507),l^=l>>>13,l=s(l,3266489909),l^=l>>>16,l}function a(l,p){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]+p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]+p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]+p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]+p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function c(l,p){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],p=[p[0]>>>16,p[0]&65535,p[1]>>>16,p[1]&65535];var m=[0,0,0,0];return m[3]+=l[3]*p[3],m[2]+=m[3]>>>16,m[3]&=65535,m[2]+=l[2]*p[3],m[1]+=m[2]>>>16,m[2]&=65535,m[2]+=l[3]*p[2],m[1]+=m[2]>>>16,m[2]&=65535,m[1]+=l[1]*p[3],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[2]*p[2],m[0]+=m[1]>>>16,m[1]&=65535,m[1]+=l[3]*p[1],m[0]+=m[1]>>>16,m[1]&=65535,m[0]+=l[0]*p[3]+l[1]*p[2]+l[2]*p[1]+l[3]*p[0],m[0]&=65535,[m[0]<<16|m[1],m[2]<<16|m[3]]}function h(l,p){return p%=64,p===32?[l[1],l[0]]:p<32?[l[0]<<p|l[1]>>>32-p,l[1]<<p|l[0]>>>32-p]:(p-=32,[l[1]<<p|l[0]>>>32-p,l[0]<<p|l[1]>>>32-p])}function f(l,p){return p%=64,p===0?l:p<32?[l[0]<<p|l[1]>>>32-p,l[1]<<p]:[l[1]<<p-32,0]}function u(l,p){return[l[0]^p[0],l[1]^p[1]]}function d(l){return l=u(l,[0,l[0]>>>1]),l=c(l,[4283543511,3981806797]),l=u(l,[0,l[0]>>>1]),l=c(l,[3301882366,444984403]),l=u(l,[0,l[0]>>>1]),l}t.x86.hash32=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%4,b=l.length-m,y=p,w=0,g=3432918353,x=461845907,S=0;S<b;S=S+4)w=l[S]|l[S+1]<<8|l[S+2]<<16|l[S+3]<<24,w=s(w,g),w=i(w,15),w=s(w,x),y^=w,y=i(y,13),y=s(y,5)+3864292196;switch(w=0,m){case 3:w^=l[S+2]<<16;case 2:w^=l[S+1]<<8;case 1:w^=l[S],w=s(w,g),w=i(w,15),w=s(w,x),y^=w}return y^=l.length,y=o(y),y>>>0},t.x86.hash128=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%16,b=l.length-m,y=p,w=p,g=p,x=p,S=0,_=0,v=0,B=0,N=597399067,te=2869860233,K=951274213,F=2716044179,U=0;U<b;U=U+16)S=l[U]|l[U+1]<<8|l[U+2]<<16|l[U+3]<<24,_=l[U+4]|l[U+5]<<8|l[U+6]<<16|l[U+7]<<24,v=l[U+8]|l[U+9]<<8|l[U+10]<<16|l[U+11]<<24,B=l[U+12]|l[U+13]<<8|l[U+14]<<16|l[U+15]<<24,S=s(S,N),S=i(S,15),S=s(S,te),y^=S,y=i(y,19),y+=w,y=s(y,5)+1444728091,_=s(_,te),_=i(_,16),_=s(_,K),w^=_,w=i(w,17),w+=g,w=s(w,5)+197830471,v=s(v,K),v=i(v,17),v=s(v,F),g^=v,g=i(g,15),g+=x,g=s(g,5)+2530024501,B=s(B,F),B=i(B,18),B=s(B,N),x^=B,x=i(x,13),x+=y,x=s(x,5)+850148119;switch(S=0,_=0,v=0,B=0,m){case 15:B^=l[U+14]<<16;case 14:B^=l[U+13]<<8;case 13:B^=l[U+12],B=s(B,F),B=i(B,18),B=s(B,N),x^=B;case 12:v^=l[U+11]<<24;case 11:v^=l[U+10]<<16;case 10:v^=l[U+9]<<8;case 9:v^=l[U+8],v=s(v,K),v=i(v,17),v=s(v,F),g^=v;case 8:_^=l[U+7]<<24;case 7:_^=l[U+6]<<16;case 6:_^=l[U+5]<<8;case 5:_^=l[U+4],_=s(_,te),_=i(_,16),_=s(_,K),w^=_;case 4:S^=l[U+3]<<24;case 3:S^=l[U+2]<<16;case 2:S^=l[U+1]<<8;case 1:S^=l[U],S=s(S,N),S=i(S,15),S=s(S,te),y^=S}return y^=l.length,w^=l.length,g^=l.length,x^=l.length,y+=w,y+=g,y+=x,w+=y,g+=y,x+=y,y=o(y),w=o(w),g=o(g),x=o(x),y+=w,y+=g,y+=x,w+=y,g+=y,x+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(g>>>0).toString(16)).slice(-8)+("00000000"+(x>>>0).toString(16)).slice(-8)},t.x64.hash128=function(l,p){if(t.inputValidation&&!n(l))return e;p=p||0;for(var m=l.length%16,b=l.length-m,y=[0,p],w=[0,p],g=[0,0],x=[0,0],S=[2277735313,289559509],_=[1291169091,658871167],v=0;v<b;v=v+16)g=[l[v+4]|l[v+5]<<8|l[v+6]<<16|l[v+7]<<24,l[v]|l[v+1]<<8|l[v+2]<<16|l[v+3]<<24],x=[l[v+12]|l[v+13]<<8|l[v+14]<<16|l[v+15]<<24,l[v+8]|l[v+9]<<8|l[v+10]<<16|l[v+11]<<24],g=c(g,S),g=h(g,31),g=c(g,_),y=u(y,g),y=h(y,27),y=a(y,w),y=a(c(y,[0,5]),[0,1390208809]),x=c(x,_),x=h(x,33),x=c(x,S),w=u(w,x),w=h(w,31),w=a(w,y),w=a(c(w,[0,5]),[0,944331445]);switch(g=[0,0],x=[0,0],m){case 15:x=u(x,f([0,l[v+14]],48));case 14:x=u(x,f([0,l[v+13]],40));case 13:x=u(x,f([0,l[v+12]],32));case 12:x=u(x,f([0,l[v+11]],24));case 11:x=u(x,f([0,l[v+10]],16));case 10:x=u(x,f([0,l[v+9]],8));case 9:x=u(x,[0,l[v+8]]),x=c(x,_),x=h(x,33),x=c(x,S),w=u(w,x);case 8:g=u(g,f([0,l[v+7]],56));case 7:g=u(g,f([0,l[v+6]],48));case 6:g=u(g,f([0,l[v+5]],40));case 5:g=u(g,f([0,l[v+4]],32));case 4:g=u(g,f([0,l[v+3]],24));case 3:g=u(g,f([0,l[v+2]],16));case 2:g=u(g,f([0,l[v+1]],8));case 1:g=u(g,[0,l[v]]),g=c(g,S),g=h(g,31),g=c(g,_),y=u(y,g)}return y=u(y,[0,l.length]),w=u(w,[0,l.length]),y=a(y,w),w=a(w,y),y=d(y),w=d(w),y=a(y,w),w=a(w,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof Rn<"u"?(typeof ti<"u"&&ti.exports&&(Rn=ti.exports=t),Rn.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(Rn)});var pa=xi((bx,Mu)=>{Mu.exports=Pu()});var N0={};ge(N0,{RELAY_V2_HOP_CODEC:()=>Ye,RELAY_V2_STOP_CODEC:()=>dr,circuitRelayServer:()=>qu,circuitRelayTransport:()=>tf});var Ei=Symbol.for("@libp2p/peer-id");var Ka=Symbol.for("@libp2p/transport");var Fa;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Fa||(Fa={}));var Lt=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},D=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var ze=(r,...e)=>{try{[...e]}catch{}};var $e=class extends EventTarget{#e=new Map;constructor(){super(),ze(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let s=this.#e.get(e);s!=null&&(s=s.filter(({callback:i})=>i!==t),this.#e.set(e,s))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:s})=>!s),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new yf(e,t))}},yf=globalThis.CustomEvent;function qa(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function za(...r){let e=[];for(let t of r)qa(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 $a(...r){let e=[];for(let t of r)qa(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 Ga=Symbol.for("@libp2p/service-capabilities"),ja=Symbol.for("@libp2p/service-dependencies");var Ii={};ge(Ii,{base58btc:()=>fe,base58flickr:()=>Af});var lg=new Uint8Array(0);function Wa(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 dt(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ya(r){return new TextEncoder().encode(r)}function Za(r){return new TextDecoder().decode(r)}function bf(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var s=0;s<r.length;s++){var i=r.charAt(s),o=i.charCodeAt(0);if(t[o]!==255)throw new TypeError(i+" is ambiguous");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function u(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var m=0,b=0,y=0,w=p.length;y!==w&&p[y]===0;)y++,m++;for(var g=(w-y)*f+1>>>0,x=new Uint8Array(g);y!==w;){for(var S=p[y],_=0,v=g-1;(S!==0||_<b)&&v!==-1;v--,_++)S+=256*x[v]>>>0,x[v]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");b=_,y++}for(var B=g-b;B!==g&&x[B]===0;)B++;for(var N=c.repeat(m);B<g;++B)N+=r.charAt(x[B]);return N}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var m=0;if(p[m]!==" "){for(var b=0,y=0;p[m]===c;)b++,m++;for(var w=(p.length-m)*h+1>>>0,g=new Uint8Array(w);p[m];){var x=t[p.charCodeAt(m)];if(x===255)return;for(var S=0,_=w-1;(x!==0||S<y)&&_!==-1;_--,S++)x+=a*g[_]>>>0,g[_]=x%256>>>0,x=x/256>>>0;if(x!==0)throw new Error("Non-zero carry");y=S,m++}if(p[m]!==" "){for(var v=w-y;v!==w&&g[v]===0;)v++;for(var B=new Uint8Array(b+(w-v)),N=b;v!==w;)B[N++]=g[v++];return B}}}function l(p){var m=d(p);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:u,decodeUnsafe:d,decode:l}}var wf=bf,xf=wf,Ja=xf;var Ai=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")}},Si=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),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 Qa(this,e)}},Bi=class{decoders;constructor(e){this.decoders=e}or(e){return Qa(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 Qa(r,e){return new Bi({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var _i=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,s){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=s,this.encoder=new Ai(e,t,n),this.decoder=new Si(e,t,s)}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 _i(r,e,t,n)}function Ct({name:r,prefix:e,alphabet:t}){let{encode:n,decode:s}=Ja(t,r);return br({prefix:e,name:r,encode:n,decode:i=>dt(s(i))})}function vf(r,e,t,n){let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let u=s[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|u,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function Ef(r,e,t){let n=e[e.length-1]==="=",s=(1<<t)-1,i="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,i+=e[s&a>>o];if(o!==0&&(i+=e[s&a<<t-o]),n)for(;i.length*t&7;)i+="=";return i}function ie({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return br({prefix:e,name:r,encode(s){return Ef(s,n,t)},decode(s){return vf(s,n,t,r)}})}var fe=Ct({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Af=Ct({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ki={};ge(ki,{base10:()=>Sf});var Sf=Ct({prefix:"9",name:"base10",alphabet:"0123456789"});var Ti={};ge(Ti,{base16:()=>Bf,base16upper:()=>_f});var Bf=ie({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),_f=ie({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ri={};ge(Ri,{base2:()=>If});var If=ie({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ni={};ge(Ni,{base256emoji:()=>Lf});var ec=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}"),kf=ec.reduce((r,e,t)=>(r[t]=e,r),[]),Tf=ec.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function Rf(r){return r.reduce((e,t)=>(e+=kf[t],e),"")}function Nf(r){let e=[];for(let t of r){let n=Tf[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Lf=br({prefix:"\u{1F680}",name:"base256emoji",encode:Rf,decode:Nf});var Li={};ge(Li,{base32:()=>pt,base32hex:()=>Of,base32hexpad:()=>Mf,base32hexpadupper:()=>Vf,base32hexupper:()=>Pf,base32pad:()=>Uf,base32padupper:()=>Df,base32upper:()=>Cf,base32z:()=>Hf});var pt=ie({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Cf=ie({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Uf=ie({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Df=ie({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Of=ie({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Pf=ie({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Mf=ie({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Vf=ie({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Hf=ie({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ci={};ge(Ci,{base36:()=>Ff,base36upper:()=>Kf});var Ff=Ct({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Kf=Ct({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Di={};ge(Di,{base64:()=>Ui,base64pad:()=>qf,base64url:()=>zf,base64urlpad:()=>$f});var Ui=ie({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),qf=ie({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),zf=ie({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),$f=ie({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Oi={};ge(Oi,{base8:()=>Gf});var Gf=ie({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Pi={};ge(Pi,{identity:()=>jf});var jf=br({prefix:"\0",name:"identity",encode:r=>Za(r),decode:r=>Ya(r)});var Bg=new TextEncoder,_g=new TextDecoder;var Vi={};ge(Vi,{identity:()=>gt});var Zf=nc,tc=128,Xf=127,Jf=~Xf,Qf=Math.pow(2,31);function nc(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Qf;)e[t++]=r&255|tc,r/=128;for(;r&Jf;)e[t++]=r&255|tc,r>>>=7;return e[t]=r|0,nc.bytes=t-n+1,e}var eh=Mi,th=128,rc=127;function Mi(r,n){var t=0,n=n||0,s=0,i=n,o,a=r.length;do{if(i>=a)throw Mi.bytes=0,new RangeError("Could not decode varint");o=r[i++],t+=s<28?(o&rc)<<s:(o&rc)*Math.pow(2,s),s+=7}while(o>=th);return Mi.bytes=i-n,t}var rh=Math.pow(2,7),nh=Math.pow(2,14),sh=Math.pow(2,21),ih=Math.pow(2,28),oh=Math.pow(2,35),ah=Math.pow(2,42),ch=Math.pow(2,49),lh=Math.pow(2,56),uh=Math.pow(2,63),fh=function(r){return r<rh?1:r<nh?2:r<sh?3:r<ih?4:r<oh?5:r<ah?6:r<ch?7:r<lh?8:r<uh?9:10},hh={encode:Zf,decode:eh,encodingLength:fh},dh=hh,Qr=dh;function en(r,e=0){return[Qr.decode(r,e),Qr.decode.bytes]}function wr(r,e,t=0){return Qr.encode(r,e,t),e}function xr(r){return Qr.encodingLength(r)}function st(r,e){let t=e.byteLength,n=xr(r),s=n+xr(t),i=new Uint8Array(s+t);return wr(r,i,0),wr(t,i,n),i.set(e,s),new vr(r,t,e,i)}function Qt(r){let e=dt(r),[t,n]=en(e),[s,i]=en(e.subarray(n)),o=e.subarray(n+i);if(o.byteLength!==s)throw new Error("Incorrect length");return new vr(t,s,o,e)}function sc(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Wa(r.bytes,t.bytes)}}var vr=class{code;size;digest;bytes;constructor(e,t,n,s){this.code=e,this.size=t,this.digest=n,this.bytes=s}};var ic=0,ph="identity",oc=dt;function gh(r){return st(ic,oc(r))}var gt={code:ic,name:ph,encode:oc,digest:gh};var Ki={};ge(Ki,{sha256:()=>me,sha512:()=>mh});function Fi({name:r,code:e,encode:t}){return new Hi(r,e,t)}var Hi=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?st(this.code,t):t.then(n=>st(this.code,n))}else throw Error("Unknown type, must be binary type")}};function cc(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var me=Fi({name:"sha2-256",code:18,encode:cc("SHA-256")}),mh=Fi({name:"sha2-512",code:19,encode:cc("SHA-512")});function lc(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return bh(t,qi(r),e??fe.encoder);default:return wh(t,qi(r),e??pt.encoder)}}var uc=new WeakMap;function qi(r){let e=uc.get(r);if(e==null){let t=new Map;return uc.set(r,t),t}return e}var Oe=class r{code;version;multihash;bytes;"/";constructor(e,t,n,s){this.code=t,this.version=e,this.multihash=n,this.bytes=s,this["/"]=s}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!==tn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==xh)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=st(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&&sc(e.multihash,n.multihash)}toString(e){return lc(this,e)}toJSON(){return{"/":lc(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:s,multihash:i,bytes:o}=t;return new r(n,s,i,o??fc(n,s,i.bytes))}else if(t[vh]===!0){let{version:n,multihash:s,code:i}=t,o=Qt(s);return r.create(n,i,o)}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!==tn)throw new Error(`Version 0 CID must use dag-pb (code: ${tn}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let s=fc(e,t,n.bytes);return new r(e,t,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,tn,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,s=dt(e.subarray(n,n+t.multihashSize));if(s.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=s.subarray(t.multihashSize-t.digestSize),o=new vr(t.multihashCode,t.digestSize,i,s);return[t.version===0?r.createV0(o):r.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[u,d]=en(e.subarray(t));return t+=d,u},s=n(),i=tn;if(s===18?(s=0,t=0):i=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let o=t,a=n(),c=n(),h=t+c,f=h-o;return{version:s,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(e,t){let[n,s]=yh(e,t),i=r.decode(s);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return qi(i).set(n,e),i}};function yh(r,e){switch(r[0]){case"Q":{let t=e??fe;return[fe.prefix,t.decode(`${fe.prefix}${r}`)]}case fe.prefix:{let t=e??fe;return[fe.prefix,t.decode(r)]}case pt.prefix:{let t=e??pt;return[pt.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function bh(r,e,t){let{prefix:n}=t;if(n!==fe.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let s=e.get(n);if(s==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return s}function wh(r,e,t){let{prefix:n}=t,s=e.get(n);if(s==null){let i=t.encode(r);return e.set(n,i),i}else return s}var tn=112,xh=18;function fc(r,e,t){let n=xr(r),s=n+xr(e),i=new Uint8Array(s+t.byteLength);return wr(r,i,0),wr(e,i,n),i.set(t,s),i}var vh=Symbol.for("@ipld/js-cid/CID");var Ut={...Pi,...Ri,...Oi,...ki,...Ti,...Li,...Ci,...Ii,...Di,...Ni},jg={...Ki,...Vi};function oe(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 xe(r=0){return new Uint8Array(r)}function Le(r=0){return new Uint8Array(r)}function dc(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var hc=dc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),zi=dc("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=Le(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Eh={utf8:hc,"utf-8":hc,hex:Ut.base16,latin1:zi,ascii:zi,binary:zi,...Ut},Dn=Eh;function V(r,e="utf8"){let t=Dn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function W(r,e="utf8"){let t=Dn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var gc=Symbol.for("nodejs.util.inspect.custom"),pc=Object.values(Ut).map(r=>r.decoder).reduce((r,e)=>r.or(e),Ut.identity.decoder),mc=114,ji=36,Wi=37,rn=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Ei]=!0;toString(){return this.string==null&&(this.string=fe.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Oe.createV1(mc,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return oe(this.multihash.bytes,e);if(typeof e=="string")return Dt(e).equals(this);if(e?.multihash?.bytes!=null)return oe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[gc](){return`PeerId(${this.toString()})`}},Er=class extends rn{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Ar=class extends rn{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},Sr=class extends rn{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}},$i=2336,Gi=class{type="url";multihash;privateKey;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=gt.digest(V(this.url))}[gc](){return`PeerId(${this.url})`}[Ei]=!0;toString(){return this.toCID().toString()}toCID(){return Oe.createV1($i,this.multihash)}toBytes(){return this.toCID().bytes}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=W(e)),e.toString()===this.toString())}};function Dt(r,e){if(e=e??pc,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=Qt(fe.decode(`z${r}`));return r.startsWith("12D")?new Ar({multihash:t}):r.startsWith("16U")?new Sr({multihash:t}):new Er({multihash:t})}return nn(pc.decode(r))}function nn(r){try{let e=Qt(r);if(e.code===gt.code){if(e.digest.length===ji)return new Ar({multihash:e});if(e.digest.length===Wi)return new Sr({multihash:e})}if(e.code===me.code)return new Er({multihash:e})}catch{return Ah(Oe.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function Ah(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==mc&&r.code!==$i)throw new Error("Supplied PeerID CID is invalid");if(r.code===$i){let t=W(r.multihash.digest);return new Gi(new URL(t))}let e=r.multihash;if(e.code===me.code)return new Er({multihash:r.multihash});if(e.code===gt.code){if(e.digest.length===ji)return new Ar({multihash:r.multihash});if(e.digest.length===Wi)return new Sr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function yc(r,e){return r.length===ji?new Ar({multihash:st(gt.code,r),privateKey:e}):r.length===Wi?new Sr({multihash:st(gt.code,r),privateKey:e}):new Er({multihash:await me.digest(r),publicKey:r,privateKey:e})}var No={};ge(No,{Ed25519PrivateKey:()=>ur,Ed25519PublicKey:()=>hn,generateKeyPair:()=>Gd,generateKeyPairFromSeed:()=>Zc,unmarshalEd25519PrivateKey:()=>zd,unmarshalEd25519PublicKey:()=>$d});function ke(r,e){e==null&&(e=r.reduce((s,i)=>s+i.length,0));let t=Le(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}function Ge(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Br(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Sh(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function _r(r,...e){if(!Sh(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function On(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Br(r.outputLen),Br(r.blockLen)}function Ir(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function bc(r,e){_r(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var tr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Tr=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Ze=(r,e)=>r<<32-e|r>>>e;var _m=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Bh=async()=>{};async function wc(r,e,t){let n=Date.now();for(let s=0;s<r;s++){t(s);let i=Date.now()-n;i>=0&&i<e||(await Bh(),n+=i)}}function xc(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Ot(r){return typeof r=="string"&&(r=xc(r)),_r(r),r}function Yi(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];_r(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}var kr=class{clone(){return this._cloneInto()}},_h={}.toString;function vc(r,e){if(e!==void 0&&_h.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function Pn(r){let e=n=>r().update(Ot(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Rr(r=32){if(tr&&typeof tr.getRandomValues=="function")return tr.getRandomValues(new Uint8Array(r));if(tr&&typeof tr.randomBytes=="function")return tr.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Ih(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),i=BigInt(4294967295),o=Number(t>>s&i),a=Number(t&i),c=n?4:0,h=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+h,a,n)}var Ec=(r,e,t)=>r&e^~r&t,Ac=(r,e,t)=>r&e^r&t^e&t,Nr=class extends kr{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Tr(this.buffer)}update(e){Ir(this);let{view:t,buffer:n,blockLen:s}=this;e=Ot(e);let i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=Tr(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ir(this),bc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:i}=this,{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let u=o;u<s;u++)t[u]=0;Ih(n,s-8,BigInt(this.length*8),i),this.process(n,0);let a=Tr(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<h;u++)a.setUint32(4*u,f[u],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=i,e.destroyed=o,s%t&&e.buffer.set(n),e}};var Mn=BigInt(4294967295),Zi=BigInt(32);function Sc(r,e=!1){return e?{h:Number(r&Mn),l:Number(r>>Zi&Mn)}:{h:Number(r>>Zi&Mn)|0,l:Number(r&Mn)|0}}function kh(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:i,l:o}=Sc(r[s],e);[t[s],n[s]]=[i,o]}return[t,n]}var Th=(r,e)=>BigInt(r>>>0)<<Zi|BigInt(e>>>0),Rh=(r,e,t)=>r>>>t,Nh=(r,e,t)=>r<<32-t|e>>>t,Lh=(r,e,t)=>r>>>t|e<<32-t,Ch=(r,e,t)=>r<<32-t|e>>>t,Uh=(r,e,t)=>r<<64-t|e>>>t-32,Dh=(r,e,t)=>r>>>t-32|e<<64-t,Oh=(r,e)=>e,Ph=(r,e)=>r,Mh=(r,e,t)=>r<<t|e>>>32-t,Vh=(r,e,t)=>e<<t|r>>>32-t,Hh=(r,e,t)=>e<<t-32|r>>>64-t,Fh=(r,e,t)=>r<<t-32|e>>>64-t;function Kh(r,e,t,n){let s=(e>>>0)+(n>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}var qh=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),zh=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,$h=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),Gh=(r,e,t,n,s)=>e+t+n+s+(r/2**32|0)|0,jh=(r,e,t,n,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),Wh=(r,e,t,n,s,i)=>e+t+n+s+i+(r/2**32|0)|0;var Yh={fromBig:Sc,split:kh,toBig:Th,shrSH:Rh,shrSL:Nh,rotrSH:Lh,rotrSL:Ch,rotrBH:Uh,rotrBL:Dh,rotr32H:Oh,rotr32L:Ph,rotlSH:Mh,rotlSL:Vh,rotlBH:Hh,rotlBL:Fh,add:Kh,add3L:qh,add3H:zh,add4L:$h,add4H:Gh,add5H:Wh,add5L:jh},H=Yh;var[Zh,Xh]=H.split(["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))),Pt=new Uint32Array(80),Mt=new Uint32Array(80),Xi=class extends Nr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:u,Fl:d,Gh:l,Gl:p,Hh:m,Hl:b}=this;return[e,t,n,s,i,o,a,c,h,f,u,d,l,p,m,b]}set(e,t,n,s,i,o,a,c,h,f,u,d,l,p,m,b){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=u|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=m|0,this.Hl=b|0}process(e,t){for(let g=0;g<16;g++,t+=4)Pt[g]=e.getUint32(t),Mt[g]=e.getUint32(t+=4);for(let g=16;g<80;g++){let x=Pt[g-15]|0,S=Mt[g-15]|0,_=H.rotrSH(x,S,1)^H.rotrSH(x,S,8)^H.shrSH(x,S,7),v=H.rotrSL(x,S,1)^H.rotrSL(x,S,8)^H.shrSL(x,S,7),B=Pt[g-2]|0,N=Mt[g-2]|0,te=H.rotrSH(B,N,19)^H.rotrBH(B,N,61)^H.shrSH(B,N,6),K=H.rotrSL(B,N,19)^H.rotrBL(B,N,61)^H.shrSL(B,N,6),F=H.add4L(v,K,Mt[g-7],Mt[g-16]),U=H.add4H(F,_,te,Pt[g-7],Pt[g-16]);Pt[g]=U|0,Mt[g]=F|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:u,El:d,Fh:l,Fl:p,Gh:m,Gl:b,Hh:y,Hl:w}=this;for(let g=0;g<80;g++){let x=H.rotrSH(u,d,14)^H.rotrSH(u,d,18)^H.rotrBH(u,d,41),S=H.rotrSL(u,d,14)^H.rotrSL(u,d,18)^H.rotrBL(u,d,41),_=u&l^~u&m,v=d&p^~d&b,B=H.add5L(w,S,v,Xh[g],Mt[g]),N=H.add5H(B,y,x,_,Zh[g],Pt[g]),te=B|0,K=H.rotrSH(n,s,28)^H.rotrBH(n,s,34)^H.rotrBH(n,s,39),F=H.rotrSL(n,s,28)^H.rotrBL(n,s,34)^H.rotrBL(n,s,39),U=n&i^n&a^i&a,T=s&o^s&c^o&c;y=m|0,w=b|0,m=l|0,b=p|0,l=u|0,p=d|0,{h:u,l:d}=H.add(h|0,f|0,N|0,te|0),h=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;let L=H.add3L(te,F,T);n=H.add3H(L,N,K,U),s=L|0}({h:n,l:s}=H.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=H.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=H.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=H.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:u,l:d}=H.add(this.Eh|0,this.El|0,u|0,d|0),{h:l,l:p}=H.add(this.Fh|0,this.Fl|0,l|0,p|0),{h:m,l:b}=H.add(this.Gh|0,this.Gl|0,m|0,b|0),{h:y,l:w}=H.add(this.Hh|0,this.Hl|0,y|0,w|0),this.set(n,s,i,o,a,c,h,f,u,d,l,p,m,b,y,w)}roundClean(){Pt.fill(0),Mt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var sn=Pn(()=>new Xi);var Hn={};ge(Hn,{aInRange:()=>Ce,abool:()=>Xe,abytes:()=>Lr,bitGet:()=>nd,bitLen:()=>ro,bitMask:()=>an,bitSet:()=>sd,bytesToHex:()=>yt,bytesToNumberBE:()=>bt,bytesToNumberLE:()=>Ht,concatBytes:()=>wt,createHmacDrbg:()=>no,ensureBytes:()=>ae,equalBytes:()=>td,hexToBytes:()=>nr,hexToNumber:()=>to,inRange:()=>on,isBytes:()=>Vt,memoized:()=>ir,notImplemented:()=>od,numberToBytesBE:()=>Ft,numberToBytesLE:()=>sr,numberToHexUnpadded:()=>rr,numberToVarBytesBE:()=>ed,utf8ToBytes:()=>rd,validateObject:()=>it});var eo=BigInt(0),Vn=BigInt(1),Jh=BigInt(2);function Vt(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Lr(r){if(!Vt(r))throw new Error("Uint8Array expected")}function Xe(r,e){if(typeof e!="boolean")throw new Error(`${r} must be valid boolean, got "${e}".`)}var Qh=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function yt(r){Lr(r);let e="";for(let t=0;t<r.length;t++)e+=Qh[r[t]];return e}function rr(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function to(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var mt={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function Bc(r){if(r>=mt._0&&r<=mt._9)return r-mt._0;if(r>=mt._A&&r<=mt._F)return r-(mt._A-10);if(r>=mt._a&&r<=mt._f)return r-(mt._a-10)}function nr(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let s=0,i=0;s<t;s++,i+=2){let o=Bc(r.charCodeAt(i)),a=Bc(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function bt(r){return to(yt(r))}function Ht(r){return Lr(r),to(yt(Uint8Array.from(r).reverse()))}function Ft(r,e){return nr(r.toString(16).padStart(e*2,"0"))}function sr(r,e){return Ft(r,e).reverse()}function ed(r){return nr(rr(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=nr(e)}catch(i){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${i}`)}else if(Vt(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof t=="number"&&s!==t)throw new Error(`${r} expected ${t} bytes, got ${s}`);return n}function wt(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Lr(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}function td(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function rd(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Ji=r=>typeof r=="bigint"&&eo<=r;function on(r,e,t){return Ji(r)&&Ji(e)&&Ji(t)&&e<=r&&r<t}function Ce(r,e,t,n){if(!on(e,t,n))throw new Error(`expected valid ${r}: ${t} <= n < ${n}, got ${typeof e} ${e}`)}function ro(r){let e;for(e=0;r>eo;r>>=Vn,e+=1);return e}function nd(r,e){return r>>BigInt(e)&Vn}function sd(r,e,t){return r|(t?Vn:eo)<<BigInt(e)}var an=r=>(Jh<<BigInt(r-1))-Vn,Qi=r=>new Uint8Array(r),_c=r=>Uint8Array.from(r);function no(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Qi(r),s=Qi(r),i=0,o=()=>{n.fill(1),s.fill(0),i=0},a=(...u)=>t(s,n,...u),c=(u=Qi())=>{s=a(_c([0]),u),n=a(),u.length!==0&&(s=a(_c([1]),u),n=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,d=[];for(;u<e;){n=a();let l=n.slice();d.push(l),u+=n.length}return wt(...d)};return(u,d)=>{o(),c(u);let l;for(;!(l=d(h()));)c();return o(),l}}var id={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Vt(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function it(r,e,t={}){let n=(s,i,o)=>{let a=id[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(let[s,i]of Object.entries(e))n(s,i,!1);for(let[s,i]of Object.entries(t))n(s,i,!0);return r}var od=()=>{throw new Error("not implemented")};function ir(r){let e=new WeakMap;return(t,...n)=>{let s=e.get(t);if(s!==void 0)return s;let i=r(t,...n);return e.set(t,i),i}}var he=BigInt(0),re=BigInt(1),or=BigInt(2),ad=BigInt(3),so=BigInt(4),Ic=BigInt(5),kc=BigInt(8),cd=BigInt(9),ld=BigInt(16);function J(r,e){let t=r%e;return t>=he?t:e+t}function ud(r,e,t){if(t<=he||e<he)throw new Error("Expected power/modulo > 0");if(t===re)return he;let n=re;for(;e>he;)e&re&&(n=n*r%t),r=r*r%t,e>>=re;return n}function ne(r,e,t){let n=r;for(;e-- >he;)n*=n,n%=t;return n}function Fn(r,e){if(r===he||e<=he)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=J(r,e),n=e,s=he,i=re,o=re,a=he;for(;t!==he;){let h=n/t,f=n%t,u=s-o*h,d=i-a*h;n=t,t=f,s=o,i=a,o=u,a=d}if(n!==re)throw new Error("invert: does not exist");return J(s,e)}function fd(r){let e=(r-re)/or,t,n,s;for(t=r-re,n=0;t%or===he;t/=or,n++);for(s=or;s<r&&ud(s,e,r)!==r-re;s++);if(n===1){let o=(r+re)/so;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(t+re)/or;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),t),u=a.pow(c,i),d=a.pow(c,t);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let l=1;for(let m=a.sqr(d);l<h&&!a.eql(m,a.ONE);l++)m=a.sqr(m);let p=a.pow(f,re<<BigInt(h-l-1));f=a.sqr(p),u=a.mul(u,p),d=a.mul(d,f),h=l}return u}}function hd(r){if(r%so===ad){let e=(r+re)/so;return function(n,s){let i=n.pow(s,e);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%kc===Ic){let e=(r-Ic)/kc;return function(n,s){let i=n.mul(s,or),o=n.pow(i,e),a=n.mul(s,o),c=n.mul(n.mul(a,or),o),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%ld,fd(r)}var Tc=(r,e)=>(J(r,e)&re)===re,dd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function io(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=dd.reduce((n,s)=>(n[s]="function",n),e);return it(r,t)}function pd(r,e,t){if(t<he)throw new Error("Expected power > 0");if(t===he)return r.ONE;if(t===re)return e;let n=r.ONE,s=e;for(;t>he;)t&re&&(n=r.mul(n,s)),s=r.sqr(s),t>>=re;return n}function gd(r,e){let t=new Array(e.length),n=e.reduce((i,o,a)=>r.is0(o)?i:(t[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return e.reduceRight((i,o,a)=>r.is0(o)?i:(t[a]=r.mul(i,t[a]),r.mul(i,o)),s),t}function oo(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Kt(r,e,t=!1,n={}){if(r<=he)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:i}=oo(r,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=hd(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:an(s),ZERO:he,ONE:re,create:c=>J(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return he<=c&&c<r},is0:c=>c===he,isOdd:c=>(c&re)===re,neg:c=>J(-c,r),eql:(c,h)=>c===h,sqr:c=>J(c*c,r),add:(c,h)=>J(c+h,r),sub:(c,h)=>J(c-h,r),mul:(c,h)=>J(c*h,r),pow:(c,h)=>pd(a,c,h),div:(c,h)=>J(c*Fn(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>Fn(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>gd(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>t?sr(c,i):Ft(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Ht(c):bt(c)}});return Object.freeze(a)}function Rc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function ao(r){let e=Rc(r);return e+Math.ceil(e/2)}function Nc(r,e,t=!1){let n=r.length,s=Rc(e),i=ao(e);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let o=t?bt(r):Ht(r),a=J(o,e-re)+re;return t?sr(a,s):Ft(a,s)}var yd=BigInt(0),co=BigInt(1),lo=new WeakMap,Lc=new WeakMap;function Kn(r,e){let t=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},s=i=>{n(i);let o=Math.ceil(e/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:t,unsafeLadder(i,o){let a=r.ZERO,c=i;for(;o>yd;)o&co&&(a=a.add(c)),c=c.double(),o>>=co;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=s(o),h=[],f=i,u=f;for(let d=0;d<a;d++){u=f,h.push(u);for(let l=1;l<c;l++)u=u.add(f),h.push(u);f=u.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=s(i),f=r.ZERO,u=r.BASE,d=BigInt(2**i-1),l=2**i,p=BigInt(i);for(let m=0;m<c;m++){let b=m*h,y=Number(a&d);a>>=p,y>h&&(y-=l,a+=co);let w=b,g=b+Math.abs(y)-1,x=m%2!==0,S=y<0;y===0?u=u.add(t(x,o[w])):f=f.add(t(S,o[g]))}return{p:f,f:u}},wNAFCached(i,o,a){let c=Lc.get(i)||1,h=lo.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&lo.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){n(o),Lc.set(i,o),lo.delete(i)}}}function qn(r,e,t,n){if(!Array.isArray(t)||!Array.isArray(n)||n.length!==t.length)throw new Error("arrays of points and scalars must have equal length");n.forEach((f,u)=>{if(!e.isValid(f))throw new Error(`wrong scalar at index ${u}`)}),t.forEach((f,u)=>{if(!(f instanceof r))throw new Error(`wrong point at index ${u}`)});let s=ro(BigInt(t.length)),i=s>12?s-3:s>4?s-2:s?2:1,o=(1<<i)-1,a=new Array(o+1).fill(r.ZERO),c=Math.floor((e.BITS-1)/i)*i,h=r.ZERO;for(let f=c;f>=0;f-=i){a.fill(r.ZERO);for(let d=0;d<n.length;d++){let l=n[d],p=Number(l>>BigInt(f)&BigInt(o));a[p]=a[p].add(t[d])}let u=r.ZERO;for(let d=a.length-1,l=r.ZERO;d>0;d--)l=l.add(a[d]),u=u.add(l);if(h=h.add(u),f!==0)for(let d=0;d<i;d++)h=h.double()}return h}function cn(r){return io(r.Fp),it(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...oo(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Je=BigInt(0),Ue=BigInt(1),zn=BigInt(2),bd=BigInt(8),wd={zip215:!0};function xd(r){let e=cn(r);return it(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Cc(r){let e=xd(r),{Fp:t,n,prehash:s,hash:i,randomBytes:o,nByteLength:a,h:c}=e,h=zn<<BigInt(a*8)-Ue,f=t.create,u=Kt(e.n,e.nBitLength),d=e.uvRatio||((A,E)=>{try{return{isValid:!0,value:t.sqrt(A*t.inv(E))}}catch{return{isValid:!1,value:Je}}}),l=e.adjustScalarBytes||(A=>A),p=e.domain||((A,E,I)=>{if(Xe("phflag",I),E.length||I)throw new Error("Contexts/pre-hash are not supported");return A});function m(A,E){Ce("coordinate "+A,E,Je,h)}function b(A){if(!(A instanceof g))throw new Error("ExtendedPoint expected")}let y=ir((A,E)=>{let{ex:I,ey:C,ez:P}=A,M=A.is0();E==null&&(E=M?bd:t.inv(P));let z=f(I*E),j=f(C*E),$=f(P*E);if(M)return{x:Je,y:Ue};if($!==Ue)throw new Error("invZ was invalid");return{x:z,y:j}}),w=ir(A=>{let{a:E,d:I}=e;if(A.is0())throw new Error("bad point: ZERO");let{ex:C,ey:P,ez:M,et:z}=A,j=f(C*C),$=f(P*P),X=f(M*M),ee=f(X*X),de=f(j*E),pe=f(X*f(de+$)),we=f(ee+f(I*f(j*$)));if(pe!==we)throw new Error("bad point: equation left != right (1)");let Ie=f(C*P),ue=f(M*z);if(Ie!==ue)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(E,I,C,P){this.ex=E,this.ey=I,this.ez=C,this.et=P,m("x",E),m("y",I),m("z",C),m("t",P),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof g)throw new Error("extended point not allowed");let{x:I,y:C}=E||{};return m("x",I),m("y",C),new g(I,C,Ue,f(I*C))}static normalizeZ(E){let I=t.invertBatch(E.map(C=>C.ez));return E.map((C,P)=>C.toAffine(I[P])).map(g.fromAffine)}static msm(E,I){return qn(g,u,E,I)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){w(this)}equals(E){b(E);let{ex:I,ey:C,ez:P}=this,{ex:M,ey:z,ez:j}=E,$=f(I*j),X=f(M*P),ee=f(C*j),de=f(z*P);return $===X&&ee===de}is0(){return this.equals(g.ZERO)}negate(){return new g(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=e,{ex:I,ey:C,ez:P}=this,M=f(I*I),z=f(C*C),j=f(zn*f(P*P)),$=f(E*M),X=I+C,ee=f(f(X*X)-M-z),de=$+z,pe=de-j,we=$-z,Ie=f(ee*pe),ue=f(de*we),Ne=f(ee*we),ht=f(pe*de);return new g(Ie,ue,ht,Ne)}add(E){b(E);let{a:I,d:C}=e,{ex:P,ey:M,ez:z,et:j}=this,{ex:$,ey:X,ez:ee,et:de}=E;if(I===BigInt(-1)){let Ca=f((M-P)*(X+$)),Ua=f((M+P)*(X-$)),wi=f(Ua-Ca);if(wi===Je)return this.double();let Da=f(z*zn*de),Oa=f(j*zn*ee),Pa=Oa+Da,Ma=Ua+Ca,Va=Oa-Da,af=f(Pa*wi),cf=f(Ma*Va),lf=f(Pa*Va),uf=f(wi*Ma);return new g(af,cf,uf,lf)}let pe=f(P*$),we=f(M*X),Ie=f(j*C*de),ue=f(z*ee),Ne=f((P+M)*($+X)-pe-we),ht=ue-Ie,Xr=ue+Ie,Jr=f(we-I*pe),rf=f(Ne*ht),nf=f(Xr*Jr),sf=f(Ne*Jr),of=f(ht*Xr);return new g(rf,nf,of,sf)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,g.normalizeZ)}multiply(E){let I=E;Ce("scalar",I,Ue,n);let{p:C,f:P}=this.wNAF(I);return g.normalizeZ([C,P])[0]}multiplyUnsafe(E){let I=E;return Ce("scalar",I,Je,n),I===Je?S:this.equals(S)||I===Ue?this:this.equals(x)?this.wNAF(I).p:_.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return y(this,E)}clearCofactor(){let{h:E}=e;return E===Ue?this:this.multiplyUnsafe(E)}static fromHex(E,I=!1){let{d:C,a:P}=e,M=t.BYTES;E=ae("pointHex",E,M),Xe("zip215",I);let z=E.slice(),j=E[M-1];z[M-1]=j&-129;let $=Ht(z),X=I?h:t.ORDER;Ce("pointHex.y",$,Je,X);let ee=f($*$),de=f(ee-Ue),pe=f(C*ee-P),{isValid:we,value:Ie}=d(de,pe);if(!we)throw new Error("Point.fromHex: invalid y coordinate");let ue=(Ie&Ue)===Ue,Ne=(j&128)!==0;if(!I&&Ie===Je&&Ne)throw new Error("Point.fromHex: x=0 and x_0=1");return Ne!==ue&&(Ie=f(-Ie)),g.fromAffine({x:Ie,y:$})}static fromPrivateKey(E){return N(E).point}toRawBytes(){let{x:E,y:I}=this.toAffine(),C=sr(I,t.BYTES);return C[C.length-1]|=E&Ue?128:0,C}toHex(){return yt(this.toRawBytes())}}g.BASE=new g(e.Gx,e.Gy,Ue,f(e.Gx*e.Gy)),g.ZERO=new g(Je,Ue,Ue,Je);let{BASE:x,ZERO:S}=g,_=Kn(g,a*8);function v(A){return J(A,n)}function B(A){return v(Ht(A))}function N(A){let E=a;A=ae("private key",A,E);let I=ae("hashed private key",i(A),2*E),C=l(I.slice(0,E)),P=I.slice(E,2*E),M=B(C),z=x.multiply(M),j=z.toRawBytes();return{head:C,prefix:P,scalar:M,point:z,pointBytes:j}}function te(A){return N(A).pointBytes}function K(A=new Uint8Array,...E){let I=wt(...E);return B(i(p(I,ae("context",A),!!s)))}function F(A,E,I={}){A=ae("message",A),s&&(A=s(A));let{prefix:C,scalar:P,pointBytes:M}=N(E),z=K(I.context,C,A),j=x.multiply(z).toRawBytes(),$=K(I.context,j,M,A),X=v(z+$*P);Ce("signature.s",X,Je,n);let ee=wt(j,sr(X,t.BYTES));return ae("result",ee,a*2)}let U=wd;function T(A,E,I,C=U){let{context:P,zip215:M}=C,z=t.BYTES;A=ae("signature",A,2*z),E=ae("message",E),M!==void 0&&Xe("zip215",M),s&&(E=s(E));let j=Ht(A.slice(z,2*z)),$,X,ee;try{$=g.fromHex(I,M),X=g.fromHex(A.slice(0,z),M),ee=x.multiplyUnsafe(j)}catch{return!1}if(!M&&$.isSmallOrder())return!1;let de=K(P,X.toRawBytes(),$.toRawBytes(),E);return X.add($.multiplyUnsafe(de)).subtract(ee).clearCofactor().equals(g.ZERO)}return x._setWindowSize(8),{CURVE:e,getPublicKey:te,sign:F,verify:T,ExtendedPoint:g,utils:{getExtendedPublicKey:N,randomPrivateKey:()=>o(t.BYTES),precompute(A=8,E=g.BASE){return E._setWindowSize(A),E.multiply(BigInt(3)),E}}}}var uo=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Uc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Ym=BigInt(0),vd=BigInt(1),Dc=BigInt(2),Zm=BigInt(3),Ed=BigInt(5),Ad=BigInt(8);function Sd(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),s=BigInt(80),i=uo,a=r*r%i*r%i,c=ne(a,Dc,i)*a%i,h=ne(c,vd,i)*r%i,f=ne(h,Ed,i)*h%i,u=ne(f,e,i)*f%i,d=ne(u,t,i)*u%i,l=ne(d,n,i)*d%i,p=ne(l,s,i)*l%i,m=ne(p,s,i)*l%i,b=ne(m,e,i)*f%i;return{pow_p_5_8:ne(b,Dc,i)*r%i,b2:a}}function Bd(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function _d(r,e){let t=uo,n=J(e*e*e,t),s=J(n*n*e,t),i=Sd(r*s).pow_p_5_8,o=J(r*n*i,t),a=J(e*o*o,t),c=o,h=J(o*Uc,t),f=a===r,u=a===J(-r,t),d=a===J(-r*Uc,t);return f&&(o=c),(u||d)&&(o=h),Tc(o,t)&&(o=J(-o,t)),{isValid:f||u,value:o}}var Id=Kt(uo,void 0,!0),kd={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Id,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Ad,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:sn,randomBytes:Rr,adjustScalarBytes:Bd,uvRatio:_d},Cr=Cc(kd);var Ur=32,xt=64,$n=32;function Oc(){let r=Cr.utils.randomPrivateKey(),e=Cr.getPublicKey(r);return{privateKey:Hc(r,e),publicKey:e}}function Pc(r){if(r.length!==$n)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Cr.getPublicKey(e);return{privateKey:Hc(e,t),publicKey:t}}function Mc(r,e){let t=r.subarray(0,$n);return Cr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function Vc(r,e,t){return Cr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Hc(r,e){let t=new Uint8Array(xt);for(let n=0;n<$n;n++)t[n]=r[n],t[$n+n]=e[n];return t}var Te={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw Object.assign(new Error("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"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var fo={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Fc(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,s=r?.digest??"SHA-256",i=r?.saltLength??16,o=r?.iterations??32767,a=Te.get();t*=8;async function c(u,d){let l=a.getRandomValues(new Uint8Array(i)),p=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:p};typeof d=="string"&&(d=V(d));let b;if(d.length===0){b=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"]);try{let w={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(w,g,{name:e,length:t},!0,["encrypt"])}catch{b=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"])}}else{let w={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},g=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(w,g,{name:e,length:t},!0,["encrypt"])}let y=await a.subtle.encrypt(m,b,u);return ke([l,m.iv,new Uint8Array(y)])}async function h(u,d){let l=u.subarray(0,i),p=u.subarray(i,i+n),m=u.subarray(i+n),b={name:e,iv:p};typeof d=="string"&&(d=V(d));let y;if(d.length===0)try{let g={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},x=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(g,x,{name:e,length:t},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["decrypt"])}else{let g={name:"PBKDF2",salt:l,iterations:o,hash:{name:s}},x=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(g,x,{name:e,length:t},!0,["decrypt"])}let w=await a.subtle.decrypt(b,y,m);return new Uint8Array(w)}return{encrypt:c,decrypt:h}}async function Dr(r,e){let n=await Fc().encrypt(r,e);return Ui.encode(n)}var Nd=Math.pow(2,7),Ld=Math.pow(2,14),Cd=Math.pow(2,21),ho=Math.pow(2,28),po=Math.pow(2,35),go=Math.pow(2,42),mo=Math.pow(2,49),Y=128,Ae=127;function Se(r){if(r<Nd)return 1;if(r<Ld)return 2;if(r<Cd)return 3;if(r<ho)return 4;if(r<po)return 5;if(r<go)return 6;if(r<mo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function yo(r,e,t=0){switch(Se(r)){case 8:e[t++]=r&255|Y,r/=128;case 7:e[t++]=r&255|Y,r/=128;case 6:e[t++]=r&255|Y,r/=128;case 5:e[t++]=r&255|Y,r/=128;case 4:e[t++]=r&255|Y,r>>>=7;case 3:e[t++]=r&255|Y,r>>>=7;case 2:e[t++]=r&255|Y,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Ud(r,e,t=0){switch(Se(r)){case 8:e.set(t++,r&255|Y),r/=128;case 7:e.set(t++,r&255|Y),r/=128;case 6:e.set(t++,r&255|Y),r/=128;case 5:e.set(t++,r&255|Y),r/=128;case 4:e.set(t++,r&255|Y),r>>>=7;case 3:e.set(t++,r&255|Y),r>>>=7;case 2:e.set(t++,r&255|Y),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function bo(r,e){let t=r[e],n=0;if(n+=t&Ae,t<Y||(t=r[e+1],n+=(t&Ae)<<7,t<Y)||(t=r[e+2],n+=(t&Ae)<<14,t<Y)||(t=r[e+3],n+=(t&Ae)<<21,t<Y)||(t=r[e+4],n+=(t&Ae)*ho,t<Y)||(t=r[e+5],n+=(t&Ae)*po,t<Y)||(t=r[e+6],n+=(t&Ae)*go,t<Y)||(t=r[e+7],n+=(t&Ae)*mo,t<Y))return n;throw new RangeError("Could not decode varint")}function Dd(r,e){let t=r.get(e),n=0;if(n+=t&Ae,t<Y||(t=r.get(e+1),n+=(t&Ae)<<7,t<Y)||(t=r.get(e+2),n+=(t&Ae)<<14,t<Y)||(t=r.get(e+3),n+=(t&Ae)<<21,t<Y)||(t=r.get(e+4),n+=(t&Ae)*ho,t<Y)||(t=r.get(e+5),n+=(t&Ae)*po,t<Y)||(t=r.get(e+6),n+=(t&Ae)*go,t<Y)||(t=r.get(e+7),n+=(t&Ae)*mo,t<Y))return n;throw new RangeError("Could not decode varint")}function je(r,e,t=0){return e==null&&(e=Le(Se(r))),e instanceof Uint8Array?yo(r,e,t):Ud(r,e,t)}function vt(r,e=0){return r instanceof Uint8Array?bo(r,e):Dd(r,e)}var wo=new Float32Array([-0]),qt=new Uint8Array(wo.buffer);function Kc(r,e,t){wo[0]=r,e[t]=qt[0],e[t+1]=qt[1],e[t+2]=qt[2],e[t+3]=qt[3]}function qc(r,e){return qt[0]=r[e],qt[1]=r[e+1],qt[2]=r[e+2],qt[3]=r[e+3],wo[0]}var xo=new Float64Array([-0]),Be=new Uint8Array(xo.buffer);function zc(r,e,t){xo[0]=r,e[t]=Be[0],e[t+1]=Be[1],e[t+2]=Be[2],e[t+3]=Be[3],e[t+4]=Be[4],e[t+5]=Be[5],e[t+6]=Be[6],e[t+7]=Be[7]}function $c(r,e){return Be[0]=r[e],Be[1]=r[e+1],Be[2]=r[e+2],Be[3]=r[e+3],Be[4]=r[e+4],Be[5]=r[e+5],Be[6]=r[e+6],Be[7]=r[e+7],xo[0]}var Od=BigInt(Number.MAX_SAFE_INTEGER),Pd=BigInt(Number.MIN_SAFE_INTEGER),Pe=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 ar;if(e<Od&&e>Pd)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,s=e-(n<<32n);return t&&(n=~n|0n,s=~s|0n,++s>Gc&&(s=0n,++n>Gc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(e){if(e===0)return ar;let t=e<0;t&&(e=-e);let n=e>>>0,s=(e-n)/4294967296>>>0;return t&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}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):ar}},ar=new Pe(0,0);ar.toBigInt=function(){return 0n};ar.zzEncode=ar.zzDecode=function(){return this};ar.length=function(){return 1};var Gc=4294967296n;function jc(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 Wc(r,e,t){if(t-e<1)return"";let s,i=[],o=0,a;for(;e<t;)a=r[e++],a<128?i[o++]=a:a>191&&a<224?i[o++]=(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,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,o>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,i)),o=0);return s!=null?(o>0&&s.push(String.fromCharCode.apply(String,i.slice(0,o))),s.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function vo(r,e,t){let n=t,s,i;for(let o=0;o<r.length;++o)s=r.charCodeAt(o),s<128?e[t++]=s:s<2048?(e[t++]=s>>6|192,e[t++]=s&63|128):(s&64512)===55296&&((i=r.charCodeAt(o+1))&64512)===56320?(s=65536+((s&1023)<<10)+(i&1023),++o,e[t++]=s>>18|240,e[t++]=s>>12&63|128,e[t++]=s>>6&63|128,e[t++]=s&63|128):(e[t++]=s>>12|224,e[t++]=s>>6&63|128,e[t++]=s&63|128);return t-n}function Qe(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function jn(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var Eo=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Qe(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 Qe(this,4);return jn(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qe(this,4);return jn(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qe(this,4);let e=qc(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Qe(this,4);let e=$c(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 Qe(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Wc(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Qe(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);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 Pe(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 Qe(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 Qe(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 Qe(this,8);let e=jn(this.buf,this.pos+=4),t=jn(this.buf,this.pos+=4);return new Pe(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=bo(this.buf,this.pos);return this.pos+=Se(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 Ao(r){return new Eo(r instanceof Uint8Array?r:r.subarray())}function Me(r,e,t){let n=Ao(r);return e.decode(n,void 0,t)}function So(r){let e=r??8192,t=e>>>1,n,s=e;return function(o){if(o<1||o>t)return Le(o);s+o>e&&(n=Le(e),s=0);let a=n.subarray(s,s+=o);return s&7&&(s=(s|7)+1),a}}var cr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Bo(){}var Io=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Md=So();function Vd(r){return globalThis.Buffer!=null?Le(r):Md(r)}var un=class{len;head;tail;states;constructor(){this.len=0,this.head=new cr(Bo,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new cr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new ko((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(Wn,10,Pe.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=Pe.fromBigInt(e);return this._push(Wn,t.length(),t)}uint64Number(e){return this._push(yo,Se(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=Pe.fromBigInt(e).zzEncode();return this._push(Wn,t.length(),t)}sint64Number(e){let t=Pe.fromNumber(e).zzEncode();return this._push(Wn,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(_o,1,e?1:0)}fixed32(e){return this._push(ln,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=Pe.fromBigInt(e);return this._push(ln,4,t.lo)._push(ln,4,t.hi)}fixed64Number(e){let t=Pe.fromNumber(e);return this._push(ln,4,t.lo)._push(ln,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(Kc,4,e)}double(e){return this._push(zc,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(_o,1,0):this.uint32(t)._push(Fd,t,e)}string(e){let t=jc(e);return t!==0?this.uint32(t)._push(vo,t,e):this._push(_o,1,0)}fork(){return this.states=new Io(this),this.head=this.tail=new cr(Bo,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 cr(Bo,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=Vd(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function _o(r,e,t){e[t]=r&255}function Hd(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var ko=class extends cr{next;constructor(e,t){super(Hd,e,t),this.next=void 0}};function Wn(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 ln(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 Fd(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(un.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Kd,e,r),this},un.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(qd,e,r),this});function Kd(r,e,t){e.set(r,t)}function qd(r,e,t){r.length<40?vo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(V(r),t)}function To(){return new un}function Ve(r,e){let t=To();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Or;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Or||(Or={}));function Yn(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function lr(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,o){let a=e(i);o.int32(a)},n=function(i){let o=i.int32();return e(o)};return Yn("enum",Or.VARINT,t,n)}function He(r,e){return Yn("message",Or.LENGTH_DELIMITED,r,e)}var fn=class extends Error{code;constructor(e,t){super(e),this.code=t}};var se;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(se||(se={}));var Ro;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Ro||(Ro={}));(function(r){r.codec=()=>lr(Ro)})(se||(se={}));var ot;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),se.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=se.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(ot||(ot={}));var at;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),se.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=se.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(at||(at={}));var hn=class{_key;constructor(e){this._key=Pr(e,Ur)}verify(e,t){return Vc(this._key,t,e)}marshal(){return this._key}get bytes(){return ot.encode({Type:se.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}},ur=class{_key;_publicKey;constructor(e,t){this._key=Pr(e,xt),this._publicKey=Pr(t,Ur)}sign(e){return Mc(this._key,e)}get public(){return new hn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:se.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return Ge(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=gt.digest(this.public.bytes);return fe.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function zd(r){if(r.length>xt){r=Pr(r,xt+Ur);let n=r.subarray(0,xt),s=r.subarray(xt,r.length);return new ur(n,s)}r=Pr(r,xt);let e=r.subarray(0,xt),t=r.subarray(Ur);return new ur(e,t)}function $d(r){return r=Pr(r,Ur),new hn(r)}async function Gd(){let{privateKey:r,publicKey:e}=Oc();return new ur(r,e)}async function Zc(r){let{privateKey:e,publicKey:t}=Pc(r);return new ur(e,t)}function Pr(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new D(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Fo={};ge(Fo,{MAX_RSA_KEY_SIZE:()=>Sn,RsaPrivateKey:()=>Kr,RsaPublicKey:()=>An,fromJwk:()=>wp,generateKeyPair:()=>xp,unmarshalRsaPrivateKey:()=>Vo,unmarshalRsaPublicKey:()=>bp});function ct(r){if(isNaN(r)||r<=0)throw new D("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Rr(r)}var jt={};ge(jt,{exportToPem:()=>dp,importFromPem:()=>pp,jwkToPkcs1:()=>lp,jwkToPkix:()=>fp,pkcs1ToJwk:()=>cp,pkixToJwk:()=>up});var Xn=class extends kr{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,On(e);let n=Ot(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(e){return Ir(this),this.iHash.update(e),this}digestInto(e){Ir(this),_r(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},dn=(r,e,t)=>new Xn(r,e).update(t).digest();dn.create=(r,e)=>new Xn(r,e);function jd(r,e,t,n){On(r);let s=vc({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(Br(i),Br(o),Br(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Ot(e),h=Ot(t),f=new Uint8Array(o),u=dn.create(r,c),d=u._cloneInto().update(h);return{c:i,dkLen:o,asyncTick:a,DK:f,PRF:u,PRFSalt:d}}function Wd(r,e,t,n,s){return r.destroy(),e.destroy(),n&&n.destroy(),s.fill(0),t}async function Lo(r,e,t,n){let{c:s,dkLen:i,asyncTick:o,DK:a,PRF:c,PRFSalt:h}=jd(r,e,t,n),f,u=new Uint8Array(4),d=Tr(u),l=new Uint8Array(c.outputLen);for(let p=1,m=0;m<i;p++,m+=c.outputLen){let b=a.subarray(m,m+c.outputLen);d.setInt32(0,p,!1),(f=h._cloneInto(f)).update(u).digestInto(l),b.set(l.subarray(0,b.length)),await wc(s-1,o,()=>{c._cloneInto(f).update(l).digestInto(l);for(let y=0;y<b.length;y++)b[y]^=l[y]})}return Wd(c,h,a,f,l)}var G=vi(Xc());function fr(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function zt(r,e,t=-1){let n=t,s=r,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(r<o){let c;if(n<0)c=new ArrayBuffer(a),i=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),i=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let u=Math.pow(2,f*e);h[i-f-1]=Math.floor(s/u),s-=h[i-f-1]*u}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function es(...r){let e=0,t=0;for(let i of r)e+=i.length;let n=new ArrayBuffer(e),s=new Uint8Array(n);for(let i of r)s.set(i,t),t+=i.length;return s}function Uo(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=fr(t,8),s=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,fr(i,8)-n}function Jc(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let o=t-e,a=zt(o,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=zt(e,8,n),i=new Uint8Array(s);if(i[0]&128){let o=s.slice(0),a=new Uint8Array(o);s=new ArrayBuffer(s.byteLength+1),i=new Uint8Array(s);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return s}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Qc(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}function De(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,s=new Array(n);for(let o=0;o<n;o++)s[o]="0";return s.join("").concat(t)}var rb=Math.log(2);function ts(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Do(r){let e=0,t=0;for(let s=0;s<r.length;s++){let i=r[s];e+=i.byteLength}let n=new Uint8Array(e);for(let s=0;s<r.length;s++){let i=r[s];n.set(new Uint8Array(i),t),t+=i.byteLength}return n.buffer}function _t(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var gn=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return Do(this.items)}},pn=[new Uint8Array([1])],el="0123456789";var Hr="",tt=new ArrayBuffer(0),Oo=new Uint8Array(0),mn="EndOfContent",rl="OCTET STRING",nl="BIT STRING";function It(r){var e;return e=class extends r{constructor(...n){var s;super(...n);let i=n[0]||{};this.isHexOnly=(s=i.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=i.valueHex?G.BufferSourceConverter.toUint8Array(i.valueHex):Oo}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,i){let o=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!_t(this,o,s,i))return-1;let a=s+i;return this.valueHexView=o.subarray(s,a),this.valueHexView.length?(this.blockLength=i,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",tt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:G.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var At=class{constructor({blockLength:e=0,error:t=Hr,warnings:n=[],valueBeforeDecode:s=Oo}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=G.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:G.Convert.ToHex(this.valueBeforeDecodeView)}}};At.NAME="baseBlock";var _e=class extends At{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};_e.NAME="valueBlock";var rs=class extends It(At){constructor({idBlock:e={}}={}){var t,n,s,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?G.BufferSourceConverter.toUint8Array(e.valueHex):Oo,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=e.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",tt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,s[0]=t}return s.buffer}if(!this.isHexOnly){let s=zt(this.tagNumber,7),i=new Uint8Array(s),o=s.byteLength,a=new Uint8Array(o+1);if(a[0]=t|31,!e){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let s=this.valueHexView;for(let i=0;i<s.length-1;i++)n[i+1]=s[i]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;i[c]&128;){if(h[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let d=new Uint8Array(f);for(let l=0;l<h.length;l++)d[l]=h[l];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=i[c]&127;let u=new Uint8Array(c);for(let d=0;d<c;d++)u[d]=h[d];h=this.valueHexView=new Uint8Array(c),h.set(u),this.blockLength<=9?this.tagNumber=fr(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};rs.NAME="identificationBlock";var ns=class extends At{constructor({lenBlock:e={}}={}){var t,n,s;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=e.length)!==null&&s!==void 0?s:0}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=s.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=fr(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let s=zt(this.length,8);if(s.byteLength>127)return this.error="Too big length",tt;if(t=new ArrayBuffer(s.byteLength+1),e)return t;let i=new Uint8Array(s);n=new Uint8Array(t),n[0]=s.byteLength|128;for(let o=0;o<s.byteLength;o++)n[o+1]=i[o];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};ns.NAME="lengthBlock";var R={},ve=class extends At{constructor({name:e=Hr,optional:t=!1,primitiveSchema:n,...s}={},i){super(s),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new rs(s),this.lenBlock=new ns(s),this.valueBlock=i?new i(s):new _e(s)}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(e,t){let n=t||new gn;t||sl(this);let s=this.idBlock.toBER(e);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(e);n.write(o),n.write(i)}return t?tt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():G.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${G.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Qc(t,n)}};ve.NAME="BaseBlock";function sl(r){if(r instanceof R.Constructed)for(let e of r.valueBlock.value)sl(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var ss=class extends ve{constructor({value:e=Hr,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};ss.NAME="BaseStringBlock";var is=class extends It(_e){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};is.NAME="PrimitiveValueBlock";var il,os=class extends ve{constructor(e={}){super(e,is),this.idBlock.isConstructed=!1}};il=os;R.Primitive=il;os.NAME="PRIMITIVE";function np(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Vs(r,e=0,t=r.length){let n=e,s=new ve({},_e),i=new At;if(!_t(i,r,e,t))return s.error=i.error,{offset:-1,result:s};if(!r.subarray(e,e+t).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,e,t);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(e=a,t-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,e,t),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(e=a,t-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=ve;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=R.EndOfContent;break;case 1:c=R.Boolean;break;case 2:c=R.Integer;break;case 3:c=R.BitString;break;case 4:c=R.OctetString;break;case 5:c=R.Null;break;case 6:c=R.ObjectIdentifier;break;case 10:c=R.Enumerated;break;case 12:c=R.Utf8String;break;case 13:c=R.RelativeObjectIdentifier;break;case 14:c=R.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=R.Sequence;break;case 17:c=R.Set;break;case 18:c=R.NumericString;break;case 19:c=R.PrintableString;break;case 20:c=R.TeletexString;break;case 21:c=R.VideotexString;break;case 22:c=R.IA5String;break;case 23:c=R.UTCTime;break;case 24:c=R.GeneralizedTime;break;case 25:c=R.GraphicString;break;case 26:c=R.VisibleString;break;case 27:c=R.GeneralString;break;case 28:c=R.UniversalString;break;case 29:c=R.CharacterString;break;case 30:c=R.BmpString;break;case 31:c=R.DATE;break;case 32:c=R.TimeOfDay;break;case 33:c=R.DateTime;break;case 34:c=R.Duration;break;default:{let h=s.idBlock.isConstructed?new R.Constructed:new R.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?R.Constructed:R.Primitive}return s=np(s,c),a=s.fromBER(r,e,s.lenBlock.isIndefiniteForm?t:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Fr(r){if(!r.byteLength){let e=new ve({},_e);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Vs(G.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function sp(r,e){return r?1:e}var lt=class extends _e{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;if(this.valueBeforeDecodeView=s.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;sp(this.isIndefiniteForm,n)>0;){let o=Vs(s,i,n);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,n-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===mn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===mn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let n=t||new gn;for(let s=0;s<this.value.length;s++)this.value[s].toBER(e,n);return t?tt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};lt.NAME="ConstructedValueBlock";var ol,$t=class extends ve{constructor(e={}){super(e,lt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
3
3
  `).map(s=>` ${s}`).join(`
4
4
  `));let t=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return e.length?`${t} :
5
5
  ${e.join(`
6
- `)}`:`${t} :`}};sl=Ft;R.Constructed=sl;Ft.NAME="CONSTRUCTED";var is=class extends Be{fromBER(e,t,n){return t}toBER(e){return tt}};is.override="EndOfContentValueBlock";var il,os=class extends xe{constructor(e={}){super(e,is),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};il=os;R.EndOfContent=il;os.NAME=hn;var ol,Kt=class extends xe{constructor(e={}){super(e,Be),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let s=new Uint8Array(n);s[0]=5,s[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};ol=Kt;R.Null=ol;Kt.NAME="NULL";var as=class extends _t(Be){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=z.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);return Bt(this,s,t,n)?(this.valueHexView=s.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,No.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};as.NAME="BooleanValueBlock";var al,cs=class extends xe{constructor(e={}){super(e,as),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};al=cs;R.Boolean=al;cs.NAME="BOOLEAN";var ls=class extends _t(lt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===hn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==el)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(e,t,n),this.blockLength=n;return s}toBER(e,t){return this.isConstructed?lt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};ls.NAME="OctetStringValueBlock";var cl,At=class r extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},ls),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(i.byteLength){let o=Ps(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Ft.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${z.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return z.BufferSourceConverter.concat(e)}};cl=At;R.OctetString=cl;At.NAME=el;var us=class extends _t(lt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let s=-1;if(this.isConstructed){if(s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===hn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==tl)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let i=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,i,t,n))return-1;let o=i.subarray(t,t+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Ps(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+n}toBER(e,t){if(this.isConstructed)return lt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return tt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};us.NAME="BitStringValueBlock";var ll,Or=class extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},us),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ft.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let s of t)e.push(s.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};ll=Or;R.BitString=ll;Or.NAME=tl;var ul;function np(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<o?o:c,l=0;for(let g=f;g>=0;g--,l++){switch(!0){case l<a.length:h=i[o-l]+a[c-l]+t[0];break;default:h=i[o-l]+t[0]}switch(t[0]=h/10,!0){case l>=i.length:i=Jn(new Uint8Array([h%10]),i);break;default:i[o-l]=h%10}}return t[0]>0&&(i=Jn(t,i)),i}function Qc(r){if(r>=un.length)for(let e=un.length;e<=r;e++){let t=new Uint8Array([0]),n=un[e-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+t[0]]);t[0]=i[0]/10,n[s]=i[0]%10}t[0]>0&&(n=Jn(t,n)),un.push(n)}return un[r]}function sp(r,e){let t=0,n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let l=c;l>=0;l--,f++)switch(h=i[o-f]-a[c-f]-t,!0){case h<0:t=1,i[o-f]=h+10;break;default:t=0,i[o-f]=h}if(t>0)for(let l=o-c+1;l>=0;l--,f++)if(h=i[o-f]-t,h<0)t=1,i[o-f]=h+10;else{t=0,i[o-f]=h;break}return i.slice()}var dn=class extends _t(Be){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=No.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Zc(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,s=0){let i=this.fromBER(e,t,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let s=super.fromBER(e,t,n);return s===-1||this.setValueHex(),s}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case e:t=sp(Qc(n),t),o="-";break;default:t=np(t,Qc(n))}n++,s>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(o+=Jc.charAt(t[c]));return a===!1&&(o+=Jc.charAt(0)),o}};ul=dn;dn.NAME="IntegerValueBlock";Object.defineProperty(ul.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var fl,le=class r extends xe{constructor(e={}){super(e,dn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Qn(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Qn();let t=BigInt(e),n=new fn,s=t.toString(16).replace(/^-/,""),i=new Uint8Array(z.Convert.FromHex(s));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${z.Convert.ToHex(a)}`)+t,f=z.BufferSourceConverter.toUint8Array(z.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};fl=le;R.Integer=fl;le.NAME="INTEGER";var hl,fs=class extends le{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};hl=fs;R.Enumerated=hl;fs.NAME="ENUMERATED";var pn=class extends _t(Be){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Qn();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(t.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=Ht(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let e="";if(this.isHexOnly)e=z.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};pn.NAME="sidBlock";var hs=class extends Be{constructor({value:e=Pr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new pn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(e);if(s.byteLength===0)return this.error=this.value[n].error,tt;t.push(s)}return Co(t)}fromString(e){this.value=[];let t=0,n=0,s="",i=!1;do if(n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new pn;if(s>Number.MAX_SAFE_INTEGER){Qn();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t?(s=`{${s}}`,this.value[n].isFirstSid?e=`2.{${s} - 80}`:e+=s):e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};hs.NAME="ObjectIdentifierValueBlock";var dl,et=class extends xe{constructor(e={}){super(e,hs),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};dl=et;R.ObjectIdentifier=dl;et.NAME="OBJECT IDENTIFIER";var gn=class extends _t(Et){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=Ht(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let e="";return this.isHexOnly?e=z.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};gn.NAME="relativeSidBlock";var ds=class extends Be{constructor({value:e=Pr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new gn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e,t){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(e);if(i.byteLength===0)return this.error=this.value[s].error,tt;n.push(i)}return Co(n)}fromString(e){this.value=[];let t=0,n=0,s="";do{n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1;let i=new gn;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(s=`{${s}}`),e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};ds.NAME="RelativeObjectIdentifierValueBlock";var pl,ps=class extends xe{constructor(e={}){super(e,ds),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};pl=ps;R.RelativeObjectIdentifier=pl;ps.NAME="RelativeObjectIdentifier";var gl,ye=class extends Ft{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};gl=ye;R.Sequence=gl;ye.NAME="SEQUENCE";var ml,gs=class extends Ft{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};ml=gs;R.Set=ml;gs.NAME="SET";var ms=class extends _t(Be){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=Pr}toJSON(){return{...super.toJSON(),value:this.value}}};ms.NAME="StringValueBlock";var ys=class extends ms{};ys.NAME="SimpleStringValueBlock";var ke=class extends rs{constructor({...e}={}){super(e,ys)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,z.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);this.valueBlock.value=e}};ke.NAME="SIMPLE STRING";var bs=class extends ke{fromBuffer(e){this.valueBlock.valueHexView=z.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=z.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=z.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(z.Convert.FromUtf8String(e)),this.valueBlock.value=e}};bs.NAME="Utf8StringValueBlock";var yl,St=class extends bs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};yl=St;R.Utf8String=yl;St.NAME="UTF8String";var ws=class extends ke{fromBuffer(e){this.valueBlock.value=z.Convert.ToUtf16String(e),this.valueBlock.valueHexView=z.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(z.Convert.FromUtf16String(e))}};ws.NAME="BmpStringValueBlock";var bl,xs=class extends ws{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};bl=xs;R.BmpString=bl;xs.NAME="BMPString";var vs=class extends ke{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let s=0;s<t;s++){let i=Ht(e.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=e}};vs.NAME="UniversalStringValueBlock";var wl,Es=class extends vs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};wl=Es;R.UniversalString=wl;Es.NAME="UniversalString";var xl,As=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};xl=As;R.NumericString=xl;As.NAME="NumericString";var vl,Ss=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};vl=Ss;R.PrintableString=vl;Ss.NAME="PrintableString";var El,Bs=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};El=Bs;R.TeletexString=El;Bs.NAME="TeletexString";var Al,_s=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Al=_s;R.VideotexString=Al;_s.NAME="VideotexString";var Sl,Is=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Sl=Is;R.IA5String=Sl;Is.NAME="IA5String";var Bl,ks=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Bl=ks;R.GraphicString=Bl;ks.NAME="GraphicString";var _l,mn=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};_l=mn;R.VisibleString=_l;mn.NAME="VisibleString";var Il,Ts=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Il=Ts;R.GeneralString=Il;Ts.NAME="GeneralString";var kl,Rs=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};kl=Rs;R.CharacterString=kl;Rs.NAME="CharacterString";var Tl,yn=class extends mn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let s=0;s<e.length;s++)this.valueBlock.valueHexView[s]=e.charCodeAt(s)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,z.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=Le(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=Le(this.month,2),t[2]=Le(this.day,2),t[3]=Le(this.hour,2),t[4]=Le(this.minute,2),t[5]=Le(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Tl=yn;R.UTCTime=Tl;yn.NAME="UTCTime";var Rl,Ns=class extends yn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",s="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,g=n.indexOf("+"),u="";if(g===-1&&(g=n.indexOf("-"),l=-1),g!==-1){if(u=n.substring(g+1),n=n.substring(0,g),u.length!==2&&u.length!==4)throw new Error("Wrong input string for conversion");let d=parseInt(u.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*d,u.length===4){if(d=parseInt(u.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=l*d}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let l=new Number(`0${n.substring(h)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");i=l.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=60*i;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=60*i;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=1e3*i;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=o.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l<f.length;l++)switch(l){case 1:this.year=parseInt(f[l],10);break;case 2:this.month=parseInt(f[l],10);break;case 3:this.day=parseInt(f[l],10);break;case 4:this.hour=parseInt(f[l],10)+a;break;case 5:this.minute=parseInt(f[l],10)+c;break;case 6:this.second=parseInt(f[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(Le(this.year,4)),t.push(Le(this.month,2)),t.push(Le(this.day,2)),t.push(Le(this.hour,2)),t.push(Le(this.minute,2)),t.push(Le(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(Le(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Rl=Ns;R.GeneralizedTime=Rl;Ns.NAME="GeneralizedTime";var Nl,Cs=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Nl=Cs;R.DATE=Nl;Cs.NAME="DATE";var Cl,Ls=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Cl=Ls;R.TimeOfDay=Cl;Ls.NAME="TimeOfDay";var Ll,Us=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Ll=Us;R.DateTime=Ll;Us.NAME="DateTime";var Ul,Ds=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ul=Ds;R.Duration=Ul;Ds.NAME="Duration";var Dl,Os=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Dl=Os;R.TIME=Dl;Os.NAME="TIME";function op(r){let{result:e}=Mr(r),t=e.valueBlock.value;return{n:G(ut(t[1].toBigInt()),"base64url"),e:G(ut(t[2].toBigInt()),"base64url"),d:G(ut(t[3].toBigInt()),"base64url"),p:G(ut(t[4].toBigInt()),"base64url"),q:G(ut(t[5].toBigInt()),"base64url"),dp:G(ut(t[6].toBigInt()),"base64url"),dq:G(ut(t[7].toBigInt()),"base64url"),qi:G(ut(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function ap(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 L("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new le({value:0}),le.fromBigInt(ft(M(r.n,"base64url"))),le.fromBigInt(ft(M(r.e,"base64url"))),le.fromBigInt(ft(M(r.d,"base64url"))),le.fromBigInt(ft(M(r.p,"base64url"))),le.fromBigInt(ft(M(r.q,"base64url"))),le.fromBigInt(ft(M(r.dp,"base64url"))),le.fromBigInt(ft(M(r.dq,"base64url"))),le.fromBigInt(ft(M(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function cp(r){let{result:e}=Mr(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:G(ut(t[0].toBigInt()),"base64url"),e:G(ut(t[1].toBigInt()),"base64url")}}function lp(r){if(r.n==null||r.e==null)throw new L("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Kt]}),new Or({valueHex:new ye({value:[le.fromBigInt(ft(M(r.n,"base64url"))),le.fromBigInt(ft(M(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function ut(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),s=0,i=0;for(;s<t;)n[s]=parseInt(e.slice(i,i+2),16),s+=1,i+=2;return n}function ft(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var up=16,Uo=32,Do=1e4;async function fp(r,e){let t=Ie.get(),s=new ye({value:[new le({value:0}),new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Kt]}),new At({valueHex:r.marshal()})]}).toBER(),i=new Uint8Array(s,0,s.byteLength),o=ct(up),a=await To(en,e,o,{c:Do,dkLen:Uo}),c=ct(16),h=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},h,i),l=new ye({value:[new At({valueHex:o}),new le({value:Do}),new le({value:Uo}),new ye({value:[new et({value:"1.2.840.113549.2.11"}),new Kt]})]}),g=new ye({value:[new et({value:"1.2.840.113549.1.5.13"}),new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.5.12"}),l]}),new ye({value:[new et({value:"2.16.840.1.101.3.4.1.42"}),new At({valueHex:c})]})]})]}),d=new ye({value:[g,new At({valueHex:f})]}).toBER(),p=new Uint8Array(d,0,d.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...G(p,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
- `)}async function hp(r,e){let t=Ie.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let s=M(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Mr(s),{iv:o,salt:a,iterations:c,keySize:h,cipherText:f}=dp(i),l=await To(en,e,a,{c,dkLen:h}),g=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),u=bn(await t.subtle.decrypt({name:"AES-CBC",iv:o},g,f)),{result:d}=Mr(u);n=Ol(d)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let s=M(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Mr(s);n=Ol(i)}else throw new L("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Oo(n)}function dp(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new L("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new L("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],o=bn(i.valueBlock.value[0].getValue()),a=Do,c=Uo;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new L("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let h=e.valueBlock.value[1].valueBlock.value[1],f=h.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new L("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=bn(h.valueBlock.value[1].getValue());return{cipherText:bn(r.valueBlock.value[1].getValue()),salt:o,iterations:a,keySize:c,iv:l}}function Ol(r){return bn(r.valueBlock.value[2].getValue())}function bn(r){return new Uint8Array(r,0,r.byteLength)}async function Pl(r){let e=await Ie.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Hl(e);return{privateKey:t[0],publicKey:t[1]}}async function Po(r){let t=[await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await pp(r)],n=await Hl({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Ml(r,e){let t=await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ie.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Vl(r,e,t){let n=await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ie.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Hl(r){if(r.privateKey==null||r.publicKey==null)throw new L("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ie.get().subtle.exportKey("jwk",r.privateKey),Ie.get().subtle.exportKey("jwk",r.publicKey)])}async function pp(r){return Ie.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Ms(r){if(r.kty!=="RSA")throw new L("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new L("invalid key modulus","ERR_INVALID_KEY_MODULUS");return M(r.n,"base64url").length*8}var xn=8192,wn=class{_key;constructor(e){this._key=e}verify(e,t){return Vl(this._key,t,e)}marshal(){return qt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:re.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}},Vr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return ct(16)}sign(e){return Ml(this._key,e)}get public(){if(this._publicKey==null)throw new L("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new wn(this._publicKey)}marshal(){return qt.jwkToPkcs1(this._key)}get bytes(){return at.encode({Type:re.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return G(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return qt.exportToPem(this,e);if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Oo(r){let e=qt.pkcs1ToJwk(r);if(Ms(e)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Po(e);return new Vr(t.privateKey,t.publicKey)}function mp(r){let e=qt.pkixToJwk(r);if(Ms(e)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new wn(e)}async function yp(r){if(Ms(r)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Po(r);return new Vr(e.privateKey,e.publicKey)}async function bp(r){if(r>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Pl(r);return new Vr(e.privateKey,e.publicKey)}var qo={};ge(qo,{Secp256k1PrivateKey:()=>En,Secp256k1PublicKey:()=>vn,generateKeyPair:()=>Np,unmarshalSecp256k1PrivateKey:()=>Tp,unmarshalSecp256k1PublicKey:()=>Rp});var wp=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),$t=new Uint32Array(64),Vo=class extends kr{constructor(){super(64,32,8,!1),this.A=zt[0]|0,this.B=zt[1]|0,this.C=zt[2]|0,this.D=zt[3]|0,this.E=zt[4]|0,this.F=zt[5]|0,this.G=zt[6]|0,this.H=zt[7]|0}get(){let{A:e,B:t,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,t,n,s,i,o,a,c]}set(e,t,n,s,i,o,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)$t[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let g=$t[l-15],u=$t[l-2],d=Ze(g,7)^Ze(g,18)^g>>>3,p=Ze(u,17)^Ze(u,19)^u>>>10;$t[l]=p+$t[l-7]+d+$t[l-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:h,H:f}=this;for(let l=0;l<64;l++){let g=Ze(a,6)^Ze(a,11)^Ze(a,25),u=f+g+wc(a,c,h)+wp[l]+$t[l]|0,p=(Ze(n,2)^Ze(n,13)^Ze(n,22))+xc(n,s,i)|0;f=h,h=c,c=a,a=o+u|0,o=i,i=s,s=n,n=u+p|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,h,f)}roundClean(){$t.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Fl=Dn(()=>new Vo);function Kl(r){r.lowS!==void 0&&Xe("lowS",r.lowS),r.prehash!==void 0&&Xe("prehash",r.prehash)}function xp(r){let e=nn(r);it(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:s}=e;if(t){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:vp,hexToBytes:Ep}=Mn,cr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=cr;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:vp(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=cr,t=typeof r=="string"?Ep(r):r;Tr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:s,l:i}=cr._parseInt(t.subarray(2)),{d:o,l:a}=cr._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(r){let e=h=>Number.parseInt(h[0],16)&8?"00"+h:h,t=h=>{let f=h.toString(16);return f.length&1?`0${f}`:f},n=e(t(r.s)),s=e(t(r.r)),i=n.length/2,o=s.length/2,a=t(i),c=t(o);return`30${t(o+i+4)}02${c}${s}02${a}${n}`}},Gt=BigInt(0),be=BigInt(1),_b=BigInt(2),ql=BigInt(3),Ib=BigInt(4);function Ap(r){let e=xp(r),{Fp:t}=e,n=e.toBytes||((d,p,w)=>{let y=p.toAffine();return bt(Uint8Array.from([4]),t.toBytes(y.x),t.toBytes(y.y))}),s=e.fromBytes||(d=>{let p=d.subarray(1),w=t.fromBytes(p.subarray(0,t.BYTES)),y=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:w,y}});function i(d){let{a:p,b:w}=e,y=t.sqr(d),m=t.mul(y,d);return t.add(t.add(m,t.mul(d,p)),w)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return tn(d,be,e.n)}function a(d){let{allowedPrivateKeyLengths:p,nByteLength:w,wrapPrivateKey:y,n:m}=e;if(p&&typeof d!="bigint"){if(Ot(d)&&(d=mt(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(w*2,"0")}let b;try{b=typeof d=="bigint"?d:yt(ae("private key",d,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof d}`)}return y&&(b=X(b,m)),Ne("private key",b,be,m),b}function c(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}let h=tr((d,p)=>{let{px:w,py:y,pz:m}=d;if(t.eql(m,t.ONE))return{x:w,y};let b=d.is0();p==null&&(p=b?t.ONE:t.inv(m));let A=t.mul(w,p),S=t.mul(y,p),B=t.mul(m,p);if(b)return{x:t.ZERO,y:t.ZERO};if(!t.eql(B,t.ONE))throw new Error("invZ was invalid");return{x:A,y:S}}),f=tr(d=>{if(d.is0()){if(e.allowInfinityPoint&&!t.is0(d.py))return;throw new Error("bad point: ZERO")}let{x:p,y:w}=d.toAffine();if(!t.isValid(p)||!t.isValid(w))throw new Error("bad point: x or y not FE");let y=t.sqr(w),m=i(p);if(!t.eql(y,m))throw new Error("bad point: equation left != right");if(!d.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(p,w,y){if(this.px=p,this.py=w,this.pz=y,p==null||!t.isValid(p))throw new Error("x required");if(w==null||!t.isValid(w))throw new Error("y required");if(y==null||!t.isValid(y))throw new Error("z required");Object.freeze(this)}static fromAffine(p){let{x:w,y}=p||{};if(!p||!t.isValid(w)||!t.isValid(y))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let m=b=>t.eql(b,t.ZERO);return m(w)&&m(y)?l.ZERO:new l(w,y,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let w=t.invertBatch(p.map(y=>y.pz));return p.map((y,m)=>y.toAffine(w[m])).map(l.fromAffine)}static fromHex(p){let w=l.fromAffine(s(ae("pointHex",p)));return w.assertValidity(),w}static fromPrivateKey(p){return l.BASE.multiply(a(p))}_setWindowSize(p){u.setWindowSize(this,p)}assertValidity(){f(this)}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){c(p);let{px:w,py:y,pz:m}=this,{px:b,py:A,pz:S}=p,B=t.eql(t.mul(w,S),t.mul(b,m)),v=t.eql(t.mul(y,S),t.mul(A,m));return B&&v}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:w}=e,y=t.mul(w,ql),{px:m,py:b,pz:A}=this,S=t.ZERO,B=t.ZERO,v=t.ZERO,_=t.mul(m,m),$=t.mul(b,b),H=t.mul(A,A),F=t.mul(m,b);return F=t.add(F,F),v=t.mul(m,A),v=t.add(v,v),S=t.mul(p,v),B=t.mul(y,H),B=t.add(S,B),S=t.sub($,B),B=t.add($,B),B=t.mul(S,B),S=t.mul(F,S),v=t.mul(y,v),H=t.mul(p,H),F=t.sub(_,H),F=t.mul(p,F),F=t.add(F,v),v=t.add(_,_),_=t.add(v,_),_=t.add(_,H),_=t.mul(_,F),B=t.add(B,_),H=t.mul(b,A),H=t.add(H,H),_=t.mul(H,F),S=t.sub(S,_),v=t.mul(H,$),v=t.add(v,v),v=t.add(v,v),new l(S,B,v)}add(p){c(p);let{px:w,py:y,pz:m}=this,{px:b,py:A,pz:S}=p,B=t.ZERO,v=t.ZERO,_=t.ZERO,$=e.a,H=t.mul(e.b,ql),F=t.mul(w,b),Q=t.mul(y,A),C=t.mul(m,S),N=t.add(w,y),E=t.add(b,A);N=t.mul(N,E),E=t.add(F,Q),N=t.sub(N,E),E=t.add(w,m);let x=t.add(b,S);return E=t.mul(E,x),x=t.add(F,C),E=t.sub(E,x),x=t.add(y,m),B=t.add(A,S),x=t.mul(x,B),B=t.add(Q,C),x=t.sub(x,B),_=t.mul($,E),B=t.mul(H,C),_=t.add(B,_),B=t.sub(Q,_),_=t.add(Q,_),v=t.mul(B,_),Q=t.add(F,F),Q=t.add(Q,F),C=t.mul($,C),E=t.mul(H,E),Q=t.add(Q,C),C=t.sub(F,C),C=t.mul($,C),E=t.add(E,C),F=t.mul(Q,E),v=t.add(v,F),F=t.mul(x,E),B=t.mul(N,B),B=t.sub(B,F),F=t.mul(N,Q),_=t.mul(x,_),_=t.add(_,F),new l(B,v,_)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return u.wNAFCached(this,p,l.normalizeZ)}multiplyUnsafe(p){Ne("scalar",p,Gt,e.n);let w=l.ZERO;if(p===Gt)return w;if(p===be)return this;let{endo:y}=e;if(!y)return u.unsafeLadder(this,p);let{k1neg:m,k1:b,k2neg:A,k2:S}=y.splitScalar(p),B=w,v=w,_=this;for(;b>Gt||S>Gt;)b&be&&(B=B.add(_)),S&be&&(v=v.add(_)),_=_.double(),b>>=be,S>>=be;return m&&(B=B.negate()),A&&(v=v.negate()),v=new l(t.mul(v.px,y.beta),v.py,v.pz),B.add(v)}multiply(p){let{endo:w,n:y}=e;Ne("scalar",p,be,y);let m,b;if(w){let{k1neg:A,k1:S,k2neg:B,k2:v}=w.splitScalar(p),{p:_,f:$}=this.wNAF(S),{p:H,f:F}=this.wNAF(v);_=u.constTimeNegate(A,_),H=u.constTimeNegate(B,H),H=new l(t.mul(H.px,w.beta),H.py,H.pz),m=_.add(H),b=$.add(F)}else{let{p:A,f:S}=this.wNAF(p);m=A,b=S}return l.normalizeZ([m,b])[0]}multiplyAndAddUnsafe(p,w,y){let m=l.BASE,b=(S,B)=>B===Gt||B===be||!S.equals(m)?S.multiplyUnsafe(B):S.multiply(B),A=b(this,w).add(b(p,y));return A.is0()?void 0:A}toAffine(p){return h(this,p)}isTorsionFree(){let{h:p,isTorsionFree:w}=e;if(p===be)return!0;if(w)return w(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:w}=e;return p===be?this:w?w(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return Xe("isCompressed",p),this.assertValidity(),n(l,this,p)}toHex(p=!0){return Xe("isCompressed",p),mt(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let g=e.nBitLength,u=Fn(l,e.endo?Math.ceil(g/2):g);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:a,weierstrassEquation:i,isWithinCurveOrder:o}}function Sp(r){let e=nn(r);return it(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function zl(r){let e=Sp(r),{Fp:t,n}=e,s=t.BYTES+1,i=2*t.BYTES+1;function o(N){return X(N,n)}function a(N){return Vn(N,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:l}=Ap({...e,toBytes(N,E,x){let I=E.toAffine(),T=t.toBytes(I.x),D=bt;return Xe("isCompressed",x),x?D(Uint8Array.from([E.hasEvenY()?2:3]),T):D(Uint8Array.from([4]),T,t.toBytes(I.y))},fromBytes(N){let E=N.length,x=N[0],I=N.subarray(1);if(E===s&&(x===2||x===3)){let T=yt(I);if(!tn(T,be,t.ORDER))throw new Error("Point is not on curve");let D=f(T),O;try{O=t.sqrt(D)}catch(K){let W=K instanceof Error?": "+K.message:"";throw new Error("Point is not on curve"+W)}let P=(O&be)===be;return(x&1)===1!==P&&(O=t.neg(O)),{x:T,y:O}}else if(E===i&&x===4){let T=t.fromBytes(I.subarray(0,t.BYTES)),D=t.fromBytes(I.subarray(t.BYTES,2*t.BYTES));return{x:T,y:D}}else throw new Error(`Point of length ${E} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),g=N=>mt(Mt(N,e.nByteLength));function u(N){let E=n>>be;return N>E}function d(N){return u(N)?o(-N):N}let p=(N,E,x)=>yt(N.slice(E,x));class w{constructor(E,x,I){this.r=E,this.s=x,this.recovery=I,this.assertValidity()}static fromCompact(E){let x=e.nByteLength;return E=ae("compactSignature",E,x*2),new w(p(E,0,x),p(E,x,2*x))}static fromDER(E){let{r:x,s:I}=cr.toSig(ae("DER",E));return new w(x,I)}assertValidity(){Ne("r",this.r,be,n),Ne("s",this.s,be,n)}addRecoveryBit(E){return new w(this.r,this.s,E)}recoverPublicKey(E){let{r:x,s:I,recovery:T}=this,D=B(ae("msgHash",E));if(T==null||![0,1,2,3].includes(T))throw new Error("recovery id invalid");let O=T===2||T===3?x+e.n:x;if(O>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let P=T&1?"03":"02",j=c.fromHex(P+g(O)),K=a(O),W=o(-D*K),ne=o(I*K),se=c.BASE.multiplyAndAddUnsafe(j,W,ne);if(!se)throw new Error("point at infinify");return se.assertValidity(),se}hasHighS(){return u(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Qt(this.toDERHex())}toDERHex(){return cr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Qt(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let y={isValidPrivateKey(N){try{return h(N),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let N=so(e.n);return Tc(e.randomBytes(N),e.n)},precompute(N=8,E=c.BASE){return E._setWindowSize(N),E.multiply(BigInt(3)),E}};function m(N,E=!0){return c.fromPrivateKey(N).toRawBytes(E)}function b(N){let E=Ot(N),x=typeof N=="string",I=(E||x)&&N.length;return E?I===s||I===i:x?I===2*s||I===2*i:N instanceof c}function A(N,E,x=!0){if(b(N))throw new Error("first arg must be private key");if(!b(E))throw new Error("second arg must be public key");return c.fromHex(E).multiply(h(N)).toRawBytes(x)}let S=e.bits2int||function(N){let E=yt(N),x=N.length*8-e.nBitLength;return x>0?E>>BigInt(x):E},B=e.bits2int_modN||function(N){return o(S(N))},v=rn(e.nBitLength);function _(N){return Ne(`num < 2^${e.nBitLength}`,N,Gt,v),Mt(N,e.nByteLength)}function $(N,E,x=H){if(["recovered","canonical"].some(de=>de in x))throw new Error("sign() legacy options not supported");let{hash:I,randomBytes:T}=e,{lowS:D,prehash:O,extraEntropy:P}=x;D==null&&(D=!0),N=ae("msgHash",N),Kl(x),O&&(N=ae("prehashed msgHash",I(N)));let j=B(N),K=h(E),W=[_(K),_(j)];if(P!=null&&P!==!1){let de=P===!0?T(t.BYTES):P;W.push(ae("extraEntropy",de))}let ne=bt(...W),se=j;function Te(de){let ue=S(de);if(!l(ue))return;let We=a(ue),pe=c.BASE.multiply(ue).toAffine(),Ye=o(pe.x);if(Ye===Gt)return;let Zt=o(We*o(se+Ye*K));if(Zt===Gt)return;let Wr=(pe.x===Ye?0:2)|Number(pe.y&be),Tn=Zt;return D&&u(Zt)&&(Tn=d(Zt),Wr^=1),new w(Ye,Tn,Wr)}return{seed:ne,k2sig:Te}}let H={lowS:e.lowS,prehash:!1},F={lowS:e.lowS,prehash:!1};function Q(N,E,x=H){let{seed:I,k2sig:T}=$(N,E,x),D=e;return eo(D.hash.outputLen,D.nByteLength,D.hmac)(I,T)}c.BASE._setWindowSize(8);function C(N,E,x,I=F){let T=N;if(E=ae("msgHash",E),x=ae("publicKey",x),"strict"in I)throw new Error("options.strict was renamed to lowS");Kl(I);let{lowS:D,prehash:O}=I,P,j;try{if(typeof T=="string"||Ot(T))try{P=w.fromDER(T)}catch(pe){if(!(pe instanceof cr.Err))throw pe;P=w.fromCompact(T)}else if(typeof T=="object"&&typeof T.r=="bigint"&&typeof T.s=="bigint"){let{r:pe,s:Ye}=T;P=new w(pe,Ye)}else throw new Error("PARSE");j=c.fromHex(x)}catch(pe){if(pe.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(D&&P.hasHighS())return!1;O&&(E=e.hash(E));let{r:K,s:W}=P,ne=B(E),se=a(W),Te=o(ne*se),de=o(K*se),ue=c.BASE.multiplyAndAddUnsafe(j,Te,de)?.toAffine();return ue?o(ue.x)===K:!1}return{CURVE:e,getPublicKey:m,getSharedSecret:A,sign:Q,verify:C,ProjectivePoint:c,Signature:w,utils:y}}function Bp(r){return{hash:r,hmac:(e,...t)=>ln(r,e,ji(...t)),randomBytes:Ir}}function $l(r,e){let t=n=>zl({...r,...Bp(n)});return Object.freeze({...t(e),create:t})}var Wl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Gl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_p=BigInt(1),Ho=BigInt(2),jl=(r,e)=>(r+e/Ho)/e;function Ip(r){let e=Wl,t=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%e,f=h*h*r%e,l=te(f,t,e)*f%e,g=te(l,t,e)*f%e,u=te(g,Ho,e)*h%e,d=te(u,s,e)*u%e,p=te(d,i,e)*d%e,w=te(p,a,e)*p%e,y=te(w,c,e)*w%e,m=te(y,a,e)*p%e,b=te(m,t,e)*f%e,A=te(b,o,e)*d%e,S=te(A,n,e)*h%e,B=te(S,Ho,e);if(!Fo.eql(Fo.sqr(B),r))throw new Error("Cannot find square root");return B}var Fo=Hn(Wl,void 0,void 0,{sqrt:Ip}),rt=$l({a:BigInt(0),b:BigInt(7),Fp:Fo,n:Gl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Gl,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-_p*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=jl(i*r,e),c=jl(-n*r,e),h=X(r-a*t-c*s,e),f=X(-a*n-c*i,e),l=h>o,g=f>o;if(l&&(h=e-h),g&&(f=e-f),h>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:h,k2neg:g,k2:f}}}},Fl),Ob=BigInt(0);var Pb=rt.ProjectivePoint;function Yl(){return rt.utils.randomPrivateKey()}function Zl(r,e){let t=me.digest(e instanceof Uint8Array?e:e.subarray());if(ze(t))return t.then(({digest:n})=>rt.sign(n,r).toDERRawBytes()).catch(n=>{throw new L(String(n),"ERR_INVALID_INPUT")});try{return rt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new L(String(n),"ERR_INVALID_INPUT")}}function Xl(r,e,t){let n=me.digest(t instanceof Uint8Array?t:t.subarray());if(ze(n))return n.then(({digest:s})=>rt.verify(e,s,r)).catch(s=>{throw new L(String(s),"ERR_INVALID_INPUT")});try{return rt.verify(e,n.digest,r)}catch(s){throw new L(String(s),"ERR_INVALID_INPUT")}}function Jl(r){return rt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Ql(r){try{rt.getPublicKey(r,!0)}catch(e){throw new L(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Ko(r){try{rt.ProjectivePoint.fromHex(r)}catch(e){throw new L(String(e),"ERR_INVALID_PUBLIC_KEY")}}function eu(r){try{return rt.getPublicKey(r,!0)}catch(e){throw new L(String(e),"ERR_INVALID_PRIVATE_KEY")}}var vn=class{_key;constructor(e){Ko(e),this._key=e}verify(e,t){return Xl(this._key,t,e)}marshal(){return Jl(this._key)}get bytes(){return ot.encode({Type:re.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return ze(e)?{bytes:t}=await e:t=e.bytes,t}},En=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??eu(e),Ql(this._key),Ko(this._publicKey)}sign(e){return Zl(this._key,e)}get public(){return new vn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:re.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return G(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Tp(r){return new En(r)}function Rp(r){return new vn(r)}async function Np(){let r=Yl();return new En(r)}var lr={rsa:Mo,ed25519:ko,secp256k1:qo};function tu(r){let e=Object.keys(lr).join(" / ");return new L(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function ru(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case re.RSA:return lr.rsa.unmarshalRsaPublicKey(t);case re.Ed25519:return lr.ed25519.unmarshalEd25519PublicKey(t);case re.Secp256k1:return lr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw tu(e.Type??"unknown")}}async function nu(r){let e=at.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case re.RSA:return lr.rsa.unmarshalRsaPrivateKey(t);case re.Ed25519:return lr.ed25519.unmarshalEd25519PrivateKey(t);case re.Secp256k1:return lr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw tu(e.Type??"RSA")}}var iu=Symbol.for("@achingbrain/uint8arraylist");function su(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let s=t+n.byteLength;if(e<s)return{buf:n,index:e-t};t=s}throw new RangeError("index is out of bounds")}function Vs(r){return!!r?.[iu]}var Ve=class r{bufs;length;[iu]=!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(Vs(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Vs(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=su(this.bufs,e);return t.buf[t.index]}set(e,t){let n=su(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(Vs(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:s}=this._subList(e,t);return _e(n,s)}subarray(e,t){let{bufs:n,length:s}=this._subList(e,t);return n.length===1?n[0]:_e(n,s)}sublist(e,t){let{bufs:n,length:s}=this._subList(e,t),i=new r;return i.length=s,i.bufs=[...n],i}_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=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,e>=c)continue;let h=e>=a&&e<c,f=t>a&&t<=c;if(h&&f){if(e===a&&t===c){n.push(o);break}let l=e-a;n.push(o.subarray(l,l+(t-e)));break}if(h){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(f){if(t===c){n.push(o);break}n.push(o.subarray(0,t-a));break}n.push(o)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Vs(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 s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let l=0;l<i;l++)o[l]=-1;for(let l=0;l<s;l++)o[n[l]]=l;let a=o,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let l=t;l<=c;l+=f){f=0;for(let g=h;g>=0;g--){let u=this.get(l+g);if(n[g]!==u){f=Math.max(1,g-a[u]);break}}if(f===0)return l}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Re(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 s=we(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,t,n),this.write(s,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=Re(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 s=we(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,t,n),this.write(s,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(!oe(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((s,i)=>s+i.byteLength,0)),n.length=t,n}};var ou={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var An;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.publicKey=t.bytes();break;case 2:s.payloadType=t.bytes();break;case 3:s.payload=t.bytes();break;case 5:s.signature=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(An||(An={}));var Sn=class r{static createFromProtobuf=async e=>{let t=An.decode(e),n=await pc(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,s=e.codec,i=e.marshal(),o=au(n,s,i),c=await(await nu(t.privateKey)).sign(o.subarray());return new r({peerId:t,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new L("envelope signature is not valid for the given domain",ou.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:s,signature:i}=e;this.peerId=t,this.payloadType=n,this.payload=s,this.signature=i}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=An.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return oe(this.marshal(),e.marshal())}async validate(e){let t=au(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ru(this.peerId.publicKey).verify(t.subarray(),this.signature)}},au=(r,e,t)=>{let n=M(r),s=$e(n.byteLength),i=$e(e.length),o=$e(t.length);return new Ve(s,n,i,e,o,t)};var Hs=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,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let g=Number.parseInt(l,e);if(!Number.isNaN(g))return g});if(f===void 0)break;if(i*=e,i+=f,i>h||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!n&&c&&o>1?void 0:i})}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 s=n*2;if(n<t.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return t[s]=o[0],t[s+1]=o[1],t[s+2]=o[2],t[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];t[s]=i>>8,t[s+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,s]=e(t);if(n===16)return t;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var cu=45,Cp=15,Hr=new Hs;function zo(r){if(!(r.length>Cp))return Hr.new(r).parseWith(()=>Hr.readIPv4Addr())}function $o(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>cu))return Hr.new(r).parseWith(()=>Hr.readIPv6Addr())}function Fs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>cu))return Hr.new(r).parseWith(()=>Hr.readIPAddr())}var Ew=parseInt("0xFFFF",16),Aw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function fu(r){return!!zo(r)}function hu(r){return!!$o(r)}function Ks(r){return!!Fs(r)}var du=fu,Pp=hu,Go=function(r){let e=0;if(r=r.toString().trim(),du(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(Pp(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let i=du(t[n]),o;i&&(o=Go(t[n]),t[n]=G(o.slice(0,2),"base16")),o!=null&&++n<8&&t.splice(n,0,G(o.slice(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 i=[n,1];for(n=9-t.length;n>0;n--)i.push("0");t.splice.apply(t,i)}let s=new Uint8Array(e+16);for(n=0;n<t.length;n++){let i=parseInt(t[n],16);s[e++]=i>>8&255,s[e++]=i&255}return s}throw new Error("invalid ip address")},pu=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let s=[];for(let i=0;i<t;i++)s.push(r[e+i]);return s.join(".")}if(t===16){let s=[];for(let i=0;i<t;i+=2)s.push(n.getUint16(e+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Fr={},jo={},Vp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Vp.forEach(r=>{let e=Hp(...r);jo[e.code]=e,Fr[e.name]=e});function Hp(r,e,t,n,s){return{code:r,size:e,name:t,resolvable:!!n,path:!!s}}function J(r){if(typeof r=="number"){if(jo[r]!=null)return jo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Fr[r]!=null)return Fr[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var o1=J("ip4"),a1=J("ip6"),c1=J("ipcidr");function Xo(r,e){switch(J(r).code){case 4:case 41:return Kp(e);case 42:return Zo(e);case 6:case 273:case 33:case 132:return yu(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Zo(e);case 421:return Gp(e);case 444:return mu(e);case 445:return mu(e);case 466:return $p(e);case 481:return globalThis.encodeURIComponent(Zo(e));default:return G(e,"base16")}}function Jo(r,e){switch(J(r).code){case 4:return gu(e);case 41:return gu(e);case 42:return Yo(e);case 6:case 273:case 33:case 132:return Qo(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Yo(e);case 421:return qp(e);case 444:return jp(e);case 445:return Wp(e);case 466:return zp(e);case 481:return Yo(globalThis.decodeURIComponent(e));default:return M(e,"base16")}}var Wo=Object.values(Nt).map(r=>r.decoder),Fp=function(){let r=Wo[0].or(Wo[1]);return Wo.slice(2).forEach(e=>r=r.or(e)),r}();function gu(r){if(!Ks(r))throw new Error("invalid ip address");return Go(r)}function Kp(r){let e=pu(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!Ks(e))throw new Error("invalid ip address");return e}function Qo(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function yu(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Yo(r){let e=M(r),t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function Zo(r){let e=xt(r);if(r=r.slice(Ae(e)),r.length!==e)throw new Error("inconsistent lengths");return G(r)}function qp(r){let e;r[0]==="Q"||r[0]==="1"?e=Xt(fe.decode(`z${r}`)).bytes:e=Ue.parse(r).multihash.bytes;let t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function zp(r){let e=Fp.decode(r),t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function $p(r){let e=xt(r),t=r.slice(Ae(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+G(t,"base64url")}function Gp(r){let e=xt(r),t=r.slice(Ae(e));if(t.length!==e)throw new Error("inconsistent lengths");return G(t,"base58btc")}function jp(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=dt.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 s=Qo(n);return _e([t,s],t.length+s.length)}function Wp(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=dt.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 s=Qo(n);return _e([t,s],t.length+s.length)}function mu(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=G(e,"base32"),s=yu(t);return`${n}:${s}`}function bu(r){r=ea(r);let e=[],t=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=J(o);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(i++,i>=s.length)throw xu("invalid address: "+r);if(a.path===!0){n=ea(s.slice(i).join("/")),e.push([a.code,Jo(a.code,n)]),t.push([a.code,n]);break}let c=Jo(a.code,s[i]);e.push([a.code,c]),t.push([a.code,Xo(a.code,c)])}return{string:wu(t),bytes:ra(e),tuples:e,stringTuples:t,path:n}}function ta(r){let e=[],t=[],n=null,s=0;for(;s<r.length;){let i=xt(r,s),o=Ae(i),a=J(i),c=Yp(a,r.slice(s+o));if(c===0){e.push([i]),t.push([i]),s+=o;continue}let h=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw xu("Invalid address Uint8Array: "+G(r,"base16"));e.push([i,h]);let f=Xo(i,h);if(t.push([i,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:wu(t),tuples:e,stringTuples:t,path:n}}function wu(r){let e=[];return r.map(t=>{let n=J(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),ea(e.join("/"))}function ra(r){return _e(r.map(e=>{let t=J(e[0]),n=Uint8Array.from($e(t.code));return e.length>1&&e[1]!=null&&(n=_e([n,e[1]])),n}))}function Yp(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=xt(e instanceof Uint8Array?e:Uint8Array.from(e));return t+Ae(t)}}function ea(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function xu(r){return new Error("Error parsing address: "+r)}var Zp=Symbol.for("nodejs.util.inspect.custom"),na=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Xp=[J("dns").code,J("dns4").code,J("dns6").code,J("dnsaddr").code],qs=class r{bytes;#e;#t;#r;#n;[na]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=ta(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=bu(e)}else if(Eu(e))t=ta(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#r=t.stringTuples,this.#n=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,s,i="",o=J("tcp"),a=J("udp"),c=J("ip4"),h=J("ip6"),f=J("dns6"),l=J("ip6zone");for(let[u,d]of this.stringTuples())u===l.code&&(i=`%${d??""}`),Xp.includes(u)&&(t=o.name,s=443,n=`${d??""}${i}`,e=u===f.code?6:4),(u===o.code||u===a.code)&&(t=J(u).name,s=parseInt(d??"")),(u===c.code||u===h.code)&&(t=J(u).name,n=`${d??""}${i}`,e=u===h.code?6:4);if(e==null||t==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:s}}protos(){return this.#t.map(([e])=>Object.assign({},J(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>J(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),s=n.lastIndexOf(t);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,s))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(ra(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,s])=>{n===Fr.p2p.code&&e.push([n,s]),n===Fr["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?G(fe.decode(`z${n}`),"base58btc"):G(Ue.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return oe(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(i=>i.resolvable);if(t==null)return[this];let n=vu.get(t.name);if(n==null)throw new L(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(i=>ve(i))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[Zp](){return`Multiaddr(${this.#e})`}};var vu=new Map;function Eu(r){return!!r?.[na]}function ve(r){return new qs(r)}function He(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var zs=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Kr(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new zs(t?.errorMessage,t?.errorCode,t?.errorName));let n,s=new zs(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,o)=>{n=()=>{o(s)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var sa=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=He(),this.haveNext=He()}[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=He(),e}async throw(e){return this.ended=!0,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 await this._push(void 0),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 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=He(),await Kr(this.readNext.promise,t?.signal,t)}};function Au(){return new sa}var $s=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ia=class extends Error{code;constructor(e,t){super(e),this.code=t}},oa=class extends ia{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Su(r,e){let t=Au();r.sink(t).catch(async o=>{await t.end(o)}),r.sink=async o=>{for await(let a of o)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Ve;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,l)=>{c=()=>{l(new oa("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:l,value:g}=await Promise.race([n.next(),h]);return l===!0?new Ve:g}for(;s.byteLength<o;){let{value:l,done:g}=await Promise.race([n.next(),h]);if(g===!0)throw new $s("unexpected end of input");s.append(l)}let f=s.sublist(0,o);return s.consume(o),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await t.push(o,a):await t.push(o.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let o=r.source;r.source=async function*(){e?.yieldBytes===!1?yield s:yield*s,yield*o}()}return r}}}var Gs=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},js=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ws=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Bu(r,e={}){let t=Su(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=Ae(e.maxDataLength));let n=e?.lengthDecoder??xt,s=e?.lengthEncoder??$e;return{read:async o=>{let a=-1,c=new Ve;for(;;){c.append(await t.read(1,o));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Gs("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Ws("message length length too long");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new js("message length too long");return t.read(a,o)},write:async(o,a)=>{await t.write(new Ve(s(o.byteLength),o),a)},writeV:async(o,a)=>{let c=new Ve(...o.flatMap(h=>[s(h.byteLength),h]));await t.write(c,a)},unwrap:()=>t.unwrap()}}function jt(r,e){let t=Bu(r,e),n={read:async(s,i)=>{let o=await t.read(i);return s.decode(o)},write:async(s,i,o)=>{await t.write(i.encode(s),o)},writeV:async(s,i,o)=>{await t.writeV(s.map(a=>i.encode(a)),o)},pb:s=>({read:async i=>n.read(s,i),write:async(i,o)=>n.write(i,s,o),writeV:async(i,o)=>n.writeV(i,s,o),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}var _u="circuit-relay-source",Iu="circuit-relay-relay";var ku=BigInt(131072),je="/libp2p/circuit/relay/0.2.0/hop",ur="/libp2p/circuit/relay/0.2.0/stop",Tu=30*1e3,J1=30*1e3,Bn=300;var aa="ERR_RELAYED_DIAL",Ru="ERR_HOP_REQUEST_FAILED",Ys="ERR_TRANSFER_LIMIT_EXCEEDED",Nu=4096,Cu=.001;var Z;(function(r){let e;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(t||(t={})),function(s){s.codec=()=>ir(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Me((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),qr.codec().encode(s.peer,i)),s.reservation!=null&&(i.uint32(26),Zs.codec().encode(s.reservation,i)),s.limit!=null&&(i.uint32(34),zr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(40),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=qr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.reservation=Zs.codec().decode(s,s.uint32(),{limits:o.limits?.reservation});break}case 4:{a.limit=zr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Pe(s,r.codec()),r.decode=(s,i)=>Oe(s,r.codec(),i)})(Z||(Z={}));var Fe;(function(r){let e;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(t||(t={})),function(s){s.codec=()=>ir(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Me((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),qr.codec().encode(s.peer,i)),s.limit!=null&&(i.uint32(26),zr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(32),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=qr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.limit=zr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Pe(s,r.codec()),r.decode=(s,i)=>Oe(s,r.codec(),i)})(Fe||(Fe={}));var qr;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={id:we(0),addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.id=t.bytes();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new an('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(qr||(qr={}));var Zs;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.expire!=null&&t.expire!==0n&&(n.uint32(8),n.uint64(t.expire)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);t.voucher!=null&&(n.uint32(26),n.bytes(t.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={expire:0n,addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.expire=t.uint64();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new an('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}case 3:{i.voucher=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(Zs||(Zs={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.duration!=null&&(n.uint32(8),n.uint32(t.duration)),t.data!=null&&(n.uint32(16),n.uint64(t.data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.duration=t.uint32();break}case 2:{i.data=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(zr||(zr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var ca;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(ca||(ca={}));(function(r){r.codec=()=>ir(ca)})(q||(q={}));var Xs;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.relay!=null&&t.relay.byteLength>0&&(n.uint32(10),n.bytes(t.relay)),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(18),n.bytes(t.peer)),t.expiration!=null&&t.expiration!==0n&&(n.uint32(24),n.uint64(t.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={relay:we(0),peer:we(0),expiration:0n},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.relay=t.bytes();break}case 2:{i.peer=t.bytes();break}case 3:{i.expiration=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(Xs||(Xs={}));function Js(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let s=e.signal;return s.clear=n,s}async function*Lu(r,e,t){let n=e.remaining;for await(let s of r){let i=BigInt(s.byteLength);if(e.remaining-i<0){let o=Number(e.remaining);e.remaining=0n;try{o!==0&&(yield s.subarray(0,o))}catch(a){t.log.error(a)}throw new L(`data limit of ${n} bytes exceeded`,Ys)}e.remaining-=i,yield s}}function Uu(r,e,t,n,s){function i(l){r.abort(l),e.abort(l)}let o=[t];n?.duration!=null&&o.push(AbortSignal.timeout(n.duration));let a=Js(o),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let l=()=>{e.abort(new L(`duration limit of ${n?.duration} ms exceeded`,Ys))};a.addEventListener("abort",l,{once:!0}),e.sink(f==null?r.source:Lu(r.source,f,s)).catch(g=>{s.log.error("error while relaying streams src -> dst",g),i(g)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",l),a.clear())})}),queueMicrotask(()=>{let l=()=>{r.abort(new L(`duration limit of ${n?.duration} ms exceeded`,Ys))};a.addEventListener("abort",l,{once:!0}),r.sink(f==null?e.source:Lu(e.source,f,s)).catch(g=>{s.log.error("error while relaying streams dst -> src",g),i(g)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",l),a.clear())})})}function la(r){let e=r*BigInt(1e3),t=new Date().getTime();return Number(e-BigInt(t))}function ua(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:e(s)}}};return t}var It=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return ua(this.map.entries(),e=>[Ct(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,Ct(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return ua(this.map.keys(),e=>Ct(e))}values(){return this.map.values()}get size(){return this.map.size}};var ha=wi(fa(),1);var Jp=Math.LN2*Math.LN2,ei=class{seeds;bits;buffer;constructor(e={}){e.seeds!=null?this.seeds=e.seeds:this.seeds=e0(e.hashes??8),this.bits=e.bits??1024,this.buffer=we(Math.ceil(this.bits/8))}add(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.seeds.length;t++){let s=ha.default.x86.hash32(e,this.seeds[t])%this.bits;this.setbit(s)}}has(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.seeds.length;t++){let s=ha.default.x86.hash32(e,this.seeds[t])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;let s=this.buffer[t];s|=1<<n,this.buffer[t]=s}getbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;return(this.buffer[t]&1<<n)!==0}};function da(r,e=.005){let t=Qp(r,e);return new ei(t)}function Qp(r,e=.005){let t=Math.round(-1*r*Math.log(e)/Jp),n=Math.round(t/r*Math.LN2);return{bits:t,hashes:n}}function e0(r){let e,t,n=[];for(let s=0;s<r;s++)for(e=new Ve(ct(4)),n[s]=e.getUint32(0,!0),t=0;t<s;t++)if(n[s]===n[t]){s--;break}return n}var pa=64,nt=class{fp;h;seed;constructor(e,t,n,s=2){if(s>pa)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),o=we(s);for(let a=0;a<o.length;a++)o[a]=i[a];o.length===0&&(o[0]=7),this.fp=o,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?oe(this.fp,e.fp):!1}};function fr(r,e){return Math.floor(Math.random()*(e-r))+r}var hr=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof nt))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 nt))throw new TypeError("Invalid Fingerprint");let t=fr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var ga={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Pu={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Mu=new globalThis.TextEncoder;function t0(r,e){let t=ga[e],n=Pu[e];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(e,n*t);return n}function r0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ga[e],s=Pu[e],i=r;for(;i.length>0;){let o=Mu.encodeInto(i,t);i=i.slice(o.read);for(let a=0;a<o.written;a++)s^=BigInt(t[a]),s=BigInt.asUintN(e,s*n)}return s}function ma(r,{size:e=32,utf8Buffer:t}={}){if(!ga[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 r0(r,e,t);r=Mu.encode(r)}return t0(r,e)}var n0=wi(fa(),1);var In={hash:r=>Number(ma(r,{size:32})),hashV:(r,e)=>s0(In.hash(r,e))};function s0(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),M(e,"base16")}var i0=500,kn=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??In,this.seed=e.seed??fr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new hr(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new hr(this.bucketSize)),this.buckets[n].add(t)||this.buckets[s].add(t))return this.count++,!0;let i=[n,s],o=i[fr(0,i.length-1)];this.buckets[o]==null&&(this.buckets[o]=new hr(this.bucketSize));for(let a=0;a<i0;a++){let c=this.buckets[o].swap(t);if(c!=null&&(o=(o^c.hash())%this.filterSize,this.buckets[o]==null&&(this.buckets[o]=new hr(this.bucketSize)),this.buckets[o].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.has(t)??!1;if(s)return s;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.remove(t)??!1;if(s)return this.count--,s;let i=(n^t.hash())%this.filterSize,o=this.buckets[i]?.remove(t)??!1;return o&&this.count--,o}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},o0={1:.5,2:.84,4:.95,8:.98};function a0(r=.001){return r>.002?2:r>1e-5?4:8}function Vu(r,e=.001){let t=a0(e),n=o0[t],s=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),pa);return{filterSize:s,bucketSize:t,fingerprintSize:i}}var ti=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??In,this.seed=e.seed??fr(0,Math.pow(2,10)),this.filterSeries=[new kn({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=M(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 kn({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=M(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=M(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 ya(r,e=.001,t){return new ti({...Vu(r,e),...t??{}})}var ri=class{filter;constructor(e,t){this.filter=ya(e,t)}has(e){return this.filter.has(e.toBytes())}add(e){this.filter.add(e.toBytes())}remove(e){this.filter.remove?.(e.toBytes())}};function ba(r,e=.001){return new ri(r,e)}var ni=class{reservations=new It;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(e={}){this.maxReservations=e.maxReservations??15,this.reservationClearInterval=e.reservationClearInterval??3e5,this.applyDefaultLimit=e.applyDefaultLimit!==!1,this.reservationTtl=e.reservationTtl??72e5,this.defaultDurationLimit=e.defaultDurationLimit??12e4,this.defaultDataLimit=e.defaultDataLimit??ku}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let e=new Date().getTime();this.reservations.forEach((t,n)=>{t.expire.getTime()<e&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(e,t,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(e))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),i;return this.applyDefaultLimit&&(i=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(e,{addr:t,expire:s,limit:i}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(e){this.reservations.delete(e)}hasReservation(e){return this.reservations.has(e)}get(e){return this.reservations.get(e)}};var si=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:e,peer:t,expiration:n}){this.relay=e,this.peer=t,this.expiration=n}marshal(){return Xs.encode({relay:this.relay.toBytes(),peer:this.peer.toBytes(),expiration:BigInt(this.expiration)})}equals(e){return!(!(e instanceof r)||!this.peer.equals(e.peer)||!this.relay.equals(e.relay)||this.expiration!==e.expiration)}};var Hu=r=>r.protoCodes().includes(290),h0={maxOutboundStopStreams:Bn},wa=class extends qe{registrar;peerStore;addressManager;peerId;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.addressManager=e.addressManager,this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.connectionGater=e.connectionGater,this.started=!1,this.hopTimeout=t?.hopTimeout??Tu,this.maxInboundHopStreams=t.maxInboundHopStreams,this.maxOutboundHopStreams=t.maxOutboundHopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??h0.maxOutboundStopStreams,this.reservationStore=new ni(t.reservations),this.shutdownController=new AbortController,Ke(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(je,e=>{this.onHop(e).catch(t=>{this.log.error(t)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnTransientConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(je),this.started=!1}async onHop({connection:e,stream:t}){this.log("received circuit v2 hop protocol stream from %p",e.remotePeer);let n=He(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),i=jt(t);try{let o=await Promise.race([i.pb(Z).read(),n.promise]);if(o?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",o.type),await Promise.race([this.handleHopProtocol({connection:e,stream:i,request:o}),n.promise])}catch(o){this.log.error("error while handling hop",o),await i.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),t.abort(o)}finally{clearTimeout(s)}}async handleHopProtocol({stream:e,request:t,connection:n}){switch(this.log("received hop message"),t.type){case Z.Type.RESERVE:await this.handleReserve({stream:e,request:t,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:e,request:t,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",t.type,n.remotePeer),await e.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:e,request:t,connection:n}){let s=e.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),Hu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(i.status!==q.OK){await s.write({type:Z.Type.STATUS,status:i.status});return}try{if(i.expire!=null){let o=i.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[_u]:{value:1,ttl:o}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(i.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(o){this.log.error("failed to send confirmation response to %p",n.remotePeer,o),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(e,t){let n=[];for(let i of this.addressManager.getAddresses())i.toString().includes("/p2p-circuit")||n.push(i.bytes);let s=await Sn.seal(new si({peer:e,relay:this.peerId,expiration:Number(t)}),this.peerId);return{addrs:n,expire:t,voucher:s.marshal()}}async handleConnect({stream:e,request:t,connection:n}){let s=e.pb(Z);if(Hu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let i;try{if(t.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");t.peer.addrs.forEach(ve),i=Qr(t.peer.id)}catch(l){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,l),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(i)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",i,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,i)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,i),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.connectionManager.getConnections(i);if(o.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",i,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(i)?.limit,c=o[0],h=await this.stopHop({connection:c,request:{type:Fe.Type.CONNECT,peer:{id:n.remotePeer.toBytes(),addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=e.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,i),Uu(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:e,request:t}){this.log("starting circuit relay v2 stop request to %s",e.remotePeer);let n=await e.newStream([ur],{maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),s=jt(n),i=s.pb(Fe);await i.write(t);let o;try{o=await i.read()}catch{this.log.error("error parsing stop message response from %p",e.remotePeer)}if(o==null){this.log.error("could not read response from %p",e.remotePeer),await n.close();return}if(o.status===q.OK)return this.log("stop request to %p was successful",e.remotePeer),s.unwrap();this.log("stop request failed with code %d",o.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function Fu(r={}){return e=>new wa(e,r)}function va(r){let{stream:e,remoteAddr:t,logger:n}=r,s=n.forComponent("libp2p:stream:converter"),i=!1,o=!1,a=e.close.bind(e);e.close=async g=>{await a(g),l(!0)};let c=e.abort.bind(e);e.abort=g=>{c(g),l(!0)};let h=e.sink.bind(e);e.sink=async g=>{try{await h(g)}catch(u){u.type!=="aborted"&&s.error("%s error in sink",t,u)}finally{o=!0,l()}};let f={log:s,sink:e.sink,source:async function*(){try{for await(let g of e.source)g instanceof Uint8Array?yield g:yield*g}finally{i=!0,l()}}(),remoteAddr:t,timeline:{open:Date.now(),close:void 0},close:e.close,abort:e.abort};function l(g){g===!0&&(i=!0,o=!0),i&&o&&f.timeline.close==null&&(f.timeline.close=Date.now())}return f}var d0=k("dns4"),p0=k("dns6"),g0=k("dnsaddr"),dr=ce(k("dns"),g0,d0,p0),ai=ce(k("ip4"),k("ip6")),$r=ce(U(ai,k("tcp")),U(dr,k("tcp"))),ci=U(ai,k("udp")),m0=U(ci,k("utp")),y0=U(ci,k("quic")),b0=U(ci,k("quic-v1")),Ea=ce(U($r,k("ws")),U(dr,k("ws"))),ii=ce(U(Ea,k("p2p")),Ea),Aa=ce(U($r,k("wss")),U(dr,k("wss")),U($r,k("tls"),k("ws")),U(dr,k("tls"),k("ws"))),oi=ce(U(Aa,k("p2p")),Aa),Sa=ce(U($r,k("http")),U(ai,k("http")),U(dr,k("http"))),Ba=ce(U($r,k("https")),U(ai,k("https")),U(dr,k("https"))),Ku=U(ci,k("webrtc-direct"),k("certhash")),$u=ce(U(Ku,k("p2p")),Ku),qu=U(b0,k("webtransport"),k("certhash"),k("certhash")),Gu=ce(U(qu,k("p2p")),qu),ju=ce(U(ii,k("p2p-webrtc-star"),k("p2p")),U(oi,k("p2p-webrtc-star"),k("p2p")),U(ii,k("p2p-webrtc-star")),U(oi,k("p2p-webrtc-star"))),w2=ce(U(ii,k("p2p-websocket-star"),k("p2p")),U(oi,k("p2p-websocket-star"),k("p2p")),U(ii,k("p2p-websocket-star")),U(oi,k("p2p-websocket-star"))),Wu=ce(U(Sa,k("p2p-webrtc-direct"),k("p2p")),U(Ba,k("p2p-webrtc-direct"),k("p2p")),U(Sa,k("p2p-webrtc-direct")),U(Ba,k("p2p-webrtc-direct"))),pr=ce(Ea,Aa,Sa,Ba,ju,Wu,$r,m0,y0,dr,$u,Gu),x2=ce(U(pr,k("p2p-stardust"),k("p2p")),U(pr,k("p2p-stardust"))),Wt=ce(U(pr,k("p2p")),ju,Wu,$u,Gu,k("p2p")),zu=ce(U(Wt,k("p2p-circuit"),Wt),U(Wt,k("p2p-circuit")),U(k("p2p-circuit"),Wt),U(pr,k("p2p-circuit")),U(k("p2p-circuit"),pr),k("p2p-circuit")),Yu=()=>ce(U(zu,Yu),zu),kt=Yu(),v2=ce(U(kt,Wt,kt),U(Wt,kt),U(kt,Wt),kt,Wt);var E2=ce(U(kt,k("webrtc"),k("p2p")),U(kt,k("webrtc")),U(pr,k("webrtc"),k("p2p")),U(pr,k("webrtc")),k("webrtc"));function Zu(r){function e(t){let n;try{n=ve(t)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return e}function U(...r){function e(t){if(t.length<r.length)return null;let n=t;return r.some(s=>(n=typeof s=="function"?s().partialMatch(t):s.partialMatch(t),Array.isArray(n)&&(t=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Zu(e),partialMatch:e}}function ce(...r){function e(n){let s=null;return r.some(i=>{let o=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return o!=null?(s=o,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Zu(e),partialMatch:e}}function k(r){let e=r;function t(s){let i;try{i=ve(s)}catch{return!1}let o=i.protoNames();return o.length===1&&o[0]===e}function n(s){return s.length===0?null:s[0]===e?s.slice(1):null}return{toString:function(){return e},matches:t,partialMatch:n}}var Yt=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var li=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)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}},Gr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new li(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 li(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 _a=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Xu(r={}){return x0(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 x0(r,e){e=e??{};let t=e.onEnd,n=new Gr,s,i,o,a=He(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((w,y)=>{i=m=>{i=null,n.push(m);try{w(r(n))}catch(b){y(b)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=He()})}},h=w=>i!=null?i(w):(n.push(w),s),f=w=>(n=new Gr,i!=null?i({error:w}):(n.push({error:w}),s)),l=w=>{if(o)return s;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:w})},g=w=>o?s:(o=!0,w!=null?f(w):h({done:!0})),u=()=>(n=new Gr,g(),{done:!0}),d=w=>(g(w),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:u,throw:d,push:l,end:g,get readableLength(){return n.size},onEmpty:async w=>{let y=w?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let m,b;y!=null&&(m=new Promise((A,S)=>{b=()=>{S(new _a)},y.addEventListener("abort",b)}));try{await Promise.race([a.promise,m])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},t==null)return s;let p=s;return s={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(w){return p.throw(w),t!=null&&(t(w),t=void 0),{done:!0}},return(){return p.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(w){return p.end(w),t!=null&&(t(w),t=void 0),s},get readableLength(){return p.readableLength},onEmpty:w=>p.onEmpty(w)},s}var Ia=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function ui(r,e,t,n){let s=new Ia(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(s):new Promise((i,o)=>{function a(){t?.removeEventListener("abort",f),r.removeEventListener(e,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=l=>{try{if(n?.filter?.(l)===!1)return}catch(g){a(),o(g);return}a(),i(l)},h=l=>{a(),o(l.detail)},f=()=>{a(),o(s)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var fi=class{deferred;signal;constructor(e){this.signal=e,this.deferred=He(),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 v0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var hi=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=v0(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,Ke(1/0,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 Tt),this.cleanup())}async join(e={}){let t=new fi(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 Kr(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)})}};var di=class extends qe{concurrency;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,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=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!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){t?.signal?.throwIfAborted();let n=new hi(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),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("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}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 ui(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ui(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ui(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=Xu({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},s=c=>{c.detail!=null&&t.push(c.detail)},i=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new L("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",s),this.addEventListener("error",i),this.addEventListener("idle",o),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",s),this.removeEventListener("error",i),this.removeEventListener("idle",o),e?.signal?.removeEventListener("abort",a),n()}}};var jr=class extends di{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var pi=class extends qe{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=e.peerStore,this.registrar=e.registrar,this.connectionManager=e.connectionManager,this.randomWalk=e.randomWalk,this.filter=t.filter,this.discoveryController=new AbortController,Ke(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(je,{filter:this.filter,onConnect:e=>{this.log("discovered relay %p",e),this.safeDispatchEvent("relay:discover",{detail:e})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,Ke(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let e=await this.peerStore.all({filters:[n=>n.protocols.includes(je)],orders:[()=>Math.random()<.5?1:-1]});for(let n of e)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",e.length);let t=new jr({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),t.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await Kr(t.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,t.size),t.add(async()=>{let s=Js([this.discoveryController.signal,AbortSignal.timeout(5e3)]);Ke(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await t.onIdle()}).catch(e=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",e)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var ka=class extends qe{connectionManager;relayStore;listeningAddrs;log;constructor(e){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=e.connectionManager,this.relayStore=e.relayStore,this.listeningAddrs=new It,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=e=>{this.#e(e.detail)};async listen(e){this.log("listen on %a",e);let t=e.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(t);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new L("Did not have reservation after making reservation","ERR_NO_RESERVATION");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(i=>ve(i).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#e(e){let t=this.listeningAddrs.has(e);this.log("relay peer removed %p - had reservation",e,t),this.listeningAddrs.delete(e),t&&(this.log.trace("removing relay event listener for peer %p",e),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function Ju(r){return new ka(r)}var B0=60*1e3*10,_0=60*1e3*5,I0=30*1e3,gi=class extends qe{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(e,t){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.peerStore=e.peerStore,this.events=e.events,this.reservations=new It,this.maxDiscoveredRelays=t?.discoverRelays??0,this.maxReservationQueueLength=t?.maxReservationQueueLength??100,this.reservationCompletionTimeout=t?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=da(100),this.reserveQueue=new jr({concurrency:t?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:e.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#t(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:e})=>{clearTimeout(e)}),this.reservations.clear(),this.started=!1}async addRelay(e,t){if(this.peerId.equals(e)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",e);return}if(this.reserveQueue.has(e)){this.log("potential relay peer %p is already in the reservation queue",e);return}if(this.relayFilter.has(e.toBytes())){this.log("potential relay peer %p has failed previously, not trying again",e);return}this.log("try to reserve relay slot with %p",e),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(e);if(s!=null){if(la(s.reservation.expire)>B0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",e);return}clearTimeout(s.timeout),this.reservations.delete(e)}if(t==="discovered"&&[...this.reservations.values()].reduce((l,g)=>(g.type==="discovered"&&l++,l),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let i=AbortSignal.timeout(this.reservationCompletionTimeout);Ke(1/0,i);let o=await this.connectionManager.openConnection(e,{signal:i});if(o.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#e(o,{signal:i});this.log("created reservation on relay peer %p",e);let c=la(a.expire),h=Math.min(Math.max(c-_0,I0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(e,t).catch(l=>{this.log.error("could not refresh reservation to relay %p",e,l)})},h);this.reservations.set(e,{timeout:f,reservation:a,type:t}),await this.peerStore.merge(e,{tags:{[Iu]:{value:1,ttl:c}}}),await this.transportManager.listen([ve(`/p2p/${e.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:e})}catch(s){this.log.error("could not reserve slot on %p after %dms",e,Date.now()-n,s);let i=this.reservations.get(e);i!=null&&clearTimeout(i.timeout),this.reservations.delete(e),this.relayFilter.add(e.toBytes())}},{peerId:e})}hasReservation(e){return this.reservations.has(e)}getReservation(e){return this.reservations.get(e)?.reservation}reservationCount(){return this.reservations.size}async#e(e,t){t.signal?.throwIfAborted(),this.log("requesting reservation from %p",e.remotePeer);let n=await e.newStream(je,t),i=jt(n).pb(Z);await i.write({type:Z.Type.RESERVE},t);let o;try{o=await i.read(t)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(t)}if(o.status===q.OK&&o.reservation!=null){let c=!1,h=e.remoteAddr.bytes;for(let f of o.reservation.addrs)if(oe(h,f)){c=!0;break}return c||o.reservation.addrs.push(h),o.reservation}let a=`reservation failed with status ${o.status??"undefined"}`;throw this.log.error(a),new Error(a)}#t(e){let t=this.reservations.get(e);t!=null&&(this.log("connection to relay %p closed, removing reservation from local store",e),clearTimeout(t.timeout),this.reservations.delete(e),this.safeDispatchEvent("relay:removed",{detail:e}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var k0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(ve)}catch{return!1}return!0},Ta={maxInboundStopStreams:Bn,maxOutboundStopStreams:Bn,stopTimeout:3e4},mi=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(e,t){this.log=e.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.logger=e.logger,this.peerId=e.peerId,this.upgrader=e.upgrader,this.addressManager=e.addressManager,this.connectionGater=e.connectionGater,this.maxInboundStopStreams=t.maxInboundStopStreams??Ta.maxInboundStopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??Ta.maxOutboundStopStreams,this.stopTimeout=t.stopTimeout??Ta.stopTimeout;let n=t.discoverRelays??0;n>0&&(this.discovery=new pi(e,{filter:t.discoveryFilter??ba(Nu,Cu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(i=>{this.log.error("could not add discovered relay %p",s.detail,i)})})),this.reservationStore=new gi(e,t),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[qa]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[za](){return this.discovery!=null?["@libp2p/identify"]:[]}[Va]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(ur,e=>{this.onStop(e).catch(t=>{this.log.error("error while handling STOP protocol",t),e.stream.abort(t)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),await Fa(this.discovery,this.reservationStore),this.started=!0}async stop(){await Ka(this.discovery,this.reservationStore),await this.registrar.unhandle(ur),this.started=!1}async dial(e,t){if(e.protoCodes().filter(d=>d===290).length!==1){let d="Invalid circuit relay address";throw this.log.error(d,e),new L(d,aa)}let n=e.toString().split("/p2p-circuit"),s=ve(n[0]),i=ve(n[n.length-1]),o=s.getPeerId(),a=i.getPeerId();if(o==null||a==null){let d=`Circuit relay dial to ${e.toString()} failed as address did not have peer ids`;throw this.log.error(d),new L(d,aa)}let c=Ct(o),h=Ct(a),f=!1,g=this.connectionManager.getConnections(c)[0];g==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),t.onProgress?.(new Yt("circuit-relay:open-connection")),g=await this.connectionManager.openConnection(c,t),f=!0):t.onProgress?.(new Yt("circuit-relay:reuse-connection"));let u;try{return t.onProgress?.(new Yt("circuit-relay:open-hop-stream")),u=await g.newStream(je),await this.connectV2({stream:u,connection:g,destinationPeer:h,destinationAddr:i,relayAddr:s,ma:e,disconnectOnFailure:f,onProgress:t.onProgress})}catch(d){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,d),u?.abort(d),f&&await g.close(),d}}async connectV2({stream:e,connection:t,destinationPeer:n,destinationAddr:s,relayAddr:i,ma:o,disconnectOnFailure:a,onProgress:c}){try{let h=jt(e),f=h.pb(Z);c?.(new Yt("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toBytes(),addrs:[ve(s).bytes]}}),c?.(new Yt("circuit-relay:read-connect-response"));let l=await f.read();if(l.status!==q.OK)throw new L(`failed to connect via relay with status ${l?.status?.toString()??"undefined"}`,Ru);let g=va({stream:h.unwrap(),remoteAddr:o,localAddr:i.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger});return this.log("new outbound relayed connection %a",g.remoteAddr),await this.upgrader.upgradeOutbound(g,{transient:l.limit!=null,onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${t.remotePeer.toString()} failed`,h),a&&await t.close(),h}}createListener(e){return Ju({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(e){return e=Array.isArray(e)?e:[e],e.filter(t=>kt.matches(t))}dialFilter(e){return this.listenFilter(e)}async onStop({connection:e,stream:t}){if(!this.reservationStore.hasReservation(e.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([e.remoteAddr.encapsulate("/p2p-circuit")])}catch(f){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",f)}let n=AbortSignal.timeout(this.stopTimeout),s=jt(t).pb(Fe),i=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",e.remotePeer,i.type),i?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}if(i.type!==Fe.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await t.close();return}if(!k0(i)){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}let o=Qr(i.peer.id);if(await this.connectionGater.denyInboundRelayedConnection?.(e.remotePeer,o)===!0){this.log.error("connection gater denied inbound relayed connection from %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await t.close();return}this.log.trace("sending success response to %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.OK},{signal:n});let a=e.remoteAddr.encapsulate(`/p2p-circuit/p2p/${o.toString()}`),c=this.addressManager.getAddresses()[0],h=va({stream:s.unwrap().unwrap(),remoteAddr:a,localAddr:c,logger:this.logger});this.log("new inbound relayed connection %a",h.remoteAddr),await this.upgrader.upgradeInbound(h,{transient:i.limit!=null}),this.log("%s connection %a upgraded","inbound",h.remoteAddr)}};function Qu(r={}){return e=>new mi(e,r)}return df(T0);})();
6
+ `)}`:`${t} :`}};ol=$t;R.Constructed=ol;$t.NAME="CONSTRUCTED";var as=class extends _e{fromBER(e,t,n){return t}toBER(e){return tt}};as.override="EndOfContentValueBlock";var al,cs=class extends ve{constructor(e={}){super(e,as),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};al=cs;R.EndOfContent=al;cs.NAME=mn;var cl,Gt=class extends ve{constructor(e={}){super(e,_e),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let s=new Uint8Array(n);s[0]=5,s[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};cl=Gt;R.Null=cl;Gt.NAME="NULL";var ls=class extends It(_e){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=G.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let s=G.BufferSourceConverter.toUint8Array(e);return _t(this,s,t,n)?(this.valueHexView=s.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Uo.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};ls.NAME="BooleanValueBlock";var ll,us=class extends ve{constructor(e={}){super(e,ls),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};ll=us;R.Boolean=ll;us.NAME="BOOLEAN";var fs=class extends It(lt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===mn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==rl)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(e,t,n),this.blockLength=n;return s}toBER(e,t){return this.isConstructed?lt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};fs.NAME="OctetStringValueBlock";var ul,St=class r extends ve{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},fs),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(i.byteLength){let o=Vs(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?$t.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${G.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return G.BufferSourceConverter.concat(e)}};ul=St;R.OctetString=ul;St.NAME=rl;var hs=class extends It(lt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let s=-1;if(this.isConstructed){if(s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===mn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==nl)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let i=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,i,t,n))return-1;let o=i.subarray(t,t+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Vs(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+n}toBER(e,t){if(this.isConstructed)return lt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return tt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};hs.NAME="BitStringValueBlock";var fl,Vr=class extends ve{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},hs),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return $t.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let s of t)e.push(s.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};fl=Vr;R.BitString=fl;Vr.NAME=nl;var hl;function ip(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<o?o:c,u=0;for(let d=f;d>=0;d--,u++){switch(!0){case u<a.length:h=i[o-u]+a[c-u]+t[0];break;default:h=i[o-u]+t[0]}switch(t[0]=h/10,!0){case u>=i.length:i=es(new Uint8Array([h%10]),i);break;default:i[o-u]=h%10}}return t[0]>0&&(i=es(t,i)),i}function tl(r){if(r>=pn.length)for(let e=pn.length;e<=r;e++){let t=new Uint8Array([0]),n=pn[e-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+t[0]]);t[0]=i[0]/10,n[s]=i[0]%10}t[0]>0&&(n=es(t,n)),pn.push(n)}return pn[r]}function op(r,e){let t=0,n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let u=c;u>=0;u--,f++)switch(h=i[o-f]-a[c-f]-t,!0){case h<0:t=1,i[o-f]=h+10;break;default:t=0,i[o-f]=h}if(t>0)for(let u=o-c+1;u>=0;u--,f++)if(h=i[o-f]-t,h<0)t=1,i[o-f]=h+10;else{t=0,i[o-f]=h;break}return i.slice()}var yn=class extends It(_e){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Uo.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Jc(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,s=0){let i=this.fromBER(e,t,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let s=super.fromBER(e,t,n);return s===-1||this.setValueHex(),s}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case e:t=op(tl(n),t),o="-";break;default:t=ip(t,tl(n))}n++,s>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(o+=el.charAt(t[c]));return a===!1&&(o+=el.charAt(0)),o}};hl=yn;yn.NAME="IntegerValueBlock";Object.defineProperty(hl.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var dl,le=class r extends ve{constructor(e={}){super(e,yn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return ts(),BigInt(this.valueBlock.toString())}static fromBigInt(e){ts();let t=BigInt(e),n=new gn,s=t.toString(16).replace(/^-/,""),i=new Uint8Array(G.Convert.FromHex(s));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${G.Convert.ToHex(a)}`)+t,f=G.BufferSourceConverter.toUint8Array(G.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};dl=le;R.Integer=dl;le.NAME="INTEGER";var pl,ds=class extends le{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};pl=ds;R.Enumerated=pl;ds.NAME="ENUMERATED";var bn=class extends It(_e){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=fr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){ts();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(t.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=zt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let e="";if(this.isHexOnly)e=G.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};bn.NAME="sidBlock";var ps=class extends _e{constructor({value:e=Hr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new bn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(e);if(s.byteLength===0)return this.error=this.value[n].error,tt;t.push(s)}return Do(t)}fromString(e){this.value=[];let t=0,n=0,s="",i=!1;do if(n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new bn;if(s>Number.MAX_SAFE_INTEGER){ts();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t?(s=`{${s}}`,this.value[n].isFirstSid?e=`2.{${s} - 80}`:e+=s):e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};ps.NAME="ObjectIdentifierValueBlock";var gl,et=class extends ve{constructor(e={}){super(e,ps),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};gl=et;R.ObjectIdentifier=gl;et.NAME="OBJECT IDENTIFIER";var wn=class extends It(At){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let s=G.BufferSourceConverter.toUint8Array(e);if(!_t(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=fr(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=zt(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let e="";return this.isHexOnly?e=G.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};wn.NAME="relativeSidBlock";var gs=class extends _e{constructor({value:e=Hr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new wn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e,t){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(e);if(i.byteLength===0)return this.error=this.value[s].error,tt;n.push(i)}return Do(n)}fromString(e){this.value=[];let t=0,n=0,s="";do{n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1;let i=new wn;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(s=`{${s}}`),e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};gs.NAME="RelativeObjectIdentifierValueBlock";var ml,ms=class extends ve{constructor(e={}){super(e,gs),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};ml=ms;R.RelativeObjectIdentifier=ml;ms.NAME="RelativeObjectIdentifier";var yl,ye=class extends $t{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};yl=ye;R.Sequence=yl;ye.NAME="SEQUENCE";var bl,ys=class extends $t{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};bl=ys;R.Set=bl;ys.NAME="SET";var bs=class extends It(_e){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=Hr}toJSON(){return{...super.toJSON(),value:this.value}}};bs.NAME="StringValueBlock";var ws=class extends bs{};ws.NAME="SimpleStringValueBlock";var Re=class extends ss{constructor({...e}={}){super(e,ws)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,G.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);this.valueBlock.value=e}};Re.NAME="SIMPLE STRING";var xs=class extends Re{fromBuffer(e){this.valueBlock.valueHexView=G.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=G.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=G.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(G.Convert.FromUtf8String(e)),this.valueBlock.value=e}};xs.NAME="Utf8StringValueBlock";var wl,Bt=class extends xs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};wl=Bt;R.Utf8String=wl;Bt.NAME="UTF8String";var vs=class extends Re{fromBuffer(e){this.valueBlock.value=G.Convert.ToUtf16String(e),this.valueBlock.valueHexView=G.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(G.Convert.FromUtf16String(e))}};vs.NAME="BmpStringValueBlock";var xl,Es=class extends vs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};xl=Es;R.BmpString=xl;Es.NAME="BMPString";var As=class extends Re{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let s=0;s<t;s++){let i=zt(e.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=e}};As.NAME="UniversalStringValueBlock";var vl,Ss=class extends As{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};vl=Ss;R.UniversalString=vl;Ss.NAME="UniversalString";var El,Bs=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};El=Bs;R.NumericString=El;Bs.NAME="NumericString";var Al,_s=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};Al=_s;R.PrintableString=Al;_s.NAME="PrintableString";var Sl,Is=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Sl=Is;R.TeletexString=Sl;Is.NAME="TeletexString";var Bl,ks=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Bl=ks;R.VideotexString=Bl;ks.NAME="VideotexString";var _l,Ts=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};_l=Ts;R.IA5String=_l;Ts.NAME="IA5String";var Il,Rs=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Il=Rs;R.GraphicString=Il;Rs.NAME="GraphicString";var kl,xn=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};kl=xn;R.VisibleString=kl;xn.NAME="VisibleString";var Tl,Ns=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Tl=Ns;R.GeneralString=Tl;Ns.NAME="GeneralString";var Rl,Ls=class extends Re{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Rl=Ls;R.CharacterString=Rl;Ls.NAME="CharacterString";var Nl,vn=class extends xn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let s=0;s<e.length;s++)this.valueBlock.valueHexView[s]=e.charCodeAt(s)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,G.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=De(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=De(this.month,2),t[2]=De(this.day,2),t[3]=De(this.hour,2),t[4]=De(this.minute,2),t[5]=De(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Nl=vn;R.UTCTime=Nl;vn.NAME="UTCTime";var Ll,Cs=class extends vn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",s="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let u=new Number(e[e.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,d=n.indexOf("+"),l="";if(d===-1&&(d=n.indexOf("-"),u=-1),d!==-1){if(l=n.substring(d+1),n=n.substring(0,d),l.length!==2&&l.length!==4)throw new Error("Wrong input string for conversion");let p=parseInt(l.substring(0,2),10);if(isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*p,l.length===4){if(p=parseInt(l.substring(2,4),10),isNaN(p.valueOf()))throw new Error("Wrong input string for conversion");c=u*p}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let u=new Number(`0${n.substring(h)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");i=u.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*i;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=1e3*i;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let f=o.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let u=1;u<f.length;u++)switch(u){case 1:this.year=parseInt(f[u],10);break;case 2:this.month=parseInt(f[u],10);break;case 3:this.day=parseInt(f[u],10);break;case 4:this.hour=parseInt(f[u],10)+a;break;case 5:this.minute=parseInt(f[u],10)+c;break;case 6:this.second=parseInt(f[u],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(De(this.year,4)),t.push(De(this.month,2)),t.push(De(this.day,2)),t.push(De(this.hour,2)),t.push(De(this.minute,2)),t.push(De(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(De(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Ll=Cs;R.GeneralizedTime=Ll;Cs.NAME="GeneralizedTime";var Cl,Us=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Cl=Us;R.DATE=Cl;Us.NAME="DATE";var Ul,Ds=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Ul=Ds;R.TimeOfDay=Ul;Ds.NAME="TimeOfDay";var Dl,Os=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Dl=Os;R.DateTime=Dl;Os.NAME="DateTime";var Ol,Ps=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ol=Ps;R.Duration=Ol;Ps.NAME="Duration";var Pl,Ms=class extends Bt{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Pl=Ms;R.TIME=Pl;Ms.NAME="TIME";function cp(r){let{result:e}=Fr(r),t=e.valueBlock.value;return{n:W(ut(t[1].toBigInt()),"base64url"),e:W(ut(t[2].toBigInt()),"base64url"),d:W(ut(t[3].toBigInt()),"base64url"),p:W(ut(t[4].toBigInt()),"base64url"),q:W(ut(t[5].toBigInt()),"base64url"),dp:W(ut(t[6].toBigInt()),"base64url"),dq:W(ut(t[7].toBigInt()),"base64url"),qi:W(ut(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function lp(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 D("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new le({value:0}),le.fromBigInt(ft(V(r.n,"base64url"))),le.fromBigInt(ft(V(r.e,"base64url"))),le.fromBigInt(ft(V(r.d,"base64url"))),le.fromBigInt(ft(V(r.p,"base64url"))),le.fromBigInt(ft(V(r.q,"base64url"))),le.fromBigInt(ft(V(r.dp,"base64url"))),le.fromBigInt(ft(V(r.dq,"base64url"))),le.fromBigInt(ft(V(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function up(r){let{result:e}=Fr(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:W(ut(t[0].toBigInt()),"base64url"),e:W(ut(t[1].toBigInt()),"base64url")}}function fp(r){if(r.n==null||r.e==null)throw new D("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Gt]}),new Vr({valueHex:new ye({value:[le.fromBigInt(ft(V(r.n,"base64url"))),le.fromBigInt(ft(V(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function ut(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),s=0,i=0;for(;s<t;)n[s]=parseInt(e.slice(i,i+2),16),s+=1,i+=2;return n}function ft(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var hp=16,Po=32,Mo=1e4;async function dp(r,e){let t=Te.get(),s=new ye({value:[new le({value:0}),new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Gt]}),new St({valueHex:r.marshal()})]}).toBER(),i=new Uint8Array(s,0,s.byteLength),o=ct(hp),a=await Lo(sn,e,o,{c:Mo,dkLen:Po}),c=ct(16),h=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},h,i),u=new ye({value:[new St({valueHex:o}),new le({value:Mo}),new le({value:Po}),new ye({value:[new et({value:"1.2.840.113549.2.11"}),new Gt]})]}),d=new ye({value:[new et({value:"1.2.840.113549.1.5.13"}),new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.5.12"}),u]}),new ye({value:[new et({value:"2.16.840.1.101.3.4.1.42"}),new St({valueHex:c})]})]})]}),p=new ye({value:[d,new St({valueHex:f})]}).toBER(),m=new Uint8Array(p,0,p.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...W(m,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
+ `)}async function pp(r,e){let t=Te.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let s=V(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Fr(s),{iv:o,salt:a,iterations:c,keySize:h,cipherText:f}=gp(i),u=await Lo(sn,e,a,{c,dkLen:h}),d=await t.subtle.importKey("raw",u,"AES-CBC",!1,["decrypt"]),l=En(await t.subtle.decrypt({name:"AES-CBC",iv:o},d,f)),{result:p}=Fr(l);n=Ml(p)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let s=V(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Fr(s);n=Ml(i)}else throw new D("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Vo(n)}function gp(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new D("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new D("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],o=En(i.valueBlock.value[0].getValue()),a=Mo,c=Po;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new D("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let h=e.valueBlock.value[1].valueBlock.value[1],f=h.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new D("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let u=En(h.valueBlock.value[1].getValue());return{cipherText:En(r.valueBlock.value[1].getValue()),salt:o,iterations:a,keySize:c,iv:u}}function Ml(r){return En(r.valueBlock.value[2].getValue())}function En(r){return new Uint8Array(r,0,r.byteLength)}async function Vl(r){let e=await Te.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Kl(e);return{privateKey:t[0],publicKey:t[1]}}async function Ho(r){let t=[await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await mp(r)],n=await Kl({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Hl(r,e){let t=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Te.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Fl(r,e,t){let n=await Te.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Te.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Kl(r){if(r.privateKey==null||r.publicKey==null)throw new D("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Te.get().subtle.exportKey("jwk",r.privateKey),Te.get().subtle.exportKey("jwk",r.publicKey)])}async function mp(r){return Te.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Hs(r){if(r.kty!=="RSA")throw new D("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new D("invalid key modulus","ERR_INVALID_KEY_MODULUS");return V(r.n,"base64url").length*8}var Sn=8192,An=class{_key;constructor(e){this._key=e}verify(e,t){return Fl(this._key,t,e)}marshal(){return jt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:se.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}},Kr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return ct(16)}sign(e){return Hl(this._key,e)}get public(){if(this._publicKey==null)throw new D("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new An(this._publicKey)}marshal(){return jt.jwkToPkcs1(this._key)}get bytes(){return at.encode({Type:se.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return jt.exportToPem(this,e);if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Vo(r){let e=jt.pkcs1ToJwk(r);if(Hs(e)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Ho(e);return new Kr(t.privateKey,t.publicKey)}function bp(r){let e=jt.pkixToJwk(r);if(Hs(e)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new An(e)}async function wp(r){if(Hs(r)>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Ho(r);return new Kr(e.privateKey,e.publicKey)}async function xp(r){if(r>Sn)throw new D("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Vl(r);return new Kr(e.privateKey,e.publicKey)}var Go={};ge(Go,{Secp256k1PrivateKey:()=>_n,Secp256k1PublicKey:()=>Bn,generateKeyPair:()=>Cp,unmarshalSecp256k1PrivateKey:()=>Np,unmarshalSecp256k1PublicKey:()=>Lp});var vp=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Wt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yt=new Uint32Array(64),Ko=class extends Nr{constructor(){super(64,32,8,!1),this.A=Wt[0]|0,this.B=Wt[1]|0,this.C=Wt[2]|0,this.D=Wt[3]|0,this.E=Wt[4]|0,this.F=Wt[5]|0,this.G=Wt[6]|0,this.H=Wt[7]|0}get(){let{A:e,B:t,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,t,n,s,i,o,a,c]}set(e,t,n,s,i,o,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let u=0;u<16;u++,t+=4)Yt[u]=e.getUint32(t,!1);for(let u=16;u<64;u++){let d=Yt[u-15],l=Yt[u-2],p=Ze(d,7)^Ze(d,18)^d>>>3,m=Ze(l,17)^Ze(l,19)^l>>>10;Yt[u]=m+Yt[u-7]+p+Yt[u-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:h,H:f}=this;for(let u=0;u<64;u++){let d=Ze(a,6)^Ze(a,11)^Ze(a,25),l=f+d+Ec(a,c,h)+vp[u]+Yt[u]|0,m=(Ze(n,2)^Ze(n,13)^Ze(n,22))+Ac(n,s,i)|0;f=h,h=c,c=a,a=o+l|0,o=i,i=s,s=n,n=l+m|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,h,f)}roundClean(){Yt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ql=Pn(()=>new Ko);function zl(r){r.lowS!==void 0&&Xe("lowS",r.lowS),r.prehash!==void 0&&Xe("prehash",r.prehash)}function Ep(r){let e=cn(r);it(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:s}=e;if(t){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:Ap,hexToBytes:Sp}=Hn,kt={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(r,e)=>{let{Err:t}=kt;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,s=rr(n);if(s.length/2&128)throw new t("tlv.encode: long form length too big");let i=n>127?rr(s.length/2|128):"";return`${rr(r)}${i}${s}${e}`},decode(r,e){let{Err:t}=kt,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let s=e[n++],i=!!(s&128),o=0;if(!i)o=s;else{let c=s&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 h=e.subarray(n,n+c);if(h.length!==c)throw new t("tlv.decode: length bytes not complete");if(h[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let f of h)o=o<<8|f;if(n+=c,o<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+o)}}},_int:{encode(r){let{Err:e}=kt;if(r<Tt)throw new e("integer: negative integers are not allowed");let t=rr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected assertion");return t},decode(r){let{Err:e}=kt;if(r[0]&128)throw new e("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return Ap(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=kt,s=typeof r=="string"?Sp(r):r;Lr(s);let{v:i,l:o}=n.decode(48,s);if(o.length)throw new e("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,i),{v:h,l:f}=n.decode(2,c);if(f.length)throw new e("Invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(h)}},hexFromSig(r){let{_tlv:e,_int:t}=kt,n=`${e.encode(2,t.encode(r.r))}${e.encode(2,t.encode(r.s))}`;return e.encode(48,n)}},Tt=BigInt(0),be=BigInt(1),kb=BigInt(2),$l=BigInt(3),Tb=BigInt(4);function Bp(r){let e=Ep(r),{Fp:t}=e,n=Kt(e.n,e.nBitLength),s=e.toBytes||((m,b,y)=>{let w=b.toAffine();return wt(Uint8Array.from([4]),t.toBytes(w.x),t.toBytes(w.y))}),i=e.fromBytes||(m=>{let b=m.subarray(1),y=t.fromBytes(b.subarray(0,t.BYTES)),w=t.fromBytes(b.subarray(t.BYTES,2*t.BYTES));return{x:y,y:w}});function o(m){let{a:b,b:y}=e,w=t.sqr(m),g=t.mul(w,m);return t.add(t.add(g,t.mul(m,b)),y)}if(!t.eql(t.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return on(m,be,e.n)}function c(m){let{allowedPrivateKeyLengths:b,nByteLength:y,wrapPrivateKey:w,n:g}=e;if(b&&typeof m!="bigint"){if(Vt(m)&&(m=yt(m)),typeof m!="string"||!b.includes(m.length))throw new Error("Invalid key");m=m.padStart(y*2,"0")}let x;try{x=typeof m=="bigint"?m:bt(ae("private key",m,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof m}`)}return w&&(x=J(x,g)),Ce("private key",x,be,g),x}function h(m){if(!(m instanceof d))throw new Error("ProjectivePoint expected")}let f=ir((m,b)=>{let{px:y,py:w,pz:g}=m;if(t.eql(g,t.ONE))return{x:y,y:w};let x=m.is0();b==null&&(b=x?t.ONE:t.inv(g));let S=t.mul(y,b),_=t.mul(w,b),v=t.mul(g,b);if(x)return{x:t.ZERO,y:t.ZERO};if(!t.eql(v,t.ONE))throw new Error("invZ was invalid");return{x:S,y:_}}),u=ir(m=>{if(m.is0()){if(e.allowInfinityPoint&&!t.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:b,y}=m.toAffine();if(!t.isValid(b)||!t.isValid(y))throw new Error("bad point: x or y not FE");let w=t.sqr(y),g=o(b);if(!t.eql(w,g))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class d{constructor(b,y,w){if(this.px=b,this.py=y,this.pz=w,b==null||!t.isValid(b))throw new Error("x required");if(y==null||!t.isValid(y))throw new Error("y required");if(w==null||!t.isValid(w))throw new Error("z required");Object.freeze(this)}static fromAffine(b){let{x:y,y:w}=b||{};if(!b||!t.isValid(y)||!t.isValid(w))throw new Error("invalid affine point");if(b instanceof d)throw new Error("projective point not allowed");let g=x=>t.eql(x,t.ZERO);return g(y)&&g(w)?d.ZERO:new d(y,w,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(b){let y=t.invertBatch(b.map(w=>w.pz));return b.map((w,g)=>w.toAffine(y[g])).map(d.fromAffine)}static fromHex(b){let y=d.fromAffine(i(ae("pointHex",b)));return y.assertValidity(),y}static fromPrivateKey(b){return d.BASE.multiply(c(b))}static msm(b,y){return qn(d,n,b,y)}_setWindowSize(b){p.setWindowSize(this,b)}assertValidity(){u(this)}hasEvenY(){let{y:b}=this.toAffine();if(t.isOdd)return!t.isOdd(b);throw new Error("Field doesn't support isOdd")}equals(b){h(b);let{px:y,py:w,pz:g}=this,{px:x,py:S,pz:_}=b,v=t.eql(t.mul(y,_),t.mul(x,g)),B=t.eql(t.mul(w,_),t.mul(S,g));return v&&B}negate(){return new d(this.px,t.neg(this.py),this.pz)}double(){let{a:b,b:y}=e,w=t.mul(y,$l),{px:g,py:x,pz:S}=this,_=t.ZERO,v=t.ZERO,B=t.ZERO,N=t.mul(g,g),te=t.mul(x,x),K=t.mul(S,S),F=t.mul(g,x);return F=t.add(F,F),B=t.mul(g,S),B=t.add(B,B),_=t.mul(b,B),v=t.mul(w,K),v=t.add(_,v),_=t.sub(te,v),v=t.add(te,v),v=t.mul(_,v),_=t.mul(F,_),B=t.mul(w,B),K=t.mul(b,K),F=t.sub(N,K),F=t.mul(b,F),F=t.add(F,B),B=t.add(N,N),N=t.add(B,N),N=t.add(N,K),N=t.mul(N,F),v=t.add(v,N),K=t.mul(x,S),K=t.add(K,K),N=t.mul(K,F),_=t.sub(_,N),B=t.mul(K,te),B=t.add(B,B),B=t.add(B,B),new d(_,v,B)}add(b){h(b);let{px:y,py:w,pz:g}=this,{px:x,py:S,pz:_}=b,v=t.ZERO,B=t.ZERO,N=t.ZERO,te=e.a,K=t.mul(e.b,$l),F=t.mul(y,x),U=t.mul(w,S),T=t.mul(g,_),L=t.add(y,w),A=t.add(x,S);L=t.mul(L,A),A=t.add(F,U),L=t.sub(L,A),A=t.add(y,g);let E=t.add(x,_);return A=t.mul(A,E),E=t.add(F,T),A=t.sub(A,E),E=t.add(w,g),v=t.add(S,_),E=t.mul(E,v),v=t.add(U,T),E=t.sub(E,v),N=t.mul(te,A),v=t.mul(K,T),N=t.add(v,N),v=t.sub(U,N),N=t.add(U,N),B=t.mul(v,N),U=t.add(F,F),U=t.add(U,F),T=t.mul(te,T),A=t.mul(K,A),U=t.add(U,T),T=t.sub(F,T),T=t.mul(te,T),A=t.add(A,T),F=t.mul(U,A),B=t.add(B,F),F=t.mul(E,A),v=t.mul(L,v),v=t.sub(v,F),F=t.mul(L,U),N=t.mul(E,N),N=t.add(N,F),new d(v,B,N)}subtract(b){return this.add(b.negate())}is0(){return this.equals(d.ZERO)}wNAF(b){return p.wNAFCached(this,b,d.normalizeZ)}multiplyUnsafe(b){Ce("scalar",b,Tt,e.n);let y=d.ZERO;if(b===Tt)return y;if(b===be)return this;let{endo:w}=e;if(!w)return p.unsafeLadder(this,b);let{k1neg:g,k1:x,k2neg:S,k2:_}=w.splitScalar(b),v=y,B=y,N=this;for(;x>Tt||_>Tt;)x&be&&(v=v.add(N)),_&be&&(B=B.add(N)),N=N.double(),x>>=be,_>>=be;return g&&(v=v.negate()),S&&(B=B.negate()),B=new d(t.mul(B.px,w.beta),B.py,B.pz),v.add(B)}multiply(b){let{endo:y,n:w}=e;Ce("scalar",b,be,w);let g,x;if(y){let{k1neg:S,k1:_,k2neg:v,k2:B}=y.splitScalar(b),{p:N,f:te}=this.wNAF(_),{p:K,f:F}=this.wNAF(B);N=p.constTimeNegate(S,N),K=p.constTimeNegate(v,K),K=new d(t.mul(K.px,y.beta),K.py,K.pz),g=N.add(K),x=te.add(F)}else{let{p:S,f:_}=this.wNAF(b);g=S,x=_}return d.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(b,y,w){let g=d.BASE,x=(_,v)=>v===Tt||v===be||!_.equals(g)?_.multiplyUnsafe(v):_.multiply(v),S=x(this,y).add(x(b,w));return S.is0()?void 0:S}toAffine(b){return f(this,b)}isTorsionFree(){let{h:b,isTorsionFree:y}=e;if(b===be)return!0;if(y)return y(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:b,clearCofactor:y}=e;return b===be?this:y?y(d,this):this.multiplyUnsafe(e.h)}toRawBytes(b=!0){return Xe("isCompressed",b),this.assertValidity(),s(d,this,b)}toHex(b=!0){return Xe("isCompressed",b),yt(this.toRawBytes(b))}}d.BASE=new d(e.Gx,e.Gy,t.ONE),d.ZERO=new d(t.ZERO,t.ONE,t.ZERO);let l=e.nBitLength,p=Kn(d,e.endo?Math.ceil(l/2):l);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function _p(r){let e=cn(r);return it(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function Gl(r){let e=_p(r),{Fp:t,n}=e,s=t.BYTES+1,i=2*t.BYTES+1;function o(T){return J(T,n)}function a(T){return Fn(T,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:u}=Bp({...e,toBytes(T,L,A){let E=L.toAffine(),I=t.toBytes(E.x),C=wt;return Xe("isCompressed",A),A?C(Uint8Array.from([L.hasEvenY()?2:3]),I):C(Uint8Array.from([4]),I,t.toBytes(E.y))},fromBytes(T){let L=T.length,A=T[0],E=T.subarray(1);if(L===s&&(A===2||A===3)){let I=bt(E);if(!on(I,be,t.ORDER))throw new Error("Point is not on curve");let C=f(I),P;try{P=t.sqrt(C)}catch(j){let $=j instanceof Error?": "+j.message:"";throw new Error("Point is not on curve"+$)}let M=(P&be)===be;return(A&1)===1!==M&&(P=t.neg(P)),{x:I,y:P}}else if(L===i&&A===4){let I=t.fromBytes(E.subarray(0,t.BYTES)),C=t.fromBytes(E.subarray(t.BYTES,2*t.BYTES));return{x:I,y:C}}else throw new Error(`Point of length ${L} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),d=T=>yt(Ft(T,e.nByteLength));function l(T){let L=n>>be;return T>L}function p(T){return l(T)?o(-T):T}let m=(T,L,A)=>bt(T.slice(L,A));class b{constructor(L,A,E){this.r=L,this.s=A,this.recovery=E,this.assertValidity()}static fromCompact(L){let A=e.nByteLength;return L=ae("compactSignature",L,A*2),new b(m(L,0,A),m(L,A,2*A))}static fromDER(L){let{r:A,s:E}=kt.toSig(ae("DER",L));return new b(A,E)}assertValidity(){Ce("r",this.r,be,n),Ce("s",this.s,be,n)}addRecoveryBit(L){return new b(this.r,this.s,L)}recoverPublicKey(L){let{r:A,s:E,recovery:I}=this,C=_(ae("msgHash",L));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let P=I===2||I===3?A+e.n:A;if(P>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let M=I&1?"03":"02",z=c.fromHex(M+d(P)),j=a(P),$=o(-C*j),X=o(E*j),ee=c.BASE.multiplyAndAddUnsafe(z,$,X);if(!ee)throw new Error("point at infinify");return ee.assertValidity(),ee}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return nr(this.toDERHex())}toDERHex(){return kt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return nr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let y={isValidPrivateKey(T){try{return h(T),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let T=ao(e.n);return Nc(e.randomBytes(T),e.n)},precompute(T=8,L=c.BASE){return L._setWindowSize(T),L.multiply(BigInt(3)),L}};function w(T,L=!0){return c.fromPrivateKey(T).toRawBytes(L)}function g(T){let L=Vt(T),A=typeof T=="string",E=(L||A)&&T.length;return L?E===s||E===i:A?E===2*s||E===2*i:T instanceof c}function x(T,L,A=!0){if(g(T))throw new Error("first arg must be private key");if(!g(L))throw new Error("second arg must be public key");return c.fromHex(L).multiply(h(T)).toRawBytes(A)}let S=e.bits2int||function(T){let L=bt(T),A=T.length*8-e.nBitLength;return A>0?L>>BigInt(A):L},_=e.bits2int_modN||function(T){return o(S(T))},v=an(e.nBitLength);function B(T){return Ce(`num < 2^${e.nBitLength}`,T,Tt,v),Ft(T,e.nByteLength)}function N(T,L,A=te){if(["recovered","canonical"].some(pe=>pe in A))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:I}=e,{lowS:C,prehash:P,extraEntropy:M}=A;C==null&&(C=!0),T=ae("msgHash",T),zl(A),P&&(T=ae("prehashed msgHash",E(T)));let z=_(T),j=h(L),$=[B(j),B(z)];if(M!=null&&M!==!1){let pe=M===!0?I(t.BYTES):M;$.push(ae("extraEntropy",pe))}let X=wt(...$),ee=z;function de(pe){let we=S(pe);if(!u(we))return;let Ie=a(we),ue=c.BASE.multiply(we).toAffine(),Ne=o(ue.x);if(Ne===Tt)return;let ht=o(Ie*o(ee+Ne*j));if(ht===Tt)return;let Xr=(ue.x===Ne?0:2)|Number(ue.y&be),Jr=ht;return C&&l(ht)&&(Jr=p(ht),Xr^=1),new b(Ne,Jr,Xr)}return{seed:X,k2sig:de}}let te={lowS:e.lowS,prehash:!1},K={lowS:e.lowS,prehash:!1};function F(T,L,A=te){let{seed:E,k2sig:I}=N(T,L,A),C=e;return no(C.hash.outputLen,C.nByteLength,C.hmac)(E,I)}c.BASE._setWindowSize(8);function U(T,L,A,E=K){let I=T;if(L=ae("msgHash",L),A=ae("publicKey",A),"strict"in E)throw new Error("options.strict was renamed to lowS");zl(E);let{lowS:C,prehash:P}=E,M,z;try{if(typeof I=="string"||Vt(I))try{M=b.fromDER(I)}catch(ue){if(!(ue instanceof kt.Err))throw ue;M=b.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:ue,s:Ne}=I;M=new b(ue,Ne)}else throw new Error("PARSE");z=c.fromHex(A)}catch(ue){if(ue.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(C&&M.hasHighS())return!1;P&&(L=e.hash(L));let{r:j,s:$}=M,X=_(L),ee=a($),de=o(X*ee),pe=o(j*ee),we=c.BASE.multiplyAndAddUnsafe(z,de,pe)?.toAffine();return we?o(we.x)===j:!1}return{CURVE:e,getPublicKey:w,getSharedSecret:x,sign:F,verify:U,ProjectivePoint:c,Signature:b,utils:y}}function Ip(r){return{hash:r,hmac:(e,...t)=>dn(r,e,Yi(...t)),randomBytes:Rr}}function jl(r,e){let t=n=>Gl({...r,...Ip(n)});return Object.freeze({...t(e),create:t})}var Zl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Wl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),kp=BigInt(1),qo=BigInt(2),Yl=(r,e)=>(r+e/qo)/e;function Tp(r){let e=Zl,t=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%e,f=h*h*r%e,u=ne(f,t,e)*f%e,d=ne(u,t,e)*f%e,l=ne(d,qo,e)*h%e,p=ne(l,s,e)*l%e,m=ne(p,i,e)*p%e,b=ne(m,a,e)*m%e,y=ne(b,c,e)*b%e,w=ne(y,a,e)*m%e,g=ne(w,t,e)*f%e,x=ne(g,o,e)*p%e,S=ne(x,n,e)*h%e,_=ne(S,qo,e);if(!zo.eql(zo.sqr(_),r))throw new Error("Cannot find square root");return _}var zo=Kt(Zl,void 0,void 0,{sqrt:Tp}),rt=jl({a:BigInt(0),b:BigInt(7),Fp:zo,n:Wl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Wl,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-kp*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=Yl(i*r,e),c=Yl(-n*r,e),h=J(r-a*t-c*s,e),f=J(-a*n-c*i,e),u=h>o,d=f>o;if(u&&(h=e-h),d&&(f=e-f),h>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:h,k2neg:d,k2:f}}}},ql),Mb=BigInt(0);var Vb=rt.ProjectivePoint;function Xl(){return rt.utils.randomPrivateKey()}function Jl(r,e){let t=me.digest(e instanceof Uint8Array?e:e.subarray());if(Ge(t))return t.then(({digest:n})=>rt.sign(n,r).toDERRawBytes()).catch(n=>{throw new D(String(n),"ERR_INVALID_INPUT")});try{return rt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new D(String(n),"ERR_INVALID_INPUT")}}function Ql(r,e,t){let n=me.digest(t instanceof Uint8Array?t:t.subarray());if(Ge(n))return n.then(({digest:s})=>rt.verify(e,s,r)).catch(s=>{throw new D(String(s),"ERR_INVALID_INPUT")});try{return rt.verify(e,n.digest,r)}catch(s){throw new D(String(s),"ERR_INVALID_INPUT")}}function eu(r){return rt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function tu(r){try{rt.getPublicKey(r,!0)}catch(e){throw new D(String(e),"ERR_INVALID_PRIVATE_KEY")}}function $o(r){try{rt.ProjectivePoint.fromHex(r)}catch(e){throw new D(String(e),"ERR_INVALID_PUBLIC_KEY")}}function ru(r){try{return rt.getPublicKey(r,!0)}catch(e){throw new D(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Bn=class{_key;constructor(e){$o(e),this._key=e}verify(e,t){return Ql(this._key,t,e)}marshal(){return eu(this._key)}get bytes(){return ot.encode({Type:se.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return Ge(e)?{bytes:t}=await e:t=e.bytes,t}},_n=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??ru(e),tu(this._key),$o(this._publicKey)}sign(e){return Jl(this._key,e)}get public(){return new Bn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:se.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return Ge(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return W(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Dr(this.bytes,e);throw new D(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Np(r){return new _n(r)}function Lp(r){return new Bn(r)}async function Cp(){let r=Xl();return new _n(r)}var hr={rsa:Fo,ed25519:No,secp256k1:Go};function nu(r){let e=Object.keys(hr).join(" / ");return new D(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function su(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case se.RSA:return hr.rsa.unmarshalRsaPublicKey(t);case se.Ed25519:return hr.ed25519.unmarshalEd25519PublicKey(t);case se.Secp256k1:return hr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw nu(e.Type??"unknown")}}async function iu(r){let e=at.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case se.RSA:return hr.rsa.unmarshalRsaPrivateKey(t);case se.Ed25519:return hr.ed25519.unmarshalEd25519PrivateKey(t);case se.Secp256k1:return hr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw nu(e.Type??"RSA")}}var au=Symbol.for("@achingbrain/uint8arraylist");function ou(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let s=t+n.byteLength;if(e<s)return{buf:n,index:e-t};t=s}throw new RangeError("index is out of bounds")}function Fs(r){return!!r?.[au]}var Fe=class r{bufs;length;[au]=!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(Fs(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(Fs(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=ou(this.bufs,e);return t.buf[t.index]}set(e,t){let n=ou(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(Fs(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:s}=this._subList(e,t);return ke(n,s)}subarray(e,t){let{bufs:n,length:s}=this._subList(e,t);return n.length===1?n[0]:ke(n,s)}sublist(e,t){let{bufs:n,length:s}=this._subList(e,t),i=new r;return i.length=s,i.bufs=[...n],i}_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=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,e>=c)continue;let h=e>=a&&e<c,f=t>a&&t<=c;if(h&&f){if(e===a&&t===c){n.push(o);break}let u=e-a;n.push(o.subarray(u,u+(t-e)));break}if(h){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(f){if(t===c){n.push(o);break}n.push(o.subarray(0,t-a));break}n.push(o)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Fs(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 s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let u=0;u<i;u++)o[u]=-1;for(let u=0;u<s;u++)o[n[u]]=u;let a=o,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let u=t;u<=c;u+=f){f=0;for(let d=h;d>=0;d--){let l=this.get(u+d);if(n[d]!==l){f=Math.max(1,d-a[l]);break}}if(f===0)return u}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=Le(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 s=xe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,t,n),this.write(s,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 s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,t,n),this.write(s,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 s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,t,n),this.write(s,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=Le(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 s=xe(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,t,n),this.write(s,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 s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,t,n),this.write(s,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 s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,t,n),this.write(s,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 s=xe(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,t,n),this.write(s,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 s=xe(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,t,n),this.write(s,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(!oe(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((s,i)=>s+i.byteLength,0)),n.length=t,n}};var cu={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var In;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.publicKey=t.bytes();break;case 2:s.payloadType=t.bytes();break;case 3:s.payload=t.bytes();break;case 5:s.signature=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Ve(t,r.codec()),r.decode=t=>Me(t,r.codec())})(In||(In={}));var kn=class r{static createFromProtobuf=async e=>{let t=In.decode(e),n=await yc(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,s=e.codec,i=e.marshal(),o=lu(n,s,i),c=await(await iu(t.privateKey)).sign(o.subarray());return new r({peerId:t,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new D("envelope signature is not valid for the given domain",cu.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:s,signature:i}=e;this.peerId=t,this.payloadType=n,this.payload=s,this.signature=i}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=In.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return oe(this.marshal(),e.marshal())}async validate(e){let t=lu(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return su(this.peerId.publicKey).verify(t.subarray(),this.signature)}},lu=(r,e,t)=>{let n=V(r),s=je(n.byteLength),i=je(e.length),o=je(t.length);return new Fe(s,n,i,e,o,t)};var Ks=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,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let d=Number.parseInt(u,e);if(!Number.isNaN(d))return d});if(f===void 0)break;if(i*=e,i+=f,i>h||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!n&&c&&o>1?void 0:i})}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 s=n*2;if(n<t.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return t[s]=o[0],t[s+1]=o[1],t[s+2]=o[2],t[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];t[s]=i>>8,t[s+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,s]=e(t);if(n===16)return t;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var uu=45,Up=15,qr=new Ks;function jo(r){if(!(r.length>Up))return qr.new(r).parseWith(()=>qr.readIPv4Addr())}function Wo(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>uu))return qr.new(r).parseWith(()=>qr.readIPv6Addr())}function qs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>uu))return qr.new(r).parseWith(()=>qr.readIPAddr())}var Sw=parseInt("0xFFFF",16),Bw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function du(r){return!!jo(r)}function pu(r){return!!Wo(r)}function zs(r){return!!qs(r)}var gu=du,Vp=pu,Yo=function(r){let e=0;if(r=r.toString().trim(),gu(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(Vp(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let i=gu(t[n]),o;i&&(o=Yo(t[n]),t[n]=W(o.slice(0,2),"base16")),o!=null&&++n<8&&t.splice(n,0,W(o.slice(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 i=[n,1];for(n=9-t.length;n>0;n--)i.push("0");t.splice.apply(t,i)}let s=new Uint8Array(e+16);for(n=0;n<t.length;n++){let i=parseInt(t[n],16);s[e++]=i>>8&255,s[e++]=i&255}return s}throw new Error("invalid ip address")},mu=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let s=[];for(let i=0;i<t;i++)s.push(r[e+i]);return s.join(".")}if(t===16){let s=[];for(let i=0;i<t;i+=2)s.push(n.getUint16(e+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var zr={},Zo={},Fp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Fp.forEach(r=>{let e=Kp(...r);Zo[e.code]=e,zr[e.name]=e});function Kp(r,e,t,n,s){return{code:r,size:e,name:t,resolvable:!!n,path:!!s}}function Q(r){if(typeof r=="number"){if(Zo[r]!=null)return Zo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(zr[r]!=null)return zr[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var c1=Q("ip4"),l1=Q("ip6"),u1=Q("ipcidr");function ea(r,e){switch(Q(r).code){case 4:case 41:return zp(e);case 42:return Qo(e);case 6:case 273:case 33:case 132:return wu(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Qo(e);case 421:return Wp(e);case 444:return bu(e);case 445:return bu(e);case 466:return jp(e);case 481:return globalThis.encodeURIComponent(Qo(e));default:return W(e,"base16")}}function ta(r,e){switch(Q(r).code){case 4:return yu(e);case 41:return yu(e);case 42:return Jo(e);case 6:case 273:case 33:case 132:return ra(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Jo(e);case 421:return $p(e);case 444:return Yp(e);case 445:return Zp(e);case 466:return Gp(e);case 481:return Jo(globalThis.decodeURIComponent(e));default:return V(e,"base16")}}var Xo=Object.values(Ut).map(r=>r.decoder),qp=function(){let r=Xo[0].or(Xo[1]);return Xo.slice(2).forEach(e=>r=r.or(e)),r}();function yu(r){if(!zs(r))throw new Error("invalid ip address");return Yo(r)}function zp(r){let e=mu(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!zs(e))throw new Error("invalid ip address");return e}function ra(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function wu(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Jo(r){let e=V(r),t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function Qo(r){let e=vt(r);if(r=r.slice(Se(e)),r.length!==e)throw new Error("inconsistent lengths");return W(r)}function $p(r){let e;r[0]==="Q"||r[0]==="1"?e=Qt(fe.decode(`z${r}`)).bytes:e=Oe.parse(r).multihash.bytes;let t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function Gp(r){let e=qp.decode(r),t=Uint8Array.from(je(e.length));return ke([t,e],t.length+e.length)}function jp(r){let e=vt(r),t=r.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+W(t,"base64url")}function Wp(r){let e=vt(r),t=r.slice(Se(e));if(t.length!==e)throw new Error("inconsistent lengths");return W(t,"base58btc")}function Yp(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=pt.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 s=ra(n);return ke([t,s],t.length+s.length)}function Zp(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=pt.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 s=ra(n);return ke([t,s],t.length+s.length)}function bu(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=W(e,"base32"),s=wu(t);return`${n}:${s}`}function xu(r){r=na(r);let e=[],t=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=Q(o);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(i++,i>=s.length)throw Eu("invalid address: "+r);if(a.path===!0){n=na(s.slice(i).join("/")),e.push([a.code,ta(a.code,n)]),t.push([a.code,n]);break}let c=ta(a.code,s[i]);e.push([a.code,c]),t.push([a.code,ea(a.code,c)])}return{string:vu(t),bytes:ia(e),tuples:e,stringTuples:t,path:n}}function sa(r){let e=[],t=[],n=null,s=0;for(;s<r.length;){let i=vt(r,s),o=Se(i),a=Q(i),c=Xp(a,r.slice(s+o));if(c===0){e.push([i]),t.push([i]),s+=o;continue}let h=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw Eu("Invalid address Uint8Array: "+W(r,"base16"));e.push([i,h]);let f=ea(i,h);if(t.push([i,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:vu(t),tuples:e,stringTuples:t,path:n}}function vu(r){let e=[];return r.map(t=>{let n=Q(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),na(e.join("/"))}function ia(r){return ke(r.map(e=>{let t=Q(e[0]),n=Uint8Array.from(je(t.code));return e.length>1&&e[1]!=null&&(n=ke([n,e[1]])),n}))}function Xp(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=vt(e instanceof Uint8Array?e:Uint8Array.from(e));return t+Se(t)}}function na(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function Eu(r){return new Error("Error parsing address: "+r)}var Jp=Symbol.for("nodejs.util.inspect.custom"),oa=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Qp=[Q("dns").code,Q("dns4").code,Q("dns6").code,Q("dnsaddr").code],$s=class r{bytes;#e;#t;#r;#n;[oa]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=sa(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=xu(e)}else if(Su(e))t=sa(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#r=t.stringTuples,this.#n=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,s,i="",o=Q("tcp"),a=Q("udp"),c=Q("ip4"),h=Q("ip6"),f=Q("dns6"),u=Q("ip6zone");for(let[l,p]of this.stringTuples())l===u.code&&(i=`%${p??""}`),Qp.includes(l)&&(t=o.name,s=443,n=`${p??""}${i}`,e=l===f.code?6:4),(l===o.code||l===a.code)&&(t=Q(l).name,s=parseInt(p??"")),(l===c.code||l===h.code)&&(t=Q(l).name,n=`${p??""}${i}`,e=l===h.code?6:4);if(e==null||t==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:s}}protos(){return this.#t.map(([e])=>Object.assign({},Q(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>Q(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),s=n.lastIndexOf(t);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,s))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(ia(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,s])=>{n===zr.p2p.code&&e.push([n,s]),n===zr["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?W(fe.decode(`z${n}`),"base58btc"):W(Oe.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return oe(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(i=>i.resolvable);if(t==null)return[this];let n=Au.get(t.name);if(n==null)throw new D(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(i=>Ee(i))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[Jp](){return`Multiaddr(${this.#e})`}};var Au=new Map;function Su(r){return!!r?.[oa]}function Ee(r){return new $s(r)}function Ke(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Gs=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function $r(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new Gs(t?.errorMessage,t?.errorCode,t?.errorName));let n,s=new Gs(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,o)=>{n=()=>{o(s)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var aa=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Ke(),this.haveNext=Ke()}[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=Ke(),e}async throw(e){return this.ended=!0,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 await this._push(void 0),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 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=Ke(),await $r(this.readNext.promise,t?.signal,t)}};function Bu(){return new aa}var js=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ca=class extends Error{code;constructor(e,t){super(e),this.code=t}},la=class extends ca{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function _u(r,e){let t=Bu();r.sink(t).catch(async o=>{await t.end(o)}),r.sink=async o=>{for await(let a of o)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Fe;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,u)=>{c=()=>{u(new la("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:u,value:d}=await Promise.race([n.next(),h]);return u===!0?new Fe:d}for(;s.byteLength<o;){let{value:u,done:d}=await Promise.race([n.next(),h]);if(d===!0)throw new js("unexpected end of input");s.append(u)}let f=s.sublist(0,o);return s.consume(o),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await t.push(o,a):await t.push(o.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let o=r.source;r.source=async function*(){e?.yieldBytes===!1?yield s:yield*s,yield*o}()}return r}}}var Ws=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ys=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Zs=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Iu(r,e={}){let t=_u(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=Se(e.maxDataLength));let n=e?.lengthDecoder??vt,s=e?.lengthEncoder??je;return{read:async o=>{let a=-1,c=new Fe;for(;;){c.append(await t.read(1,o));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Ws("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Zs("message length length too long");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Ys("message length too long");return t.read(a,o)},write:async(o,a)=>{await t.write(new Fe(s(o.byteLength),o),a)},writeV:async(o,a)=>{let c=new Fe(...o.flatMap(h=>[s(h.byteLength),h]));await t.write(c,a)},unwrap:()=>t.unwrap()}}function Zt(r,e){let t=Iu(r,e),n={read:async(s,i)=>{let o=await t.read(i);return s.decode(o)},write:async(s,i,o)=>{await t.write(i.encode(s),o)},writeV:async(s,i,o)=>{await t.writeV(s.map(a=>i.encode(a)),o)},pb:s=>({read:async i=>n.read(s,i),write:async(i,o)=>n.write(i,s,o),writeV:async(i,o)=>n.writeV(i,s,o),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}var ku="circuit-relay-source",Tu="circuit-relay-relay";var Ru=BigInt(131072),Ye="/libp2p/circuit/relay/0.2.0/hop",dr="/libp2p/circuit/relay/0.2.0/stop",Nu=30*1e3,ex=30*1e3,Tn=300;var ua="ERR_RELAYED_DIAL",Lu="ERR_HOP_REQUEST_FAILED",Xs="ERR_TRANSFER_LIMIT_EXCEEDED",Cu=4096,Uu=.001;var Z;(function(r){let e;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(t||(t={})),function(s){s.codec=()=>lr(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=He((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Gr.codec().encode(s.peer,i)),s.reservation!=null&&(i.uint32(26),Js.codec().encode(s.reservation,i)),s.limit!=null&&(i.uint32(34),jr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(40),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Gr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.reservation=Js.codec().decode(s,s.uint32(),{limits:o.limits?.reservation});break}case 4:{a.limit=jr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Ve(s,r.codec()),r.decode=(s,i)=>Me(s,r.codec(),i)})(Z||(Z={}));var qe;(function(r){let e;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(t||(t={})),function(s){s.codec=()=>lr(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=He((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),Gr.codec().encode(s.peer,i)),s.limit!=null&&(i.uint32(26),jr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(32),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=Gr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.limit=jr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Ve(s,r.codec()),r.decode=(s,i)=>Me(s,r.codec(),i)})(qe||(qe={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={id:xe(0),addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.id=t.bytes();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new fn('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Gr||(Gr={}));var Js;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.expire!=null&&t.expire!==0n&&(n.uint32(8),n.uint64(t.expire)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);t.voucher!=null&&(n.uint32(26),n.bytes(t.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={expire:0n,addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.expire=t.uint64();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new fn('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}case 3:{i.voucher=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Js||(Js={}));var jr;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.duration!=null&&(n.uint32(8),n.uint32(t.duration)),t.data!=null&&(n.uint32(16),n.uint64(t.data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.duration=t.uint32();break}case 2:{i.data=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(jr||(jr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var fa;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(fa||(fa={}));(function(r){r.codec=()=>lr(fa)})(q||(q={}));var Qs;(function(r){let e;r.codec=()=>(e==null&&(e=He((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.relay!=null&&t.relay.byteLength>0&&(n.uint32(10),n.bytes(t.relay)),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(18),n.bytes(t.peer)),t.expiration!=null&&t.expiration!==0n&&(n.uint32(24),n.uint64(t.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={relay:xe(0),peer:xe(0),expiration:0n},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.relay=t.bytes();break}case 2:{i.peer=t.bytes();break}case 3:{i.expiration=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ve(t,r.codec()),r.decode=(t,n)=>Me(t,r.codec(),n)})(Qs||(Qs={}));function ei(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let s=e.signal;return s.clear=n,s}async function*Du(r,e,t){let n=e.remaining;for await(let s of r){let i=BigInt(s.byteLength);if(e.remaining-i<0){let o=Number(e.remaining);e.remaining=0n;try{o!==0&&(yield s.subarray(0,o))}catch(a){t.log.error(a)}throw new D(`data limit of ${n} bytes exceeded`,Xs)}e.remaining-=i,yield s}}function Ou(r,e,t,n,s){function i(u){r.abort(u),e.abort(u)}let o=[t];n?.duration!=null&&o.push(AbortSignal.timeout(n.duration));let a=ei(o),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let u=()=>{e.abort(new D(`duration limit of ${n?.duration} ms exceeded`,Xs))};a.addEventListener("abort",u,{once:!0}),e.sink(f==null?r.source:Du(r.source,f,s)).catch(d=>{s.log.error("error while relaying streams src -> dst",d),i(d)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",u),a.clear())})}),queueMicrotask(()=>{let u=()=>{r.abort(new D(`duration limit of ${n?.duration} ms exceeded`,Xs))};a.addEventListener("abort",u,{once:!0}),r.sink(f==null?e.source:Du(e.source,f,s)).catch(d=>{s.log.error("error while relaying streams dst -> src",d),i(d)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",u),a.clear())})})}function ha(r){let e=r*BigInt(1e3),t=new Date().getTime();return Number(e-BigInt(t))}function da(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:e(s)}}};return t}var Rt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return da(this.map.entries(),e=>[Dt(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,Dt(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return da(this.map.keys(),e=>Dt(e))}values(){return this.map.values()}get size(){return this.map.size}};var ga=vi(pa(),1);var e0=Math.LN2*Math.LN2,ri=class{seeds;bits;buffer;constructor(e={}){e.seeds!=null?this.seeds=e.seeds:this.seeds=r0(e.hashes??8),this.bits=e.bits??1024,this.buffer=xe(Math.ceil(this.bits/8))}add(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.seeds.length;t++){let s=ga.default.x86.hash32(e,this.seeds[t])%this.bits;this.setbit(s)}}has(e){typeof e=="string"&&(e=V(e));for(let t=0;t<this.seeds.length;t++){let s=ga.default.x86.hash32(e,this.seeds[t])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;let s=this.buffer[t];s|=1<<n,this.buffer[t]=s}getbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;return(this.buffer[t]&1<<n)!==0}};function ma(r,e=.005){let t=t0(r,e);return new ri(t)}function t0(r,e=.005){let t=Math.round(-1*r*Math.log(e)/e0),n=Math.round(t/r*Math.LN2);return{bits:t,hashes:n}}function r0(r){let e,t,n=[];for(let s=0;s<r;s++)for(e=new Fe(ct(4)),n[s]=e.getUint32(0,!0),t=0;t<s;t++)if(n[s]===n[t]){s--;break}return n}var ya=64,nt=class{fp;h;seed;constructor(e,t,n,s=2){if(s>ya)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),o=xe(s);for(let a=0;a<o.length;a++)o[a]=i[a];o.length===0&&(o[0]=7),this.fp=o,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?oe(this.fp,e.fp):!1}};function pr(r,e){return Math.floor(Math.random()*(e-r))+r}var gr=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof nt))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 nt))throw new TypeError("Invalid Fingerprint");let t=pr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var ba={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Vu={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Hu=new globalThis.TextEncoder;function n0(r,e){let t=ba[e],n=Vu[e];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(e,n*t);return n}function s0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ba[e],s=Vu[e],i=r;for(;i.length>0;){let o=Hu.encodeInto(i,t);i=i.slice(o.read);for(let a=0;a<o.written;a++)s^=BigInt(t[a]),s=BigInt.asUintN(e,s*n)}return s}function wa(r,{size:e=32,utf8Buffer:t}={}){if(!ba[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 s0(r,e,t);r=Hu.encode(r)}return n0(r,e)}var i0=vi(pa(),1);var Nn={hash:r=>Number(wa(r,{size:32})),hashV:(r,e)=>o0(Nn.hash(r,e))};function o0(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),V(e,"base16")}var a0=500,Ln=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??Nn,this.seed=e.seed??pr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new gr(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new gr(this.bucketSize)),this.buckets[n].add(t)||this.buckets[s].add(t))return this.count++,!0;let i=[n,s],o=i[pr(0,i.length-1)];this.buckets[o]==null&&(this.buckets[o]=new gr(this.bucketSize));for(let a=0;a<a0;a++){let c=this.buckets[o].swap(t);if(c!=null&&(o=(o^c.hash())%this.filterSize,this.buckets[o]==null&&(this.buckets[o]=new gr(this.bucketSize)),this.buckets[o].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.has(t)??!1;if(s)return s;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=V(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.remove(t)??!1;if(s)return this.count--,s;let i=(n^t.hash())%this.filterSize,o=this.buckets[i]?.remove(t)??!1;return o&&this.count--,o}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},c0={1:.5,2:.84,4:.95,8:.98};function l0(r=.001){return r>.002?2:r>1e-5?4:8}function Fu(r,e=.001){let t=l0(e),n=c0[t],s=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),ya);return{filterSize:s,bucketSize:t,fingerprintSize:i}}var ni=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??Nn,this.seed=e.seed??pr(0,Math.pow(2,10)),this.filterSeries=[new Ln({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=V(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 Ln({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=V(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=V(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 xa(r,e=.001,t){return new ni({...Fu(r,e),...t??{}})}var si=class{filter;constructor(e,t){this.filter=xa(e,t)}has(e){return this.filter.has(e.toBytes())}add(e){this.filter.add(e.toBytes())}remove(e){this.filter.remove?.(e.toBytes())}};function va(r,e=.001){return new si(r,e)}var ii=class{reservations=new Rt;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(e={}){this.maxReservations=e.maxReservations??15,this.reservationClearInterval=e.reservationClearInterval??3e5,this.applyDefaultLimit=e.applyDefaultLimit!==!1,this.reservationTtl=e.reservationTtl??72e5,this.defaultDurationLimit=e.defaultDurationLimit??12e4,this.defaultDataLimit=e.defaultDataLimit??Ru}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let e=new Date().getTime();this.reservations.forEach((t,n)=>{t.expire.getTime()<e&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(e,t,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(e))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),i;return this.applyDefaultLimit&&(i=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(e,{addr:t,expire:s,limit:i}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(e){this.reservations.delete(e)}hasReservation(e){return this.reservations.has(e)}get(e){return this.reservations.get(e)}};var oi=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:e,peer:t,expiration:n}){this.relay=e,this.peer=t,this.expiration=n}marshal(){return Qs.encode({relay:this.relay.toBytes(),peer:this.peer.toBytes(),expiration:BigInt(this.expiration)})}equals(e){return!(!(e instanceof r)||!this.peer.equals(e.peer)||!this.relay.equals(e.relay)||this.expiration!==e.expiration)}};var Ku=r=>r.protoCodes().includes(290),p0={maxOutboundStopStreams:Tn},Ea=class extends $e{registrar;peerStore;addressManager;peerId;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.addressManager=e.addressManager,this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.connectionGater=e.connectionGater,this.started=!1,this.hopTimeout=t?.hopTimeout??Nu,this.maxInboundHopStreams=t.maxInboundHopStreams,this.maxOutboundHopStreams=t.maxOutboundHopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??p0.maxOutboundStopStreams,this.reservationStore=new ii(t.reservations),this.shutdownController=new AbortController,ze(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(Ye,e=>{this.onHop(e).catch(t=>{this.log.error(t)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnTransientConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(Ye),this.started=!1}async onHop({connection:e,stream:t}){this.log("received circuit v2 hop protocol stream from %p",e.remotePeer);let n=Ke(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),i=Zt(t);try{let o=await Promise.race([i.pb(Z).read(),n.promise]);if(o?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",o.type),await Promise.race([this.handleHopProtocol({connection:e,stream:i,request:o}),n.promise])}catch(o){this.log.error("error while handling hop",o),await i.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),t.abort(o)}finally{clearTimeout(s)}}async handleHopProtocol({stream:e,request:t,connection:n}){switch(this.log("received hop message"),t.type){case Z.Type.RESERVE:await this.handleReserve({stream:e,request:t,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:e,request:t,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",t.type,n.remotePeer),await e.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:e,request:t,connection:n}){let s=e.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),Ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(i.status!==q.OK){await s.write({type:Z.Type.STATUS,status:i.status});return}try{if(i.expire!=null){let o=i.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[ku]:{value:1,ttl:o}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(i.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(o){this.log.error("failed to send confirmation response to %p",n.remotePeer,o),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(e,t){let n=[];for(let i of this.addressManager.getAddresses())i.toString().includes("/p2p-circuit")||n.push(i.bytes);let s=await kn.seal(new oi({peer:e,relay:this.peerId,expiration:Number(t)}),this.peerId);return{addrs:n,expire:t,voucher:s.marshal()}}async handleConnect({stream:e,request:t,connection:n}){let s=e.pb(Z);if(Ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let i;try{if(t.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");t.peer.addrs.forEach(Ee),i=nn(t.peer.id)}catch(u){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,u),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(i)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",i,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,i)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,i),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.connectionManager.getConnections(i);if(o.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",i,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(i)?.limit,c=o[0],h=await this.stopHop({connection:c,request:{type:qe.Type.CONNECT,peer:{id:n.remotePeer.toBytes(),addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=e.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,i),Ou(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:e,request:t}){this.log("starting circuit relay v2 stop request to %s",e.remotePeer);let n=await e.newStream([dr],{maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),s=Zt(n),i=s.pb(qe);await i.write(t);let o;try{o=await i.read()}catch{this.log.error("error parsing stop message response from %p",e.remotePeer)}if(o==null){this.log.error("could not read response from %p",e.remotePeer),await n.close();return}if(o.status===q.OK)return this.log("stop request to %p was successful",e.remotePeer),s.unwrap();this.log("stop request failed with code %d",o.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function qu(r={}){return e=>new Ea(e,r)}function Sa(r){let{stream:e,remoteAddr:t,logger:n}=r,s=n.forComponent("libp2p:stream:converter"),i=!1,o=!1,a=e.close.bind(e);e.close=async d=>{await a(d),u(!0)};let c=e.abort.bind(e);e.abort=d=>{c(d),u(!0)};let h=e.sink.bind(e);e.sink=async d=>{try{await h(d)}catch(l){l.type!=="aborted"&&s.error("%s error in sink",t,l)}finally{o=!0,u()}};let f={log:s,sink:e.sink,source:async function*(){try{for await(let d of e.source)d instanceof Uint8Array?yield d:yield*d}finally{i=!0,u()}}(),remoteAddr:t,timeline:{open:Date.now(),close:void 0},close:e.close,abort:e.abort};function u(d){d===!0&&(i=!0,o=!0),i&&o&&f.timeline.close==null&&(f.timeline.close=Date.now())}return f}var g0=k("dns4"),m0=k("dns6"),y0=k("dnsaddr"),mr=ce(k("dns"),y0,g0,m0),li=ce(k("ip4"),k("ip6")),Wr=ce(O(li,k("tcp")),O(mr,k("tcp"))),ui=O(li,k("udp")),b0=O(ui,k("utp")),w0=O(ui,k("quic")),x0=O(ui,k("quic-v1")),Ba=ce(O(Wr,k("ws")),O(mr,k("ws"))),ai=ce(O(Ba,k("p2p")),Ba),_a=ce(O(Wr,k("wss")),O(mr,k("wss")),O(Wr,k("tls"),k("ws")),O(mr,k("tls"),k("ws"))),ci=ce(O(_a,k("p2p")),_a),Ia=ce(O(Wr,k("http")),O(li,k("http")),O(mr,k("http"))),ka=ce(O(Wr,k("https")),O(li,k("https")),O(mr,k("https"))),zu=O(ui,k("webrtc-direct"),k("certhash")),ju=ce(O(zu,k("p2p")),zu),$u=O(x0,k("webtransport"),k("certhash"),k("certhash")),Wu=ce(O($u,k("p2p")),$u),Yu=ce(O(ai,k("p2p-webrtc-star"),k("p2p")),O(ci,k("p2p-webrtc-star"),k("p2p")),O(ai,k("p2p-webrtc-star")),O(ci,k("p2p-webrtc-star"))),vv=ce(O(ai,k("p2p-websocket-star"),k("p2p")),O(ci,k("p2p-websocket-star"),k("p2p")),O(ai,k("p2p-websocket-star")),O(ci,k("p2p-websocket-star"))),Zu=ce(O(Ia,k("p2p-webrtc-direct"),k("p2p")),O(ka,k("p2p-webrtc-direct"),k("p2p")),O(Ia,k("p2p-webrtc-direct")),O(ka,k("p2p-webrtc-direct"))),yr=ce(Ba,_a,Ia,ka,Yu,Zu,Wr,b0,w0,mr,ju,Wu),Ev=ce(O(yr,k("p2p-stardust"),k("p2p")),O(yr,k("p2p-stardust"))),Xt=ce(O(yr,k("p2p")),Yu,Zu,ju,Wu,k("p2p")),Gu=ce(O(Xt,k("p2p-circuit"),Xt),O(Xt,k("p2p-circuit")),O(k("p2p-circuit"),Xt),O(yr,k("p2p-circuit")),O(k("p2p-circuit"),yr),k("p2p-circuit")),Xu=()=>ce(O(Gu,Xu),Gu),Nt=Xu(),Av=ce(O(Nt,Xt,Nt),O(Xt,Nt),O(Nt,Xt),Nt,Xt);var Sv=ce(O(Nt,k("webrtc"),k("p2p")),O(Nt,k("webrtc")),O(yr,k("webrtc"),k("p2p")),O(yr,k("webrtc")),k("webrtc"));function Ju(r){function e(t){let n;try{n=Ee(t)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return e}function O(...r){function e(t){if(t.length<r.length)return null;let n=t;return r.some(s=>(n=typeof s=="function"?s().partialMatch(t):s.partialMatch(t),Array.isArray(n)&&(t=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ju(e),partialMatch:e}}function ce(...r){function e(n){let s=null;return r.some(i=>{let o=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return o!=null?(s=o,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Ju(e),partialMatch:e}}function k(r){let e=r;function t(s){let i;try{i=Ee(s)}catch{return!1}let o=i.protoNames();return o.length===1&&o[0]===e}function n(s){return s.length===0?null:s[0]===e?s.slice(1):null}return{toString:function(){return e},matches:t,partialMatch:n}}var Jt=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var fi=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)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}},Yr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new fi(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 fi(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 Ta=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Qu(r={}){return E0(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 E0(r,e){e=e??{};let t=e.onEnd,n=new Yr,s,i,o,a=Ke(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((b,y)=>{i=w=>{i=null,n.push(w);try{b(r(n))}catch(g){y(g)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ke()})}},h=b=>i!=null?i(b):(n.push(b),s),f=b=>(n=new Yr,i!=null?i({error:b}):(n.push({error:b}),s)),u=b=>{if(o)return s;if(e?.objectMode!==!0&&b?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:b})},d=b=>o?s:(o=!0,b!=null?f(b):h({done:!0})),l=()=>(n=new Yr,d(),{done:!0}),p=b=>(d(b),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:l,throw:p,push:u,end:d,get readableLength(){return n.size},onEmpty:async b=>{let y=b?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let w,g;y!=null&&(w=new Promise((x,S)=>{g=()=>{S(new Ta)},y.addEventListener("abort",g)}));try{await Promise.race([a.promise,w])}finally{g!=null&&y!=null&&y?.removeEventListener("abort",g)}}},t==null)return s;let m=s;return s={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(b){return m.throw(b),t!=null&&(t(b),t=void 0),{done:!0}},return(){return m.return(),t!=null&&(t(),t=void 0),{done:!0}},push:u,end(b){return m.end(b),t!=null&&(t(b),t=void 0),s},get readableLength(){return m.readableLength},onEmpty:b=>m.onEmpty(b)},s}var Ra=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function hi(r,e,t,n){let s=new Ra(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(s):new Promise((i,o)=>{function a(){t?.removeEventListener("abort",f),r.removeEventListener(e,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=u=>{try{if(n?.filter?.(u)===!1)return}catch(d){a(),o(d);return}a(),i(u)},h=u=>{a(),o(u.detail)},f=()=>{a(),o(s)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var di=class{deferred;signal;constructor(e){this.signal=e,this.deferred=Ke(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Lt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function A0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var pi=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=A0(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,ze(1/0,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 Lt),this.cleanup())}async join(e={}){let t=new di(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 $r(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)})}};var gi=class extends $e{concurrency;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,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=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!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){t?.signal?.throwIfAborted();let n=new pi(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),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("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Lt)}),this.clear()}async onEmpty(e){this.size!==0&&await hi(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await hi(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await hi(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=Qu({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},s=c=>{c.detail!=null&&t.push(c.detail)},i=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new D("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",s),this.addEventListener("error",i),this.addEventListener("idle",o),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",s),this.removeEventListener("error",i),this.removeEventListener("idle",o),e?.signal?.removeEventListener("abort",a),n()}}};var Zr=class extends gi{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var mi=class extends $e{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=e.peerStore,this.registrar=e.registrar,this.connectionManager=e.connectionManager,this.randomWalk=e.randomWalk,this.filter=t.filter,this.discoveryController=new AbortController,ze(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(Ye,{filter:this.filter,onConnect:e=>{this.log("discovered relay %p",e),this.safeDispatchEvent("relay:discover",{detail:e})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,ze(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let e=await this.peerStore.all({filters:[n=>n.protocols.includes(Ye)],orders:[()=>Math.random()<.5?1:-1]});for(let n of e)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",e.length);let t=new Zr({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),t.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await $r(t.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,t.size),t.add(async()=>{let s=ei([this.discoveryController.signal,AbortSignal.timeout(5e3)]);ze(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await t.onIdle()}).catch(e=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",e)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var Na=class extends $e{connectionManager;relayStore;listeningAddrs;log;constructor(e){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=e.connectionManager,this.relayStore=e.relayStore,this.listeningAddrs=new Rt,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=e=>{this.#e(e.detail)};async listen(e){this.log("listen on %a",e);let t=e.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(t);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new D("Did not have reservation after making reservation","ERR_NO_RESERVATION");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(i=>Ee(i).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#e(e){let t=this.listeningAddrs.has(e);this.log("relay peer removed %p - had reservation",e,t),this.listeningAddrs.delete(e),t&&(this.log.trace("removing relay event listener for peer %p",e),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function ef(r){return new Na(r)}var I0=60*1e3*10,k0=60*1e3*5,T0=30*1e3,yi=class extends $e{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(e,t){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.peerStore=e.peerStore,this.events=e.events,this.reservations=new Rt,this.maxDiscoveredRelays=t?.discoverRelays??0,this.maxReservationQueueLength=t?.maxReservationQueueLength??100,this.reservationCompletionTimeout=t?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=ma(100),this.reserveQueue=new Zr({concurrency:t?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:e.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#t(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:e})=>{clearTimeout(e)}),this.reservations.clear(),this.started=!1}async addRelay(e,t){if(this.peerId.equals(e)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",e);return}if(this.reserveQueue.has(e)){this.log("potential relay peer %p is already in the reservation queue",e);return}if(this.relayFilter.has(e.toBytes())){this.log("potential relay peer %p has failed previously, not trying again",e);return}this.log("try to reserve relay slot with %p",e),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(e);if(s!=null){if(ha(s.reservation.expire)>I0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",e);return}clearTimeout(s.timeout),this.reservations.delete(e)}if(t==="discovered"&&[...this.reservations.values()].reduce((u,d)=>(d.type==="discovered"&&u++,u),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let i=AbortSignal.timeout(this.reservationCompletionTimeout);ze(1/0,i);let o=await this.connectionManager.openConnection(e,{signal:i});if(o.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#e(o,{signal:i});this.log("created reservation on relay peer %p",e);let c=ha(a.expire),h=Math.min(Math.max(c-k0,T0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(e,t).catch(u=>{this.log.error("could not refresh reservation to relay %p",e,u)})},h);this.reservations.set(e,{timeout:f,reservation:a,type:t}),await this.peerStore.merge(e,{tags:{[Tu]:{value:1,ttl:c}}}),await this.transportManager.listen([Ee(`/p2p/${e.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:e})}catch(s){this.log.error("could not reserve slot on %p after %dms",e,Date.now()-n,s);let i=this.reservations.get(e);i!=null&&clearTimeout(i.timeout),this.reservations.delete(e),this.relayFilter.add(e.toBytes())}},{peerId:e})}hasReservation(e){return this.reservations.has(e)}getReservation(e){return this.reservations.get(e)?.reservation}reservationCount(){return this.reservations.size}async#e(e,t){t.signal?.throwIfAborted(),this.log("requesting reservation from %p",e.remotePeer);let n=await e.newStream(Ye,t),i=Zt(n).pb(Z);await i.write({type:Z.Type.RESERVE},t);let o;try{o=await i.read(t)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(t)}if(o.status===q.OK&&o.reservation!=null){let c=!1,h=e.remoteAddr.bytes;for(let f of o.reservation.addrs)if(oe(h,f)){c=!0;break}return c||o.reservation.addrs.push(h),o.reservation}let a=`reservation failed with status ${o.status??"undefined"}`;throw this.log.error(a),new Error(a)}#t(e){let t=this.reservations.get(e);t!=null&&(this.log("connection to relay %p closed, removing reservation from local store",e),clearTimeout(t.timeout),this.reservations.delete(e),this.safeDispatchEvent("relay:removed",{detail:e}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var R0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(Ee)}catch{return!1}return!0},La={maxInboundStopStreams:Tn,maxOutboundStopStreams:Tn,stopTimeout:3e4},bi=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(e,t){this.log=e.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.logger=e.logger,this.peerId=e.peerId,this.upgrader=e.upgrader,this.addressManager=e.addressManager,this.connectionGater=e.connectionGater,this.maxInboundStopStreams=t.maxInboundStopStreams??La.maxInboundStopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??La.maxOutboundStopStreams,this.stopTimeout=t.stopTimeout??La.stopTimeout;let n=t.discoverRelays??0;n>0&&(this.discovery=new mi(e,{filter:t.discoveryFilter??va(Cu,Uu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(i=>{this.log.error("could not add discovered relay %p",s.detail,i)})})),this.reservationStore=new yi(e,t),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[Ga]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[ja](){return this.discovery!=null?["@libp2p/identify"]:[]}[Ka]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(dr,e=>{this.onStop(e).catch(t=>{this.log.error("error while handling STOP protocol",t),e.stream.abort(t)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),await za(this.discovery,this.reservationStore),this.started=!0}async stop(){await $a(this.discovery,this.reservationStore),await this.registrar.unhandle(dr),this.started=!1}async dial(e,t){if(e.protoCodes().filter(p=>p===290).length!==1){let p="Invalid circuit relay address";throw this.log.error(p,e),new D(p,ua)}let n=e.toString().split("/p2p-circuit"),s=Ee(n[0]),i=Ee(n[n.length-1]),o=s.getPeerId(),a=i.getPeerId();if(o==null||a==null){let p=`Circuit relay dial to ${e.toString()} failed as address did not have peer ids`;throw this.log.error(p),new D(p,ua)}let c=Dt(o),h=Dt(a),f=!1,d=this.connectionManager.getConnections(c)[0];d==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),t.onProgress?.(new Jt("circuit-relay:open-connection")),d=await this.connectionManager.openConnection(c,t),f=!0):t.onProgress?.(new Jt("circuit-relay:reuse-connection"));let l;try{return t.onProgress?.(new Jt("circuit-relay:open-hop-stream")),l=await d.newStream(Ye),await this.connectV2({stream:l,connection:d,destinationPeer:h,destinationAddr:i,relayAddr:s,ma:e,disconnectOnFailure:f,onProgress:t.onProgress})}catch(p){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,p),l?.abort(p),f&&await d.close(),p}}async connectV2({stream:e,connection:t,destinationPeer:n,destinationAddr:s,relayAddr:i,ma:o,disconnectOnFailure:a,onProgress:c}){try{let h=Zt(e),f=h.pb(Z);c?.(new Jt("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toBytes(),addrs:[Ee(s).bytes]}}),c?.(new Jt("circuit-relay:read-connect-response"));let u=await f.read();if(u.status!==q.OK)throw new D(`failed to connect via relay with status ${u?.status?.toString()??"undefined"}`,Lu);let d=Sa({stream:h.unwrap(),remoteAddr:o,localAddr:i.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger});return this.log("new outbound relayed connection %a",d.remoteAddr),await this.upgrader.upgradeOutbound(d,{transient:u.limit!=null,onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${t.remotePeer.toString()} failed`,h),a&&await t.close(),h}}createListener(e){return ef({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(e){return e=Array.isArray(e)?e:[e],e.filter(t=>Nt.matches(t))}dialFilter(e){return this.listenFilter(e)}async onStop({connection:e,stream:t}){if(!this.reservationStore.hasReservation(e.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([e.remoteAddr.encapsulate("/p2p-circuit")])}catch(f){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",f)}let n=AbortSignal.timeout(this.stopTimeout),s=Zt(t).pb(qe),i=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",e.remotePeer,i.type),i?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}if(i.type!==qe.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await t.close();return}if(!R0(i)){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}let o=nn(i.peer.id);if(await this.connectionGater.denyInboundRelayedConnection?.(e.remotePeer,o)===!0){this.log.error("connection gater denied inbound relayed connection from %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await t.close();return}this.log.trace("sending success response to %p",e.remotePeer),await s.write({type:qe.Type.STATUS,status:q.OK},{signal:n});let a=e.remoteAddr.encapsulate(`/p2p-circuit/p2p/${o.toString()}`),c=this.addressManager.getAddresses()[0],h=Sa({stream:s.unwrap().unwrap(),remoteAddr:a,localAddr:c,logger:this.logger});this.log("new inbound relayed connection %a",h.remoteAddr),await this.upgrader.upgradeInbound(h,{transient:i.limit!=null}),this.log("%s connection %a upgraded","inbound",h.remoteAddr)}};function tf(r={}){return e=>new bi(e,r)}return mf(N0);})();
8
8
  /*! Bundled license information:
9
9
 
10
10
  pvtsutils/build/index.js: