@libp2p/webrtc 3.1.7 → 3.1.8-a6be8f0f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -26,7 +26,7 @@ if (cid) {
26
26
  // Make sure to use cid instead of value
27
27
  doSomethingWithCID(cid)
28
28
  }
29
- `});var G1=ye(()=>{z1();_s();Ur();X0();ji()});var J0,t_,W1=ye(()=>{b1();w1();v1();E1();S1();V0();C1();z0();A1();B1();U1();K1();M1();V1();G1();J0={...P0,...U0,...O0,...F0,...K0,...M0,...q0,...H0,...G0,...W0},t_={...Q0,...j0}});function oi(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var Ns=ye(()=>{});function Ps(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?oi(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var eu=ye(()=>{Ns()});function Y1(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var $1,tu,M3,Us,ru=ye(()=>{W1();eu();$1=Y1("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),tu=Y1("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Ps(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),M3={utf8:$1,"utf-8":$1,hex:J0.base16,latin1:tu,ascii:tu,binary:tu,...J0},Us=M3});var Z1={};fe(Z1,{toString:()=>V3});function V3(e,t="utf8"){let r=Us[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var X1=ye(()=>{ru()});var Q1={};fe(Q1,{fromString:()=>q3});function q3(e,t="utf8"){let r=Us[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?oi(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var j1=ye(()=>{ru();Ns()});var J1={};fe(J1,{concat:()=>H3});function H3(e,t){t||(t=e.reduce((i,o)=>i+o.length,0));let r=Ps(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return oi(r)}var e2=ye(()=>{eu();Ns()});var iu=Y((p_,s2)=>{"use strict";var t2=jp(),si=u1(),{names:eo}=l1(),{toString:Os}=(X1(),ro(Z1)),{fromString:z3}=(j1(),ro(Q1)),{concat:G3}=(e2(),ro(J1)),ai={};for(let e in eo){let t=e;ai[eo[t]]=t}Object.freeze(ai);function W3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Os(e,"base16")}function $3(e){return z3(e,"base16")}function Y3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Os(t2.encode("base58btc",e)).slice(1)}function Z3(e){let t=e instanceof Uint8Array?Os(e):e;return t2.decode("z"+t)}function r2(e){if(!(e instanceof Uint8Array))throw new Error("multihash must be a Uint8Array");if(e.length<2)throw new Error("multihash too short. must be > 2 bytes.");let t=si.decode(e);if(!i2(t))throw new Error(`multihash unknown function code: 0x${t.toString(16)}`);e=e.slice(si.decode.bytes);let r=si.decode(e);if(r<0)throw new Error(`multihash invalid length: ${r}`);if(e=e.slice(si.decode.bytes),e.length!==r)throw new Error(`multihash length inconsistent: 0x${Os(e,"base16")}`);return{code:t,name:ai[t],length:r,digest:e}}function X3(e,t,r){if(!e||t===void 0)throw new Error("multihash encode requires at least two args: digest, code");let n=n2(t);if(!(e instanceof Uint8Array))throw new Error("digest should be a Uint8Array");if(r==null&&(r=e.length),r&&e.length!==r)throw new Error("digest length should be equal to specified length.");let i=si.encode(n),o=si.encode(r);return G3([i,o,e],i.length+o.length+e.length)}function n2(e){let t=e;if(typeof e=="string"){if(eo[e]===void 0)throw new Error(`Unrecognized hash function named: ${e}`);t=eo[e]}if(typeof t!="number")throw new Error(`Hash function code should be a number. Got: ${t}`);if(ai[t]===void 0&&!nu(t))throw new Error(`Unrecognized function code: ${t}`);return t}function nu(e){return e>0&&e<16}function i2(e){return!!(nu(e)||ai[e])}function o2(e){r2(e)}function Q3(e){return o2(e),e.subarray(0,2)}s2.exports={names:eo,codes:ai,toHexString:W3,fromHexString:$3,toB58String:Y3,fromB58String:Z3,decode:r2,encode:X3,coerceCode:n2,isAppCode:nu,validate:o2,prefix:Q3,isValidCode:i2}});var u4={};fe(u4,{webRTC:()=>c4,webRTCDirect:()=>a4});var X=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}},ui=class e extends Error{code;constructor(t="Unexpected Peer"){super(t),this.code=e.code}static code="ERR_UNEXPECTED_PEER"},Kr=class e extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=e.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var no=Symbol.for("@libp2p/transport");var bu;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(bu||(bu={}));var ct=ke(Cu(),1);var Ws={};fe(Ws,{base32:()=>St,base32hex:()=>$2,base32hexpad:()=>Z2,base32hexpadupper:()=>X2,base32hexupper:()=>Y2,base32pad:()=>G2,base32padupper:()=>W2,base32upper:()=>z2,base32z:()=>Q2});function K2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=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,g=0,m=0,v=d.length;m!==v&&d[m]===0;)m++,p++;for(var x=(v-m)*f+1>>>0,C=new Uint8Array(x);m!==v;){for(var E=d[m],b=0,D=x-1;(E!==0||b<g)&&D!==-1;D--,b++)E+=256*C[D]>>>0,C[D]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");g=b,m++}for(var B=x-g;B!==x&&C[B]===0;)B++;for(var R=c.repeat(p);B<x;++B)R+=e.charAt(C[B]);return R}function h(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 g=0,m=0;d[p]===c;)g++,p++;for(var v=(d.length-p)*u+1>>>0,x=new Uint8Array(v);d[p];){var C=r[d.charCodeAt(p)];if(C===255)return;for(var E=0,b=v-1;(C!==0||E<m)&&b!==-1;b--,E++)C+=a*x[b]>>>0,x[b]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");m=E,p++}if(d[p]!==" "){for(var D=v-m;D!==v&&x[D]===0;)D++;for(var B=new Uint8Array(g+(v-D)),R=g;D!==v;)B[R++]=x[D++];return B}}}function y(d){var p=h(d);if(p)return p;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:h,decode:y}}var M2=K2,V2=M2,Au=V2;var g4=new Uint8Array(0);var Du=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},Jt=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var Bu=e=>new TextEncoder().encode(e),Iu=e=>new TextDecoder().decode(e);var qs=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Hs=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return _u(this,t)}},zs=class{constructor(t){this.decoders=t}or(t){return _u(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},_u=(e,t)=>new zs({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Gs=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new qs(t,r,n),this.decoder=new Hs(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},bn=({name:e,prefix:t,encode:r,decode:n})=>new Gs(e,t,r,n),mr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=Au(r,t);return bn({prefix:e,name:t,encode:n,decode:o=>Jt(i(o))})},q2=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},H2=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Re=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>bn({prefix:t,name:e,encode(i){return H2(i,n,r)},decode(i){return q2(i,n,r,e)}});var St=Re({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),z2=Re({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),G2=Re({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),W2=Re({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$2=Re({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Y2=Re({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Z2=Re({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),X2=Re({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Q2=Re({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $s={};fe($s,{base58btc:()=>Ne,base58flickr:()=>j2});var Ne=mr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),j2=mr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ys={};fe(Ys,{base64:()=>wn,base64pad:()=>J2,base64url:()=>ey,base64urlpad:()=>ty});var wn=Re({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),J2=Re({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ey=Re({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ty=Re({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ct.default.formatters.b=e=>e==null?"undefined":Ne.baseEncode(e);ct.default.formatters.t=e=>e==null?"undefined":St.baseEncode(e);ct.default.formatters.m=e=>e==null?"undefined":wn.baseEncode(e);ct.default.formatters.p=e=>e==null?"undefined":e.toString();ct.default.formatters.c=e=>e==null?"undefined":e.toString();ct.default.formatters.k=e=>e==null?"undefined":e.toString();ct.default.formatters.a=e=>e==null?"undefined":e.toString();function ry(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function Ye(e){let t=ry(`${e}:trace`);return ct.default.enabled(`${e}:trace`)&&ct.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,ct.default)(`${e}:trace`)),Object.assign((0,ct.default)(e),{error:(0,ct.default)(`${e}:error`),trace:t})}var ku=Symbol.for("@libp2p/peer-id");var Zs={};fe(Zs,{identity:()=>ny});var ny=bn({prefix:"\0",name:"identity",encode:e=>Iu(e),decode:e=>Bu(e)});var Xs={};fe(Xs,{base2:()=>iy});var iy=Re({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Qs={};fe(Qs,{base8:()=>oy});var oy=Re({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var js={};fe(js,{base10:()=>sy});var sy=mr({prefix:"9",name:"base10",alphabet:"0123456789"});var Js={};fe(Js,{base16:()=>ay,base16upper:()=>cy});var ay=Re({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),cy=Re({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ea={};fe(ea,{base36:()=>uy,base36upper:()=>fy});var uy=mr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),fy=mr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ta={};fe(ta,{base256emoji:()=>yy});var Ru=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}"),ly=Ru.reduce((e,t,r)=>(e[r]=t,e),[]),hy=Ru.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function dy(e){return e.reduce((t,r)=>(t+=ly[r],t),"")}function py(e){let t=[];for(let r of e){let n=hy[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var yy=bn({prefix:"\u{1F680}",name:"base256emoji",encode:dy,decode:py});var oa={};fe(oa,{sha256:()=>Ze,sha512:()=>Ny});var gy=Pu,Lu=128,my=127,xy=~my,by=Math.pow(2,31);function Pu(e,t,r){t=t||[],r=r||0;for(var n=r;e>=by;)t[r++]=e&255|Lu,e/=128;for(;e&xy;)t[r++]=e&255|Lu,e>>>=7;return t[r]=e|0,Pu.bytes=r-n+1,t}var wy=ra,vy=128,Nu=127;function ra(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw ra.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&Nu)<<i:(s&Nu)*Math.pow(2,i),i+=7}while(s>=vy);return ra.bytes=o-n,r}var Ey=Math.pow(2,7),Sy=Math.pow(2,14),Cy=Math.pow(2,21),Ay=Math.pow(2,28),Dy=Math.pow(2,35),By=Math.pow(2,42),Iy=Math.pow(2,49),Ty=Math.pow(2,56),_y=Math.pow(2,63),ky=function(e){return e<Ey?1:e<Sy?2:e<Cy?3:e<Ay?4:e<Dy?5:e<By?6:e<Iy?7:e<Ty?8:e<_y?9:10},Ry={encode:gy,decode:wy,encodingLength:ky},Ly=Ry,fi=Ly;var li=(e,t=0)=>[fi.decode(e,t),fi.decode.bytes],vn=(e,t,r=0)=>(fi.encode(e,t,r),t),En=e=>fi.encodingLength(e);var Kt=(e,t)=>{let r=t.byteLength,n=En(e),i=n+En(r),o=new Uint8Array(i+r);return vn(e,o,0),vn(r,o,n),o.set(t,i),new Sn(e,r,t,o)},Vr=e=>{let t=Jt(e),[r,n]=li(t),[i,o]=li(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Sn(r,i,s,t)},Uu=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Du(e.bytes,r.bytes)}},Sn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var ia=({name:e,code:t,encode:r})=>new na(e,t,r),na=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Kt(this.code,r):r.then(n=>Kt(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Fu=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Ze=ia({name:"sha2-256",code:18,encode:Fu("SHA-256")}),Ny=ia({name:"sha2-512",code:19,encode:Fu("SHA-512")});var sa={};fe(sa,{identity:()=>xr});var Ku=0,Py="identity",Mu=Jt,Uy=e=>Kt(Ku,Mu(e)),xr={code:Ku,name:Py,encode:Mu,digest:Uy};var q4=new TextEncoder,H4=new TextDecoder;var Vu=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return My(r,aa(e),t||Ne.encoder);default:return Vy(r,aa(e),t||St.encoder)}};var qu=new WeakMap,aa=e=>{let t=qu.get(e);if(t==null){let r=new Map;return qu.set(e,r),r}return t},Ct=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==hi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==qy)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Kt(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Uu(t.multihash,n.multihash)}toString(t){return Vu(this,t)}toJSON(){return{"/":Vu(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new e(n,i,o,s||Hu(n,i,o.bytes))}else if(r[Hy]===!0){let{version:n,multihash:i,code:o}=r,s=Vr(i);return e.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==hi)throw new Error(`Version 0 CID must use dag-pb (code: ${hi}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Hu(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,hi,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=Jt(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new Sn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,h]=li(t.subarray(r));return r+=h,l},i=n(),o=hi;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=Ky(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return aa(o).set(n,t),o}},Ky=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ne;return[Ne.prefix,r.decode(`${Ne.prefix}${e}`)]}case Ne.prefix:{let r=t||Ne;return[Ne.prefix,r.decode(e)]}case St.prefix:{let r=t||St;return[St.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},My=(e,t,r)=>{let{prefix:n}=r;if(n!==Ne.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},Vy=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},hi=112,qy=18,Hu=(e,t,r)=>{let n=En(e),i=n+En(t),o=new Uint8Array(i+r.byteLength);return vn(e,o,0),vn(t,o,n),o.set(r,i),o},Hy=Symbol.for("@ipld/js-cid/CID");var Mt={...Zs,...Xs,...Qs,...js,...Js,...Ws,...ea,...$s,...Ys,...ta},J4={...oa,...sa};function Oe(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var zy=Symbol.for("nodejs.util.inspect.custom"),zu=Object.values(Mt).map(e=>e.decoder).reduce((e,t)=>e.or(t),Mt.identity.decoder),Gu=114,ca=36,ua=37,di=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ku]=!0;toString(){return this.string==null&&(this.string=Ne.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ct.createV1(Gu,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Oe(this.multihash.bytes,t);if(typeof t=="string")return pi(t).equals(this);if(t?.multihash?.bytes!=null)return Oe(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[zy](){return`PeerId(${this.toString()})`}},Cn=class extends di{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},An=class extends di{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},Dn=class extends di{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function pi(e,t){if(t=t??zu,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Vr(Ne.decode(`z${e}`));return e.startsWith("12D")?new An({multihash:r}):e.startsWith("16U")?new Dn({multihash:r}):new Cn({multihash:r})}return Gy(zu.decode(e))}function Gy(e){try{let t=Vr(e);if(t.code===xr.code){if(t.digest.length===ca)return new An({multihash:t});if(t.digest.length===ua)return new Dn({multihash:t})}if(t.code===Ze.code)return new Cn({multihash:t})}catch{return Wy(Ct.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function Wy(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Gu)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===Ze.code)return new Cn({multihash:e.multihash});if(t.code===xr.code){if(t.digest.length===ca)return new An({multihash:e.multihash});if(t.digest.length===ua)return new Dn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function fa(e,t){return e.length===ca?new An({multihash:Kt(xr.code,e),privateKey:t}):e.length===ua?new Dn({multihash:Kt(xr.code,e),privateKey:t}):new Cn({multihash:await Ze.digest(e),publicKey:e,privateKey:t})}function br(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function er(e=0){return globalThis.Buffer?.alloc!=null?br(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function dt(e=0){return globalThis.Buffer?.allocUnsafe!=null?br(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function $u(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Wu=$u("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),la=$u("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=dt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Yy={utf8:Wu,"utf-8":Wu,hex:Mt.base16,latin1:la,ascii:la,binary:la,...Mt},ao=Yy;function ae(e,t="utf8"){let r=ao[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var Zy=Math.pow(2,7),Xy=Math.pow(2,14),Qy=Math.pow(2,21),ha=Math.pow(2,28),da=Math.pow(2,35),pa=Math.pow(2,42),ya=Math.pow(2,49),ge=128,et=127;function it(e){if(e<Zy)return 1;if(e<Xy)return 2;if(e<Qy)return 3;if(e<ha)return 4;if(e<da)return 5;if(e<pa)return 6;if(e<ya)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function jy(e,t,r=0){switch(it(e)){case 8:t[r++]=e&255|ge,e/=128;case 7:t[r++]=e&255|ge,e/=128;case 6:t[r++]=e&255|ge,e/=128;case 5:t[r++]=e&255|ge,e/=128;case 4:t[r++]=e&255|ge,e>>>=7;case 3:t[r++]=e&255|ge,e>>>=7;case 2:t[r++]=e&255|ge,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Jy(e,t,r=0){switch(it(e)){case 8:t.set(r++,e&255|ge),e/=128;case 7:t.set(r++,e&255|ge),e/=128;case 6:t.set(r++,e&255|ge),e/=128;case 5:t.set(r++,e&255|ge),e/=128;case 4:t.set(r++,e&255|ge),e>>>=7;case 3:t.set(r++,e&255|ge),e>>>=7;case 2:t.set(r++,e&255|ge),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function eg(e,t){let r=e[t],n=0;if(n+=r&et,r<ge||(r=e[t+1],n+=(r&et)<<7,r<ge)||(r=e[t+2],n+=(r&et)<<14,r<ge)||(r=e[t+3],n+=(r&et)<<21,r<ge)||(r=e[t+4],n+=(r&et)*ha,r<ge)||(r=e[t+5],n+=(r&et)*da,r<ge)||(r=e[t+6],n+=(r&et)*pa,r<ge)||(r=e[t+7],n+=(r&et)*ya,r<ge))return n;throw new RangeError("Could not decode varint")}function tg(e,t){let r=e.get(t),n=0;if(n+=r&et,r<ge||(r=e.get(t+1),n+=(r&et)<<7,r<ge)||(r=e.get(t+2),n+=(r&et)<<14,r<ge)||(r=e.get(t+3),n+=(r&et)<<21,r<ge)||(r=e.get(t+4),n+=(r&et)*ha,r<ge)||(r=e.get(t+5),n+=(r&et)*da,r<ge)||(r=e.get(t+6),n+=(r&et)*pa,r<ge)||(r=e.get(t+7),n+=(r&et)*ya,r<ge))return n;throw new RangeError("Could not decode varint")}function wr(e,t,r=0){return t==null&&(t=dt(it(e))),t instanceof Uint8Array?jy(e,t,r):Jy(e,t,r)}function At(e,t=0){return e instanceof Uint8Array?eg(e,t):tg(e,t)}function me(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=dt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return br(r)}var co=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let h=Number.parseInt(l,t);if(!Number.isNaN(h))return h});if(f===void 0)break;if(o*=t,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Yu=45,rg=15,Bn=new co;function ga(e){if(!(e.length>rg))return Bn.new(e).parseWith(()=>Bn.readIPv4Addr())}function ma(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yu))return Bn.new(e).parseWith(()=>Bn.readIPv6Addr())}function uo(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yu))return Bn.new(e).parseWith(()=>Bn.readIPAddr())}var kE=parseInt("0xFFFF",16),RE=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Be(e,t="utf8"){let r=ao[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?br(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Qu(e){return!!ga(e)}function ju(e){return!!ma(e)}function fo(e){return!!uo(e)}var Ju=Qu,ag=ju,xa=function(e){let t=0;if(e=e.toString().trim(),Ju(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(ag(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Ju(r[n]),s;o&&(s=xa(r[n]),r[n]=ae(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,ae(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},ef=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var In={},ba={},ug=[[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"],[777,-1,"memory"]];ug.forEach(e=>{let t=fg(...e);ba[t.code]=t,In[t.name]=t});function fg(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function de(e){if(typeof e=="number"){if(ba[e]!=null)return ba[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(In[e]!=null)return In[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var xS=de("ip4"),bS=de("ip6"),wS=de("ipcidr");function va(e,t){switch(de(e).code){case 4:case 41:return hg(t);case 42:return nf(t);case 6:case 273:case 33:case 132:return sf(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return nf(t);case 421:return gg(t);case 444:return of(t);case 445:return of(t);case 466:return yg(t);default:return ae(t,"base16")}}function Ea(e,t){switch(de(e).code){case 4:return tf(t);case 41:return tf(t);case 42:return rf(t);case 6:case 273:case 33:case 132:return Sa(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return rf(t);case 421:return dg(t);case 444:return mg(t);case 445:return xg(t);case 466:return pg(t);default:return Be(t,"base16")}}var wa=Object.values(Mt).map(e=>e.decoder),lg=function(){let e=wa[0].or(wa[1]);return wa.slice(2).forEach(t=>e=e.or(t)),e}();function tf(e){if(!fo(e))throw new Error("invalid ip address");return xa(e)}function hg(e){let t=ef(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!fo(t))throw new Error("invalid ip address");return t}function Sa(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function sf(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function rf(e){let t=Be(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function nf(e){let t=At(e);if(e=e.slice(it(t)),e.length!==t)throw new Error("inconsistent lengths");return ae(e)}function dg(e){let t;e[0]==="Q"||e[0]==="1"?t=Vr(Ne.decode(`z${e}`)).bytes:t=Ct.parse(e).multihash.bytes;let r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function pg(e){let t=lg.decode(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function yg(e){let t=At(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+ae(r,"base64url")}function gg(e){let t=At(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return ae(r,"base58btc")}function mg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=St.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Sa(n);return me([r,i],r.length+i.length)}function xg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=St.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Sa(n);return me([r,i],r.length+i.length)}function of(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=ae(t,"base32"),i=sf(r);return`${n}:${i}`}function af(e){e=Ca(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let s=i[o],a=de(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw uf("invalid address: "+e);if(a.path===!0){n=Ca(i.slice(o).join("/")),t.push([a.code,Ea(a.code,n)]),r.push([a.code,n]);break}let c=Ea(a.code,i[o]);t.push([a.code,c]),r.push([a.code,va(a.code,c)])}return{string:cf(r),bytes:Da(t),tuples:t,stringTuples:r,path:n}}function Aa(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=At(e,i),s=it(o),a=de(o),c=bg(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw uf("Invalid address Uint8Array: "+ae(e,"base16"));t.push([o,u]);let f=va(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:cf(r),tuples:t,stringTuples:r,path:n}}function cf(e){let t=[];return e.map(r=>{let n=de(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Ca(t.join("/"))}function Da(e){return me(e.map(t=>{let r=de(t[0]),n=Uint8Array.from(wr(r.code));return t.length>1&&t[1]!=null&&(n=me([n,t[1]])),n}))}function bg(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=At(t instanceof Uint8Array?t:Uint8Array.from(t));return r+it(r)}}function Ca(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function uf(e){return new Error("Error parsing address: "+e)}var wg=Symbol.for("nodejs.util.inspect.custom"),vg=[de("dns").code,de("dns4").code,de("dns6").code,de("dnsaddr").code],Eg=new Map,ff=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Sg(e){return!!e?.[ff]}var Ba=class e{bytes;#e;#t;#r;#n;[ff]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Aa(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=af(t)}else if(Sg(t))r=Aa(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=de("tcp"),a=de("udp"),c=de("ip4"),u=de("ip6"),f=de("dns6"),l=de("ip6zone");for(let[y,d]of this.stringTuples())y===l.code&&(o=`%${d??""}`),vg.includes(y)&&(r=s.name,i=443,n=`${d??""}${o}`,t=y===f.code?6:4),(y===s.code||y===a.code)&&(r=de(y).name,i=parseInt(d??"")),(y===c.code||y===u.code)&&(r=de(y).name,n=`${d??""}${o}`,t=y===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#t.map(([t])=>Object.assign({},de(t)))}protoCodes(){return this.#t.map(([t])=>t)}protoNames(){return this.#t.map(([t])=>de(t).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Da(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===In.p2p.code&&t.push([n,i]),n===In["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ae(Ne.decode(`z${n}`),"base58btc"):ae(Ct.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Oe(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Eg.get(r.name);if(n==null)throw new X(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[wg](){return`Multiaddr(${this.#e})`}};function tr(e){return new Ba(e)}var ut;(function(e){e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_DATA_CHANNEL="ERR_DATA_CHANNEL",e.ERR_CONNECTION_CLOSED="ERR_CONNECTION_CLOSED",e.ERR_HASH_NOT_SUPPORTED="ERR_HASH_NOT_SUPPORTED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_INVALID_FINGERPRINT="ERR_INVALID_FINGERPRINT",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS"})(ut||(ut={}));var vr=class extends X{constructor(t,r){super(`WebRTC transport error: ${t}`,r??""),this.name="WebRTCTransportError"}};var Ia=class extends vr{constructor(t,r){super(`[stream: ${t}] data channel error: ${r}`,ut.ERR_DATA_CHANNEL),this.name="WebRTC/DataChannelError"}};function Na(e,t){return new Ia(e,t)}var Ta=class extends vr{constructor(t){super(`There was a problem with the Multiaddr which was passed in: ${t}`,ut.ERR_INVALID_MULTIADDR),this.name="WebRTC/InappropriateMultiaddrError"}};function lo(e){return new Ta(e)}var _a=class extends vr{constructor(t){super(`There was a problem with a provided argument: ${t}`,ut.ERR_INVALID_PARAMETERS),this.name="WebRTC/InvalidArgumentError"}};function gi(e){return new _a(e)}var ka=class extends vr{constructor(t,r){super(`Invalid fingerprint "${t}" within ${r}`,ut.ERR_INVALID_FINGERPRINT),this.name="WebRTC/InvalidFingerprintError"}};function Pa(e,t){return new ka(e,t)}var Ra=class extends vr{constructor(t){super(`A method (${t}) was called though it has been intentionally left unimplemented.`,ut.ERR_NOT_IMPLEMENTED),this.name="WebRTC/UnimplementedError"}};function lf(e){return new Ra(e)}var La=class extends vr{constructor(t){super(`unsupported hash algorithm: ${t}`,ut.ERR_HASH_NOT_SUPPORTED),this.name="WebRTC/UnsupportedHashAlgorithmError"}};function hf(e){return new La(e)}var df=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,o;n<i;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Cg=function(){function e(t,r,n){this.name=t,this.version=r,this.os=n,this.type="browser"}return e}();var Ag=function(){function e(t){this.version=t,this.type="node",this.name="node",this.os=process.platform}return e}();var Dg=function(){function e(t,r,n,i){this.name=t,this.version=r,this.os=n,this.bot=i,this.type="bot-device"}return e}();var Bg=function(){function e(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return e}();var Ig=function(){function e(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return e}();var Tg=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,_g=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,pf=3,kg=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",Tg]],yf=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function mf(e){return e?gf(e):typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Ig:typeof navigator<"u"?gf(navigator.userAgent):Ng()}function Rg(e){return e!==""&&kg.reduce(function(t,r){var n=r[0],i=r[1];if(t)return t;var o=i.exec(e);return!!o&&[n,o]},!1)}function gf(e){var t=Rg(e);if(!t)return null;var r=t[0],n=t[1];if(r==="searchbot")return new Bg;var i=n[1]&&n[1].split(".").join("_").split("_").slice(0,3);i?i.length<pf&&(i=df(df([],i,!0),Pg(pf-i.length),!0)):i=[];var o=i.join("."),s=Lg(e),a=_g.exec(e);return a&&a[1]?new Dg(r,o,s,a[1]):new Cg(r,o,s)}function Lg(e){for(var t=0,r=yf.length;t<r;t++){var n=yf[t],i=n[0],o=n[1],s=o.exec(e);if(s)return i}return null}function Ng(){var e=typeof process<"u"&&process.version;return e?new Ag(process.version.slice(1)):null}function Pg(e){for(var t=[],r=0;r<e;r++)t.push("0");return t}var xf=mf(),mi=xf!=null&&xf.name==="firefox",ho=async function*(){},po=async e=>{};var bf=Ye("libp2p:webrtc:connection"),Hr=class{peerConnection;remoteAddr;timeline;metrics;source=ho();sink=po;constructor(t){this.remoteAddr=t.remoteAddr,this.timeline=t.timeline,this.peerConnection=t.peerConnection,this.peerConnection.onconnectionstatechange=()=>{(this.peerConnection.connectionState==="closed"||this.peerConnection.connectionState==="disconnected"||this.peerConnection.connectionState==="failed")&&(this.timeline.close=Date.now())}}async close(t){bf.trace("closing connection"),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({close:!0})}abort(t){bf.error("closing connection due to error",t),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({abort:!0})}};var Tn=globalThis.RTCPeerConnection,Ua=globalThis.RTCSessionDescription,wf=globalThis.RTCIceCandidate;var xi=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function vf(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function yo(e,t,r){let n=r??{},i=vf(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new xi(f,l)}let u=new Promise((f,l)=>{s=()=>{let{abortMessage:h,abortCode:y}=n;l(new xi(h,y))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function Ug(e,t,r){return n=>e(yo(n,t,r))}function Oa(e,t,r){return{sink:Ug(e.sink,t,{...r,onAbort:void 0}),source:yo(e.source,t,r)}}function pt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var go=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},_n=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new go(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new go(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Fa=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Vt(e={}){return Og(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function Og(e,t){t=t??{};let r=t.onEnd,n=new _n,i,o,s,a=pt(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((g,m)=>{o=v=>{o=null,n.push(v);try{g(e(n))}catch(x){m(x)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=pt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new _n,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(s)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},h=g=>s?i:(s=!0,g!=null?f(g):u({done:!0})),y=()=>(n=new _n,h(),{done:!0}),d=g=>(h(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:d,push:l,end:h,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let v,x;m!=null&&(v=new Promise((C,E)=>{x=()=>{E(new Fa)},m.addEventListener("abort",x)}));try{await Promise.race([a.promise,v])}finally{x!=null&&m!=null&&m?.removeEventListener("abort",x)}}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(g){return p.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return p.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return p.readableLength}},i}var Sf=Symbol.for("@achingbrain/uint8arraylist");function Ef(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function mo(e){return!!e?.[Sf]}var Xe=class e{constructor(...t){Object.defineProperty(this,Sf,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(mo(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(mo(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Ef(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Ef(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(mo(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return me(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:me(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!mo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let h=u;h>=0;h--){let y=this.get(l+h);if(n[h]!==y){f=Math.max(1,h-a[y]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Oe(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};var xo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ka=class extends xo{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function Cf(e){let t=Vt();e.sink(t).catch(o=>{t.end(o)}),e.sink=async o=>{for await(let s of o)t.push(s);t.end()};let r=e.source;e.source[Symbol.iterator]!=null?r=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(r=e.source[Symbol.asyncIterator]());let n=new Xe;return{read:async(o,s)=>{s?.signal?.throwIfAborted();let a,c=new Promise((u,f)=>{a=()=>{f(new Ka("Read aborted"))},s?.signal?.addEventListener("abort",a)});try{if(o==null){let{done:f,value:l}=await Promise.race([r.next(),c]);return f===!0?new Xe:l}for(;n.byteLength<o;){let{value:f,done:l}=await Promise.race([r.next(),c]);if(l===!0)throw new xo("unexpected end of input","ERR_UNEXPECTED_EOF");n.append(f)}let u=n.sublist(0,o);return n.consume(o),u}finally{a!=null&&s?.signal?.removeEventListener("abort",a)}},write:async(o,s)=>{s?.signal?.throwIfAborted(),o instanceof Uint8Array?t.push(o):t.push(o.subarray()),await t.onEmpty(s)},unwrap:()=>{let o=e.source;return e.source=async function*(){yield*n,yield*o}(),e}}}function bo(e){return e[Symbol.asyncIterator]!=null}var wo=e=>{let t=it(e),r=dt(t);return wr(e,r),wo.bytes=t,r};wo.bytes=0;function zr(e,t){t=t??{};let r=t.lengthEncoder??wo;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return bo(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}zr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??wo;return new Xe(r(e.byteLength),e)};var kn=ke(Bf(),1);var Kg=8,Mg=1024*1024*4,Gr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Gr||(Gr={}));var Ma=e=>{let t=At(e);return Ma.bytes=it(t),t};Ma.bytes=0;function Wr(e,t){let r=new Xe,n=Gr.LENGTH,i=-1,o=t?.lengthDecoder??Ma,s=t?.maxLengthLength??Kg,a=t?.maxDataLength??Mg;function*c(){for(;r.byteLength>0;){if(n===Gr.LENGTH)try{if(i=o(r),i<0)throw(0,kn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,kn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Gr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,kn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Gr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Gr.LENGTH}}}return bo(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,kn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,kn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Wr.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Wr(n,{...t??{},onLength:o=>{r=o}})};var vo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Tf=e=>At(e);Tf.bytes=0;function bi(e,t){let r=Cf(e);return{read:async i=>{let o=-1,s=new Xe,a=t?.lengthDecoder??Tf;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(o>-1)break;if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new vo("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new vo("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(zr.single(i,t),o)},unwrap:()=>r.unwrap()}}function Va(e,t){let r=bi(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var Vg="ERR_STREAM_RESET",qg="ERR_SINK_INVALID_STATE";function qa(e){return e!=null&&typeof e.then=="function"}var Eo=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;sinkController;sinkEnd;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;log;constructor(t){this.sinkController=new AbortController,this.sinkEnd=pt(),this.log=t.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=t.id,this.metadata=t.metadata??{},this.direction=t.direction,this.timeline={open:Date.now()},this.onEnd=t.onEnd,this.onCloseRead=t?.onCloseRead,this.onCloseWrite=t?.onCloseWrite,this.onReset=t?.onReset,this.onAbort=t?.onAbort,this.source=this.streamSource=Vt({onEnd:r=>{r!=null?this.log.trace("source ended with error",r):this.log.trace("source ended"),this.readStatus="closed",this.onSourceEnd(r)}}),this.sink=this.sink.bind(this)}async sink(t){if(this.writeStatus!=="ready")throw new X(`writable end state is "${this.writeStatus}" not "ready"`,qg);try{this.writeStatus="writing";let r={signal:this.sinkController.signal};if(this.direction==="outbound"){let n=this.sendNewStream(r);qa(n)&&await n}t=yo(t,this.sinkController.signal,{returnOnAbort:!0}),this.log.trace("sink reading from source");for await(let n of t){n=n instanceof Uint8Array?new Xe(n):n;let i=this.sendData(n,r);qa(i)&&await i}this.log.trace("sink finished reading from source"),this.writeStatus="done",this.log.trace("sink calling closeWrite"),await this.closeWrite(r),this.onSinkEnd()}catch(r){throw this.log.trace("sink ended with error, calling abort with error",r),this.abort(r),r}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(t){this.timeline.closeRead==null&&(this.timeline.closeRead=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseRead?.(),this.timeline.closeWrite!=null?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(t){this.timeline.closeWrite==null&&(this.timeline.closeWrite=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseWrite?.(),this.timeline.closeRead!=null?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("sink ended, waiting for source to end"))}async close(t){this.log.trace("closing gracefully"),this.status="closing",await Promise.all([this.closeRead(t),this.closeWrite(t)]),this.status="closed",this.log.trace("closed gracefully")}async closeRead(t={}){if(this.readStatus==="closing"||this.readStatus==="closed")return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);let r=this.readStatus;this.readStatus="closing",r==="ready"&&(this.log.trace("ending internal source queue"),this.streamSource.end()),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeRead==null&&(this.log.trace("send close read to remote"),await this.sendCloseRead(t)),this.log.trace("closed readable end of stream")}async closeWrite(t={}){if(this.writeStatus==="closing"||this.writeStatus==="closed")return;this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus);let r=this.writeStatus;this.writeStatus==="ready"&&(this.log.trace("sink was never sunk, sink an empty array"),await this.sink([])),this.writeStatus="closing",r==="writing"&&await new Promise((n,i)=>{queueMicrotask(()=>{this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),this.sinkEnd.promise.then(n,i)})}),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeWrite==null&&(this.log.trace("send close write to remote"),await this.sendCloseWrite(t)),this.writeStatus="closed",this.log.trace("closed writable end of stream")}abort(t){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;this.log("abort with error",t),this.log("try to send reset to remote");let r=this.sendReset();qa(r)&&r.catch(n=>{this.log.error("error sending reset message",n)}),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(t),this.onAbort?.(t)}reset(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;let t=new X("stream reset",Vg);this.status="reset",this._closeSinkAndSource(t),this.onReset?.()}_closeSinkAndSource(t){this._closeSink(t),this._closeSource(t)}_closeSink(t){this.writeStatus==="writing"&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(t)}_closeSource(t){this.readStatus!=="closing"&&this.readStatus!=="closed"&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(t))}remoteCloseWrite(){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("received remote close write but local source is already closed");return}this.log.trace("remote close write"),this._closeSource()}remoteCloseRead(){if(this.writeStatus==="closing"||this.writeStatus==="closed"){this.log("received remote close read but local sink is already closed");return}this.log.trace("remote close read"),this._closeSink()}destroy(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset"){this.log("received destroy but we are already closed");return}this.log.trace("muxer destroyed"),this._closeSinkAndSource()}sourcePush(t){this.streamSource.push(t)}sourceReadableLength(){return this.streamSource.readableLength}};var Rn=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ha=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},_f=e=>globalThis.DOMException===void 0?new Ha(e):new DOMException(e),kf=e=>{let t=e.reason===void 0?_f("This operation was aborted."):e.reason;return t instanceof Error?t:_f(t)};function za(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:h}=t;h.aborted&&f(kf(h)),h.addEventListener("abort",()=>{f(kf(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Rn;s=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(h){f(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}var Hg=e=>{let t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function zg(e,t,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:u,removeListener:f}=Hg(e),l=(...y)=>{let d=r.multiArgs?y:y[0];r.filter&&!r.filter(d)||(c.push(d),r.count===c.length&&(n(),o(c)))},h=y=>{n(),s(y)};n=()=>{for(let y of a)f(y,l);for(let y of r.rejectionEvents)f(y,h)};for(let y of a)u(y,l);for(let y of r.rejectionEvents)u(y,h);r.signal&&r.signal.addEventListener("abort",()=>{h(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=za(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function Rf(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=zg(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var nc=ke(Za(),1),bl=ke(ll(),1),wl=ke(Yr(),1),ic=ke(rc(),1),vl=ke(xl(),1);function Jg(){wl.default._configure(),nc.default._configure(bl.default),ic.default._configure(vl.default)}Jg();var El=["uint64","int64","sint64","fixed64","sfixed64"];function em(e){for(let t of El){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function oc(e){return em(new nc.default(e))}function tm(e){for(let t of El){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function sc(){return tm(ic.default.create())}function Tt(e,t){let r=oc(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function _t(e,t){let r=sc();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Nn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(Nn||(Nn={}));function Bo(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Xr(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return Bo("enum",Nn.VARINT,r,n)}function kt(e,t){return Bo("message",Nn.LENGTH_DELIMITED,e,t)}var gt;(function(e){let t;(function(i){i.FIN="FIN",i.STOP_SENDING="STOP_SENDING",i.RESET="RESET"})(t=e.Flag||(e.Flag={}));let r;(function(i){i[i.FIN=0]="FIN",i[i.STOP_SENDING=1]="STOP_SENDING",i[i.RESET=2]="RESET"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Flag||(e.Flag={}));let n;e.codec=()=>(n==null&&(n=kt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.flag!=null&&(o.uint32(8),e.Flag.codec().encode(i.flag,o)),i.message!=null&&(o.uint32(18),o.bytes(i.message)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.flag=e.Flag.codec().decode(i);break;case 2:s.message=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>_t(i,e.codec()),e.decode=i=>Tt(i,e.codec())})(gt||(gt={}));var Ei=Ye("libp2p:webrtc:stream"),Sl=16*1024,rm=16*1024*1024,nm=30*1e3,im=3,ac=class extends Eo{channel;dataChannelOptions;incomingData;messageQueue;maxDataSize;constructor(t){switch(super(t),this.channel=t.channel,this.channel.binaryType="arraybuffer",this.incomingData=Vt(),this.messageQueue=new Xe,this.dataChannelOptions={bufferedAmountLowEventTimeout:t.dataChannelOptions?.bufferedAmountLowEventTimeout??nm,maxBufferedAmount:t.dataChannelOptions?.maxBufferedAmount??rm,maxMessageSize:t.dataChannelOptions?.maxMessageSize??Sl},this.maxDataSize=t.maxDataSize,this.channel.readyState){case"open":break;case"closed":case"closing":(this.timeline.close===void 0||this.timeline.close===0)&&(this.timeline.close=Date.now());break;case"connecting":break;default:throw Ei.error("unknown datachannel state %s",this.channel.readyState),new X("Unknown datachannel state","ERR_INVALID_STATE")}this.channel.onopen=n=>{this.timeline.open=new Date().getTime(),this.messageQueue!=null&&(this._sendMessage(this.messageQueue).catch(i=>{this.abort(i)}),this.messageQueue=void 0)},this.channel.onclose=n=>{this.close().catch(i=>{Ei.error("error closing stream after channel closed",i)})},this.channel.onerror=n=>{let i=n.error;this.abort(i)};let r=this;this.channel.onmessage=async n=>{let{data:i}=n;i===null||i.byteLength===0||this.incomingData.push(new Uint8Array(i,0,i.byteLength))},Promise.resolve().then(async()=>{for await(let n of Wr(this.incomingData)){let i=r.processIncomingProtobuf(n.subarray());i!=null&&r.sourcePush(new Xe(i))}}).catch(n=>{Ei.error("error processing incoming data channel messages",n)})}sendNewStream(){}async _sendMessage(t,r=!0){if(r&&this.channel.bufferedAmount>this.dataChannelOptions.maxBufferedAmount)try{await Rf(this.channel,"bufferedamountlow",{timeout:this.dataChannelOptions.bufferedAmountLowEventTimeout})}catch(n){throw n instanceof Rn?new Error("Timed out waiting for DataChannel buffer to clear"):n}if(this.channel.readyState==="closed"||this.channel.readyState==="closing")throw new X("Invalid datachannel state - closed or closing","ERR_INVALID_STATE");if(this.channel.readyState==="open")for(let n of t)this.channel.send(n);else if(this.channel.readyState==="connecting")this.messageQueue==null&&(this.messageQueue=new Xe),this.messageQueue.append(t);else throw Ei.error("unknown datachannel state %s",this.channel.readyState),new X("Unknown datachannel state","ERR_INVALID_STATE")}async sendData(t){for(t=t.sublist();t.byteLength>0;){let r=Math.min(t.byteLength,this.maxDataSize),n=t.subarray(0,r),i=gt.encode({message:n}),o=zr.single(i);await this._sendMessage(o),t.consume(r)}}async sendReset(){await this._sendFlag(gt.Flag.RESET)}async sendCloseWrite(){await this._sendFlag(gt.Flag.FIN)}async sendCloseRead(){await this._sendFlag(gt.Flag.STOP_SENDING)}processIncomingProtobuf(t){let r=gt.decode(t);return r.flag!==void 0&&(r.flag===gt.Flag.FIN&&(this.incomingData.end(),this.remoteCloseWrite()),r.flag===gt.Flag.RESET&&this.reset(),r.flag===gt.Flag.STOP_SENDING&&this.remoteCloseRead()),r.message}async _sendFlag(t){Ei.trace("Sending flag: %s",t.toString());let r=gt.encode({flag:t}),n=zr.single(r);await this._sendMessage(n,!1)}};function Pn(e){let{channel:t,direction:r,onEnd:n,dataChannelOptions:i}=e;return new ac({id:r==="inbound"?`i${t.id}`:`r${t.id}`,direction:r,maxDataSize:(i?.maxMessageSize??Sl)-im,dataChannelOptions:i,onEnd:n,channel:t,log:Ye(`libp2p:mplex:stream:${r}:${t.id}`)})}var Cl="/webrtc",Qr=class{protocol;peerConnection;streamBuffer=[];metrics;dataChannelOptions;constructor(t){this.peerConnection=t.peerConnection,this.metrics=t.metrics,this.protocol=t.protocol??Cl,this.dataChannelOptions=t.dataChannelOptions,this.peerConnection.ondatachannel=({channel:r})=>{let n=Pn({channel:r,direction:"inbound",dataChannelOptions:t.dataChannelOptions,onEnd:()=>{this.streamBuffer=this.streamBuffer.filter(i=>i.id!==n.id)}});this.streamBuffer.push(n)}}createStreamMuxer(t){return new cc({...t,peerConnection:this.peerConnection,dataChannelOptions:this.dataChannelOptions,metrics:this.metrics,streams:this.streamBuffer,protocol:this.protocol})}},cc=class{init;streams;protocol;peerConnection;dataChannelOptions;metrics;close=async()=>{};abort=()=>{};source=ho();sink=po;constructor(t){this.init=t,this.streams=t.streams,this.peerConnection=t.peerConnection,this.protocol=t.protocol??Cl,this.metrics=t.metrics,this.peerConnection.ondatachannel=({channel:n})=>{let i=Pn({channel:n,direction:"inbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(o=>o.id!==i.id),this.metrics?.increment({stream_end:!0}),t?.onStreamEnd?.(i)}});this.streams.push(i),t?.onIncomingStream!=null&&(this.metrics?.increment({incoming_stream:!0}),t.onIncomingStream(i))};let r=t?.onIncomingStream;r!=null&&this.streams.forEach(n=>{r(n)})}newStream(){let t=this.peerConnection.createDataChannel(""),r=Pn({channel:t,direction:"outbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(n=>n.id!==r.id),this.metrics?.increment({stream_end:!0}),this.init?.onStreamEnd?.(r)}});return this.streams.push(r),this.metrics?.increment({outgoing_stream:!0}),r}};var ft;(function(e){let t;(function(i){i.SDP_OFFER="SDP_OFFER",i.SDP_ANSWER="SDP_ANSWER",i.ICE_CANDIDATE="ICE_CANDIDATE"})(t=e.Type||(e.Type={}));let r;(function(i){i[i.SDP_OFFER=0]="SDP_OFFER",i[i.SDP_ANSWER=1]="SDP_ANSWER",i[i.ICE_CANDIDATE=2]="ICE_CANDIDATE"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Type||(e.Type={}));let n;e.codec=()=>(n==null&&(n=kt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),e.Type.codec().encode(i.type,o)),i.data!=null&&(o.uint32(18),o.string(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=e.Type.codec().decode(i);break;case 2:s.data=i.string();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>_t(i,e.codec()),e.decode=i=>Tt(i,e.codec())})(ft||(ft={}));var Io=Ye("libp2p:webrtc:peer:util"),uc=async(e,t,r)=>{for(;;){let n=await Promise.race([e.promise,r.read()]);if(n instanceof Object){let i=n;if(i.type!==ft.Type.ICE_CANDIDATE)throw new Error("expected only ice candidates");if(i.data==null||i.data===""){Io.trace("end-of-candidates received");break}Io.trace("received new ICE candidate: %s",i.data);try{await t.addIceCandidate(new wf(JSON.parse(i.data)))}catch(o){throw Io.error("bad candidate received: ",o),new Error("bad candidate received")}}else break}await e.promise};function fc(e,t){e[mi?"oniceconnectionstatechange":"onconnectionstatechange"]=r=>{switch(Io.trace("receiver peerConnectionState state: ",e.connectionState),mi?e.iceConnectionState:e.connectionState){case"connected":t.resolve();break;case"failed":case"disconnected":case"closed":t.reject(new Error("RTCPeerConnection was closed"));break;default:break}}}var om=30*1e3,Cr=Ye("libp2p:webrtc:peer");async function Al({rtcConfiguration:e,dataChannelOptions:t,stream:r}){let n=AbortSignal.timeout(om),i=Va(Oa(r,n)).pb(ft),o=new Tn(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt(),c=pt();n.onabort=()=>{a.reject(new X("Timed out while trying to connect","ERR_TIMEOUT"))},o.onicecandidate=({candidate:y})=>{c.promise.then(async()=>{await i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""})},d=>{Cr.error("cannot set candidate since sending answer failed",d),a.reject(d)})},fc(o,a);let u=await i.read();if(u.type!==ft.Type.SDP_OFFER)throw new Error(`expected message type SDP_OFFER, received: ${u.type??"undefined"} `);let f=new Ua({type:"offer",sdp:u.data});await o.setRemoteDescription(f).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")});let l=await o.createAnswer().catch(y=>{throw Cr.error("could not execute createAnswer",y),c.reject(y),new Error("Failed to create answer")});await i.write({type:ft.Type.SDP_ANSWER,data:l.sdp}),await o.setLocalDescription(l).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),c.reject(y),new Error("Failed to set localDescription")}),c.resolve(),await uc(a,o,i);let h=Bl(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}async function Dl({rtcConfiguration:e,dataChannelOptions:t,signal:r,stream:n}){let i=Va(Oa(n,r)).pb(ft),o=new Tn(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt();fc(o,a),r.onabort=a.reject;let c=o.createDataChannel("init");o.onicecandidate=({candidate:y})=>{i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""}).catch(d=>{Cr.error("error sending ICE candidate",d)})};let u=await o.createOffer();await i.write({type:ft.Type.SDP_OFFER,data:u.sdp}),await o.setLocalDescription(u).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),new Error("Failed to set localDescription")});let f=await i.read();if(f.type!==ft.Type.SDP_ANSWER)throw new Error("remote should send an SDP answer");let l=new Ua({type:"answer",sdp:f.data});await o.setRemoteDescription(l).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")}),await uc(a,o,i),c.close();let h=Bl(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}function Bl(e){let t=e.split(`\r
29
+ `});var G1=ye(()=>{z1();_s();Ur();X0();ji()});var J0,t_,W1=ye(()=>{b1();w1();v1();E1();S1();V0();C1();z0();A1();B1();U1();K1();M1();V1();G1();J0={...P0,...U0,...O0,...F0,...K0,...M0,...q0,...H0,...G0,...W0},t_={...Q0,...j0}});function oi(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var Ns=ye(()=>{});function Ps(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?oi(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var eu=ye(()=>{Ns()});function Y1(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var $1,tu,M3,Us,ru=ye(()=>{W1();eu();$1=Y1("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),tu=Y1("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Ps(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),M3={utf8:$1,"utf-8":$1,hex:J0.base16,latin1:tu,ascii:tu,binary:tu,...J0},Us=M3});var Z1={};fe(Z1,{toString:()=>V3});function V3(e,t="utf8"){let r=Us[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var X1=ye(()=>{ru()});var Q1={};fe(Q1,{fromString:()=>q3});function q3(e,t="utf8"){let r=Us[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?oi(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var j1=ye(()=>{ru();Ns()});var J1={};fe(J1,{concat:()=>H3});function H3(e,t){t||(t=e.reduce((i,o)=>i+o.length,0));let r=Ps(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return oi(r)}var e2=ye(()=>{eu();Ns()});var iu=Y((p_,s2)=>{"use strict";var t2=jp(),si=u1(),{names:eo}=l1(),{toString:Os}=(X1(),ro(Z1)),{fromString:z3}=(j1(),ro(Q1)),{concat:G3}=(e2(),ro(J1)),ai={};for(let e in eo){let t=e;ai[eo[t]]=t}Object.freeze(ai);function W3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Os(e,"base16")}function $3(e){return z3(e,"base16")}function Y3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Os(t2.encode("base58btc",e)).slice(1)}function Z3(e){let t=e instanceof Uint8Array?Os(e):e;return t2.decode("z"+t)}function r2(e){if(!(e instanceof Uint8Array))throw new Error("multihash must be a Uint8Array");if(e.length<2)throw new Error("multihash too short. must be > 2 bytes.");let t=si.decode(e);if(!i2(t))throw new Error(`multihash unknown function code: 0x${t.toString(16)}`);e=e.slice(si.decode.bytes);let r=si.decode(e);if(r<0)throw new Error(`multihash invalid length: ${r}`);if(e=e.slice(si.decode.bytes),e.length!==r)throw new Error(`multihash length inconsistent: 0x${Os(e,"base16")}`);return{code:t,name:ai[t],length:r,digest:e}}function X3(e,t,r){if(!e||t===void 0)throw new Error("multihash encode requires at least two args: digest, code");let n=n2(t);if(!(e instanceof Uint8Array))throw new Error("digest should be a Uint8Array");if(r==null&&(r=e.length),r&&e.length!==r)throw new Error("digest length should be equal to specified length.");let i=si.encode(n),o=si.encode(r);return G3([i,o,e],i.length+o.length+e.length)}function n2(e){let t=e;if(typeof e=="string"){if(eo[e]===void 0)throw new Error(`Unrecognized hash function named: ${e}`);t=eo[e]}if(typeof t!="number")throw new Error(`Hash function code should be a number. Got: ${t}`);if(ai[t]===void 0&&!nu(t))throw new Error(`Unrecognized function code: ${t}`);return t}function nu(e){return e>0&&e<16}function i2(e){return!!(nu(e)||ai[e])}function o2(e){r2(e)}function Q3(e){return o2(e),e.subarray(0,2)}s2.exports={names:eo,codes:ai,toHexString:W3,fromHexString:$3,toB58String:Y3,fromB58String:Z3,decode:r2,encode:X3,coerceCode:n2,isAppCode:nu,validate:o2,prefix:Q3,isValidCode:i2}});var u4={};fe(u4,{webRTC:()=>c4,webRTCDirect:()=>a4});var X=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}},ui=class e extends Error{code;constructor(t="Unexpected Peer"){super(t),this.code=e.code}static code="ERR_UNEXPECTED_PEER"},Kr=class e extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=e.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var no=Symbol.for("@libp2p/transport");var bu;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(bu||(bu={}));var ct=ke(Cu(),1);var Ws={};fe(Ws,{base32:()=>St,base32hex:()=>$2,base32hexpad:()=>Z2,base32hexpadupper:()=>X2,base32hexupper:()=>Y2,base32pad:()=>G2,base32padupper:()=>W2,base32upper:()=>z2,base32z:()=>Q2});function K2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=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,g=0,m=0,v=d.length;m!==v&&d[m]===0;)m++,p++;for(var x=(v-m)*f+1>>>0,C=new Uint8Array(x);m!==v;){for(var E=d[m],b=0,D=x-1;(E!==0||b<g)&&D!==-1;D--,b++)E+=256*C[D]>>>0,C[D]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");g=b,m++}for(var B=x-g;B!==x&&C[B]===0;)B++;for(var R=c.repeat(p);B<x;++B)R+=e.charAt(C[B]);return R}function h(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 g=0,m=0;d[p]===c;)g++,p++;for(var v=(d.length-p)*u+1>>>0,x=new Uint8Array(v);d[p];){var C=r[d.charCodeAt(p)];if(C===255)return;for(var E=0,b=v-1;(C!==0||E<m)&&b!==-1;b--,E++)C+=a*x[b]>>>0,x[b]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");m=E,p++}if(d[p]!==" "){for(var D=v-m;D!==v&&x[D]===0;)D++;for(var B=new Uint8Array(g+(v-D)),R=g;D!==v;)B[R++]=x[D++];return B}}}function y(d){var p=h(d);if(p)return p;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:h,decode:y}}var M2=K2,V2=M2,Au=V2;var g4=new Uint8Array(0);var Du=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},Jt=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var Bu=e=>new TextEncoder().encode(e),Iu=e=>new TextDecoder().decode(e);var qs=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Hs=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return _u(this,t)}},zs=class{constructor(t){this.decoders=t}or(t){return _u(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},_u=(e,t)=>new zs({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Gs=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new qs(t,r,n),this.decoder=new Hs(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},bn=({name:e,prefix:t,encode:r,decode:n})=>new Gs(e,t,r,n),mr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=Au(r,t);return bn({prefix:e,name:t,encode:n,decode:o=>Jt(i(o))})},q2=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},H2=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Re=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>bn({prefix:t,name:e,encode(i){return H2(i,n,r)},decode(i){return q2(i,n,r,e)}});var St=Re({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),z2=Re({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),G2=Re({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),W2=Re({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$2=Re({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Y2=Re({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Z2=Re({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),X2=Re({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Q2=Re({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var $s={};fe($s,{base58btc:()=>Ne,base58flickr:()=>j2});var Ne=mr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),j2=mr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ys={};fe(Ys,{base64:()=>wn,base64pad:()=>J2,base64url:()=>ey,base64urlpad:()=>ty});var wn=Re({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),J2=Re({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ey=Re({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ty=Re({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ct.default.formatters.b=e=>e==null?"undefined":Ne.baseEncode(e);ct.default.formatters.t=e=>e==null?"undefined":St.baseEncode(e);ct.default.formatters.m=e=>e==null?"undefined":wn.baseEncode(e);ct.default.formatters.p=e=>e==null?"undefined":e.toString();ct.default.formatters.c=e=>e==null?"undefined":e.toString();ct.default.formatters.k=e=>e==null?"undefined":e.toString();ct.default.formatters.a=e=>e==null?"undefined":e.toString();function ry(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function Ye(e){let t=ry(`${e}:trace`);return ct.default.enabled(`${e}:trace`)&&ct.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,ct.default)(`${e}:trace`)),Object.assign((0,ct.default)(e),{error:(0,ct.default)(`${e}:error`),trace:t})}var ku=Symbol.for("@libp2p/peer-id");var Zs={};fe(Zs,{base10:()=>ny});var ny=mr({prefix:"9",name:"base10",alphabet:"0123456789"});var Xs={};fe(Xs,{base16:()=>iy,base16upper:()=>oy});var iy=Re({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),oy=Re({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Qs={};fe(Qs,{base2:()=>sy});var sy=Re({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var js={};fe(js,{base256emoji:()=>ly});var Ru=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),ay=Ru.reduce((e,t,r)=>(e[r]=t,e),[]),cy=Ru.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function uy(e){return e.reduce((t,r)=>(t+=ay[r],t),"")}function fy(e){let t=[];for(let r of e){let n=cy[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var ly=bn({prefix:"\u{1F680}",name:"base256emoji",encode:uy,decode:fy});var Js={};fe(Js,{base36:()=>hy,base36upper:()=>dy});var hy=mr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),dy=mr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ea={};fe(ea,{base8:()=>py});var py=Re({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ta={};fe(ta,{identity:()=>yy});var yy=bn({prefix:"\0",name:"identity",encode:e=>Iu(e),decode:e=>Bu(e)});var U4=new TextEncoder,O4=new TextDecoder;var na={};fe(na,{identity:()=>xr});var xy=Pu,Lu=128,by=127,wy=~by,vy=Math.pow(2,31);function Pu(e,t,r){t=t||[],r=r||0;for(var n=r;e>=vy;)t[r++]=e&255|Lu,e/=128;for(;e&wy;)t[r++]=e&255|Lu,e>>>=7;return t[r]=e|0,Pu.bytes=r-n+1,t}var Ey=ra,Sy=128,Nu=127;function ra(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw ra.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&Nu)<<i:(s&Nu)*Math.pow(2,i),i+=7}while(s>=Sy);return ra.bytes=o-n,r}var Cy=Math.pow(2,7),Ay=Math.pow(2,14),Dy=Math.pow(2,21),By=Math.pow(2,28),Iy=Math.pow(2,35),Ty=Math.pow(2,42),_y=Math.pow(2,49),ky=Math.pow(2,56),Ry=Math.pow(2,63),Ly=function(e){return e<Cy?1:e<Ay?2:e<Dy?3:e<By?4:e<Iy?5:e<Ty?6:e<_y?7:e<ky?8:e<Ry?9:10},Ny={encode:xy,decode:Ey,encodingLength:Ly},Py=Ny,fi=Py;var li=(e,t=0)=>[fi.decode(e,t),fi.decode.bytes],vn=(e,t,r=0)=>(fi.encode(e,t,r),t),En=e=>fi.encodingLength(e);var Kt=(e,t)=>{let r=t.byteLength,n=En(e),i=n+En(r),o=new Uint8Array(i+r);return vn(e,o,0),vn(r,o,n),o.set(t,i),new Sn(e,r,t,o)},Vr=e=>{let t=Jt(e),[r,n]=li(t),[i,o]=li(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Sn(r,i,s,t)},Uu=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Du(e.bytes,r.bytes)}},Sn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Ou=0,Uy="identity",Fu=Jt,Oy=e=>Kt(Ou,Fu(e)),xr={code:Ou,name:Uy,encode:Fu,digest:Oy};var sa={};fe(sa,{sha256:()=>Ze,sha512:()=>Fy});var oa=({name:e,code:t,encode:r})=>new ia(e,t,r),ia=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Kt(this.code,r):r.then(n=>Kt(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Mu=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Ze=oa({name:"sha2-256",code:18,encode:Mu("SHA-256")}),Fy=oa({name:"sha2-512",code:19,encode:Mu("SHA-512")});var Vu=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return My(r,aa(e),t||Ne.encoder);default:return Vy(r,aa(e),t||St.encoder)}};var qu=new WeakMap,aa=e=>{let t=qu.get(e);if(t==null){let r=new Map;return qu.set(e,r),r}return t},Ct=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==hi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==qy)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Kt(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Uu(t.multihash,n.multihash)}toString(t){return Vu(this,t)}toJSON(){return{"/":Vu(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new e(n,i,o,s||Hu(n,i,o.bytes))}else if(r[Hy]===!0){let{version:n,multihash:i,code:o}=r,s=Vr(i);return e.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==hi)throw new Error(`Version 0 CID must use dag-pb (code: ${hi}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Hu(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,hi,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=Jt(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new Sn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,h]=li(t.subarray(r));return r+=h,l},i=n(),o=hi;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=Ky(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return aa(o).set(n,t),o}},Ky=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ne;return[Ne.prefix,r.decode(`${Ne.prefix}${e}`)]}case Ne.prefix:{let r=t||Ne;return[Ne.prefix,r.decode(e)]}case St.prefix:{let r=t||St;return[St.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},My=(e,t,r)=>{let{prefix:n}=r;if(n!==Ne.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},Vy=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},hi=112,qy=18,Hu=(e,t,r)=>{let n=En(e),i=n+En(t),o=new Uint8Array(i+r.byteLength);return vn(e,o,0),vn(t,o,n),o.set(r,i),o},Hy=Symbol.for("@ipld/js-cid/CID");var Mt={...ta,...Qs,...ea,...Zs,...Xs,...Ws,...Js,...$s,...Ys,...js},J4={...sa,...na};function Oe(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var zy=Symbol.for("nodejs.util.inspect.custom"),zu=Object.values(Mt).map(e=>e.decoder).reduce((e,t)=>e.or(t),Mt.identity.decoder),Gu=114,ca=36,ua=37,di=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ku]=!0;toString(){return this.string==null&&(this.string=Ne.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ct.createV1(Gu,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Oe(this.multihash.bytes,t);if(typeof t=="string")return pi(t).equals(this);if(t?.multihash?.bytes!=null)return Oe(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[zy](){return`PeerId(${this.toString()})`}},Cn=class extends di{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},An=class extends di{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},Dn=class extends di{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function pi(e,t){if(t=t??zu,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Vr(Ne.decode(`z${e}`));return e.startsWith("12D")?new An({multihash:r}):e.startsWith("16U")?new Dn({multihash:r}):new Cn({multihash:r})}return Gy(zu.decode(e))}function Gy(e){try{let t=Vr(e);if(t.code===xr.code){if(t.digest.length===ca)return new An({multihash:t});if(t.digest.length===ua)return new Dn({multihash:t})}if(t.code===Ze.code)return new Cn({multihash:t})}catch{return Wy(Ct.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function Wy(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Gu)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===Ze.code)return new Cn({multihash:e.multihash});if(t.code===xr.code){if(t.digest.length===ca)return new An({multihash:e.multihash});if(t.digest.length===ua)return new Dn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function fa(e,t){return e.length===ca?new An({multihash:Kt(xr.code,e),privateKey:t}):e.length===ua?new Dn({multihash:Kt(xr.code,e),privateKey:t}):new Cn({multihash:await Ze.digest(e),publicKey:e,privateKey:t})}function br(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function er(e=0){return globalThis.Buffer?.alloc!=null?br(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function dt(e=0){return globalThis.Buffer?.allocUnsafe!=null?br(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function $u(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Wu=$u("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),la=$u("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=dt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Yy={utf8:Wu,"utf-8":Wu,hex:Mt.base16,latin1:la,ascii:la,binary:la,...Mt},ao=Yy;function ae(e,t="utf8"){let r=ao[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var Zy=Math.pow(2,7),Xy=Math.pow(2,14),Qy=Math.pow(2,21),ha=Math.pow(2,28),da=Math.pow(2,35),pa=Math.pow(2,42),ya=Math.pow(2,49),ge=128,et=127;function it(e){if(e<Zy)return 1;if(e<Xy)return 2;if(e<Qy)return 3;if(e<ha)return 4;if(e<da)return 5;if(e<pa)return 6;if(e<ya)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function jy(e,t,r=0){switch(it(e)){case 8:t[r++]=e&255|ge,e/=128;case 7:t[r++]=e&255|ge,e/=128;case 6:t[r++]=e&255|ge,e/=128;case 5:t[r++]=e&255|ge,e/=128;case 4:t[r++]=e&255|ge,e>>>=7;case 3:t[r++]=e&255|ge,e>>>=7;case 2:t[r++]=e&255|ge,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Jy(e,t,r=0){switch(it(e)){case 8:t.set(r++,e&255|ge),e/=128;case 7:t.set(r++,e&255|ge),e/=128;case 6:t.set(r++,e&255|ge),e/=128;case 5:t.set(r++,e&255|ge),e/=128;case 4:t.set(r++,e&255|ge),e>>>=7;case 3:t.set(r++,e&255|ge),e>>>=7;case 2:t.set(r++,e&255|ge),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function eg(e,t){let r=e[t],n=0;if(n+=r&et,r<ge||(r=e[t+1],n+=(r&et)<<7,r<ge)||(r=e[t+2],n+=(r&et)<<14,r<ge)||(r=e[t+3],n+=(r&et)<<21,r<ge)||(r=e[t+4],n+=(r&et)*ha,r<ge)||(r=e[t+5],n+=(r&et)*da,r<ge)||(r=e[t+6],n+=(r&et)*pa,r<ge)||(r=e[t+7],n+=(r&et)*ya,r<ge))return n;throw new RangeError("Could not decode varint")}function tg(e,t){let r=e.get(t),n=0;if(n+=r&et,r<ge||(r=e.get(t+1),n+=(r&et)<<7,r<ge)||(r=e.get(t+2),n+=(r&et)<<14,r<ge)||(r=e.get(t+3),n+=(r&et)<<21,r<ge)||(r=e.get(t+4),n+=(r&et)*ha,r<ge)||(r=e.get(t+5),n+=(r&et)*da,r<ge)||(r=e.get(t+6),n+=(r&et)*pa,r<ge)||(r=e.get(t+7),n+=(r&et)*ya,r<ge))return n;throw new RangeError("Could not decode varint")}function wr(e,t,r=0){return t==null&&(t=dt(it(e))),t instanceof Uint8Array?jy(e,t,r):Jy(e,t,r)}function At(e,t=0){return e instanceof Uint8Array?eg(e,t):tg(e,t)}function me(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=dt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return br(r)}var co=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let h=Number.parseInt(l,t);if(!Number.isNaN(h))return h});if(f===void 0)break;if(o*=t,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Yu=45,rg=15,Bn=new co;function ga(e){if(!(e.length>rg))return Bn.new(e).parseWith(()=>Bn.readIPv4Addr())}function ma(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yu))return Bn.new(e).parseWith(()=>Bn.readIPv6Addr())}function uo(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Yu))return Bn.new(e).parseWith(()=>Bn.readIPAddr())}var kE=parseInt("0xFFFF",16),RE=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Be(e,t="utf8"){let r=ao[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?br(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Qu(e){return!!ga(e)}function ju(e){return!!ma(e)}function fo(e){return!!uo(e)}var Ju=Qu,ag=ju,xa=function(e){let t=0;if(e=e.toString().trim(),Ju(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(ag(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Ju(r[n]),s;o&&(s=xa(r[n]),r[n]=ae(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,ae(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},ef=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var In={},ba={},ug=[[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"],[777,-1,"memory"]];ug.forEach(e=>{let t=fg(...e);ba[t.code]=t,In[t.name]=t});function fg(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function de(e){if(typeof e=="number"){if(ba[e]!=null)return ba[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(In[e]!=null)return In[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var xS=de("ip4"),bS=de("ip6"),wS=de("ipcidr");function va(e,t){switch(de(e).code){case 4:case 41:return hg(t);case 42:return nf(t);case 6:case 273:case 33:case 132:return sf(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return nf(t);case 421:return gg(t);case 444:return of(t);case 445:return of(t);case 466:return yg(t);default:return ae(t,"base16")}}function Ea(e,t){switch(de(e).code){case 4:return tf(t);case 41:return tf(t);case 42:return rf(t);case 6:case 273:case 33:case 132:return Sa(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return rf(t);case 421:return dg(t);case 444:return mg(t);case 445:return xg(t);case 466:return pg(t);default:return Be(t,"base16")}}var wa=Object.values(Mt).map(e=>e.decoder),lg=function(){let e=wa[0].or(wa[1]);return wa.slice(2).forEach(t=>e=e.or(t)),e}();function tf(e){if(!fo(e))throw new Error("invalid ip address");return xa(e)}function hg(e){let t=ef(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!fo(t))throw new Error("invalid ip address");return t}function Sa(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function sf(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function rf(e){let t=Be(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function nf(e){let t=At(e);if(e=e.slice(it(t)),e.length!==t)throw new Error("inconsistent lengths");return ae(e)}function dg(e){let t;e[0]==="Q"||e[0]==="1"?t=Vr(Ne.decode(`z${e}`)).bytes:t=Ct.parse(e).multihash.bytes;let r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function pg(e){let t=lg.decode(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function yg(e){let t=At(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+ae(r,"base64url")}function gg(e){let t=At(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return ae(r,"base58btc")}function mg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=St.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Sa(n);return me([r,i],r.length+i.length)}function xg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=St.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Sa(n);return me([r,i],r.length+i.length)}function of(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=ae(t,"base32"),i=sf(r);return`${n}:${i}`}function af(e){e=Ca(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let s=i[o],a=de(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw uf("invalid address: "+e);if(a.path===!0){n=Ca(i.slice(o).join("/")),t.push([a.code,Ea(a.code,n)]),r.push([a.code,n]);break}let c=Ea(a.code,i[o]);t.push([a.code,c]),r.push([a.code,va(a.code,c)])}return{string:cf(r),bytes:Da(t),tuples:t,stringTuples:r,path:n}}function Aa(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=At(e,i),s=it(o),a=de(o),c=bg(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw uf("Invalid address Uint8Array: "+ae(e,"base16"));t.push([o,u]);let f=va(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:cf(r),tuples:t,stringTuples:r,path:n}}function cf(e){let t=[];return e.map(r=>{let n=de(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Ca(t.join("/"))}function Da(e){return me(e.map(t=>{let r=de(t[0]),n=Uint8Array.from(wr(r.code));return t.length>1&&t[1]!=null&&(n=me([n,t[1]])),n}))}function bg(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=At(t instanceof Uint8Array?t:Uint8Array.from(t));return r+it(r)}}function Ca(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function uf(e){return new Error("Error parsing address: "+e)}var wg=Symbol.for("nodejs.util.inspect.custom"),vg=[de("dns").code,de("dns4").code,de("dns6").code,de("dnsaddr").code],Eg=new Map,ff=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Sg(e){return!!e?.[ff]}var Ba=class e{bytes;#e;#t;#r;#n;[ff]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Aa(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=af(t)}else if(Sg(t))r=Aa(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=de("tcp"),a=de("udp"),c=de("ip4"),u=de("ip6"),f=de("dns6"),l=de("ip6zone");for(let[y,d]of this.stringTuples())y===l.code&&(o=`%${d??""}`),vg.includes(y)&&(r=s.name,i=443,n=`${d??""}${o}`,t=y===f.code?6:4),(y===s.code||y===a.code)&&(r=de(y).name,i=parseInt(d??"")),(y===c.code||y===u.code)&&(r=de(y).name,n=`${d??""}${o}`,t=y===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#t.map(([t])=>Object.assign({},de(t)))}protoCodes(){return this.#t.map(([t])=>t)}protoNames(){return this.#t.map(([t])=>de(t).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Da(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===In.p2p.code&&t.push([n,i]),n===In["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ae(Ne.decode(`z${n}`),"base58btc"):ae(Ct.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Oe(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Eg.get(r.name);if(n==null)throw new X(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[wg](){return`Multiaddr(${this.#e})`}};function tr(e){return new Ba(e)}var ut;(function(e){e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_DATA_CHANNEL="ERR_DATA_CHANNEL",e.ERR_CONNECTION_CLOSED="ERR_CONNECTION_CLOSED",e.ERR_HASH_NOT_SUPPORTED="ERR_HASH_NOT_SUPPORTED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_INVALID_FINGERPRINT="ERR_INVALID_FINGERPRINT",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS"})(ut||(ut={}));var vr=class extends X{constructor(t,r){super(`WebRTC transport error: ${t}`,r??""),this.name="WebRTCTransportError"}};var Ia=class extends vr{constructor(t,r){super(`[stream: ${t}] data channel error: ${r}`,ut.ERR_DATA_CHANNEL),this.name="WebRTC/DataChannelError"}};function Na(e,t){return new Ia(e,t)}var Ta=class extends vr{constructor(t){super(`There was a problem with the Multiaddr which was passed in: ${t}`,ut.ERR_INVALID_MULTIADDR),this.name="WebRTC/InappropriateMultiaddrError"}};function lo(e){return new Ta(e)}var _a=class extends vr{constructor(t){super(`There was a problem with a provided argument: ${t}`,ut.ERR_INVALID_PARAMETERS),this.name="WebRTC/InvalidArgumentError"}};function gi(e){return new _a(e)}var ka=class extends vr{constructor(t,r){super(`Invalid fingerprint "${t}" within ${r}`,ut.ERR_INVALID_FINGERPRINT),this.name="WebRTC/InvalidFingerprintError"}};function Pa(e,t){return new ka(e,t)}var Ra=class extends vr{constructor(t){super(`A method (${t}) was called though it has been intentionally left unimplemented.`,ut.ERR_NOT_IMPLEMENTED),this.name="WebRTC/UnimplementedError"}};function lf(e){return new Ra(e)}var La=class extends vr{constructor(t){super(`unsupported hash algorithm: ${t}`,ut.ERR_HASH_NOT_SUPPORTED),this.name="WebRTC/UnsupportedHashAlgorithmError"}};function hf(e){return new La(e)}var df=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,o;n<i;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Cg=function(){function e(t,r,n){this.name=t,this.version=r,this.os=n,this.type="browser"}return e}();var Ag=function(){function e(t){this.version=t,this.type="node",this.name="node",this.os=process.platform}return e}();var Dg=function(){function e(t,r,n,i){this.name=t,this.version=r,this.os=n,this.bot=i,this.type="bot-device"}return e}();var Bg=function(){function e(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return e}();var Ig=function(){function e(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return e}();var Tg=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,_g=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,pf=3,kg=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",Tg]],yf=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function mf(e){return e?gf(e):typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Ig:typeof navigator<"u"?gf(navigator.userAgent):Ng()}function Rg(e){return e!==""&&kg.reduce(function(t,r){var n=r[0],i=r[1];if(t)return t;var o=i.exec(e);return!!o&&[n,o]},!1)}function gf(e){var t=Rg(e);if(!t)return null;var r=t[0],n=t[1];if(r==="searchbot")return new Bg;var i=n[1]&&n[1].split(".").join("_").split("_").slice(0,3);i?i.length<pf&&(i=df(df([],i,!0),Pg(pf-i.length),!0)):i=[];var o=i.join("."),s=Lg(e),a=_g.exec(e);return a&&a[1]?new Dg(r,o,s,a[1]):new Cg(r,o,s)}function Lg(e){for(var t=0,r=yf.length;t<r;t++){var n=yf[t],i=n[0],o=n[1],s=o.exec(e);if(s)return i}return null}function Ng(){var e=typeof process<"u"&&process.version;return e?new Ag(process.version.slice(1)):null}function Pg(e){for(var t=[],r=0;r<e;r++)t.push("0");return t}var xf=mf(),mi=xf!=null&&xf.name==="firefox",ho=async function*(){},po=async e=>{};var bf=Ye("libp2p:webrtc:connection"),Hr=class{peerConnection;remoteAddr;timeline;metrics;source=ho();sink=po;constructor(t){this.remoteAddr=t.remoteAddr,this.timeline=t.timeline,this.peerConnection=t.peerConnection,this.peerConnection.onconnectionstatechange=()=>{(this.peerConnection.connectionState==="closed"||this.peerConnection.connectionState==="disconnected"||this.peerConnection.connectionState==="failed")&&(this.timeline.close=Date.now())}}async close(t){bf.trace("closing connection"),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({close:!0})}abort(t){bf.error("closing connection due to error",t),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({abort:!0})}};var Tn=globalThis.RTCPeerConnection,Ua=globalThis.RTCSessionDescription,wf=globalThis.RTCIceCandidate;var xi=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function vf(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function yo(e,t,r){let n=r??{},i=vf(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new xi(f,l)}let u=new Promise((f,l)=>{s=()=>{let{abortMessage:h,abortCode:y}=n;l(new xi(h,y))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function Ug(e,t,r){return n=>e(yo(n,t,r))}function Oa(e,t,r){return{sink:Ug(e.sink,t,{...r,onAbort:void 0}),source:yo(e.source,t,r)}}function pt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var go=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},_n=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new go(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new go(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Fa=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Vt(e={}){return Og(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function Og(e,t){t=t??{};let r=t.onEnd,n=new _n,i,o,s,a=pt(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((g,m)=>{o=v=>{o=null,n.push(v);try{g(e(n))}catch(x){m(x)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=pt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new _n,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(s)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},h=g=>s?i:(s=!0,g!=null?f(g):u({done:!0})),y=()=>(n=new _n,h(),{done:!0}),d=g=>(h(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:d,push:l,end:h,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let v,x;m!=null&&(v=new Promise((C,E)=>{x=()=>{E(new Fa)},m.addEventListener("abort",x)}));try{await Promise.race([a.promise,v])}finally{x!=null&&m!=null&&m?.removeEventListener("abort",x)}}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(g){return p.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return p.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return p.readableLength}},i}var Sf=Symbol.for("@achingbrain/uint8arraylist");function Ef(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function mo(e){return!!e?.[Sf]}var Xe=class e{constructor(...t){Object.defineProperty(this,Sf,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(mo(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(mo(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Ef(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Ef(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(mo(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return me(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:me(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!mo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let h=u;h>=0;h--){let y=this.get(l+h);if(n[h]!==y){f=Math.max(1,h-a[y]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=er(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=er(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=er(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Oe(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};var xo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ka=class extends xo{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function Cf(e){let t=Vt();e.sink(t).catch(o=>{t.end(o)}),e.sink=async o=>{for await(let s of o)t.push(s);t.end()};let r=e.source;e.source[Symbol.iterator]!=null?r=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(r=e.source[Symbol.asyncIterator]());let n=new Xe;return{read:async(o,s)=>{s?.signal?.throwIfAborted();let a,c=new Promise((u,f)=>{a=()=>{f(new Ka("Read aborted"))},s?.signal?.addEventListener("abort",a)});try{if(o==null){let{done:f,value:l}=await Promise.race([r.next(),c]);return f===!0?new Xe:l}for(;n.byteLength<o;){let{value:f,done:l}=await Promise.race([r.next(),c]);if(l===!0)throw new xo("unexpected end of input","ERR_UNEXPECTED_EOF");n.append(f)}let u=n.sublist(0,o);return n.consume(o),u}finally{a!=null&&s?.signal?.removeEventListener("abort",a)}},write:async(o,s)=>{s?.signal?.throwIfAborted(),o instanceof Uint8Array?t.push(o):t.push(o.subarray()),await t.onEmpty(s)},unwrap:()=>{let o=e.source;return e.source=async function*(){yield*n,yield*o}(),e}}}function bo(e){return e[Symbol.asyncIterator]!=null}var wo=e=>{let t=it(e),r=dt(t);return wr(e,r),wo.bytes=t,r};wo.bytes=0;function zr(e,t){t=t??{};let r=t.lengthEncoder??wo;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return bo(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}zr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??wo;return new Xe(r(e.byteLength),e)};var kn=ke(Bf(),1);var Kg=8,Mg=1024*1024*4,Gr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Gr||(Gr={}));var Ma=e=>{let t=At(e);return Ma.bytes=it(t),t};Ma.bytes=0;function Wr(e,t){let r=new Xe,n=Gr.LENGTH,i=-1,o=t?.lengthDecoder??Ma,s=t?.maxLengthLength??Kg,a=t?.maxDataLength??Mg;function*c(){for(;r.byteLength>0;){if(n===Gr.LENGTH)try{if(i=o(r),i<0)throw(0,kn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,kn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Gr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,kn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Gr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Gr.LENGTH}}}return bo(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,kn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,kn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Wr.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Wr(n,{...t??{},onLength:o=>{r=o}})};var vo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Tf=e=>At(e);Tf.bytes=0;function bi(e,t){let r=Cf(e);return{read:async i=>{let o=-1,s=new Xe,a=t?.lengthDecoder??Tf;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(o>-1)break;if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new vo("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new vo("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(zr.single(i,t),o)},unwrap:()=>r.unwrap()}}function Va(e,t){let r=bi(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var Vg="ERR_STREAM_RESET",qg="ERR_SINK_INVALID_STATE";function qa(e){return e!=null&&typeof e.then=="function"}var Eo=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;sinkController;sinkEnd;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;log;constructor(t){this.sinkController=new AbortController,this.sinkEnd=pt(),this.log=t.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=t.id,this.metadata=t.metadata??{},this.direction=t.direction,this.timeline={open:Date.now()},this.onEnd=t.onEnd,this.onCloseRead=t?.onCloseRead,this.onCloseWrite=t?.onCloseWrite,this.onReset=t?.onReset,this.onAbort=t?.onAbort,this.source=this.streamSource=Vt({onEnd:r=>{r!=null?this.log.trace("source ended with error",r):this.log.trace("source ended"),this.readStatus="closed",this.onSourceEnd(r)}}),this.sink=this.sink.bind(this)}async sink(t){if(this.writeStatus!=="ready")throw new X(`writable end state is "${this.writeStatus}" not "ready"`,qg);try{this.writeStatus="writing";let r={signal:this.sinkController.signal};if(this.direction==="outbound"){let n=this.sendNewStream(r);qa(n)&&await n}t=yo(t,this.sinkController.signal,{returnOnAbort:!0}),this.log.trace("sink reading from source");for await(let n of t){n=n instanceof Uint8Array?new Xe(n):n;let i=this.sendData(n,r);qa(i)&&await i}this.log.trace("sink finished reading from source"),this.writeStatus="done",this.log.trace("sink calling closeWrite"),await this.closeWrite(r),this.onSinkEnd()}catch(r){throw this.log.trace("sink ended with error, calling abort with error",r),this.abort(r),r}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(t){this.timeline.closeRead==null&&(this.timeline.closeRead=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseRead?.(),this.timeline.closeWrite!=null?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(t){this.timeline.closeWrite==null&&(this.timeline.closeWrite=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseWrite?.(),this.timeline.closeRead!=null?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("sink ended, waiting for source to end"))}async close(t){this.log.trace("closing gracefully"),this.status="closing",await Promise.all([this.closeRead(t),this.closeWrite(t)]),this.status="closed",this.log.trace("closed gracefully")}async closeRead(t={}){if(this.readStatus==="closing"||this.readStatus==="closed")return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);let r=this.readStatus;this.readStatus="closing",r==="ready"&&(this.log.trace("ending internal source queue"),this.streamSource.end()),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeRead==null&&(this.log.trace("send close read to remote"),await this.sendCloseRead(t)),this.log.trace("closed readable end of stream")}async closeWrite(t={}){if(this.writeStatus==="closing"||this.writeStatus==="closed")return;this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus);let r=this.writeStatus;this.writeStatus==="ready"&&(this.log.trace("sink was never sunk, sink an empty array"),await this.sink([])),this.writeStatus="closing",r==="writing"&&await new Promise((n,i)=>{queueMicrotask(()=>{this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),this.sinkEnd.promise.then(n,i)})}),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeWrite==null&&(this.log.trace("send close write to remote"),await this.sendCloseWrite(t)),this.writeStatus="closed",this.log.trace("closed writable end of stream")}abort(t){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;this.log("abort with error",t),this.log("try to send reset to remote");let r=this.sendReset();qa(r)&&r.catch(n=>{this.log.error("error sending reset message",n)}),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(t),this.onAbort?.(t)}reset(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;let t=new X("stream reset",Vg);this.status="reset",this._closeSinkAndSource(t),this.onReset?.()}_closeSinkAndSource(t){this._closeSink(t),this._closeSource(t)}_closeSink(t){this.writeStatus==="writing"&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(t)}_closeSource(t){this.readStatus!=="closing"&&this.readStatus!=="closed"&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(t))}remoteCloseWrite(){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("received remote close write but local source is already closed");return}this.log.trace("remote close write"),this._closeSource()}remoteCloseRead(){if(this.writeStatus==="closing"||this.writeStatus==="closed"){this.log("received remote close read but local sink is already closed");return}this.log.trace("remote close read"),this._closeSink()}destroy(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset"){this.log("received destroy but we are already closed");return}this.log.trace("muxer destroyed"),this._closeSinkAndSource()}sourcePush(t){this.streamSource.push(t)}sourceReadableLength(){return this.streamSource.readableLength}};var Rn=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ha=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},_f=e=>globalThis.DOMException===void 0?new Ha(e):new DOMException(e),kf=e=>{let t=e.reason===void 0?_f("This operation was aborted."):e.reason;return t instanceof Error?t:_f(t)};function za(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:h}=t;h.aborted&&f(kf(h)),h.addEventListener("abort",()=>{f(kf(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Rn;s=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(h){f(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}var Hg=e=>{let t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function zg(e,t,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:u,removeListener:f}=Hg(e),l=(...y)=>{let d=r.multiArgs?y:y[0];r.filter&&!r.filter(d)||(c.push(d),r.count===c.length&&(n(),o(c)))},h=y=>{n(),s(y)};n=()=>{for(let y of a)f(y,l);for(let y of r.rejectionEvents)f(y,h)};for(let y of a)u(y,l);for(let y of r.rejectionEvents)u(y,h);r.signal&&r.signal.addEventListener("abort",()=>{h(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=za(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function Rf(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=zg(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var nc=ke(Za(),1),bl=ke(ll(),1),wl=ke(Yr(),1),ic=ke(rc(),1),vl=ke(xl(),1);function Jg(){wl.default._configure(),nc.default._configure(bl.default),ic.default._configure(vl.default)}Jg();var El=["uint64","int64","sint64","fixed64","sfixed64"];function em(e){for(let t of El){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function oc(e){return em(new nc.default(e))}function tm(e){for(let t of El){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function sc(){return tm(ic.default.create())}function Tt(e,t){let r=oc(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function _t(e,t){let r=sc();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Nn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(Nn||(Nn={}));function Bo(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Xr(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return Bo("enum",Nn.VARINT,r,n)}function kt(e,t){return Bo("message",Nn.LENGTH_DELIMITED,e,t)}var gt;(function(e){let t;(function(i){i.FIN="FIN",i.STOP_SENDING="STOP_SENDING",i.RESET="RESET"})(t=e.Flag||(e.Flag={}));let r;(function(i){i[i.FIN=0]="FIN",i[i.STOP_SENDING=1]="STOP_SENDING",i[i.RESET=2]="RESET"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Flag||(e.Flag={}));let n;e.codec=()=>(n==null&&(n=kt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.flag!=null&&(o.uint32(8),e.Flag.codec().encode(i.flag,o)),i.message!=null&&(o.uint32(18),o.bytes(i.message)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.flag=e.Flag.codec().decode(i);break;case 2:s.message=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>_t(i,e.codec()),e.decode=i=>Tt(i,e.codec())})(gt||(gt={}));var Ei=Ye("libp2p:webrtc:stream"),Sl=16*1024,rm=16*1024*1024,nm=30*1e3,im=3,ac=class extends Eo{channel;dataChannelOptions;incomingData;messageQueue;maxDataSize;constructor(t){switch(super(t),this.channel=t.channel,this.channel.binaryType="arraybuffer",this.incomingData=Vt(),this.messageQueue=new Xe,this.dataChannelOptions={bufferedAmountLowEventTimeout:t.dataChannelOptions?.bufferedAmountLowEventTimeout??nm,maxBufferedAmount:t.dataChannelOptions?.maxBufferedAmount??rm,maxMessageSize:t.dataChannelOptions?.maxMessageSize??Sl},this.maxDataSize=t.maxDataSize,this.channel.readyState){case"open":break;case"closed":case"closing":(this.timeline.close===void 0||this.timeline.close===0)&&(this.timeline.close=Date.now());break;case"connecting":break;default:throw Ei.error("unknown datachannel state %s",this.channel.readyState),new X("Unknown datachannel state","ERR_INVALID_STATE")}this.channel.onopen=n=>{this.timeline.open=new Date().getTime(),this.messageQueue!=null&&(this._sendMessage(this.messageQueue).catch(i=>{this.abort(i)}),this.messageQueue=void 0)},this.channel.onclose=n=>{this.close().catch(i=>{Ei.error("error closing stream after channel closed",i)})},this.channel.onerror=n=>{let i=n.error;this.abort(i)};let r=this;this.channel.onmessage=async n=>{let{data:i}=n;i===null||i.byteLength===0||this.incomingData.push(new Uint8Array(i,0,i.byteLength))},Promise.resolve().then(async()=>{for await(let n of Wr(this.incomingData)){let i=r.processIncomingProtobuf(n.subarray());i!=null&&r.sourcePush(new Xe(i))}}).catch(n=>{Ei.error("error processing incoming data channel messages",n)})}sendNewStream(){}async _sendMessage(t,r=!0){if(r&&this.channel.bufferedAmount>this.dataChannelOptions.maxBufferedAmount)try{await Rf(this.channel,"bufferedamountlow",{timeout:this.dataChannelOptions.bufferedAmountLowEventTimeout})}catch(n){throw n instanceof Rn?new Error("Timed out waiting for DataChannel buffer to clear"):n}if(this.channel.readyState==="closed"||this.channel.readyState==="closing")throw new X("Invalid datachannel state - closed or closing","ERR_INVALID_STATE");if(this.channel.readyState==="open")for(let n of t)this.channel.send(n);else if(this.channel.readyState==="connecting")this.messageQueue==null&&(this.messageQueue=new Xe),this.messageQueue.append(t);else throw Ei.error("unknown datachannel state %s",this.channel.readyState),new X("Unknown datachannel state","ERR_INVALID_STATE")}async sendData(t){for(t=t.sublist();t.byteLength>0;){let r=Math.min(t.byteLength,this.maxDataSize),n=t.subarray(0,r),i=gt.encode({message:n}),o=zr.single(i);await this._sendMessage(o),t.consume(r)}}async sendReset(){await this._sendFlag(gt.Flag.RESET)}async sendCloseWrite(){await this._sendFlag(gt.Flag.FIN)}async sendCloseRead(){await this._sendFlag(gt.Flag.STOP_SENDING)}processIncomingProtobuf(t){let r=gt.decode(t);return r.flag!==void 0&&(r.flag===gt.Flag.FIN&&(this.incomingData.end(),this.remoteCloseWrite()),r.flag===gt.Flag.RESET&&this.reset(),r.flag===gt.Flag.STOP_SENDING&&this.remoteCloseRead()),r.message}async _sendFlag(t){Ei.trace("Sending flag: %s",t.toString());let r=gt.encode({flag:t}),n=zr.single(r);await this._sendMessage(n,!1)}};function Pn(e){let{channel:t,direction:r,onEnd:n,dataChannelOptions:i}=e;return new ac({id:r==="inbound"?`i${t.id}`:`r${t.id}`,direction:r,maxDataSize:(i?.maxMessageSize??Sl)-im,dataChannelOptions:i,onEnd:n,channel:t,log:Ye(`libp2p:mplex:stream:${r}:${t.id}`)})}var Cl="/webrtc",Qr=class{protocol;peerConnection;streamBuffer=[];metrics;dataChannelOptions;constructor(t){this.peerConnection=t.peerConnection,this.metrics=t.metrics,this.protocol=t.protocol??Cl,this.dataChannelOptions=t.dataChannelOptions,this.peerConnection.ondatachannel=({channel:r})=>{let n=Pn({channel:r,direction:"inbound",dataChannelOptions:t.dataChannelOptions,onEnd:()=>{this.streamBuffer=this.streamBuffer.filter(i=>i.id!==n.id)}});this.streamBuffer.push(n)}}createStreamMuxer(t){return new cc({...t,peerConnection:this.peerConnection,dataChannelOptions:this.dataChannelOptions,metrics:this.metrics,streams:this.streamBuffer,protocol:this.protocol})}},cc=class{init;streams;protocol;peerConnection;dataChannelOptions;metrics;close=async()=>{};abort=()=>{};source=ho();sink=po;constructor(t){this.init=t,this.streams=t.streams,this.peerConnection=t.peerConnection,this.protocol=t.protocol??Cl,this.metrics=t.metrics,this.peerConnection.ondatachannel=({channel:n})=>{let i=Pn({channel:n,direction:"inbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(o=>o.id!==i.id),this.metrics?.increment({stream_end:!0}),t?.onStreamEnd?.(i)}});this.streams.push(i),t?.onIncomingStream!=null&&(this.metrics?.increment({incoming_stream:!0}),t.onIncomingStream(i))};let r=t?.onIncomingStream;r!=null&&this.streams.forEach(n=>{r(n)})}newStream(){let t=this.peerConnection.createDataChannel(""),r=Pn({channel:t,direction:"outbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(n=>n.id!==r.id),this.metrics?.increment({stream_end:!0}),this.init?.onStreamEnd?.(r)}});return this.streams.push(r),this.metrics?.increment({outgoing_stream:!0}),r}};var ft;(function(e){let t;(function(i){i.SDP_OFFER="SDP_OFFER",i.SDP_ANSWER="SDP_ANSWER",i.ICE_CANDIDATE="ICE_CANDIDATE"})(t=e.Type||(e.Type={}));let r;(function(i){i[i.SDP_OFFER=0]="SDP_OFFER",i[i.SDP_ANSWER=1]="SDP_ANSWER",i[i.ICE_CANDIDATE=2]="ICE_CANDIDATE"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Type||(e.Type={}));let n;e.codec=()=>(n==null&&(n=kt((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),e.Type.codec().encode(i.type,o)),i.data!=null&&(o.uint32(18),o.string(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=e.Type.codec().decode(i);break;case 2:s.data=i.string();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>_t(i,e.codec()),e.decode=i=>Tt(i,e.codec())})(ft||(ft={}));var Io=Ye("libp2p:webrtc:peer:util"),uc=async(e,t,r)=>{for(;;){let n=await Promise.race([e.promise,r.read()]);if(n instanceof Object){let i=n;if(i.type!==ft.Type.ICE_CANDIDATE)throw new Error("expected only ice candidates");if(i.data==null||i.data===""){Io.trace("end-of-candidates received");break}Io.trace("received new ICE candidate: %s",i.data);try{await t.addIceCandidate(new wf(JSON.parse(i.data)))}catch(o){throw Io.error("bad candidate received: ",o),new Error("bad candidate received")}}else break}await e.promise};function fc(e,t){e[mi?"oniceconnectionstatechange":"onconnectionstatechange"]=r=>{switch(Io.trace("receiver peerConnectionState state: ",e.connectionState),mi?e.iceConnectionState:e.connectionState){case"connected":t.resolve();break;case"failed":case"disconnected":case"closed":t.reject(new Error("RTCPeerConnection was closed"));break;default:break}}}var om=30*1e3,Cr=Ye("libp2p:webrtc:peer");async function Al({rtcConfiguration:e,dataChannelOptions:t,stream:r}){let n=AbortSignal.timeout(om),i=Va(Oa(r,n)).pb(ft),o=new Tn(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt(),c=pt();n.onabort=()=>{a.reject(new X("Timed out while trying to connect","ERR_TIMEOUT"))},o.onicecandidate=({candidate:y})=>{c.promise.then(async()=>{await i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""})},d=>{Cr.error("cannot set candidate since sending answer failed",d),a.reject(d)})},fc(o,a);let u=await i.read();if(u.type!==ft.Type.SDP_OFFER)throw new Error(`expected message type SDP_OFFER, received: ${u.type??"undefined"} `);let f=new Ua({type:"offer",sdp:u.data});await o.setRemoteDescription(f).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")});let l=await o.createAnswer().catch(y=>{throw Cr.error("could not execute createAnswer",y),c.reject(y),new Error("Failed to create answer")});await i.write({type:ft.Type.SDP_ANSWER,data:l.sdp}),await o.setLocalDescription(l).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),c.reject(y),new Error("Failed to set localDescription")}),c.resolve(),await uc(a,o,i);let h=Bl(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}async function Dl({rtcConfiguration:e,dataChannelOptions:t,signal:r,stream:n}){let i=Va(Oa(n,r)).pb(ft),o=new Tn(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt();fc(o,a),r.onabort=a.reject;let c=o.createDataChannel("init");o.onicecandidate=({candidate:y})=>{i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""}).catch(d=>{Cr.error("error sending ICE candidate",d)})};let u=await o.createOffer();await i.write({type:ft.Type.SDP_OFFER,data:u.sdp}),await o.setLocalDescription(u).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),new Error("Failed to set localDescription")});let f=await i.read();if(f.type!==ft.Type.SDP_ANSWER)throw new Error("remote should send an SDP answer");let l=new Ua({type:"answer",sdp:f.data});await o.setRemoteDescription(l).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")}),await uc(a,o,i),c.close();let h=Bl(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}function Bl(e){let t=e.split(`\r
30
30
  `).filter(n=>n.startsWith("a=candidate")).pop(),r=t?.split(" ");return t==null||r==null||r.length<5?(Cr("could not parse remote address from",t),"/webrtc"):`/dnsaddr/${r[4]}/${r[2].toLowerCase()}/${r[3]}/webrtc`}var To=class extends EventTarget{#e=new Map;listenerCount(t){let r=this.#e.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#e.get(t);i==null&&(i=[],this.#e.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#e.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#e.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#e.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new sm(t,r))}},lc=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},sm=globalThis.CustomEvent??lc;var am=z("dns4"),cm=z("dns6"),um=z("dnsaddr"),jr=Ue(z("dns"),um,am,cm),Ro=Ue(z("ip4"),z("ip6")),Un=Ue(Q(Ro,z("tcp")),Q(jr,z("tcp"))),Lo=Q(Ro,z("udp")),fm=Q(Lo,z("utp")),lm=Q(Lo,z("quic")),hm=Q(Lo,z("quic-v1")),hc=Ue(Q(Un,z("ws")),Q(jr,z("ws"))),_o=Ue(Q(hc,z("p2p")),hc),dc=Ue(Q(Un,z("wss")),Q(jr,z("wss")),Q(Un,z("tls"),z("ws")),Q(jr,z("tls"),z("ws"))),ko=Ue(Q(dc,z("p2p")),dc),pc=Ue(Q(Un,z("http")),Q(Ro,z("http")),Q(jr,z("http"))),yc=Ue(Q(Un,z("https")),Q(Ro,z("https")),Q(jr,z("https"))),Il=Q(Lo,z("webrtc-direct"),z("certhash")),kl=Ue(Q(Il,z("p2p")),Il),Tl=Q(hm,z("webtransport"),z("certhash"),z("certhash")),Rl=Ue(Q(Tl,z("p2p")),Tl),Ll=Ue(Q(_o,z("p2p-webrtc-star"),z("p2p")),Q(ko,z("p2p-webrtc-star"),z("p2p")),Q(_o,z("p2p-webrtc-star")),Q(ko,z("p2p-webrtc-star"))),G6=Ue(Q(_o,z("p2p-websocket-star"),z("p2p")),Q(ko,z("p2p-websocket-star"),z("p2p")),Q(_o,z("p2p-websocket-star")),Q(ko,z("p2p-websocket-star"))),Nl=Ue(Q(pc,z("p2p-webrtc-direct"),z("p2p")),Q(yc,z("p2p-webrtc-direct"),z("p2p")),Q(pc,z("p2p-webrtc-direct")),Q(yc,z("p2p-webrtc-direct"))),Jr=Ue(hc,dc,pc,yc,Ll,Nl,Un,fm,lm,jr,kl,Rl),W6=Ue(Q(Jr,z("p2p-stardust"),z("p2p")),Q(Jr,z("p2p-stardust"))),Ar=Ue(Q(Jr,z("p2p")),Ll,Nl,kl,Rl,z("p2p")),_l=Ue(Q(Ar,z("p2p-circuit"),Ar),Q(Ar,z("p2p-circuit")),Q(z("p2p-circuit"),Ar),Q(Jr,z("p2p-circuit")),Q(z("p2p-circuit"),Jr),z("p2p-circuit")),Pl=()=>Ue(Q(_l,Pl),_l),rr=Pl(),$6=Ue(Q(rr,Ar,rr),Q(Ar,rr),Q(rr,Ar),rr,Ar);var Y6=Ue(Q(rr,z("webrtc"),z("p2p")),Q(rr,z("webrtc")),Q(Jr,z("webrtc"),z("p2p")),Q(Jr,z("webrtc")),z("webrtc"));function Ul(e){function t(r){let n;try{n=tr(r)}catch{return!1}let i=e(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function Q(...e){function t(r){if(r.length<e.length)return null;let n=r;return e.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Ul(t),partialMatch:t}}function Ue(...e){function t(n){let i=null;return e.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Ul(t),partialMatch:t}}function z(e){let t=e;function r(i){let o;try{o=tr(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:r,partialMatch:n}}var No=class extends To{peerId;transportManager;constructor(t){super(),this.peerId=t.peerId,this.transportManager=t.transportManager}async listen(){this.safeDispatchEvent("listening",{})}getAddrs(){return this.transportManager.getListeners().filter(t=>t!==this).map(t=>t.getAddrs().filter(r=>rr.matches(r)).map(r=>r.encapsulate(`/webrtc/p2p/${this.peerId}`))).flat()}async close(){this.safeDispatchEvent("close",{})}};var Ol=Ye("libp2p:webrtc:peer"),dm="/webrtc",pm="/p2p-circuit",gc="/webrtc-signaling/0.0.1",ym=de("webrtc").code,Po=class{components;init;_started=!1;constructor(t,r={}){this.components=t,this.init=r}isStarted(){return this._started}async start(){await this.components.registrar.handle(gc,t=>{this._onProtocol(t).catch(r=>{Ol.error("failed to handle incoming connect from %p",t.connection.remotePeer,r)})},{runOnTransientConnection:!0}),this._started=!0}async stop(){await this.components.registrar.unhandle(gc),this._started=!1}createListener(t){return new No(this.components)}[Symbol.toStringTag]="@libp2p/webrtc";[no]=!0;filter(t){return t.filter(r=>r.protoCodes().includes(ym))}async dial(t,r){Ol.trace("dialing address: ",t);let{baseAddr:n,peerId:i}=gm(t);if(r.signal==null){let a=new AbortController;r.signal=a.signal}let o=await this.components.transportManager.dial(n,r),s=await o.newStream(gc,{...r,runOnTransientConnection:!0});try{let{pc:a,muxerFactory:c,remoteAddress:u}=await Dl({stream:s,rtcConfiguration:this.init.rtcConfiguration,dataChannelOptions:this.init.dataChannel,signal:r.signal}),f=await r.upgrader.upgradeOutbound(new Hr({peerConnection:a,timeline:{open:Date.now()},remoteAddr:tr(u).encapsulate(`/p2p/${i.toString()}`)}),{skipProtection:!0,skipEncryption:!0,muxerFactory:c});return await s.close(),f}catch(a){throw s.abort(a),a}finally{await o.close()}}async _onProtocol({connection:t,stream:r}){try{let{pc:n,muxerFactory:i,remoteAddress:o}=await Al({rtcConfiguration:this.init.rtcConfiguration,connection:t,stream:r,dataChannelOptions:this.init.dataChannel});await this.components.upgrader.upgradeInbound(new Hr({peerConnection:n,timeline:{open:new Date().getTime()},remoteAddr:tr(o).encapsulate(`/p2p/${t.remotePeer.toString()}`)}),{skipEncryption:!0,skipProtection:!0,muxerFactory:i})}catch(n){throw r.abort(n),n}finally{await t.close()}}};function gm(e){let t=e.toString().split(dm+"/");if(t.length!==2)throw new X("webrtc protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);if(!t[0].includes(pm))throw new X("p2p-circuit protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);let r=tr(t[0]),i=tr("/"+t[1]).getPeerId();if(i==null)throw new X("destination peer id was missing",ut.ERR_INVALID_MULTIADDR);let o=r.protos().pop();if(o===void 0)throw new X("invalid multiaddr",ut.ERR_INVALID_MULTIADDR);return o.name!=="p2p"&&(r=r.encapsulate(`/p2p/${i}`)),{baseAddr:r,peerId:pi(i)}}function mc(){let e=pt(),t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){yield*await e.promise}()}}function Fl(){let e=mc(),t=mc();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}function mm(e){return e[Symbol.asyncIterator]!=null}function xm(...e){let t=[];for(let r of e)mm(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Vt({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Kl=xm;function Ml(e,...t){if(e==null)throw new Error("Empty pipeline");if(xc(e)){let n=e;e=()=>n.source}else if(ql(e)||Vl(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&xc(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)xc(r[n])&&(r[n]=wm(r[n]));return bm(...r)}var bm=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},Vl=e=>e?.[Symbol.asyncIterator]!=null,ql=e=>e?.[Symbol.iterator]!=null,xc=e=>e==null?!1:e.sink!=null&&e.source!=null,wm=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Vt({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(Vl(o))i=async function*(){yield*o,n.end()};else if(ql(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Kl(n,i())}return e.source};var Hl=!!globalThis.process?.env?.DUMP_SESSION_KEYS;var vm=e=>e instanceof Uint8Array;var mt=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),zl=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Em=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Em)throw new Error("Non little-endian hardware is not supported");function Uo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Oo(e){if(typeof e=="string"&&(e=Uo(e)),!vm(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}var Sm=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.constructor===Object;function Gl(e,t){if(t!==void 0&&(typeof t!="object"||!Sm(t)))throw new Error("Options should be object or undefined");return Object.assign(e,t)}function Si(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if(typeof t=="number"&&e.length!==t)throw new Error(`Uint8Array length ${t} expected`)}function Wl(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n<e.length;n++)r&&(r=e[n]===t[n]);return r}function bc(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function wc(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Cm(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function $l(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Am(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");wc(e.outputLen),wc(e.blockLen)}function Dm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Bm(e,t){$l(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Im={number:wc,bool:Cm,bytes:$l,hash:Am,exists:Dm,output:Bm},tt=Im;var Qe=(e,t)=>e[t++]&255|(e[t++]&255)<<8,vc=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=Oo(t),Si(t,32);let r=Qe(t,0),n=Qe(t,2),i=Qe(t,4),o=Qe(t,6),s=Qe(t,8),a=Qe(t,10),c=Qe(t,12),u=Qe(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|i<<6)&7939,this.r[3]=(i>>>7|o<<9)&8191,this.r[4]=(o>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Qe(t,16+2*f)}process(t,r,n=!1){let i=n?0:2048,{h:o,r:s}=this,a=s[0],c=s[1],u=s[2],f=s[3],l=s[4],h=s[5],y=s[6],d=s[7],p=s[8],g=s[9],m=Qe(t,r+0),v=Qe(t,r+2),x=Qe(t,r+4),C=Qe(t,r+6),E=Qe(t,r+8),b=Qe(t,r+10),D=Qe(t,r+12),B=Qe(t,r+14),R=o[0]+(m&8191),F=o[1]+((m>>>13|v<<3)&8191),O=o[2]+((v>>>10|x<<6)&8191),K=o[3]+((x>>>7|C<<9)&8191),q=o[4]+((C>>>4|E<<12)&8191),J=o[5]+(E>>>1&8191),I=o[6]+((E>>>14|b<<2)&8191),L=o[7]+((b>>>11|D<<5)&8191),_=o[8]+((D>>>8|B<<8)&8191),k=o[9]+(B>>>5|i),S=0,U=S+R*a+F*(5*g)+O*(5*p)+K*(5*d)+q*(5*y);S=U>>>13,U&=8191,U+=J*(5*h)+I*(5*l)+L*(5*f)+_*(5*u)+k*(5*c),S+=U>>>13,U&=8191;let M=S+R*c+F*a+O*(5*g)+K*(5*p)+q*(5*d);S=M>>>13,M&=8191,M+=J*(5*y)+I*(5*h)+L*(5*l)+_*(5*f)+k*(5*u),S+=M>>>13,M&=8191;let H=S+R*u+F*c+O*a+K*(5*g)+q*(5*p);S=H>>>13,H&=8191,H+=J*(5*d)+I*(5*y)+L*(5*h)+_*(5*l)+k*(5*f),S+=H>>>13,H&=8191;let j=S+R*f+F*u+O*c+K*a+q*(5*g);S=j>>>13,j&=8191,j+=J*(5*p)+I*(5*d)+L*(5*y)+_*(5*h)+k*(5*l),S+=j>>>13,j&=8191;let ee=S+R*l+F*f+O*u+K*c+q*a;S=ee>>>13,ee&=8191,ee+=J*(5*g)+I*(5*p)+L*(5*d)+_*(5*y)+k*(5*h),S+=ee>>>13,ee&=8191;let se=S+R*h+F*l+O*f+K*u+q*c;S=se>>>13,se&=8191,se+=J*a+I*(5*g)+L*(5*p)+_*(5*d)+k*(5*y),S+=se>>>13,se&=8191;let te=S+R*y+F*h+O*l+K*f+q*u;S=te>>>13,te&=8191,te+=J*c+I*a+L*(5*g)+_*(5*p)+k*(5*d),S+=te>>>13,te&=8191;let ne=S+R*d+F*y+O*h+K*l+q*f;S=ne>>>13,ne&=8191,ne+=J*u+I*c+L*a+_*(5*g)+k*(5*p),S+=ne>>>13,ne&=8191;let ve=S+R*p+F*d+O*y+K*h+q*l;S=ve>>>13,ve&=8191,ve+=J*f+I*u+L*c+_*a+k*(5*g),S+=ve>>>13,ve&=8191;let be=S+R*g+F*p+O*d+K*y+q*h;S=be>>>13,be&=8191,be+=J*l+I*f+L*u+_*c+k*a,S+=be>>>13,be&=8191,S=(S<<2)+S|0,S=S+U|0,U=S&8191,S=S>>>13,M+=S,o[0]=U,o[1]=M,o[2]=H,o[3]=j,o[4]=ee,o[5]=se,o[6]=te,o[7]=ne,o[8]=ve,o[9]=be}finalize(){let{h:t,pad:r}=this,n=new Uint16Array(10),i=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=i,i=t[a]>>>13,t[a]&=8191;t[0]+=i*5,i=t[0]>>>13,t[0]&=8191,t[1]+=i,i=t[1]>>>13,t[1]&=8191,t[2]+=i,n[0]=t[0]+5,i=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+i,i=n[a]>>>13,n[a]&=8191;n[9]-=8192;let o=(i^1)-1;for(let a=0;a<10;a++)n[a]&=o;o=~o;for(let a=0;a<10;a++)t[a]=t[a]&o|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let s=t[0]+r[0];t[0]=s&65535;for(let a=1;a<8;a++)s=(t[a]+r[a]|0)+(s>>>16)|0,t[a]=s&65535}update(t){tt.exists(this);let{buffer:r,blockLen:n}=this;t=Oo(t);let i=t.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){for(;n<=i-o;o+=n)this.process(t,o);continue}r.set(t.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(r,0,!1),this.pos=0)}return this}destroy(){this.h.fill(0),this.r.fill(0),this.buffer.fill(0),this.pad.fill(0)}digestInto(t){tt.exists(this),tt.output(t,this),this.finished=!0;let{buffer:r,h:n}=this,{pos:i}=this;if(i){for(r[i++]=1;i<16;i++)r[i]=0;this.process(r,0,!0)}this.finalize();let o=0;for(let s=0;s<8;s++)t[o++]=n[s]>>>0,t[o++]=n[s]>>>8;return t}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}};function Tm(e){let t=(n,i)=>e(i).update(Oo(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var Yl=Tm(e=>new vc(e));var _m=Uo("expand 16-byte k"),km=Uo("expand 32-byte k"),Rm=mt(_m),Lm=mt(km),Zl=e=>!(e.byteOffset%4),On=e=>{let{core:t,rounds:r,counterRight:n,counterLen:i,allow128bitKeys:o,extendNonceFn:s,blockLen:a}=Gl({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);tt.number(i),tt.number(r),tt.number(a),tt.bool(n),tt.bool(o);let c=a/4;if(a%4!==0)throw new Error("Salsa/ChaCha: blockLen should be aligned to 4 bytes");return(u,f,l,h,y=0)=>{if(tt.bytes(u),tt.bytes(f),tt.bytes(l),h||(h=new Uint8Array(l.length)),tt.bytes(h),tt.number(y),y<0||y>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(h.length<l.length)throw new Error(`Salsa/ChaCha: output (${h.length}) is shorter than data (${l.length})`);let d=[],p,g;if(u.length===32)p=u,g=Lm;else if(u.length===16&&o)p=new Uint8Array(32),p.set(u),p.set(u,16),g=Rm,d.push(p);else throw new Error(`Salsa/ChaCha: wrong key length=${u.length}, expected`);if(s){if(f.length<=16)throw new Error("Salsa/ChaCha: extended nonce should be bigger than 16 bytes");p=s(g,p,f.subarray(0,16),new Uint8Array(32)),d.push(p),f=f.subarray(16)}let m=16-i;if(f.length!==m)throw new Error(`Salsa/ChaCha: nonce should be ${m} or 16 bytes`);if(m!==12){let R=new Uint8Array(12);R.set(f,n?0:12-f.length),d.push(f=R)}let v=new Uint8Array(a),x=mt(v),C=mt(p),E=mt(f),b=Zl(l)&&mt(l),D=Zl(h)&&mt(h);d.push(x);let B=l.length;for(let R=0,F=y;R<B;F++){if(t(g,C,E,x,F,r),F>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");let O=Math.min(a,B-R);if(O===a&&D&&b){let K=R/4;if(R%4!==0)throw new Error("Salsa/ChaCha: wrong block position");for(let q=0;q<c;q++)D[K+q]=b[K+q]^x[q];R+=a;continue}for(let K=0;K<O;K++)h[R+K]=l[R+K]^v[K];R+=O}for(let R=0;R<d.length;R++)d[R].fill(0);return h}};var W=(e,t)=>e<<t|e>>>32-t;function Ci(e,t,r,n,i,o=20){let s=e[0],a=e[1],c=e[2],u=e[3],f=t[0],l=t[1],h=t[2],y=t[3],d=t[4],p=t[5],g=t[6],m=t[7],v=i,x=r[0],C=r[1],E=r[2],b=s,D=a,B=c,R=u,F=f,O=l,K=h,q=y,J=d,I=p,L=g,_=m,k=v,S=x,U=C,M=E;for(let j=0;j<o;j+=2)b=b+F|0,k=W(k^b,16),J=J+k|0,F=W(F^J,12),b=b+F|0,k=W(k^b,8),J=J+k|0,F=W(F^J,7),D=D+O|0,S=W(S^D,16),I=I+S|0,O=W(O^I,12),D=D+O|0,S=W(S^D,8),I=I+S|0,O=W(O^I,7),B=B+K|0,U=W(U^B,16),L=L+U|0,K=W(K^L,12),B=B+K|0,U=W(U^B,8),L=L+U|0,K=W(K^L,7),R=R+q|0,M=W(M^R,16),_=_+M|0,q=W(q^_,12),R=R+q|0,M=W(M^R,8),_=_+M|0,q=W(q^_,7),b=b+O|0,M=W(M^b,16),L=L+M|0,O=W(O^L,12),b=b+O|0,M=W(M^b,8),L=L+M|0,O=W(O^L,7),D=D+K|0,k=W(k^D,16),_=_+k|0,K=W(K^_,12),D=D+K|0,k=W(k^D,8),_=_+k|0,K=W(K^_,7),B=B+q|0,S=W(S^B,16),J=J+S|0,q=W(q^J,12),B=B+q|0,S=W(S^B,8),J=J+S|0,q=W(q^J,7),R=R+F|0,U=W(U^R,16),I=I+U|0,F=W(F^I,12),R=R+F|0,U=W(U^R,8),I=I+U|0,F=W(F^I,7);let H=0;n[H++]=s+b|0,n[H++]=a+D|0,n[H++]=c+B|0,n[H++]=u+R|0,n[H++]=f+F|0,n[H++]=l+O|0,n[H++]=h+K|0,n[H++]=y+q|0,n[H++]=d+J|0,n[H++]=p+I|0,n[H++]=g+L|0,n[H++]=m+_|0,n[H++]=v+k|0,n[H++]=x+S|0,n[H++]=C+U|0,n[H++]=E+M|0}function Nm(e,t,r,n){let i=mt(t),o=mt(r),s=mt(n),a=e[0],c=e[1],u=e[2],f=e[3],l=i[0],h=i[1],y=i[2],d=i[3],p=i[4],g=i[5],m=i[6],v=i[7],x=o[0],C=o[1],E=o[2],b=o[3];for(let D=0;D<20;D+=2)a=a+l|0,x=W(x^a,16),p=p+x|0,l=W(l^p,12),a=a+l|0,x=W(x^a,8),p=p+x|0,l=W(l^p,7),c=c+h|0,C=W(C^c,16),g=g+C|0,h=W(h^g,12),c=c+h|0,C=W(C^c,8),g=g+C|0,h=W(h^g,7),u=u+y|0,E=W(E^u,16),m=m+E|0,y=W(y^m,12),u=u+y|0,E=W(E^u,8),m=m+E|0,y=W(y^m,7),f=f+d|0,b=W(b^f,16),v=v+b|0,d=W(d^v,12),f=f+d|0,b=W(b^f,8),v=v+b|0,d=W(d^v,7),a=a+h|0,b=W(b^a,16),m=m+b|0,h=W(h^m,12),a=a+h|0,b=W(b^a,8),m=m+b|0,h=W(h^m,7),c=c+y|0,x=W(x^c,16),v=v+x|0,y=W(y^v,12),c=c+y|0,x=W(x^c,8),v=v+x|0,y=W(y^v,7),u=u+d|0,C=W(C^u,16),p=p+C|0,d=W(d^p,12),u=u+d|0,C=W(C^u,8),p=p+C|0,d=W(d^p,7),f=f+l|0,E=W(E^f,16),g=g+E|0,l=W(l^g,12),f=f+l|0,E=W(E^f,8),g=g+E|0,l=W(l^g,7);return s[0]=a,s[1]=c,s[2]=u,s[3]=f,s[4]=x,s[5]=C,s[6]=E,s[7]=b,n}var RC=On({core:Ci,counterRight:!1,counterLen:8}),Pm=On({core:Ci,counterRight:!1,counterLen:4,allow128bitKeys:!1}),Um=On({core:Ci,counterRight:!1,counterLen:8,extendNonceFn:Nm,allow128bitKeys:!1}),LC=On({core:Ci,counterRight:!1,counterLen:4,rounds:8}),NC=On({core:Ci,counterRight:!1,counterLen:4,rounds:12}),Om=new Uint8Array(16),Xl=(e,t)=>{e.update(t);let r=t.length%16;r&&e.update(Om.subarray(r))},Ql=(e,t,r,n,i)=>{let o=e(t,r,new Uint8Array(32)),s=Yl.create(o);i&&Xl(s,i),Xl(s,n);let a=new Uint8Array(16),c=zl(a);bc(c,0,BigInt(i?i.length:0),!0),bc(c,8,BigInt(n.length),!0),s.update(a);let u=s.digest();return o.fill(0),u},jl=e=>(t,r,n)=>(Si(t,32),Si(r),{tagLength:16,encrypt:o=>{let s=new Uint8Array(o.length+16);e(t,r,o,s,1);let a=Ql(e,t,r,s.subarray(0,-16),n);return s.set(a,o.length),s},decrypt:o=>{if(o.length<16)throw new Error("Encrypted data should be at least 16");let s=o.subarray(-16),a=o.subarray(0,-16),c=Ql(e,t,r,a,n);if(!Wl(s,c))throw new Error("Wrong tag");return e(t,r,a,void 0,1)}}),Ec=jl(Pm),PC=jl(Um);function Fo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Sc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Ai(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Fo(e.outputLen),Fo(e.blockLen)}function Fn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Jl(e,t){Sc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Ko=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var eh=e=>e instanceof Uint8Array;var Mo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Rt=(e,t)=>e<<32-t|e>>>t,Fm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Fm)throw new Error("Non little-endian hardware is not supported");function Cc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Dr(e){if(typeof e=="string"&&(e=Cc(e)),!eh(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function Vo(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!eh(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Kn=class{clone(){return this._cloneInto()}},MC={}.toString;function qo(e){let t=n=>e().update(Dr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function en(e=32){if(Ko&&typeof Ko.getRandomValues=="function")return Ko.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Km(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Mn=class extends Kn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Mo(this.buffer)}update(t){Fn(this);let{view:r,buffer:n,blockLen:i}=this;t=Dr(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=Mo(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Fn(this),Jl(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;Km(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Mo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var Ho=BigInt(4294967295),Ac=BigInt(32);function th(e,t=!1){return t?{h:Number(e&Ho),l:Number(e>>Ac&Ho)}:{h:Number(e>>Ac&Ho)|0,l:Number(e&Ho)|0}}function Mm(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:s}=th(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var Vm=(e,t)=>BigInt(e>>>0)<<Ac|BigInt(t>>>0),qm=(e,t,r)=>e>>>r,Hm=(e,t,r)=>e<<32-r|t>>>r,zm=(e,t,r)=>e>>>r|t<<32-r,Gm=(e,t,r)=>e<<32-r|t>>>r,Wm=(e,t,r)=>e<<64-r|t>>>r-32,$m=(e,t,r)=>e>>>r-32|t<<64-r,Ym=(e,t)=>t,Zm=(e,t)=>e,Xm=(e,t,r)=>e<<r|t>>>32-r,Qm=(e,t,r)=>t<<r|e>>>32-r,jm=(e,t,r)=>t<<r-32|e>>>64-r,Jm=(e,t,r)=>e<<r-32|t>>>64-r;function ex(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var tx=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),rx=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,nx=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),ix=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,ox=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),sx=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var ax={fromBig:th,split:Mm,toBig:Vm,shrSH:qm,shrSL:Hm,rotrSH:zm,rotrSL:Gm,rotrBH:Wm,rotrBL:$m,rotr32H:Ym,rotr32L:Zm,rotlSH:Xm,rotlSL:Qm,rotlBH:jm,rotlBL:Jm,add:ex,add3L:tx,add3H:rx,add4L:nx,add4H:ix,add5H:sx,add5L:ox},ie=ax;var[cx,ux]=(()=>ie.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(e=>BigInt(e))))(),Br=new Uint32Array(80),Ir=new Uint32Array(80),Dc=class extends Mn{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:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:h,Gh:y,Gl:d,Hh:p,Hl:g}=this;return[t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g]}set(t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=h|0,this.Gh=y|0,this.Gl=d|0,this.Hh=p|0,this.Hl=g|0}process(t,r){for(let x=0;x<16;x++,r+=4)Br[x]=t.getUint32(r),Ir[x]=t.getUint32(r+=4);for(let x=16;x<80;x++){let C=Br[x-15]|0,E=Ir[x-15]|0,b=ie.rotrSH(C,E,1)^ie.rotrSH(C,E,8)^ie.shrSH(C,E,7),D=ie.rotrSL(C,E,1)^ie.rotrSL(C,E,8)^ie.shrSL(C,E,7),B=Br[x-2]|0,R=Ir[x-2]|0,F=ie.rotrSH(B,R,19)^ie.rotrBH(B,R,61)^ie.shrSH(B,R,6),O=ie.rotrSL(B,R,19)^ie.rotrBL(B,R,61)^ie.shrSL(B,R,6),K=ie.add4L(D,O,Ir[x-7],Ir[x-16]),q=ie.add4H(K,b,F,Br[x-7],Br[x-16]);Br[x]=q|0,Ir[x]=K|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:h,Fh:y,Fl:d,Gh:p,Gl:g,Hh:m,Hl:v}=this;for(let x=0;x<80;x++){let C=ie.rotrSH(l,h,14)^ie.rotrSH(l,h,18)^ie.rotrBH(l,h,41),E=ie.rotrSL(l,h,14)^ie.rotrSL(l,h,18)^ie.rotrBL(l,h,41),b=l&y^~l&p,D=h&d^~h&g,B=ie.add5L(v,E,D,ux[x],Ir[x]),R=ie.add5H(B,m,C,b,cx[x],Br[x]),F=B|0,O=ie.rotrSH(n,i,28)^ie.rotrBH(n,i,34)^ie.rotrBH(n,i,39),K=ie.rotrSL(n,i,28)^ie.rotrBL(n,i,34)^ie.rotrBL(n,i,39),q=n&o^n&a^o&a,J=i&s^i&c^s&c;m=p|0,v=g|0,p=y|0,g=d|0,y=l|0,d=h|0,{h:l,l:h}=ie.add(u|0,f|0,R|0,F|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let I=ie.add3L(F,K,J);n=ie.add3H(I,R,O,q),i=I|0}({h:n,l:i}=ie.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=ie.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=ie.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=ie.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:h}=ie.add(this.Eh|0,this.El|0,l|0,h|0),{h:y,l:d}=ie.add(this.Fh|0,this.Fl|0,y|0,d|0),{h:p,l:g}=ie.add(this.Gh|0,this.Gl|0,p|0,g|0),{h:m,l:v}=ie.add(this.Hh|0,this.Hl|0,m|0,v|0),this.set(n,i,o,s,a,c,u,f,l,h,y,d,p,g,m,v)}roundClean(){Br.fill(0),Ir.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 Bc=qo(()=>new Dc);var Wo={};fe(Wo,{bitGet:()=>gx,bitLen:()=>yx,bitMask:()=>Di,bitSet:()=>mx,bytesToHex:()=>nr,bytesToNumberBE:()=>ir,bytesToNumberLE:()=>Lt,concatBytes:()=>sr,createHmacDrbg:()=>_c,ensureBytes:()=>Se,equalBytes:()=>dx,hexToBytes:()=>tn,hexToNumber:()=>Tc,numberToBytesBE:()=>Tr,numberToBytesLE:()=>or,numberToHexUnpadded:()=>ih,numberToVarBytesBE:()=>hx,utf8ToBytes:()=>px,validateObject:()=>xt});var nh=BigInt(0),zo=BigInt(1),fx=BigInt(2),Go=e=>e instanceof Uint8Array,lx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function nr(e){if(!Go(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=lx[e[r]];return t}function ih(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Tc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function tn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),s=Number.parseInt(o,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[n]=s}return r}function ir(e){return Tc(nr(e))}function Lt(e){if(!Go(e))throw new Error("Uint8Array expected");return Tc(nr(Uint8Array.from(e).reverse()))}function Tr(e,t){return tn(e.toString(16).padStart(t*2,"0"))}function or(e,t){return Tr(e,t).reverse()}function hx(e){return tn(ih(e))}function Se(e,t,r){let n;if(typeof t=="string")try{n=tn(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Go(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function sr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Go(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function dx(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function px(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function yx(e){let t;for(t=0;e>nh;e>>=zo,t+=1);return t}function gx(e,t){return e>>BigInt(t)&zo}var mx=(e,t,r)=>e|(r?zo:nh)<<BigInt(t),Di=e=>(fx<<BigInt(e-1))-zo,Ic=e=>new Uint8Array(e),rh=e=>Uint8Array.from(e);function _c(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Ic(e),i=Ic(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=Ic())=>{i=a(rh([0]),l),n=a(),l.length!==0&&(i=a(rh([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,h=[];for(;l<t;){n=a();let y=n.slice();h.push(y),l+=n.length}return sr(...h)};return(l,h)=>{s(),c(l);let y;for(;!(y=h(u()));)c();return s(),y}}var xx={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function xt(e,t,r={}){let n=(i,o,s)=>{let a=xx[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Me=BigInt(0),Ie=BigInt(1),rn=BigInt(2),bx=BigInt(3),kc=BigInt(4),oh=BigInt(5),sh=BigInt(8),wx=BigInt(9),vx=BigInt(16);function pe(e,t){let r=e%t;return r>=Me?r:t+r}function Rc(e,t,r){if(r<=Me||t<Me)throw new Error("Expected power/modulo > 0");if(r===Ie)return Me;let n=Ie;for(;t>Me;)t&Ie&&(n=n*e%r),e=e*e%r,t>>=Ie;return n}function Ce(e,t,r){let n=e;for(;t-- >Me;)n*=n,n%=r;return n}function $o(e,t){if(e===Me||t<=Me)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=pe(e,t),n=t,i=Me,o=Ie,s=Ie,a=Me;for(;r!==Me;){let u=n/r,f=n%r,l=i-s*u,h=o-a*u;n=r,r=f,i=s,o=a,s=l,a=h}if(n!==Ie)throw new Error("invert: does not exist");return pe(i,t)}function Ex(e){let t=(e-Ie)/rn,r,n,i;for(r=e-Ie,n=0;r%rn===Me;r/=rn,n++);for(i=rn;i<e&&Rc(i,t,e)!==e-Ie;i++);if(n===1){let s=(e+Ie)/kc;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+Ie)/rn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let y=1;for(let p=a.sqr(h);y<u&&!a.eql(p,a.ONE);y++)p=a.sqr(p);let d=a.pow(f,Ie<<BigInt(u-y-1));f=a.sqr(d),l=a.mul(l,d),h=a.mul(h,f),u=y}return l}}function Sx(e){if(e%kc===bx){let t=(e+Ie)/kc;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%sh===oh){let t=(e-oh)/sh;return function(n,i){let o=n.mul(i,rn),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,rn),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%vx,Ex(e)}var ah=(e,t)=>(pe(e,t)&Ie)===Ie,Cx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Lc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Cx.reduce((n,i)=>(n[i]="function",n),t);return xt(e,r)}function Ax(e,t,r){if(r<Me)throw new Error("Expected power > 0");if(r===Me)return e.ONE;if(r===Ie)return t;let n=e.ONE,i=t;for(;r>Me;)r&Ie&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Ie;return n}function Dx(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function Nc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Yo(e,t,r=!1,n={}){if(e<=Me)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Nc(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=Sx(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:Di(i),ZERO:Me,ONE:Ie,create:c=>pe(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Me<=c&&c<e},is0:c=>c===Me,isOdd:c=>(c&Ie)===Ie,neg:c=>pe(-c,e),eql:(c,u)=>c===u,sqr:c=>pe(c*c,e),add:(c,u)=>pe(c+u,e),sub:(c,u)=>pe(c-u,e),mul:(c,u)=>pe(c*u,e),pow:(c,u)=>Ax(a,c,u),div:(c,u)=>pe(c*$o(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>$o(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>Dx(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?or(c,o):Tr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Lt(c):ir(c)}});return Object.freeze(a)}function ch(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function uh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Pc(e){let t=uh(e);return t+Math.ceil(t/2)}function fh(e,t,r=!1){let n=e.length,i=uh(t),o=Pc(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?ir(e):Lt(e),a=pe(s,t-Ie)+Ie;return r?or(a,i):Tr(a,i)}var Ix=BigInt(0),Uc=BigInt(1);function Zo(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>Ix;)o&Uc&&(s=s.add(a)),a=a.double(),o>>=Uc;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let h=1;h<a;h++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),h=2**i,y=BigInt(i);for(let d=0;d<a;d++){let p=d*c,g=Number(s&l);s>>=y,g>c&&(g-=h,s+=Uc);let m=p,v=p+Math.abs(g)-1,x=d%2!==0,C=g<0;g===0?f=f.add(r(x,o[m])):u=u.add(r(C,o[v]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function Bi(e){return Lc(e.Fp),xt(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Nc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Nt=BigInt(0),lt=BigInt(1),Xo=BigInt(2),Tx=BigInt(8),_x={zip215:!0};function kx(e){let t=Bi(e);return xt(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Qo(e){let t=kx(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=Xo<<BigInt(a*8)-lt,f=r.create,l=t.uvRatio||((k,S)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(S))}}catch{return{isValid:!1,value:Nt}}}),h=t.adjustScalarBytes||(k=>k),y=t.domain||((k,S,U)=>{if(S.length||U)throw new Error("Contexts/pre-hash are not supported");return k}),d=k=>typeof k=="bigint"&&Nt<k,p=(k,S)=>d(k)&&d(S)&&k<S,g=k=>k===Nt||p(k,u);function m(k,S){if(p(k,S))return k;throw new Error(`Expected valid scalar < ${S}, got ${typeof k} ${k}`)}function v(k){return k===Nt?k:m(k,n)}let x=new Map;function C(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(S,U,M,H){if(this.ex=S,this.ey=U,this.ez=M,this.et=H,!g(S))throw new Error("x required");if(!g(U))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(S){if(S instanceof E)throw new Error("extended point not allowed");let{x:U,y:M}=S||{};if(!g(U)||!g(M))throw new Error("invalid affine point");return new E(U,M,lt,f(U*M))}static normalizeZ(S){let U=r.invertBatch(S.map(M=>M.ez));return S.map((M,H)=>M.toAffine(U[H])).map(E.fromAffine)}_setWindowSize(S){this._WINDOW_SIZE=S,x.delete(this)}assertValidity(){let{a:S,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:j,et:ee}=this,se=f(M*M),te=f(H*H),ne=f(j*j),ve=f(ne*ne),be=f(se*S),We=f(ne*f(be+te)),$e=f(ve+f(U*f(se*te)));if(We!==$e)throw new Error("bad point: equation left != right (1)");let Ke=f(M*H),Je=f(j*ee);if(Ke!==Je)throw new Error("bad point: equation left != right (2)")}equals(S){C(S);let{ex:U,ey:M,ez:H}=this,{ex:j,ey:ee,ez:se}=S,te=f(U*se),ne=f(j*H),ve=f(M*se),be=f(ee*H);return te===ne&&ve===be}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:S}=t,{ex:U,ey:M,ez:H}=this,j=f(U*U),ee=f(M*M),se=f(Xo*f(H*H)),te=f(S*j),ne=U+M,ve=f(f(ne*ne)-j-ee),be=te+ee,We=be-se,$e=te-ee,Ke=f(ve*We),Je=f(be*$e),jt=f(ve*$e),Fr=f(We*be);return new E(Ke,Je,Fr,jt)}add(S){C(S);let{a:U,d:M}=t,{ex:H,ey:j,ez:ee,et:se}=this,{ex:te,ey:ne,ez:ve,et:be}=S;if(U===BigInt(-1)){let lu=f((j-H)*(ne+te)),hu=f((j+H)*(ne-te)),Vs=f(hu-lu);if(Vs===Nt)return this.double();let du=f(ee*Xo*be),pu=f(se*Xo*ve),yu=pu+du,gu=hu+lu,mu=pu-du,x2=f(yu*Vs),b2=f(gu*mu),w2=f(yu*mu),v2=f(Vs*gu);return new E(x2,b2,v2,w2)}let We=f(H*te),$e=f(j*ne),Ke=f(se*M*be),Je=f(ee*ve),jt=f((H+j)*(te+ne)-We-$e),Fr=Je-Ke,ci=Je+Ke,fu=f($e-U*We),p2=f(jt*Fr),y2=f(ci*fu),g2=f(jt*fu),m2=f(Fr*ci);return new E(p2,y2,m2,g2)}subtract(S){return this.add(S.negate())}wNAF(S){return B.wNAFCached(this,x,S,E.normalizeZ)}multiply(S){let{p:U,f:M}=this.wNAF(m(S,n));return E.normalizeZ([U,M])[0]}multiplyUnsafe(S){let U=v(S);return U===Nt?D:this.equals(D)||U===lt?this:this.equals(b)?this.wNAF(U).p:B.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return B.unsafeLadder(this,n).is0()}toAffine(S){let{ex:U,ey:M,ez:H}=this,j=this.is0();S==null&&(S=j?Tx:r.inv(H));let ee=f(U*S),se=f(M*S),te=f(H*S);if(j)return{x:Nt,y:lt};if(te!==lt)throw new Error("invZ was invalid");return{x:ee,y:se}}clearCofactor(){let{h:S}=t;return S===lt?this:this.multiplyUnsafe(S)}static fromHex(S,U=!1){let{d:M,a:H}=t,j=r.BYTES;S=Se("pointHex",S,j);let ee=S.slice(),se=S[j-1];ee[j-1]=se&-129;let te=Lt(ee);te===Nt||(U?m(te,u):m(te,r.ORDER));let ne=f(te*te),ve=f(ne-lt),be=f(M*ne-H),{isValid:We,value:$e}=l(ve,be);if(!We)throw new Error("Point.fromHex: invalid y coordinate");let Ke=($e&lt)===lt,Je=(se&128)!==0;if(!U&&$e===Nt&&Je)throw new Error("Point.fromHex: x=0 and x_0=1");return Je!==Ke&&($e=f(-$e)),E.fromAffine({x:$e,y:te})}static fromPrivateKey(S){return O(S).point}toRawBytes(){let{x:S,y:U}=this.toAffine(),M=or(U,r.BYTES);return M[M.length-1]|=S&lt?128:0,M}toHex(){return nr(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,lt,f(t.Gx*t.Gy)),E.ZERO=new E(Nt,lt,lt,Nt);let{BASE:b,ZERO:D}=E,B=Zo(E,a*8);function R(k){return pe(k,n)}function F(k){return R(Lt(k))}function O(k){let S=a;k=Se("private key",k,S);let U=Se("hashed private key",o(k),2*S),M=h(U.slice(0,S)),H=U.slice(S,2*S),j=F(M),ee=b.multiply(j),se=ee.toRawBytes();return{head:M,prefix:H,scalar:j,point:ee,pointBytes:se}}function K(k){return O(k).pointBytes}function q(k=new Uint8Array,...S){let U=sr(...S);return F(o(y(U,Se("context",k),!!i)))}function J(k,S,U={}){k=Se("message",k),i&&(k=i(k));let{prefix:M,scalar:H,pointBytes:j}=O(S),ee=q(U.context,M,k),se=b.multiply(ee).toRawBytes(),te=q(U.context,se,j,k),ne=R(ee+te*H);v(ne);let ve=sr(se,or(ne,r.BYTES));return Se("result",ve,a*2)}let I=_x;function L(k,S,U,M=I){let{context:H,zip215:j}=M,ee=r.BYTES;k=Se("signature",k,2*ee),S=Se("message",S),i&&(S=i(S));let se=Lt(k.slice(ee,2*ee)),te,ne,ve;try{te=E.fromHex(U,j),ne=E.fromHex(k.slice(0,ee),j),ve=b.multiplyUnsafe(se)}catch{return!1}if(!j&&te.isSmallOrder())return!1;let be=q(H,ne.toRawBytes(),te.toRawBytes(),S);return ne.add(te.multiplyUnsafe(be)).subtract(ve).clearCofactor().equals(E.ZERO)}return b._setWindowSize(8),{CURVE:t,getPublicKey:K,sign:J,verify:L,ExtendedPoint:E,utils:{getExtendedPublicKey:O,randomPrivateKey:()=>s(r.BYTES),precompute(k=8,S=E.BASE){return S._setWindowSize(k),S.multiply(BigInt(3)),S}}}}var Ii=BigInt(0),Oc=BigInt(1);function Rx(e){return xt(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})}function lh(e){let t=Rx(e),{P:r}=t,n=x=>pe(x,r),i=t.montgomeryBits,o=Math.ceil(i/8),s=t.nByteLength,a=t.adjustScalarBytes||(x=>x),c=t.powPminus2||(x=>Rc(x,r-BigInt(2),r));function u(x,C,E){let b=n(x*(C-E));return C=n(C-b),E=n(E+b),[C,E]}function f(x){if(typeof x=="bigint"&&Ii<=x&&x<r)return x;throw new Error("Expected valid scalar 0 < scalar < CURVE.P")}let l=(t.a-BigInt(2))/BigInt(4);function h(x,C){let E=f(x),b=f(C),D=E,B=Oc,R=Ii,F=E,O=Oc,K=Ii,q;for(let I=BigInt(i-1);I>=Ii;I--){let L=b>>I&Oc;K^=L,q=u(K,B,F),B=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1],K=L;let _=B+R,k=n(_*_),S=B-R,U=n(S*S),M=k-U,H=F+O,j=F-O,ee=n(j*_),se=n(H*S),te=ee+se,ne=ee-se;F=n(te*te),O=n(D*n(ne*ne)),B=n(k*U),R=n(M*(k+n(l*M)))}q=u(K,B,F),B=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1];let J=c(R);return n(B*J)}function y(x){return or(n(x),o)}function d(x){let C=Se("u coordinate",x,o);return s===o&&(C[s-1]&=127),Lt(C)}function p(x){let C=Se("scalar",x);if(C.length!==o&&C.length!==s)throw new Error(`Expected ${o} or ${s} bytes, got ${C.length}`);return Lt(a(C))}function g(x,C){let E=d(C),b=p(x),D=h(E,b);if(D===Ii)throw new Error("Invalid private or public key received");return y(D)}let m=y(t.Gu);function v(x){return g(x,m)}return{scalarMult:g,scalarMultBase:v,getSharedSecret:(x,C)=>g(x,C),getPublicKey:x=>v(x),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:m}}var Ti=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),hh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),hA=BigInt(0),Lx=BigInt(1),Fc=BigInt(2),Nx=BigInt(5),dh=BigInt(10),Px=BigInt(20),Ux=BigInt(40),ph=BigInt(80);function yh(e){let t=Ti,n=e*e%t*e%t,i=Ce(n,Fc,t)*n%t,o=Ce(i,Lx,t)*e%t,s=Ce(o,Nx,t)*o%t,a=Ce(s,dh,t)*s%t,c=Ce(a,Px,t)*a%t,u=Ce(c,Ux,t)*c%t,f=Ce(u,ph,t)*u%t,l=Ce(f,ph,t)*u%t,h=Ce(l,dh,t)*s%t;return{pow_p_5_8:Ce(h,Fc,t)*e%t,b2:n}}function gh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Ox(e,t){let r=Ti,n=pe(t*t*t,r),i=pe(n*n*t,r),o=yh(e*i).pow_p_5_8,s=pe(e*n*o,r),a=pe(t*s*s,r),c=s,u=pe(s*hh,r),f=a===e,l=a===pe(-e,r),h=a===pe(-e*hh,r);return f&&(s=c),(l||h)&&(s=u),ah(s,r)&&(s=pe(-s,r)),{isValid:f||l,value:s}}var ar=Yo(Ti,void 0,!0),Kc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Bc,randomBytes:en,adjustScalarBytes:gh,uvRatio:Ox},Vn=Qo(Kc);function mh(e,t,r){if(t.length>255)throw new Error("Context is too big");return Vo(Cc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var dA=Qo({...Kc,domain:mh}),pA=Qo({...Kc,domain:mh,prehash:Bc}),_i=(()=>lh({P:Ti,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{let t=Ti,{pow_p_5_8:r,b2:n}=yh(e);return pe(Ce(r,BigInt(3),t)*n,t)},adjustScalarBytes:gh,randomBytes:en}))();var Fx=(ar.ORDER+BigInt(3))/BigInt(8),yA=ar.pow(Fc,Fx),gA=ar.sqrt(ar.neg(ar.ONE)),mA=(ar.ORDER-BigInt(5))/BigInt(8),xA=BigInt(486662);var bA=ch(ar,ar.neg(BigInt(486664)));var wA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),vA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),EA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),SA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var CA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var jo=class extends Kn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,Ai(t);let n=Dr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return Fn(this),this.iHash.update(t),this}digestInto(t){Fn(this),Sc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},qn=(e,t,r)=>new jo(e,t).update(r).digest();qn.create=(e,t)=>new jo(e,t);function bh(e,t,r){return Ai(e),r===void 0&&(r=new Uint8Array(e.outputLen)),qn(e,Dr(r),Dr(t))}var Mc=new Uint8Array([0]),xh=new Uint8Array;function wh(e,t,r,n=32){if(Ai(e),Fo(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");let i=Math.ceil(n/e.outputLen);r===void 0&&(r=xh);let o=new Uint8Array(i*e.outputLen),s=qn.create(e,t),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let u=0;u<i;u++)Mc[0]=u+1,a.update(u===0?xh:c).update(r).update(Mc).digestInto(c),o.set(c,e.outputLen*u),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Mc.fill(0),o.slice(0,n)}var Kx=(e,t,r)=>e&t^~e&r,Mx=(e,t,r)=>e&t^e&r^t&r,Vx=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]),_r=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kr=new Uint32Array(64),Vc=class extends Mn{constructor(){super(64,32,8,!1),this.A=_r[0]|0,this.B=_r[1]|0,this.C=_r[2]|0,this.D=_r[3]|0,this.E=_r[4]|0,this.F=_r[5]|0,this.G=_r[6]|0,this.H=_r[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)kr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let h=kr[l-15],y=kr[l-2],d=Rt(h,7)^Rt(h,18)^h>>>3,p=Rt(y,17)^Rt(y,19)^y>>>10;kr[l]=p+kr[l-7]+d+kr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let h=Rt(a,6)^Rt(a,11)^Rt(a,25),y=f+h+Kx(a,c,u)+Vx[l]+kr[l]|0,p=(Rt(n,2)^Rt(n,13)^Rt(n,22))+Mx(n,i,o)|0;f=u,u=c,c=a,a=s+y|0,s=o,o=i,i=n,n=y+p|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){kr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Hn=qo(()=>new Vc);var qc={hashSHA256(e){return Hn(e)},getHKDF(e,t){let r=bh(Hn,t,e),i=wh(Hn,r,void 0,96),o=i.subarray(0,32),s=i.subarray(32,64),a=i.subarray(64,96);return[o,s,a]},generateX25519KeyPair(){let e=_i.utils.randomPrivateKey();return{publicKey:_i.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:_i.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return _i.getSharedSecret(e,t)},chaCha20Poly1305Encrypt(e,t,r,n){return Ec(n,t,r).encrypt(e)},chaCha20Poly1305Decrypt(e,t,r,n,i){let o=Ec(n,t,r).decrypt(e);return i&&i.set(o),o}};var qx=e=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e),zn=e=>{let t=qx(2);return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};zn.bytes=2;var ki=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};ki.bytes=2;function vh(e){return me([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}function Eh(e){return me([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}function Sh(e){return me([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}function Ch(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}function Ah(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}function Dh(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}var Ih=16;function Th(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65519){let o=i+65519;o>n.length&&(o=n.length);let s=e.encrypt(n.subarray(i,o),e.session);t?.encryptedPackets.increment(),yield zn(s.byteLength),yield s}}}function _h(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65535){let o=i+65535;if(o>n.length&&(o=n.length),o-Ih<i)throw new Error("Invalid chunk");let s=n.subarray(i,o),a=n.subarray(i,o-Ih),{plaintext:c,valid:u}=e.decrypt(s,e.session,a);if(!u)throw t?.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");t?.decryptedPackets.increment(),yield c}}}var nI=ke(Ui(),1),iI=ke(Wd(),1);var Hv=ke(we(),1);var p0={};fe(p0,{Ed25519PrivateKey:()=>un,Ed25519PublicKey:()=>Ki,generateKeyPair:()=>gv,generateKeyPairFromSeed:()=>Jd,unmarshalEd25519PrivateKey:()=>pv,unmarshalEd25519PublicKey:()=>yv});var Zn=32,lr=64,ms=32;async function $d(){let e=Vn.utils.randomPrivateKey(),t=Vn.getPublicKey(e);return{privateKey:Qd(e,t),publicKey:t}}async function Yd(e){if(e.length!==ms)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Vn.getPublicKey(t);return{privateKey:Qd(t,r),publicKey:r}}async function Zd(e,t){let r=e.subarray(0,ms);return Vn.sign(t,r)}async function Xd(e,t,r){return Vn.verify(t,r,e)}function Qd(e,t){let r=new Uint8Array(lr);for(let n=0;n<ms;n++)r[n]=e[n],r[ms+n]=t[n];return r}var st={get(e=globalThis){let t=e.crypto;if(t==null||t.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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var l0={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function h0(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=st.get();r*=8;async function c(l,h){let y=a.getRandomValues(new Uint8Array(o)),d=a.getRandomValues(new Uint8Array(n)),p={name:t,iv:d};typeof h=="string"&&(h=Be(h));let g;if(h.length===0){g=await a.subtle.importKey("jwk",l0,{name:"AES-GCM"},!0,["encrypt"]);try{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",l0,{name:"AES-GCM"},!0,["encrypt"])}}else{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(p,g,l);return me([y,p.iv,new Uint8Array(m)])}async function u(l,h){let y=l.subarray(0,o),d=l.subarray(o,o+n),p=l.subarray(o+n),g={name:t,iv:d};typeof h=="string"&&(h=Be(h));let m;if(h.length===0)try{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,C,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",l0,{name:"AES-GCM"},!0,["decrypt"])}else{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,C,{name:t,length:r},!0,["decrypt"])}let v=await a.subtle.decrypt(g,m,p);return new Uint8Array(v)}return{encrypt:c,decrypt:u}}async function Xn(e,t){let n=await h0().encrypt(e,t);return wn.encode(n)}var _e;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(_e||(_e={}));var d0;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(d0||(d0={}));(function(e){e.codec=()=>Xr(d0)})(_e||(_e={}));var Zt;(function(e){let t;e.codec=()=>(t==null&&(t=kt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_t(r,e.codec()),e.decode=r=>Tt(r,e.codec())})(Zt||(Zt={}));var Xt;(function(e){let t;e.codec=()=>(t==null&&(t=kt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_t(r,e.codec()),e.decode=r=>Tt(r,e.codec())})(Xt||(Xt={}));var Ki=class{_key;constructor(t){this._key=Qn(t,Zn)}async verify(t,r){return Xd(this._key,r,t)}marshal(){return this._key}get bytes(){return Zt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}},un=class{_key;_publicKey;constructor(t,r){this._key=Qn(t,lr),this._publicKey=Qn(r,Zn)}async sign(t){return Zd(this._key,t)}get public(){return new Ki(this._publicKey)}marshal(){return this._key}get bytes(){return Xt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}async id(){let t=xr.digest(this.public.bytes);return Ne.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new X(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function pv(e){if(e.length>lr){e=Qn(e,lr+Zn);let n=e.subarray(0,lr),i=e.subarray(lr,e.length);return new un(n,i)}e=Qn(e,lr);let t=e.subarray(0,lr),r=e.subarray(Zn);return new un(t,r)}function yv(e){return e=Qn(e,Zn),new Ki(e)}async function gv(){let{privateKey:e,publicKey:t}=await $d();return new un(e,t)}async function Jd(e){let{privateKey:t,publicKey:r}=await Yd(e);return new un(t,r)}function Qn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new X(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var kD=ke(Fe(),1),RD=ke(ds(),1),ep=ke(we(),1);function Ot(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return ae(r,"base64url")}function ht(e){let t=tp(e);return new ep.default.jsbn.BigInteger(ae(t,"base16"),16)}function tp(e,t){let r=Be(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return r}var mv={"P-256":256,"P-384":384,"P-521":521},xv=Object.keys(mv),HD=xv.join(" / ");var b0={};fe(b0,{MAX_KEY_SIZE:()=>Hi,RsaPrivateKey:()=>jn,RsaPublicKey:()=>qi,fromJwk:()=>Tv,generateKeyPair:()=>_v,unmarshalRsaPrivateKey:()=>Bv,unmarshalRsaPublicKey:()=>Iv});var Vi=ke(we(),1);var BB=ke(sp(),1);function bs(e){if(isNaN(e)||e<=0)throw new X("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return en(e)}var uB=ke(gs(),1),m0=ke(we(),1);function ap(e,t){return t.map(r=>ht(e[r]))}function cp(e){return m0.default.pki.setRsaPrivateKey(...ap(e,["n","e","d","p","q","dp","dq","qi"]))}function up(e){return m0.default.pki.setRsaPublicKey(...ap(e,["n","e"]))}var ln={};fe(ln,{jwkToPkcs1:()=>Ev,jwkToPkix:()=>Cv,pkcs1ToJwk:()=>vv,pkixToJwk:()=>Sv});var hB=ke(Ui(),1),dB=ke(gs(),1);var hr=ke(we(),1);function vv(e){let t=hr.default.asn1.fromDer(ae(e,"ascii")),r=hr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ot(r.n),e:Ot(r.e),d:Ot(r.d),p:Ot(r.p),q:Ot(r.q),dp:Ot(r.dP),dq:Ot(r.dQ),qi:Ot(r.qInv),alg:"RS256"}}function Ev(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new X("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.privateKeyToAsn1({n:ht(e.n),e:ht(e.e),d:ht(e.d),p:ht(e.p),q:ht(e.q),dP:ht(e.dp),dQ:ht(e.dq),qInv:ht(e.qi)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}function Sv(e){let t=hr.default.asn1.fromDer(ae(e,"ascii")),r=hr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ot(r.n),e:Ot(r.e)}}function Cv(e){if(e.n==null||e.e==null)throw new X("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.publicKeyToAsn1({n:ht(e.n),e:ht(e.e)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}async function fp(e){let t=await st.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await dp(t);return{privateKey:r[0],publicKey:r[1]}}async function x0(e){let r=[await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Av(e)],n=await dp({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function lp(e,t){let r=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await st.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function hp(e,t,r){let n=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return st.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function dp(e){if(e.privateKey==null||e.publicKey==null)throw new X("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([st.get().subtle.exportKey("jwk",e.privateKey),st.get().subtle.exportKey("jwk",e.publicKey)])}async function Av(e){return st.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function pp(e,t,r,n){let i=t?up(e):cp(e),o=ae(Uint8Array.from(r),"ascii"),s=n(o,i);return Be(s,"ascii")}function yp(e,t){return pp(e,!0,t,(r,n)=>n.encrypt(r))}function gp(e,t){return pp(e,!1,t,(r,n)=>n.decrypt(r))}function ws(e){if(e.kty!=="RSA")throw new X("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new X("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Be(e.n,"base64url").length*8}var Hi=8192,qi=class{_key;constructor(t){this._key=t}async verify(t,r){return hp(this._key,r,t)}marshal(){return ln.jwkToPkix(this._key)}get bytes(){return Zt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}encrypt(t){return yp(this._key,t)}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}},jn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return bs(16)}async sign(t){return lp(this._key,t)}get public(){if(this._publicKey==null)throw new X("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new qi(this._publicKey)}decrypt(t){return gp(this._key,t)}marshal(){return ln.jwkToPkcs1(this._key)}get bytes(){return Xt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}async id(){let t=await this.public.hash();return ae(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Vi.default.util.ByteBuffer(this.marshal()),i=Vi.default.asn1.fromDer(n),o=Vi.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Vi.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Xn(this.bytes,t);throw new X(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Bv(e){let t=ln.pkcs1ToJwk(e);if(ws(t)>Hi)throw new X("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await x0(t);return new jn(r.privateKey,r.publicKey)}function Iv(e){let t=ln.pkixToJwk(e);if(ws(t)>Hi)throw new X("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new qi(t)}async function Tv(e){if(ws(e)>Hi)throw new X("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await x0(e);return new jn(t.privateKey,t.publicKey)}async function _v(e){if(e>Hi)throw new X("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await fp(e);return new jn(t.privateKey,t.publicKey)}var S0={};fe(S0,{Secp256k1PrivateKey:()=>Gi,Secp256k1PublicKey:()=>zi,generateKeyPair:()=>qv,unmarshalSecp256k1PrivateKey:()=>Mv,unmarshalSecp256k1PublicKey:()=>Vv});function kv(e){let t=Bi(e);xt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Rv,hexToBytes:Lv}=Wo,hn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=hn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Rv(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=hn,r=typeof e=="string"?Lv(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=hn._parseInt(r.subarray(2)),{d:s,l:a}=hn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,s=i.length/2,a=r(o),c=r(s);return`30${r(s+o+4)}02${c}${i}02${a}${n}`}},dr=BigInt(0),vt=BigInt(1),LB=BigInt(2),mp=BigInt(3),NB=BigInt(4);function Nv(e){let t=kv(e),{Fp:r}=t,n=t.toBytes||((d,p,g)=>{let m=p.toAffine();return sr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(d=>{let p=d.subarray(1),g=r.fromBytes(p.subarray(0,r.BYTES)),m=r.fromBytes(p.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(d){let{a:p,b:g}=t,m=r.sqr(d),v=r.mul(m,d);return r.add(r.add(v,r.mul(d,p)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(d){return typeof d=="bigint"&&dr<d&&d<t.n}function a(d){if(!s(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:p,nByteLength:g,wrapPrivateKey:m,n:v}=t;if(p&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=nr(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(g*2,"0")}let x;try{x=typeof d=="bigint"?d:ir(Se("private key",d,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof d}`)}return m&&(x=pe(x,v)),a(x),x}let u=new Map;function f(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,g,m){if(this.px=p,this.py=g,this.pz=m,p==null||!r.isValid(p))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(p){let{x:g,y:m}=p||{};if(!p||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let v=x=>r.eql(x,r.ZERO);return v(g)&&v(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let g=r.invertBatch(p.map(m=>m.pz));return p.map((m,v)=>m.toAffine(g[v])).map(l.fromAffine)}static fromHex(p){let g=l.fromAffine(i(Se("pointHex",p)));return g.assertValidity(),g}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:g}=this.toAffine();if(!r.isValid(p)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),v=o(p);if(!r.eql(m,v))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(r.isOdd)return!r.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:C,pz:E}=p,b=r.eql(r.mul(g,E),r.mul(x,v)),D=r.eql(r.mul(m,E),r.mul(C,v));return b&&D}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:p,b:g}=t,m=r.mul(g,mp),{px:v,py:x,pz:C}=this,E=r.ZERO,b=r.ZERO,D=r.ZERO,B=r.mul(v,v),R=r.mul(x,x),F=r.mul(C,C),O=r.mul(v,x);return O=r.add(O,O),D=r.mul(v,C),D=r.add(D,D),E=r.mul(p,D),b=r.mul(m,F),b=r.add(E,b),E=r.sub(R,b),b=r.add(R,b),b=r.mul(E,b),E=r.mul(O,E),D=r.mul(m,D),F=r.mul(p,F),O=r.sub(B,F),O=r.mul(p,O),O=r.add(O,D),D=r.add(B,B),B=r.add(D,B),B=r.add(B,F),B=r.mul(B,O),b=r.add(b,B),F=r.mul(x,C),F=r.add(F,F),B=r.mul(F,O),E=r.sub(E,B),D=r.mul(F,R),D=r.add(D,D),D=r.add(D,D),new l(E,b,D)}add(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:C,pz:E}=p,b=r.ZERO,D=r.ZERO,B=r.ZERO,R=t.a,F=r.mul(t.b,mp),O=r.mul(g,x),K=r.mul(m,C),q=r.mul(v,E),J=r.add(g,m),I=r.add(x,C);J=r.mul(J,I),I=r.add(O,K),J=r.sub(J,I),I=r.add(g,v);let L=r.add(x,E);return I=r.mul(I,L),L=r.add(O,q),I=r.sub(I,L),L=r.add(m,v),b=r.add(C,E),L=r.mul(L,b),b=r.add(K,q),L=r.sub(L,b),B=r.mul(R,I),b=r.mul(F,q),B=r.add(b,B),b=r.sub(K,B),B=r.add(K,B),D=r.mul(b,B),K=r.add(O,O),K=r.add(K,O),q=r.mul(R,q),I=r.mul(F,I),K=r.add(K,q),q=r.sub(O,q),q=r.mul(R,q),I=r.add(I,q),O=r.mul(K,I),D=r.add(D,O),O=r.mul(L,I),b=r.mul(J,b),b=r.sub(b,O),O=r.mul(J,K),B=r.mul(L,B),B=r.add(B,O),new l(b,D,B)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return y.wNAFCached(this,u,p,g=>{let m=r.invertBatch(g.map(v=>v.pz));return g.map((v,x)=>v.toAffine(m[x])).map(l.fromAffine)})}multiplyUnsafe(p){let g=l.ZERO;if(p===dr)return g;if(a(p),p===vt)return this;let{endo:m}=t;if(!m)return y.unsafeLadder(this,p);let{k1neg:v,k1:x,k2neg:C,k2:E}=m.splitScalar(p),b=g,D=g,B=this;for(;x>dr||E>dr;)x&vt&&(b=b.add(B)),E&vt&&(D=D.add(B)),B=B.double(),x>>=vt,E>>=vt;return v&&(b=b.negate()),C&&(D=D.negate()),D=new l(r.mul(D.px,m.beta),D.py,D.pz),b.add(D)}multiply(p){a(p);let g=p,m,v,{endo:x}=t;if(x){let{k1neg:C,k1:E,k2neg:b,k2:D}=x.splitScalar(g),{p:B,f:R}=this.wNAF(E),{p:F,f:O}=this.wNAF(D);B=y.constTimeNegate(C,B),F=y.constTimeNegate(b,F),F=new l(r.mul(F.px,x.beta),F.py,F.pz),m=B.add(F),v=R.add(O)}else{let{p:C,f:E}=this.wNAF(g);m=C,v=E}return l.normalizeZ([m,v])[0]}multiplyAndAddUnsafe(p,g,m){let v=l.BASE,x=(E,b)=>b===dr||b===vt||!E.equals(v)?E.multiplyUnsafe(b):E.multiply(b),C=x(this,g).add(x(p,m));return C.is0()?void 0:C}toAffine(p){let{px:g,py:m,pz:v}=this,x=this.is0();p==null&&(p=x?r.ONE:r.inv(v));let C=r.mul(g,p),E=r.mul(m,p),b=r.mul(v,p);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(b,r.ONE))throw new Error("invZ was invalid");return{x:C,y:E}}isTorsionFree(){let{h:p,isTorsionFree:g}=t;if(p===vt)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:g}=t;return p===vt?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return nr(this.toRawBytes(p))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,y=Zo(l,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Pv(e){let t=Bi(e);return xt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function xp(e){let t=Pv(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(I){return dr<I&&I<r.ORDER}function a(I){return pe(I,n)}function c(I){return $o(I,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:h}=Nv({...t,toBytes(I,L,_){let k=L.toAffine(),S=r.toBytes(k.x),U=sr;return _?U(Uint8Array.from([L.hasEvenY()?2:3]),S):U(Uint8Array.from([4]),S,r.toBytes(k.y))},fromBytes(I){let L=I.length,_=I[0],k=I.subarray(1);if(L===i&&(_===2||_===3)){let S=ir(k);if(!s(S))throw new Error("Point is not on curve");let U=l(S),M=r.sqrt(U),H=(M&vt)===vt;return(_&1)===1!==H&&(M=r.neg(M)),{x:S,y:M}}else if(L===o&&_===4){let S=r.fromBytes(k.subarray(0,r.BYTES)),U=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:S,y:U}}else throw new Error(`Point of length ${L} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),y=I=>nr(Tr(I,t.nByteLength));function d(I){let L=n>>vt;return I>L}function p(I){return d(I)?a(-I):I}let g=(I,L,_)=>ir(I.slice(L,_));class m{constructor(L,_,k){this.r=L,this.s=_,this.recovery=k,this.assertValidity()}static fromCompact(L){let _=t.nByteLength;return L=Se("compactSignature",L,_*2),new m(g(L,0,_),g(L,_,2*_))}static fromDER(L){let{r:_,s:k}=hn.toSig(Se("DER",L));return new m(_,k)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new m(this.r,this.s,L)}recoverPublicKey(L){let{r:_,s:k,recovery:S}=this,U=D(Se("msgHash",L));if(S==null||![0,1,2,3].includes(S))throw new Error("recovery id invalid");let M=S===2||S===3?_+t.n:_;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=S&1?"03":"02",j=u.fromHex(H+y(M)),ee=c(M),se=a(-U*ee),te=a(k*ee),ne=u.BASE.multiplyAndAddUnsafe(j,se,te);if(!ne)throw new Error("point at infinify");return ne.assertValidity(),ne}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return tn(this.toDERHex())}toDERHex(){return hn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return tn(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}let v={isValidPrivateKey(I){try{return f(I),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let I=Pc(t.n);return fh(t.randomBytes(I),t.n)},precompute(I=8,L=u.BASE){return L._setWindowSize(I),L.multiply(BigInt(3)),L}};function x(I,L=!0){return u.fromPrivateKey(I).toRawBytes(L)}function C(I){let L=I instanceof Uint8Array,_=typeof I=="string",k=(L||_)&&I.length;return L?k===i||k===o:_?k===2*i||k===2*o:I instanceof u}function E(I,L,_=!0){if(C(I))throw new Error("first arg must be private key");if(!C(L))throw new Error("second arg must be public key");return u.fromHex(L).multiply(f(I)).toRawBytes(_)}let b=t.bits2int||function(I){let L=ir(I),_=I.length*8-t.nBitLength;return _>0?L>>BigInt(_):L},D=t.bits2int_modN||function(I){return a(b(I))},B=Di(t.nBitLength);function R(I){if(typeof I!="bigint")throw new Error("bigint expected");if(!(dr<=I&&I<B))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tr(I,t.nByteLength)}function F(I,L,_=O){if(["recovered","canonical"].some(be=>be in _))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:S}=t,{lowS:U,prehash:M,extraEntropy:H}=_;U==null&&(U=!0),I=Se("msgHash",I),M&&(I=Se("prehashed msgHash",k(I)));let j=D(I),ee=f(L),se=[R(ee),R(j)];if(H!=null){let be=H===!0?S(r.BYTES):H;se.push(Se("extraEntropy",be))}let te=sr(...se),ne=j;function ve(be){let We=b(be);if(!h(We))return;let $e=c(We),Ke=u.BASE.multiply(We).toAffine(),Je=a(Ke.x);if(Je===dr)return;let jt=a($e*a(ne+Je*ee));if(jt===dr)return;let Fr=(Ke.x===Je?0:2)|Number(Ke.y&vt),ci=jt;return U&&d(jt)&&(ci=p(jt),Fr^=1),new m(Je,ci,Fr)}return{seed:te,k2sig:ve}}let O={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function q(I,L,_=O){let{seed:k,k2sig:S}=F(I,L,_),U=t;return _c(U.hash.outputLen,U.nByteLength,U.hmac)(k,S)}u.BASE._setWindowSize(8);function J(I,L,_,k=K){let S=I;if(L=Se("msgHash",L),_=Se("publicKey",_),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:M}=k,H,j;try{if(typeof S=="string"||S instanceof Uint8Array)try{H=m.fromDER(S)}catch(Ke){if(!(Ke instanceof hn.Err))throw Ke;H=m.fromCompact(S)}else if(typeof S=="object"&&typeof S.r=="bigint"&&typeof S.s=="bigint"){let{r:Ke,s:Je}=S;H=new m(Ke,Je)}else throw new Error("PARSE");j=u.fromHex(_)}catch(Ke){if(Ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;M&&(L=t.hash(L));let{r:ee,s:se}=H,te=D(L),ne=c(se),ve=a(te*ne),be=a(ee*ne),We=u.BASE.multiplyAndAddUnsafe(j,ve,be)?.toAffine();return We?a(We.x)===ee:!1}return{CURVE:t,getPublicKey:x,getSharedSecret:E,sign:q,verify:J,ProjectivePoint:u,Signature:m,utils:v}}function Uv(e){return{hash:e,hmac:(t,...r)=>qn(e,t,Vo(...r)),randomBytes:en}}function bp(e,t){let r=n=>xp({...e,...Uv(n)});return Object.freeze({...r(t),create:r})}var Ep=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),wp=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ov=BigInt(1),w0=BigInt(2),vp=(e,t)=>(e+t/w0)/t;function Fv(e){let t=Ep,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Ce(f,r,t)*f%t,h=Ce(l,r,t)*f%t,y=Ce(h,w0,t)*u%t,d=Ce(y,i,t)*y%t,p=Ce(d,o,t)*d%t,g=Ce(p,a,t)*p%t,m=Ce(g,c,t)*g%t,v=Ce(m,a,t)*p%t,x=Ce(v,r,t)*f%t,C=Ce(x,s,t)*d%t,E=Ce(C,n,t)*u%t,b=Ce(E,w0,t);if(!v0.eql(v0.sqr(b),e))throw new Error("Cannot find square root");return b}var v0=Yo(Ep,void 0,void 0,{sqrt:Fv}),pr=bp({a:BigInt(0),b:BigInt(7),Fp:v0,n:wp,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=wp,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ov*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=vp(o*e,t),c=vp(-n*e,t),u=pe(e-a*r-c*i,t),f=pe(-a*n-c*o,t),l=u>s,h=f>s;if(l&&(u=t-u),h&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:h,k2:f}}}},Hn),HB=BigInt(0);var zB=pr.ProjectivePoint;function Sp(){return pr.utils.randomPrivateKey()}async function Cp(e,t){let{digest:r}=await Ze.digest(t);try{return pr.sign(r,e).toDERRawBytes()}catch(n){throw new X(String(n),"ERR_INVALID_INPUT")}}async function Ap(e,t,r){try{let{digest:n}=await Ze.digest(r);return pr.verify(t,n,e)}catch(n){throw new X(String(n),"ERR_INVALID_INPUT")}}function Dp(e){return pr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function Bp(e){try{pr.getPublicKey(e,!0)}catch(t){throw new X(String(t),"ERR_INVALID_PRIVATE_KEY")}}function E0(e){try{pr.ProjectivePoint.fromHex(e)}catch(t){throw new X(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Ip(e){try{return pr.getPublicKey(e,!0)}catch(t){throw new X(String(t),"ERR_INVALID_PRIVATE_KEY")}}var zi=class{_key;constructor(t){E0(t),this._key=t}async verify(t,r){return Ap(this._key,r,t)}marshal(){return Dp(this._key)}get bytes(){return Zt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}},Gi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??Ip(t),Bp(this._key),E0(this._publicKey)}async sign(t){return Cp(this._key,t)}get public(){return new zi(this._publicKey)}marshal(){return this._key}get bytes(){return Xt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ze.digest(this.bytes);return t}async id(){let t=await this.public.hash();return ae(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new X(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Mv(e){return new Gi(e)}function Vv(e){return new zi(e)}async function qv(){let e=Sp();return new Gi(e)}var dn={rsa:b0,ed25519:p0,secp256k1:S0};function Tp(e){let t=Object.keys(dn).join(" / ");return new X(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function _p(e){let t=Zt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return dn.rsa.unmarshalRsaPublicKey(r);case _e.Ed25519:return dn.ed25519.unmarshalEd25519PublicKey(r);case _e.Secp256k1:return dn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Tp(t.Type??"RSA")}}async function kp(e){let t=Xt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return dn.rsa.unmarshalRsaPrivateKey(r);case _e.Ed25519:return dn.ed25519.unmarshalEd25519PrivateKey(r);case _e.Secp256k1:return dn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Tp(t.Type??"RSA")}}var vs;(function(e){let t;e.codec=()=>(t==null&&(t=kt((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let o of r.webtransportCerthashes)n.uint32(10),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={webtransportCerthashes:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.webtransportCerthashes.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_t(r,e.codec()),e.decode=r=>Tt(r,e.codec())})(vs||(vs={}));var Wi;(function(e){let t;e.codec=()=>(t==null&&(t=kt((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identityKey!=null&&r.identityKey.byteLength>0)&&(n.uint32(10),n.bytes(r.identityKey??new Uint8Array(0))),(i.writeDefaults===!0||r.identitySig!=null&&r.identitySig.byteLength>0)&&(n.uint32(18),n.bytes(r.identitySig??new Uint8Array(0))),r.extensions!=null&&(n.uint32(34),vs.codec().encode(r.extensions,n,{writeDefaults:!1})),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identityKey=r.bytes();break;case 2:i.identitySig=r.bytes();break;case 4:i.extensions=vs.codec().decode(r,r.uint32());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_t(r,e.codec()),e.decode=r=>Tt(r,e.codec())})(Wi||(Wi={}));async function Rp(e,t,r){let n=await Gv(e,Lp(t));if(e.publicKey==null)throw new Error("PublicKey was missing from local PeerId");return zv(e.publicKey,n,r)}function zv(e,t,r){return Wi.encode({identityKey:e,identitySig:t,extensions:r??{webtransportCerthashes:[]}}).subarray()}async function Gv(e,t){if(e.privateKey==null)throw new Error("PrivateKey was missing from PeerId");return(await kp(e.privateKey)).sign(t)}async function C0(e){return fa(e.identityKey)}function A0(e){return Wi.decode(e)}function Lp(e){let t=Be("noise-libp2p-static-key:");return me([t,e],t.length+e.length)}async function D0(e,t,r){let n=await fa(t.identityKey);if(!n.equals(r))throw new Error(`Payload identity key ${n.toString()} does not match expected remote peer ${r.toString()}`);let i=Lp(e);if(n.publicKey==null)throw new Error("PublicKey was missing from PeerId");if(t.identitySig==null)throw new Error("Signature was missing from message");if(!await _p(n.publicKey).verify(i,t.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function $i(e){return!(!(e instanceof Uint8Array)||e.length!==32)}var Ge=Ye("libp2p:noise");var Et;Hl?Et=Ge:Et=Object.assign(()=>{},{enabled:!1,trace:()=>{},error:()=>{}});function Np(e){Et(`LOCAL_STATIC_PUBLIC_KEY ${ae(e.publicKey,"hex")}`),Et(`LOCAL_STATIC_PRIVATE_KEY ${ae(e.privateKey,"hex")}`)}function B0(e){e?(Et(`LOCAL_PUBLIC_EPHEMERAL_KEY ${ae(e.publicKey,"hex")}`),Et(`LOCAL_PRIVATE_EPHEMERAL_KEY ${ae(e.privateKey,"hex")}`)):Et("Missing local ephemeral keys.")}function Pp(e){Et(`REMOTE_STATIC_PUBLIC_KEY ${ae(e,"hex")}`)}function I0(e){Et(`REMOTE_EPHEMERAL_PUBLIC_KEY ${ae(e,"hex")}`)}function Up(e){e.cs1&&e.cs2?(Et(`CIPHER_STATE_1 ${e.cs1.n.getUint64()} ${ae(e.cs1.k,"hex")}`),Et(`CIPHER_STATE_2 ${e.cs2.n.getUint64()} ${ae(e.cs2.k,"hex")}`)):Et("Missing cipher state.")}var Wv="Cipherstate has reached maximum n, a new handshake must be performed",Es=class{n;bytes;view;constructor(t=0){this.n=t,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error(Wv)}};var Ss=class{crypto;constructor(t){this.crypto=t}encryptWithAd(t,r,n){let i=this.encrypt(t.k,t.n,r,n);return t.n.increment(),i}decryptWithAd(t,r,n,i){let{plaintext:o,valid:s}=this.decrypt(t.k,t.n,r,n,i);return s&&t.n.increment(),{plaintext:o,valid:s}}hasKey(t){return!this.isEmptyKey(t.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(t){let r=this.createEmptyKey();return Oe(r,t)}encrypt(t,r,n,i){return r.assertValue(),this.crypto.chaCha20Poly1305Encrypt(i,r.getBytes(),n,t)}encryptAndHash(t,r){let n;return this.hasKey(t.cs)?n=this.encryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,n),n}decrypt(t,r,n,i,o){r.assertValue();let s=this.crypto.chaCha20Poly1305Decrypt(i,r.getBytes(),n,t,o);return s?{plaintext:s,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(t,r){let n,i=!0;return this.hasKey(t.cs)?{plaintext:n,valid:i}=this.decryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,r),{plaintext:n,valid:i}}dh(t,r){try{let n=this.crypto.generateX25519SharedKey(t,r);return n.length===32?n:n.subarray(0,32)}catch(n){let i=n;return Ge.error(i),new Uint8Array(32)}}mixHash(t,r){t.h=this.getHash(t.h,r)}getHash(t,r){return this.crypto.hashSHA256(me([t,r],t.length+r.length))}mixKey(t,r){let[n,i]=this.crypto.getHKDF(t.ck,r);t.cs=this.initializeKey(i),t.ck=n}initializeKey(t){return{k:t,n:new Es}}initializeSymmetric(t){let r=Be(t,"utf-8"),n=this.hashProtocolName(r),i=n,o=this.createEmptyKey();return{cs:this.initializeKey(o),ck:i,h:n}}hashProtocolName(t){if(t.length<=32){let r=new Uint8Array(32);return r.set(t),r}else return this.getHash(t,new Uint8Array(0))}split(t){let[r,n]=this.crypto.getHKDF(t.ck,new Uint8Array(0)),i=this.initializeKey(r),o=this.initializeKey(n);return{cs1:i,cs2:o}}writeMessageRegular(t,r){let n=this.encryptWithAd(t,new Uint8Array(0),r),i=this.createEmptyKey(),o=new Uint8Array(0);return{ne:i,ns:o,ciphertext:n}}readMessageRegular(t,r){return this.decryptWithAd(t,new Uint8Array(0),r.ciphertext)}};var Cs=class extends Ss{initializeInitiator(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}initializeResponder(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}writeMessageA(t,r,n){let i=new Uint8Array(0);n!==void 0?t.e=n:t.e=this.crypto.generateX25519KeyPair();let o=t.e.publicKey;this.mixHash(t.ss,o);let s=this.encryptAndHash(t.ss,r);return{ne:o,ns:i,ciphertext:s}}writeMessageB(t,r){t.e=this.crypto.generateX25519KeyPair();let n=t.e.publicKey;this.mixHash(t.ss,n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let i=t.s.publicKey,o=this.encryptAndHash(t.ss,i);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let s=this.encryptAndHash(t.ss,r);return{ne:n,ns:o,ciphertext:s}}writeMessageC(t,r){let n=t.s.publicKey,i=this.encryptAndHash(t.ss,n);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let o=this.encryptAndHash(t.ss,r),a={ne:this.createEmptyKey(),ns:i,ciphertext:o},{cs1:c,cs2:u}=this.split(t.ss);return{h:t.ss.h,messageBuffer:a,cs1:c,cs2:u}}readMessageA(t,r){return $i(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),this.decryptAndHash(t.ss,r.ciphertext)}readMessageB(t,r){if($i(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);i&&$i(n)&&(t.rs=n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext);return{plaintext:o,valid:i&&s}}readMessageC(t,r){let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);if(i&&$i(n)&&(t.rs=n),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext),{cs1:a,cs2:c}=this.split(t.ss);return{h:t.ss.h,plaintext:o,valid:i&&s,cs1:a,cs2:c}}initSession(t,r,n){let i=this.createEmptyKey(),o=new Uint8Array(32),s;return t?s=this.initializeInitiator(r,n,o,i):s=this.initializeResponder(r,n,o,i),{hs:s,i:t,mc:0}}sendMessage(t,r,n){let i;if(t.mc===0)i=this.writeMessageA(t.hs,r,n);else if(t.mc===1)i=this.writeMessageB(t.hs,r);else if(t.mc===2){let{h:o,messageBuffer:s,cs1:a,cs2:c}=this.writeMessageC(t.hs,r);i=s,t.h=o,t.cs1=a,t.cs2=c}else if(t.mc>2)if(t.i){if(!t.cs1)throw new Error("CS1 (cipher state) is not defined");i=this.writeMessageRegular(t.cs1,r)}else{if(!t.cs2)throw new Error("CS2 (cipher state) is not defined");i=this.writeMessageRegular(t.cs2,r)}else throw new Error("Session invalid.");return t.mc++,i}recvMessage(t,r){let n=new Uint8Array(0),i=!1;if(t.mc===0)({plaintext:n,valid:i}=this.readMessageA(t.hs,r));else if(t.mc===1)({plaintext:n,valid:i}=this.readMessageB(t.hs,r));else if(t.mc===2){let{h:o,plaintext:s,valid:a,cs1:c,cs2:u}=this.readMessageC(t.hs,r);n=s,i=a,t.h=o,t.cs1=c,t.cs2=u}return t.mc++,{plaintext:n,valid:i}}};var As=class{isInitiator;session;remotePeer;remoteExtensions={webtransportCerthashes:[]};payload;connection;xx;staticKeypair;prologue;constructor(t,r,n,i,o,s,a,c){this.isInitiator=t,this.payload=r,this.prologue=n,this.staticKeypair=o,this.connection=s,a&&(this.remotePeer=a),this.xx=c??new Cs(i),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){if(Np(this.session.hs.s),this.isInitiator){Ge.trace("Stage 0 - Initiator starting to send first message.");let t=this.xx.sendMessage(this.session,new Uint8Array(0));await this.connection.write(vh(t)),Ge.trace("Stage 0 - Initiator finished sending first message."),B0(this.session.hs.e)}else{Ge.trace("Stage 0 - Responder waiting to receive first message...");let t=Ch((await this.connection.read()).subarray()),{valid:r}=this.xx.recvMessage(this.session,t);if(!r)throw new Kr("xx handshake stage 0 validation fail");Ge.trace("Stage 0 - Responder received first message."),I0(this.session.hs.re)}}async exchange(){if(this.isInitiator){Ge.trace("Stage 1 - Initiator waiting to receive first message from responder...");let t=Ah((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 1 validation fail");Ge.trace("Stage 1 - Initiator received the message."),I0(this.session.hs.re),Pp(this.session.hs.rs),Ge.trace("Initiator going to check remote's signature...");try{let i=A0(r);this.remotePeer=this.remotePeer||await C0(i),await D0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}Ge.trace("All good with the signature!")}else{Ge.trace("Stage 1 - Responder sending out first message with signed payload and static key.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(Eh(t)),Ge.trace("Stage 1 - Responder sent the second handshake message with signed payload."),B0(this.session.hs.e)}}async finish(){if(this.isInitiator){Ge.trace("Stage 2 - Initiator sending third handshake message.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(Sh(t)),Ge.trace("Stage 2 - Initiator sent message with signed payload.")}else{Ge.trace("Stage 2 - Responder waiting for third handshake message...");let t=Dh((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 2 validation fail");Ge.trace("Stage 2 - Responder received the message, finished handshake.");try{let i=A0(r);this.remotePeer=this.remotePeer||await C0(i),await D0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}}Up(this.session)}encrypt(t,r){let n=this.getCS(r);return this.xx.encryptWithAd(n,new Uint8Array(0),t)}decrypt(t,r,n){let i=this.getCS(r,!1);return this.xx.decryptWithAd(i,new Uint8Array(0),t,n)}getRemoteStaticKey(){return this.session.hs.rs}getCS(t,r=!0){if(!t.cs1||!t.cs2)throw new Kr("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?r?t.cs1:t.cs2:r?t.cs2:t.cs1}setRemoteNoiseExtension(t){t&&(this.remoteExtensions=t)}};function Op(e){return{xxHandshakeSuccesses:e.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:e.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:e.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:e.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:e.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var Ds=class{protocol="/noise";crypto;prologue;staticKeys;extensions;metrics;constructor(t={}){let{staticNoiseKey:r,extensions:n,crypto:i,prologueBytes:o,metrics:s}=t;this.crypto=i??qc,this.extensions=n,this.metrics=s?Op(s):void 0,r?this.staticKeys=this.crypto.generateX25519KeyPairFromSeed(r):this.staticKeys=this.crypto.generateX25519KeyPair(),this.prologue=o??new Uint8Array(0)}async secureOutbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:ki,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!0,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remoteExtensions:o.remoteExtensions,remotePeer:o.remotePeer}}async secureInbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:ki,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!1,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remotePeer:o.remotePeer,remoteExtensions:o.remoteExtensions}}async performHandshake(t){let r=await Rp(t.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(t,r)}async performXXHandshake(t,r){let{isInitiator:n,remotePeer:i,connection:o}=t,s=new As(n,r,this.prologue,this.crypto,this.staticKeys,o,i);try{await s.propose(),await s.exchange(),await s.finish(),this.metrics?.xxHandshakeSuccesses.increment()}catch(a){if(this.metrics?.xxHandshakeErrors.increment(),a instanceof Error)throw a.message=`Error occurred during XX handshake: ${a.message}`,a}return s}async createSecureConnection(t,r){let[n,i]=Fl(),o=t.unwrap();return await Ml(n,Th(r,this.metrics),o,s=>Wr(s,{lengthDecoder:ki}),_h(r,this.metrics),n),i}};function Fp(e={}){return()=>new Ds(e)}var d2=ke(iu(),1);var a2=ke(iu(),1);var ou=Ye("libp2p:webrtc:sdp"),su=Object.values(Mt).map(e=>e.decoder).reduce((e,t)=>e.or(t));function c2(e){let t=e.getConfiguration().certificates?.at(0);if(t==null||t.getFingerprints==null){ou.trace("fetching fingerprint from local SDP");let n=e.localDescription;return n==null?void 0:J3(n.sdp)}if(ou.trace("fetching fingerprint from local certificate"),t.getFingerprints().length===0)return;let r=t.getFingerprints()[0].value;if(r==null)throw Pa("","no fingerprint on local certificate");return r}var j3=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function J3(e){return e.match(j3)?.groups?.fingerprint}function e4(e){for(let t of e.protoNames())if(t.startsWith("ip"))return t.toUpperCase();return ou("Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6",e),"IP6"}function Fs(e){let r=e.stringTuples().filter(n=>n[0]===uu).map(n=>n[1])[0];if(r===void 0||r==="")throw lo(`Couldn't find a certhash component of multiaddr: ${e.toString()}`);return r}function au(e){let t=su.decode(e);return a2.decode(t)}function t4(e){let t=au(Fs(e)),r=cu(t.name),n=t.digest.reduce((o,s)=>o+s.toString(16).padStart(2,"0"),""),i=n.match(/.{1,2}/g);if(i==null)throw Pa(n,e.toString());return[`${r.toUpperCase()} ${i.join(":").toUpperCase()}`,n]}function cu(e){switch(e){case"sha1":return"sha-1";case"sha2-256":return"sha-256";case"sha2-512":return"sha-512";default:throw hf(e)}}function r4(e,t){let{host:r,port:n}=e.toOptions(),i=e4(e),[o]=t4(e);return`v=0
31
31
  o=- 0 0 IN ${i} ${r}
32
32
  s=-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/webrtc",
3
- "version": "3.1.7",
3
+ "version": "3.1.8-a6be8f0f",
4
4
  "description": "A libp2p transport using WebRTC connections",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/transport-webrtc#readme",
@@ -45,10 +45,10 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@chainsafe/libp2p-noise": "^13.0.0",
48
- "@libp2p/interface": "^0.1.2",
49
- "@libp2p/interface-internal": "^0.1.4",
50
- "@libp2p/logger": "^3.0.2",
51
- "@libp2p/peer-id": "^3.0.2",
48
+ "@libp2p/interface": "0.1.2-a6be8f0f",
49
+ "@libp2p/interface-internal": "0.1.4-a6be8f0f",
50
+ "@libp2p/logger": "3.0.2-a6be8f0f",
51
+ "@libp2p/peer-id": "3.0.2-a6be8f0f",
52
52
  "@multiformats/mafmt": "^12.1.2",
53
53
  "@multiformats/multiaddr": "^12.1.5",
54
54
  "abortable-iterator": "^5.0.1",
@@ -70,16 +70,16 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@chainsafe/libp2p-yamux": "^5.0.0",
73
- "@libp2p/interface-compliance-tests": "^4.0.5",
74
- "@libp2p/peer-id-factory": "^3.0.3",
75
- "@libp2p/websockets": "^7.0.5",
73
+ "@libp2p/interface-compliance-tests": "4.0.5-a6be8f0f",
74
+ "@libp2p/peer-id-factory": "3.0.3-a6be8f0f",
75
+ "@libp2p/websockets": "7.0.5-a6be8f0f",
76
76
  "@types/sinon": "^10.0.15",
77
77
  "aegir": "^40.0.8",
78
78
  "delay": "^6.0.0",
79
79
  "it-length": "^3.0.2",
80
80
  "it-map": "^3.0.3",
81
81
  "it-pair": "^2.0.6",
82
- "libp2p": "^0.46.7",
82
+ "libp2p": "0.46.8-a6be8f0f",
83
83
  "protons": "^7.0.2",
84
84
  "sinon": "^15.1.2",
85
85
  "sinon-ts": "^1.0.0"
@@ -1,9 +0,0 @@
1
- {
2
- "DataChannelOpts": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_webrtc.unknown.DataChannelOpts.html",
3
- "WebRTCDirectTransportComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_webrtc.unknown.WebRTCDirectTransportComponents.html",
4
- "WebRTCTransportComponents": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_webrtc.unknown.WebRTCTransportComponents.html",
5
- "WebRTCTransportDirectInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_webrtc.unknown.WebRTCTransportDirectInit.html",
6
- "WebRTCTransportInit": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_webrtc.unknown.WebRTCTransportInit.html",
7
- "webRTC": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTC.html",
8
- "webRTCDirect": "https://libp2p.github.io/js-libp2p/functions/_libp2p_webrtc.webRTCDirect.html"
9
- }