libp2p 0.46.15 → 0.46.16-50442d7a

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.
Files changed (48) hide show
  1. package/README.md +20 -63
  2. package/dist/index.min.js +28 -28
  3. package/dist/src/autonat/index.d.ts.map +1 -1
  4. package/dist/src/autonat/index.js +3 -11
  5. package/dist/src/autonat/index.js.map +1 -1
  6. package/dist/src/circuit-relay/server/index.d.ts.map +1 -1
  7. package/dist/src/circuit-relay/server/index.js +2 -7
  8. package/dist/src/circuit-relay/server/index.js.map +1 -1
  9. package/dist/src/connection/index.d.ts.map +1 -1
  10. package/dist/src/connection/index.js +2 -6
  11. package/dist/src/connection/index.js.map +1 -1
  12. package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
  13. package/dist/src/connection-manager/dial-queue.js +2 -6
  14. package/dist/src/connection-manager/dial-queue.js.map +1 -1
  15. package/dist/src/connection-manager/utils.d.ts.map +1 -1
  16. package/dist/src/connection-manager/utils.js +3 -11
  17. package/dist/src/connection-manager/utils.js.map +1 -1
  18. package/dist/src/fetch/index.d.ts.map +1 -1
  19. package/dist/src/fetch/index.js +2 -6
  20. package/dist/src/fetch/index.js.map +1 -1
  21. package/dist/src/identify/consts.d.ts +1 -1
  22. package/dist/src/identify/consts.d.ts.map +1 -1
  23. package/dist/src/identify/identify.d.ts.map +1 -1
  24. package/dist/src/identify/identify.js +3 -11
  25. package/dist/src/identify/identify.js.map +1 -1
  26. package/dist/src/libp2p.d.ts.map +1 -1
  27. package/dist/src/libp2p.js +3 -7
  28. package/dist/src/libp2p.js.map +1 -1
  29. package/dist/src/upgrader.d.ts.map +1 -1
  30. package/dist/src/upgrader.js +3 -11
  31. package/dist/src/upgrader.js.map +1 -1
  32. package/dist/src/version.d.ts +1 -1
  33. package/dist/src/version.d.ts.map +1 -1
  34. package/dist/src/version.js +1 -1
  35. package/dist/src/version.js.map +1 -1
  36. package/package.json +22 -23
  37. package/src/autonat/index.ts +3 -9
  38. package/src/circuit-relay/server/index.ts +2 -6
  39. package/src/connection/index.ts +2 -5
  40. package/src/connection-manager/dial-queue.ts +2 -5
  41. package/src/connection-manager/utils.ts +3 -9
  42. package/src/fetch/index.ts +2 -5
  43. package/src/identify/identify.ts +3 -9
  44. package/src/libp2p.ts +3 -6
  45. package/src/pnet/README.md +0 -4
  46. package/src/upgrader.ts +3 -9
  47. package/src/version.ts +1 -1
  48. package/dist/typedoc-urls.json +0 -71
package/dist/index.min.js CHANGED
@@ -1,28 +1,28 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2P=(()=>{var ng=Object.create;var Ns=Object.defineProperty;var ig=Object.getOwnPropertyDescriptor;var sg=Object.getOwnPropertyNames;var og=Object.getPrototypeOf,ag=Object.prototype.hasOwnProperty;var V=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ze=(t,e)=>{for(var r in e)Ns(t,r,{get:e[r],enumerable:!0})},Bf=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of sg(e))!ag.call(t,i)&&i!==r&&Ns(t,i,{get:()=>e[i],enumerable:!(n=ig(e,i))||n.enumerable});return t};var ae=(t,e,r)=>(r=t!=null?ng(og(t)):{},Bf(e||!t||!t.__esModule?Ns(r,"default",{value:t,enumerable:!0}):r,t)),cg=t=>Bf(Ns({},"__esModule",{value:!0}),t);var $n=V((Z_,Va)=>{"use strict";var qn=typeof Reflect=="object"?Reflect:null,Lf=qn&&typeof qn.apply=="function"?qn.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},ks;qn&&typeof qn.ownKeys=="function"?ks=qn.ownKeys:Object.getOwnPropertySymbols?ks=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:ks=function(e){return Object.getOwnPropertyNames(e)};function ug(t){console&&console.warn&&console.warn(t)}var Df=Number.isNaN||function(e){return e!==e};function ye(){ye.init.call(this)}Va.exports=ye;Va.exports.once=dg;ye.EventEmitter=ye;ye.prototype._events=void 0;ye.prototype._eventsCount=0;ye.prototype._maxListeners=void 0;var Pf=10;function Os(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(ye,"defaultMaxListeners",{enumerable:!0,get:function(){return Pf},set:function(t){if(typeof t!="number"||t<0||Df(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Pf=t}});ye.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};ye.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Df(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Nf(t){return t._maxListeners===void 0?ye.defaultMaxListeners:t._maxListeners}ye.prototype.getMaxListeners=function(){return Nf(this)};ye.prototype.emit=function(e){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(c===void 0)return!1;if(typeof c=="function")Lf(c,this,r);else for(var u=c.length,l=Ff(c,u),n=0;n<u;++n)Lf(l[n],this,r);return!0};function kf(t,e,r,n){var i,s,o;if(Os(r),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),s=t._events),o=s[e]),o===void 0)o=s[e]=r,++t._eventsCount;else if(typeof o=="function"?o=s[e]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=Nf(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,ug(a)}return t}ye.prototype.addListener=function(e,r){return kf(this,e,r,!1)};ye.prototype.on=ye.prototype.addListener;ye.prototype.prependListener=function(e,r){return kf(this,e,r,!0)};function lg(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Of(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=lg.bind(n);return i.listener=r,n.wrapFn=i,i}ye.prototype.once=function(e,r){return Os(r),this.on(e,Of(this,e,r)),this};ye.prototype.prependOnceListener=function(e,r){return Os(r),this.prependListener(e,Of(this,e,r)),this};ye.prototype.removeListener=function(e,r){var n,i,s,o,a;if(Os(r),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():fg(n,s),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||r)}return this};ye.prototype.off=ye.prototype.removeListener;ye.prototype.removeAllListeners=function(e){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[e],typeof r=="function")this.removeListener(e,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(e,r[i]);return this};function Mf(t,e,r){var n=t._events;if(n===void 0)return[];var i=n[e];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?hg(i):Ff(i,i.length)}ye.prototype.listeners=function(e){return Mf(this,e,!0)};ye.prototype.rawListeners=function(e){return Mf(this,e,!1)};ye.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Uf.call(t,e)};ye.prototype.listenerCount=Uf;function Uf(t){var e=this._events;if(e!==void 0){var r=e[t];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}ye.prototype.eventNames=function(){return this._eventsCount>0?ks(this._events):[]};function Ff(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function fg(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function hg(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function dg(t,e){return new Promise(function(r,n){function i(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),r([].slice.call(arguments))}Kf(t,e,s,{once:!0}),e!=="error"&&pg(t,i,{once:!0})})}function pg(t,e,r){typeof t.on=="function"&&Kf(t,"error",e,r)}function Kf(t,e,r,n){if(typeof t.on=="function")n.once?t.once(e,r):t.on(e,r);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){n.once&&t.removeEventListener(e,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}});var pe=V((j_,Vf)=>{Vf.exports={options:{usePureJavaScript:!1}}});var Hf=V((J_,$f)=>{var qa={};$f.exports=qa;var qf={};qa.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=mg(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
- `)}return n};qa.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=qf[e];if(!r){r=qf[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function mg(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var ke=V((eS,Wf)=>{var zf=pe(),Gf=Hf(),E=Wf.exports=zf.util=zf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];E.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};E.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};E.isArrayBufferView=function(t){return t&&E.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function Oi(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}E.ByteBuffer=$a;function $a(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(E.isArrayBuffer(t)||E.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof $a||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}E.ByteStringBuffer=$a;var yg=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>yg&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};E.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};E.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};E.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(E.encodeUtf8(t))};E.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};E.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};E.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};E.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};E.ByteStringBuffer.prototype.putInt=function(t,e){Oi(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};E.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};E.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};E.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};E.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};E.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};E.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};E.ByteStringBuffer.prototype.getInt=function(t){Oi(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};E.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};E.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};E.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};E.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};E.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var t=E.createBuffer(this.data);return t.read=this.read,t};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function gg(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=E.isArrayBuffer(t),n=E.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}E.DataBuffer=gg;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};E.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};E.DataBuffer.prototype.putBytes=function(t,e){if(E.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(E.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof E.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&E.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof E.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=E.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};E.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};E.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};E.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(t,e){Oi(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};E.DataBuffer.prototype.putSignedInt=function(t,e){return Oi(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};E.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};E.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};E.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};E.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};E.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};E.DataBuffer.prototype.getInt=function(t){Oi(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};E.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};E.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};E.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};E.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};E.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};E.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return E.binary.raw.encode(e);if(t==="hex")return E.binary.hex.encode(e);if(t==="base64")return E.binary.base64.encode(e);if(t==="utf8")return E.text.utf8.decode(e);if(t==="utf16")return E.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};E.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=E.encodeUtf8(t)),new E.ByteBuffer(t)};E.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};E.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};E.bytesToHex=function(t){return E.createBuffer(t).toHex()};E.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var Cr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Yf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
4
- `,r=r.substr(e));return n+=r,n};E.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=Tr[t.charCodeAt(o++)-43],n=Tr[t.charCodeAt(o++)-43],i=Tr[t.charCodeAt(o++)-43],s=Tr[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};E.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};E.decodeUtf8=function(t){return decodeURIComponent(escape(t))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Gf.encode,decode:Gf.decode}};E.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};E.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};E.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
5
- `,r=r.substr(e));return n+=r,n};E.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=Tr[t.charCodeAt(c++)-43],s=Tr[t.charCodeAt(c++)-43],o=Tr[t.charCodeAt(c++)-43],a=Tr[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};E.binary.base58.encode=function(t,e){return E.binary.baseN.encode(t,Yf,e)};E.binary.base58.decode=function(t,e){return E.binary.baseN.decode(t,Yf,e)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(t,e,r){t=E.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};E.text.utf8.decode=function(t){return E.decodeUtf8(String.fromCharCode.apply(null,t))};E.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};E.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};E.deflate=function(t,e,r){if(e=E.decode64(t.deflate(E.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};E.inflate=function(t,e,r){var n=t.inflate(E.encode64(e)).rval;return n===null?null:E.decode64(n)};var Ha=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=E.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},za=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(E.decode64(r))),r},xg=function(t,e,r,n){var i=za(t,e);i===null&&(i={}),i[r]=n,Ha(t,e,i)},Eg=function(t,e,r){var n=za(t,e);return n!==null&&(n=r in n?n[r]:null),n},bg=function(t,e,r){var n=za(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Ha(t,e,n)}},wg=function(t,e){Ha(t,e,null)},Ms=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(t,e,r,n,i){Ms(xg,arguments,i)};E.getItem=function(t,e,r,n){return Ms(Eg,arguments,n)};E.removeItem=function(t,e,r,n){Ms(bg,arguments,n)};E.clearItems=function(t,e,r){Ms(wg,arguments,r)};E.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};E.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};E.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};E.formatSize=function(t){return t>=1073741824?t=E.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=E.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=E.formatNumber(t/1024,0)+" KiB":t=E.formatNumber(t,0)+" bytes",t};E.bytesFromIP=function(t){return t.indexOf(".")!==-1?E.bytesFromIPv4(t):t.indexOf(":")!==-1?E.bytesFromIPv6(t):null};E.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=E.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};E.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=E.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(t){return t.length===4?E.bytesToIPv4(t):t.length===16?E.bytesToIPv6(t):null};E.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};E.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=E.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};E.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in E&&!t.update)return e(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,e(null,E.cores);if(typeof Worker>"u")return E.cores=1,e(null,E.cores);if(typeof Blob>"u")return E.cores=2,e(null,E.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return E.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,E.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var p=a[d];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(d)}return c.reduce(function(h,m){return Math.max(h,m.length)},0)}}});var Us=V((tS,Qf)=>{var Mi=pe();Mi.pki=Mi.pki||{};var Ga=Qf.exports=Mi.pki.oids=Mi.oids=Mi.oids||{};function B(t,e){Ga[t]=e,Ga[e]=t}function le(t,e){Ga[t]=e}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");le("2.5.29.1","authorityKeyIdentifier");le("2.5.29.2","keyAttributes");le("2.5.29.3","certificatePolicies");le("2.5.29.4","keyUsageRestriction");le("2.5.29.5","policyMapping");le("2.5.29.6","subtreesConstraint");le("2.5.29.7","subjectAltName");le("2.5.29.8","issuerAltName");le("2.5.29.9","subjectDirectoryAttributes");le("2.5.29.10","basicConstraints");le("2.5.29.11","nameConstraints");le("2.5.29.12","policyConstraints");le("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");le("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");le("2.5.29.20","cRLNumber");le("2.5.29.21","cRLReason");le("2.5.29.22","expirationDate");le("2.5.29.23","instructionCode");le("2.5.29.24","invalidityDate");le("2.5.29.25","cRLDistributionPoints");le("2.5.29.26","issuingDistributionPoint");le("2.5.29.27","deltaCRLIndicator");le("2.5.29.28","issuingDistributionPoint");le("2.5.29.29","certificateIssuer");le("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");le("2.5.29.33","policyMappings");le("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");le("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");le("2.5.29.46","freshestCRL");le("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var Fi=V((rS,Zf)=>{var _e=pe();ke();Us();var O=Zf.exports=_e.asn1=_e.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(t,e,r,n,i){if(_e.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||_e.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(t,e){var r;if(_e.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(O.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:O.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};O.equals=function(t,e,r){if(_e.util.isArray(t)){if(!_e.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!O.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&O.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};O.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function Ui(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var vg=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Ui(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=_e.util.createBuffer(t));var r=t.length(),n=Fs(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function Fs(t,e,r,n){var i;Ui(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=vg(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(Ui(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(Fs(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(Fs(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=t.read,h=e,m=0;if(a===O.Type.BITSTRING&&(Ui(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var y={strict:!0,decodeBitStrings:!0},g=Fs(t,e,r+1,y),x=i-t.length();e-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(t.read=p,e=h)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Ui(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,d,l,C)}O.toDer=function(t){var e=_e.util.createBuffer(),r=t.tagClass|t.type,n=_e.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=O.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(O.toDer(t.value[s]))}else if(t.type===O.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===O.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};O.oidToDer=function(t){var e=t.split("."),r=_e.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(t){var e;typeof t=="string"&&(t=_e.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};O.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?e.setTime(+e-d):e.setTime(+e+d)}return e};O.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,d=t.charAt(f);if(d==="+"||d==="-"){var p=parseInt(t.substr(f+1,2),10),h=parseInt(t.substr(f+4,2),10);u=p*60+h,u*=6e4,d==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};O.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.integerToDer=function(t){var e=_e.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};O.derToInteger=function(t){typeof t=="string"&&(t=_e.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};O.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&_e.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=O.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Xf=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
6
- `);for(var i="",s=0;s<e*r;++s)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(t.tagClass===O.Class.UNIVERSAL)switch(n+=t.type,t.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
7
- `,n+=i+"Constructed: "+t.constructed+`
8
- `,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===O.Type.OID){var c=O.derToOid(t.value);n+=c,_e.pki&&_e.pki.oids&&c in _e.pki.oids&&(n+=" ("+_e.pki.oids[c]+") ")}if(t.type===O.Type.INTEGER)try{n+=O.derToInteger(t.value)}catch{n+="0x"+_e.util.bytesToHex(t.value)}else if(t.type===O.Type.BITSTRING){if(t.value.length>1?n+="0x"+_e.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===O.Type.OCTETSTRING)Xf.test(t.value)||(n+="("+t.value+") "),n+="0x"+_e.util.bytesToHex(t.value);else if(t.type===O.Type.UTF8)try{n+=_e.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+_e.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===O.Type.PRINTABLESTRING||t.type===O.Type.IA5String?n+=t.value:Xf.test(t.value)?n+="0x"+_e.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var Wa=V((nS,jf)=>{var Ge=pe();ke();jf.exports=Ge.cipher=Ge.cipher||{};Ge.cipher.algorithms=Ge.cipher.algorithms||{};Ge.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ge.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ge.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Ge.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ge.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ge.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Ge.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Ge.cipher.algorithms[t]=e};Ge.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Ge.cipher.algorithms?Ge.cipher.algorithms[t]:null};var Ya=Ge.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};Ya.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=Ge.util.createBuffer(),this.output=t.output||Ge.util.createBuffer(),this.mode.start(e)};Ya.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ya.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var Xa=V((iS,Jf)=>{var Ye=pe();ke();Ye.cipher=Ye.cipher||{};var ee=Jf.exports=Ye.cipher.modes=Ye.cipher.modes||{};ee.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};ee.ecb.prototype.start=function(t){};ee.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};ee.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};ee.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};ee.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};ee.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};ee.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=Ks(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};ee.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};ee.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};ee.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};ee.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};ee.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Ye.util.createBuffer(),this._partialBytes=0};ee.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ks(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};ee.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};ee.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};ee.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ye.util.createBuffer(),this._partialBytes=0};ee.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ks(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};ee.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};ee.ofb.prototype.decrypt=ee.ofb.prototype.encrypt;ee.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ye.util.createBuffer(),this._partialBytes=0};ee.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=Ks(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};ee.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Vs(this._inBlock)};ee.ctr.prototype.decrypt=ee.ctr.prototype.encrypt;ee.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Ye.util.createBuffer(),this._partialBytes=0,this._R=3774873600};ee.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=Ye.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=Ye.util.createBuffer(t.additionalData):r=Ye.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=Ye.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Qa(n*8)))}this._inBlock=this._j0.slice(0),Vs(this._inBlock),this._partialBytes=0,r=Ye.util.createBuffer(r),this._aDataLength=Qa(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};ee.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Vs(this._inBlock)};ee.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Vs(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};ee.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=Ye.util.createBuffer();var n=this._aDataLength.concat(Qa(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};ee.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};ee.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};ee.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};ee.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};ee.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};ee.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function Ks(t,e){if(typeof t=="string"&&(t=Ye.util.createBuffer(t)),Ye.util.isArray(t)&&t.length>4){var r=t;t=Ye.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!Ye.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function Vs(t){t[t.length-1]=t[t.length-1]+1&4294967295}function Qa(t){return[t/4294967296|0,t&4294967295]}});var $s=V((sS,n0)=>{var we=pe();Wa();Xa();ke();n0.exports=we.aes=we.aes||{};we.aes.startEncrypting=function(t,e,r,n){var i=qs({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};we.aes.createEncryptionCipher=function(t,e){return qs({key:t,output:null,decrypt:!1,mode:e})};we.aes.startDecrypting=function(t,e,r,n){var i=qs({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};we.aes.createDecryptionCipher=function(t,e){return qs({key:t,output:null,decrypt:!0,mode:e})};we.aes.Algorithm=function(t,e){Ja||t0();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return ja(r._w,n,i,!1)},decrypt:function(n,i){return ja(r._w,n,i,!0)}}}),r._init=!1};we.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=we.util.createBuffer(e);else if(we.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=we.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!we.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!we.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=r0(e,t.decrypt&&!o),this._init=!0}};we.aes._expandKey=function(t,e){return Ja||t0(),r0(t,e)};we.aes._updateBlock=ja;zn("AES-ECB",we.cipher.modes.ecb);zn("AES-CBC",we.cipher.modes.cbc);zn("AES-CFB",we.cipher.modes.cfb);zn("AES-OFB",we.cipher.modes.ofb);zn("AES-CTR",we.cipher.modes.ctr);zn("AES-GCM",we.cipher.modes.gcm);function zn(t,e){var r=function(){return new we.aes.Algorithm(t,e)};we.cipher.registerAlgorithm(t,r)}var Ja=!1,Hn=4,ht,Za,e0,rn,kt;function t0(){Ja=!0,e0=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;ht=new Array(256),Za=new Array(256),rn=new Array(4),kt=new Array(4);for(var e=0;e<4;++e)rn[e]=new Array(256),kt[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,ht[r]=a,Za[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)rn[f][r]=u,kt[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function r0(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=Hn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=ht[n>>>16&255]<<24^ht[n>>>8&255]<<16^ht[n&255]<<8^ht[n>>>24]^e0[i]<<24,i++):s>6&&c%s===4&&(n=ht[n>>>24]<<24^ht[n>>>16&255]<<16^ht[n>>>8&255]<<8^ht[n&255]),r[c]=r[c-s]^n;if(e){var u,l=kt[0],f=kt[1],d=kt[2],p=kt[3],h=r.slice(0);a=r.length;for(var c=0,m=a-Hn;c<a;c+=Hn,m-=Hn)if(c===0||c===a-Hn)h[c]=r[m],h[c+1]=r[m+3],h[c+2]=r[m+2],h[c+3]=r[m+1];else for(var y=0;y<Hn;++y)u=r[m+y],h[c+(3&-y)]=l[ht[u>>>24]]^f[ht[u>>>16&255]]^d[ht[u>>>8&255]]^p[ht[u&255]];r=h}return r}function ja(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=kt[0],o=kt[1],a=kt[2],c=kt[3],u=Za):(s=rn[0],o=rn[1],a=rn[2],c=rn[3],u=ht);var l,f,d,p,h,m,y;l=e[0]^t[0],f=e[n?3:1]^t[1],d=e[2]^t[2],p=e[n?1:3]^t[3];for(var g=3,x=1;x<i;++x)h=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[p&255]^t[++g],m=s[f>>>24]^o[d>>>16&255]^a[p>>>8&255]^c[l&255]^t[++g],y=s[d>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^t[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^t[++g],l=h,f=m,d=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[p&255]^t[++g],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^t[++g],r[2]=u[d>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^t[++g]}function qs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=we.cipher.createDecipher(r,t.key):n=we.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof we.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var o0=V((oS,s0)=>{var Ae=pe();Wa();Xa();ke();s0.exports=Ae.des=Ae.des||{};Ae.des.startEncrypting=function(t,e,r,n){var i=Hs({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Ae.des.createEncryptionCipher=function(t,e){return Hs({key:t,output:null,decrypt:!1,mode:e})};Ae.des.startDecrypting=function(t,e,r,n){var i=Hs({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Ae.des.createDecryptionCipher=function(t,e){return Hs({key:t,output:null,decrypt:!0,mode:e})};Ae.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return i0(r._keys,n,i,!1)},decrypt:function(n,i){return i0(r._keys,n,i,!0)}}}),r._init=!1};Ae.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=Ae.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=Lg(e),this._init=!0}};Gt("DES-ECB",Ae.cipher.modes.ecb);Gt("DES-CBC",Ae.cipher.modes.cbc);Gt("DES-CFB",Ae.cipher.modes.cfb);Gt("DES-OFB",Ae.cipher.modes.ofb);Gt("DES-CTR",Ae.cipher.modes.ctr);Gt("3DES-ECB",Ae.cipher.modes.ecb);Gt("3DES-CBC",Ae.cipher.modes.cbc);Gt("3DES-CFB",Ae.cipher.modes.cfb);Gt("3DES-OFB",Ae.cipher.modes.ofb);Gt("3DES-CTR",Ae.cipher.modes.ctr);function Gt(t,e){var r=function(){return new Ae.des.Algorithm(t,e)};Ae.cipher.registerAlgorithm(t,r)}var _g=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Sg=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Ag=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Ig=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Rg=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Cg=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Tg=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Bg=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function Lg(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=t.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,C=0;C<m;C++){var _=t.getInt32(),S=t.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=e[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|d[S>>>12&15]|p[S>>>8&15]|h[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function i0(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var p=c^t[d],h=(c>>>4|c<<28)^t[d+1];o=a,a=c,c=o^(Sg[p>>>24&63]|Ig[p>>>16&63]|Cg[p>>>8&63]|Bg[p&63]|_g[h>>>24&63]|Ag[h>>>16&63]|Rg[h>>>8&63]|Tg[h&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function Hs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=Ae.cipher.createDecipher(r,t.key):n=Ae.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Ae.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var nn=V((aS,a0)=>{var zs=pe();a0.exports=zs.md=zs.md||{};zs.md.algorithms=zs.md.algorithms||{}});var u0=V((cS,c0)=>{var cr=pe();nn();ke();var Pg=c0.exports=cr.hmac=cr.hmac||{};Pg.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in cr.md.algorithms)e=cr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=cr.util.createBuffer(o);else if(cr.util.isArray(o)){var a=o;o=cr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=cr.util.createBuffer(),n=cr.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var Ki=V(()=>{});var ec=V((fS,l0)=>{var dt=pe();u0();nn();ke();var Dg=dt.pkcs5=dt.pkcs5||{},ur;dt.util.isNodejs&&!dt.options.usePureJavaScript&&(ur=Ki());l0.exports=dt.pbkdf2=Dg.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),dt.util.isNodejs&&!dt.options.usePureJavaScript&&ur.pbkdf2&&(i===null||typeof i!="object")&&(ur.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?ur.pbkdf2Sync.length===4?ur.pbkdf2(t,e,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2(t,e,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2Sync.length===4?ur.pbkdf2Sync(t,e,r,n).toString("binary"):ur.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in dt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=dt.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=dt.hmac.create();l.start(i,t);var f="",d,p,h;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(dt.util.int32ToBytes(m)),d=h=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(h),p=l.digest().getBytes(),d=dt.util.xorBytes(d,p,o),h=p;f+=m<c?d:d.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(e),l.update(dt.util.int32ToBytes(m)),d=h=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(h),p=l.digest().getBytes(),d=dt.util.xorBytes(d,p,o),h=p,++y,dt.util.setImmediate(x);f+=m<c?d:d.substr(0,u),++m,g()}g()}});var d0=V((hS,h0)=>{var Ys=pe();ke();var f0=h0.exports=Ys.pem=Ys.pem||{};f0.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
9
- `,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=Gs(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=Gs(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=Gs(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=Gs(t.headers[i]);return t.procType&&(r+=`\r
10
- `),r+=Ys.util.encode64(t.body,e.maxline||64)+`\r
11
- `,r+="-----END "+t.type+`-----\r
12
- `,r};f0.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Ys.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},h=s[2].split(","),m=0;m<h.length;++m)p.values.push(Ng(h[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&p.name==="DEK-Info"){if(p.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(p);else{if(p.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(p.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(e.length===0)throw new Error("Invalid PEM formatted message.");return e};function Gs(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
13
- `;for(var s=0,o=-1,i=0;i<e.length;++i,++s)if(s>65&&o!==-1){var a=e[o];a===","?(++o,e=e.substr(0,o)+`\r
14
- `+e.substr(o)):e=e.substr(0,o)+`\r
15
- `+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function Ng(t){return t.replace(/^\s+/,"")}});var E0=V((dS,x0)=>{var Yt=pe();nn();ke();var m0=x0.exports=Yt.sha256=Yt.sha256||{};Yt.md.sha256=Yt.md.algorithms.sha256=m0;m0.create=function(){y0||kg();var t=null,e=Yt.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Yt.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Yt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),p0(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Yt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(tc.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};p0(f,r,i);var d=Yt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var tc=null,y0=!1,g0=null;function kg(){tc=String.fromCharCode(128),tc+=Yt.util.fillString(String.fromCharCode(0),64),g0=[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],y0=!0}function p0(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,d=t.h2,p=t.h3,h=t.h4,m=t.h5,y=t.h6,g=t.h7,u=0;u<64;++u)o=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=g+o+a+g0[u]+e[u],i=s+c,g=y,y=m,m=h,h=p+n>>>0,p=d,d=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+d|0,t.h3=t.h3+p|0,t.h4=t.h4+h|0,t.h5=t.h5+m|0,t.h6=t.h6+y|0,t.h7=t.h7+g|0,x-=64}}});var w0=V((pS,b0)=>{var Wt=pe();ke();var Ws=null;Wt.util.isNodejs&&!Wt.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Ws=Ki());var Og=b0.exports=Wt.prng=Wt.prng||{};Og.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,d=e.plugin.increment,p=e.plugin.formatKey,h=e.plugin.formatSeed,m=Wt.util.createBuffer();e.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return Wt.util.nextTick(function(){s(y)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=p(f(e.key,d(e.seed))),e.seed=h(f(e.key,e.seed)),Wt.util.setImmediate(y)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,d=e.plugin.formatKey,p=e.plugin.formatSeed;e.key=null;for(var h=Wt.util.createBuffer();h.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var m=l(e.key,e.seed);e.generated+=m.length,h.putBytes(m),e.key=d(l(e.key,f(e.seed))),e.seed=p(l(e.key,e.seed))}return h.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,d){if(f)return u(f);e.collect(d),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var d=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(d),e.generated=0}function c(u){var l=null,f=Wt.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(_){return d.getRandomValues(_)});var p=Wt.util.createBuffer();if(l)for(;p.length()<u;){var h=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(h));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Ws?(e.seedFile=function(u,l){Ws.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},e.seedFileSync=function(u){return Ws.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,d){function p(h){var m=h.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&e.seedFile(d.forge.prng.needed,function(p,h){u.postMessage({forge:{prng:{err:p,bytes:h}}})})};u.addEventListener("message",l)}},e}});var Vi=V((mS,rc)=>{var We=pe();$s();E0();w0();ke();(function(){if(We.random&&We.random.getBytes){rc.exports=We.random;return}(function(t){var e={},r=new Array(4),n=We.util.createBuffer();e.formatKey=function(f){var d=We.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),We.aes._expandKey(f,!1)},e.formatSeed=function(f){var d=We.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},e.cipher=function(f,d){return We.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=We.md.sha256;function i(){var f=We.prng.create(e);return f.getBytes=function(d,p){return f.generate(d,p)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=We.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),We.options.usePureJavaScript||!We.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!We.random)We.random=s;else for(var l in s)We.random[l]=s[l];We.random.createInstance=i,rc.exports=We.random})(typeof jQuery<"u"?jQuery:null)})()});var A0=V((yS,S0)=>{var mt=pe();ke();var nc=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],v0=[1,2,3,5],Mg=function(t,e){return t<<e&65535|(t&65535)>>16-e},Ug=function(t,e){return(t&65535)>>e|t<<16-e&65535};S0.exports=mt.rc2=mt.rc2||{};mt.rc2.expandKey=function(t,e){typeof t=="string"&&(t=mt.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(nc[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,nc[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,nc[r.at(a+1)^r.at(a+s)]);return r};var _0=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=mt.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=Mg(h[u],v0[u]),l++},c=function(h){for(u=0;u<4;u++)h[u]+=f[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=Ug(h[u],v0[u]),h[u]-=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),l--},c=function(h){for(u=3;u>=0;u--)h[u]-=f[h[(u+3)%4]&63]});var d=function(h){var m=[];for(u=0;u<4;u++){var y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<h.length;g++)for(var x=0;x<h[g][0];x++)h[g][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(h,m){h&&typeof h=="string"&&(h=mt.util.createBuffer(h)),n=!1,i=mt.util.createBuffer(),s=m||new mt.util.createBuffer,o=h,p.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var m=!0;if(r)if(h)m=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(h)m=h(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};mt.rc2.startEncrypting=function(t,e,r){var n=mt.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};mt.rc2.createEncryptionCipher=function(t,e){return _0(t,e,!0)};mt.rc2.startDecrypting=function(t,e,r){var n=mt.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};mt.rc2.createDecryptionCipher=function(t,e){return _0(t,e,!1)}});var Zs=V((gS,D0)=>{var ic=pe();D0.exports=ic.jsbn=ic.jsbn||{};var lr,Fg=0xdeadbeefcafe,I0=(Fg&16777215)==15715070;function R(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}ic.jsbn.BigInteger=R;function ce(){return new R(null)}function Kg(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function Vg(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function R0(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(R.prototype.am=R0,lr=28):I0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=Vg,lr=30):I0&&navigator.appName!="Netscape"?(R.prototype.am=Kg,lr=26):(R.prototype.am=R0,lr=28);R.prototype.DB=lr;R.prototype.DM=(1<<lr)-1;R.prototype.DV=1<<lr;var sc=52;R.prototype.FV=Math.pow(2,sc);R.prototype.F1=sc-lr;R.prototype.F2=2*lr-sc;var qg="0123456789abcdefghijklmnopqrstuvwxyz",Qs=new Array,Gn,Tt;Gn="0".charCodeAt(0);for(Tt=0;Tt<=9;++Tt)Qs[Gn++]=Tt;Gn="a".charCodeAt(0);for(Tt=10;Tt<36;++Tt)Qs[Gn++]=Tt;Gn="A".charCodeAt(0);for(Tt=10;Tt<36;++Tt)Qs[Gn++]=Tt;function C0(t){return qg.charAt(t)}function T0(t,e){var r=Qs[t.charCodeAt(e)];return r??-1}function $g(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function Hg(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function Br(t){var e=ce();return e.fromInt(t),e}function zg(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:T0(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&R.ZERO.subTo(this,this)}function Gg(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function Yg(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=C0(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=C0(n));return i?s:"0"}function Wg(){var t=ce();return R.ZERO.subTo(this,t),t}function Qg(){return this.s<0?this.negate():this}function Xg(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function Xs(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function Zg(){return this.t<=0?0:this.DB*(this.t-1)+Xs(this.data[this.t-1]^this.s&this.DM)}function jg(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function Jg(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function ex(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function tx(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function rx(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function nx(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&R.ZERO.subTo(e,e)}function ix(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function sx(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ce());var s=ce(),o=this.s,a=t.s,c=this.DB-Xs(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,p=(1<<this.F1)/f,h=1<<this.F2,m=r.t,y=m-u,g=e??ce();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),R.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+h)*p);if((r.data[m]+=s.am(0,x,r,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&R.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function ox(t){var e=ce();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(R.ZERO)>0&&t.subTo(e,e),e}function sn(t){this.m=t}function ax(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function cx(t){return t}function ux(t){t.divRemTo(this.m,null,t)}function lx(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function fx(t,e){t.squareTo(e),this.reduce(e)}sn.prototype.convert=ax;sn.prototype.revert=cx;sn.prototype.reduce=ux;sn.prototype.mulTo=lx;sn.prototype.sqrTo=fx;function hx(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function on(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function dx(t){var e=ce();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(R.ZERO)>0&&this.m.subTo(e,e),e}function px(t){var e=ce();return t.copyTo(e),this.reduce(e),e}function mx(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function yx(t,e){t.squareTo(e),this.reduce(e)}function gx(t,e,r){t.multiplyTo(e,r),this.reduce(r)}on.prototype.convert=dx;on.prototype.revert=px;on.prototype.reduce=mx;on.prototype.mulTo=gx;on.prototype.sqrTo=yx;function xx(){return(this.t>0?this.data[0]&1:this.s)==0}function Ex(t,e){if(t>4294967295||t<1)return R.ONE;var r=ce(),n=ce(),i=e.convert(this),s=Xs(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function bx(t,e){var r;return t<256||e.isEven()?r=new sn(e):r=new on(e),this.exp(t,r)}R.prototype.copyTo=$g;R.prototype.fromInt=Hg;R.prototype.fromString=zg;R.prototype.clamp=Gg;R.prototype.dlShiftTo=jg;R.prototype.drShiftTo=Jg;R.prototype.lShiftTo=ex;R.prototype.rShiftTo=tx;R.prototype.subTo=rx;R.prototype.multiplyTo=nx;R.prototype.squareTo=ix;R.prototype.divRemTo=sx;R.prototype.invDigit=hx;R.prototype.isEven=xx;R.prototype.exp=Ex;R.prototype.toString=Yg;R.prototype.negate=Wg;R.prototype.abs=Qg;R.prototype.compareTo=Xg;R.prototype.bitLength=Zg;R.prototype.mod=ox;R.prototype.modPowInt=bx;R.ZERO=Br(0);R.ONE=Br(1);function wx(){var t=ce();return this.copyTo(t),t}function vx(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function _x(){return this.t==0?this.s:this.data[0]<<24>>24}function Sx(){return this.t==0?this.s:this.data[0]<<16>>16}function Ax(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function Ix(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Rx(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=Br(r),i=ce(),s=ce(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function Cx(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=T0(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function Tx(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(R.ONE.shiftLeft(t-1),oc,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(R.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Bx(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function Lx(t){return this.compareTo(t)==0}function Px(t){return this.compareTo(t)<0?this:t}function Dx(t){return this.compareTo(t)>0?this:t}function Nx(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function kx(t,e){return t&e}function Ox(t){var e=ce();return this.bitwiseTo(t,kx,e),e}function oc(t,e){return t|e}function Mx(t){var e=ce();return this.bitwiseTo(t,oc,e),e}function B0(t,e){return t^e}function Ux(t){var e=ce();return this.bitwiseTo(t,B0,e),e}function L0(t,e){return t&~e}function Fx(t){var e=ce();return this.bitwiseTo(t,L0,e),e}function Kx(){for(var t=ce(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function Vx(t){var e=ce();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function qx(t){var e=ce();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function $x(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function Hx(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+$x(this.data[t]);return this.s<0?this.t*this.DB:-1}function zx(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function Gx(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=zx(this.data[r]^e);return t}function Yx(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function Wx(t,e){var r=R.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function Qx(t){return this.changeBit(t,oc)}function Xx(t){return this.changeBit(t,L0)}function Zx(t){return this.changeBit(t,B0)}function jx(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function Jx(t){var e=ce();return this.addTo(t,e),e}function e1(t){var e=ce();return this.subTo(t,e),e}function t1(t){var e=ce();return this.multiplyTo(t,e),e}function r1(t){var e=ce();return this.divRemTo(t,e,null),e}function n1(t){var e=ce();return this.divRemTo(t,null,e),e}function i1(t){var e=ce(),r=ce();return this.divRemTo(t,e,r),new Array(e,r)}function s1(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function o1(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function qi(){}function P0(t){return t}function a1(t,e,r){t.multiplyTo(e,r)}function c1(t,e){t.squareTo(e)}qi.prototype.convert=P0;qi.prototype.revert=P0;qi.prototype.mulTo=a1;qi.prototype.sqrTo=c1;function u1(t){return this.exp(t,new qi)}function l1(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function f1(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function Yn(t){this.r2=ce(),this.q3=ce(),R.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function h1(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=ce();return t.copyTo(e),this.reduce(e),e}function d1(t){return t}function p1(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function m1(t,e){t.squareTo(e),this.reduce(e)}function y1(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Yn.prototype.convert=h1;Yn.prototype.revert=d1;Yn.prototype.reduce=p1;Yn.prototype.mulTo=y1;Yn.prototype.sqrTo=m1;function g1(t,e){var r=t.bitLength(),n,i=Br(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new sn(e):e.isEven()?s=new Yn(e):s=new on(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=ce();for(s.sqrTo(o[1],l);a<=u;)o[a]=ce(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,d,p=!0,h=ce(),m;for(r=Xs(t.data[f])-1;f>=0;){for(r>=c?d=t.data[f]>>r-c&u:(d=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=t.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[d].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,h),s.sqrTo(h,i),a-=2;a>0?s.sqrTo(i,h):(m=i,i=h,h=m),s.mulTo(h,o[d],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,h),m=i,i=h,h=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function x1(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function E1(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function b1(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return R.ZERO;for(var r=t.clone(),n=this.clone(),i=Br(1),s=Br(0),o=Br(0),a=Br(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var Ot=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],w1=(1<<26)/Ot[Ot.length-1];function v1(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=Ot[Ot.length-1]){for(e=0;e<Ot.length;++e)if(r.data[0]==Ot[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Ot.length;){for(var n=Ot[e],i=e+1;i<Ot.length&&n<w1;)n*=Ot[i++];for(n=r.modInt(n);e<i;)if(n%Ot[e++]==0)return!1}return r.millerRabin(t)}function _1(t){var e=this.subtract(R.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=S1(),s,o=0;o<t;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function S1(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=Ax;R.prototype.toRadix=Rx;R.prototype.fromRadix=Cx;R.prototype.fromNumber=Tx;R.prototype.bitwiseTo=Nx;R.prototype.changeBit=Wx;R.prototype.addTo=jx;R.prototype.dMultiply=s1;R.prototype.dAddOffset=o1;R.prototype.multiplyLowerTo=l1;R.prototype.multiplyUpperTo=f1;R.prototype.modInt=E1;R.prototype.millerRabin=_1;R.prototype.clone=wx;R.prototype.intValue=vx;R.prototype.byteValue=_x;R.prototype.shortValue=Sx;R.prototype.signum=Ix;R.prototype.toByteArray=Bx;R.prototype.equals=Lx;R.prototype.min=Px;R.prototype.max=Dx;R.prototype.and=Ox;R.prototype.or=Mx;R.prototype.xor=Ux;R.prototype.andNot=Fx;R.prototype.not=Kx;R.prototype.shiftLeft=Vx;R.prototype.shiftRight=qx;R.prototype.getLowestSetBit=Hx;R.prototype.bitCount=Gx;R.prototype.testBit=Yx;R.prototype.setBit=Qx;R.prototype.clearBit=Xx;R.prototype.flipBit=Zx;R.prototype.add=Jx;R.prototype.subtract=e1;R.prototype.multiply=t1;R.prototype.divide=r1;R.prototype.remainder=n1;R.prototype.divideAndRemainder=i1;R.prototype.modPow=g1;R.prototype.modInverse=b1;R.prototype.pow=u1;R.prototype.gcd=x1;R.prototype.isProbablePrime=v1});var U0=V((xS,M0)=>{var Qt=pe();nn();ke();var k0=M0.exports=Qt.sha1=Qt.sha1||{};Qt.md.sha1=Qt.md.algorithms.sha1=k0;k0.create=function(){O0||A1();var t=null,e=Qt.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Qt.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Qt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),N0(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Qt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ac.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};N0(f,r,i);var d=Qt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var ac=null,O0=!1;function A1(){ac=String.fromCharCode(128),ac+=Qt.util.fillString(String.fromCharCode(0),64),O0=!0}function N0(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var V0=V((ES,K0)=>{var Xt=pe();ke();Vi();U0();var F0=K0.exports=Xt.pkcs1=Xt.pkcs1||{};F0.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=Xt.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-e.length,p=0;p<d;p++)f+="\0";var h=l.getBytes()+f+""+e;if(!i)i=Xt.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=js(i,a-s.digestLength-1,o),y=Xt.util.xorBytes(h,m,h.length),g=js(y,s.digestLength,o),x=Xt.util.xorBytes(i,g,i.length);return"\0"+x+y};F0.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=e.length,y.expectedLength=o,y}if(i===void 0?i=Xt.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=js(l,i.digestLength,s),d=Xt.util.xorBytes(u,f,u.length),p=js(d,o-i.digestLength-1,s),h=Xt.util.xorBytes(l,p,l.length),m=h.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,C=i.digestLength;C<h.length;C++){var _=h.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||h.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(b+1)};function js(t,e,r){r||(r=Xt.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var q0=V((bS,cc)=>{var Lr=pe();ke();Zs();Vi();(function(){if(Lr.prime){cc.exports=Lr.prime;return}var t=cc.exports=Lr.prime=Lr.prime||{},e=Lr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,d){return f|d};t.generateProbablePrime=function(f,d,p){typeof d=="function"&&(p=d,d={}),d=d||{};var h=d.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var m=d.prng||Lr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(h.name==="PRIMEINC")return s(f,y,h.options,p);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(f,d,p,h){return"workers"in p?c(f,d,p,h):o(f,d,p,h)}function o(f,d,p,h){var m=u(f,d),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,d,y,g,x,h)}function a(f,d,p,h,m,y,g){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);Lr.util.setImmediate(function(){a(f,d,p,h,m,y,g)})}function c(f,d,p,h){if(typeof Worker>"u")return o(f,d,p,h);var m=u(f,d),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Lr.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var H=W.data;if(H.found){for(var te=0;te<_.length;++te)_[te].terminate();return D=!0,h(null,new e(H.prime,16))}m.bitLength()>f&&(m=u(f,d));var me=m.toString(16);W.target.postMessage({hex:me,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,d){var p=new e(f,d),h=f-1;return p.testBit(h)||p.bitwiseTo(e.ONE.shiftLeft(h),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var eo=V((wS,Q0)=>{var $=pe();Fi();Zs();Us();V0();q0();Vi();ke();typeof se>"u"&&(se=$.jsbn.BigInteger);var se,uc=$.util.isNodejs?Ki():null,v=$.asn1,Bt=$.util;$.pki=$.pki||{};Q0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,I1=[6,4,2,4,2,4,6,2],R1={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},C1={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},T1={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},B1=$.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},L1={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},P1=function(t){var e;if(t.algorithm in Q.oids)e=Q.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=v.oidToDer(e).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},Y0=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(se.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(se.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new se($.util.bytesToHex($.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(se.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};Q.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=W0(t,e,r)):(i=$.util.createBuffer(),i.putBytes(t));for(var o=new se(i.toHex(),16),a=Y0(o,e,n),c=a.toString(16),u=$.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new se($.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Y0(o,e,r),c=a.toString(16),u=$.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),n!==!1?Js(u.getBytes(),e,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||$.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new se(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new se(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new se(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(se.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(N1(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(I1[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(se.ONE).gcd(t.e).compareTo(se.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(se.ONE),t.q1=t.q.subtract(se.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(se.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:Q.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Q.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};Q.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if($0("generateKeyPair"))return uc.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(H0("generateKey")&&H0("exportKey"))return Bt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:G0(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Bt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(z0("generateKey")&&z0("exportKey")){var i=Bt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:G0(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Bt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:d,publicKey:Q.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if($0("generateKeyPairSync")){var s=uc.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(t,e,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;D1(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return W0(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return $.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return Q.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=Js(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!v.validate(l,L1,f,d)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=d,p}var h=v.derToOid(f.algorithmIdentifier);if(!(h===$.oids.md2||h===$.oids.md5||h===$.oids.sha1||h===$.oids.sha224||h===$.oids.sha256||h===$.oids.sha384||h===$.oids.sha512||h===$.oids["sha512-224"]||h===$.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=h,p}if((h===$.oids.md2||h===$.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=Js(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Js};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,h){return $.pkcs1.decode_rsa_oaep(h,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:P1},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(d,c,f)},c};Q.wrapRsaPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(t).getBytes())])};Q.privateKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,R1,e,r)&&(t=v.fromDer($.util.createBuffer(e.privateKey))),e={},r=[],!v.validate(t,C1,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=$.util.createBuffer(e.privateKeyModulus).toHex(),s=$.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(e.privateKeyPrime1).toHex(),c=$.util.createBuffer(e.privateKeyPrime2).toHex(),u=$.util.createBuffer(e.privateKeyExponent1).toHex(),l=$.util.createBuffer(e.privateKeyExponent2).toHex(),f=$.util.createBuffer(e.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new se(i,16),new se(s,16),new se(o,16),new se(a,16),new se(c,16),new se(u,16),new se(l,16),new se(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.qInv))])};Q.publicKeyFromAsn1=function(t){var e={},r=[];if(v.validate(t,B1,e,r)){var n=v.derToOid(e.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!v.validate(t,T1,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=$.util.createBuffer(e.publicKeyModulus).toHex(),o=$.util.createBuffer(e.publicKeyExponent).toHex();return Q.setRsaPublicKey(new se(s,16),new se(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(t)])])};Q.publicKeyToRSAPublicKey=function(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Zt(t.e))])};function W0(t,e,r){var n=$.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=$.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function Js(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=$.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function D1(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(se.ONE).gcd(t.e).compareTo(se.ONE)!==0){t.p=null,i();return}if(t.q.subtract(se.ONE).gcd(t.e).compareTo(se.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(se.ONE),t.q1=t.q.subtract(se.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(se.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:Q.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Q.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Zt(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=$.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function N1(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function $0(t){return $.util.isNodejs&&typeof uc[t]=="function"}function H0(t){return typeof Bt.globalScope<"u"&&typeof Bt.globalScope.crypto=="object"&&typeof Bt.globalScope.crypto.subtle=="object"&&typeof Bt.globalScope.crypto.subtle[t]=="function"}function z0(t){return typeof Bt.globalScope<"u"&&typeof Bt.globalScope.msCrypto=="object"&&typeof Bt.globalScope.msCrypto.subtle=="object"&&typeof Bt.globalScope.msCrypto.subtle[t]=="function"}function G0(t){for(var e=$.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var th=V((vS,eh)=>{var M=pe();$s();Fi();o0();nn();Us();ec();d0();Vi();A0();eo();ke();typeof X0>"u"&&(X0=M.jsbn.BigInteger);var X0,A=M.asn1,Z=M.pki=M.pki||{};eh.exports=Z.pbe=M.pbe=M.pbe||{};var an=Z.oids,k1={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},O1={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},M1={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Z.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=A.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=an["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=an["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=an["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=an.desCBC,f=M.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),h=J0(p),m=M.pkcs5.pbkdf2(e,n,i,o,h),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(t)),g.finish(),c=g.output.getBytes();var x=U1(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(e,b,1,i,o),y=Z.pbe.generatePkcs12Key(e,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(t)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!A.validate(t,k1,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=A.derToOid(n.encryptionOid),a=Z.pbe.getCipher(o,n.encryptionParams,e),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(t).getBytes()};return M.pem.encode(r,{maxline:e})};Z.encryptedPrivateKeyFromPem=function(t){var e=M.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(e.body)};Z.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(t));return n=Z.encryptPrivateKeyInfo(n,e,r),Z.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Z.decryptRsaPrivateKey=function(t,e){var r=null,n=M.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Z.decryptPrivateKeyInfo(A.fromDer(r),e):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var d=f.length(),p=e.length(),h=new M.util.ByteBuffer;h.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(e.at(a%p));var g=u*Math.ceil(d/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%d));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(d/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var H=new M.util.ByteBuffer(b.getBytes(u)),te=511;for(a=D.length()-1;a>=0;a--)te=te>>8,te+=D.at(a)+H.at(a),H.setAt(a,te&255);W.putBuffer(H)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(t,e,r){switch(t){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(t,e,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!A.validate(e,O1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=A.derToOid(n.kdfOid),t!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=A.derToOid(n.encOid),t!==Z.oids["aes128-CBC"]&&t!==Z.oids["aes192-CBC"]&&t!==Z.oids["aes256-CBC"]&&t!==Z.oids["des-EDE3-CBC"]&&t!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Z.oids[t]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=j0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,p=u(f);return p.start(d),p};Z.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!A.validate(e,M1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=j0(n.prfOid),d=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,p)};Z.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}e===null&&(e="");for(var i=[Z0(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(Z0(n,i[o-1]+t+e));return i.join("").substr(0,r)};function Z0(t,e){return t.start().update(e).digest().getBytes()}function j0(t){var e;if(!t)e="hmacWithSHA1";else if(e=Z.oids[A.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return J0(e)}function J0(t){var e=M.md;switch(t){case"hmacWithSHA224":e=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function U1(t,e,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,t),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var ud=V((vR,cd)=>{var Se=pe();nn();ke();var Ji=cd.exports=Se.sha512=Se.sha512||{};Se.md.sha512=Se.md.algorithms.sha512=Ji;var od=Se.sha384=Se.sha512.sha384=Se.sha512.sha384||{};od.create=function(){return Ji.create("SHA-384")};Se.md.sha384=Se.md.algorithms.sha384=od;Se.sha512.sha256=Se.sha512.sha256||{create:function(){return Ji.create("SHA-512/256")}};Se.md["sha512/256"]=Se.md.algorithms["sha512/256"]=Se.sha512.sha256;Se.sha512.sha224=Se.sha512.sha224||{create:function(){return Ji.create("SHA-512/224")}};Se.md["sha512/224"]=Se.md.algorithms["sha512/224"]=Se.sha512.sha224;Ji.create=function(t){if(ad||ob(),typeof t>"u"&&(t="SHA-512"),!(t in xn))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=xn[t],r=null,n=Se.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=Se.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=Se.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),sd(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Se.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(uu.substr(0,a.blockLength-l));for(var f,d,p=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)f=a.fullMessageLength[h+1]*8,d=f/4294967296>>>0,p+=d,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),h=0;h<r.length;++h)m[h]=r[h].slice(0);sd(m,i,c);var y=Se.util.createBuffer(),g;t==="SHA-512"?g=m.length:t==="SHA-384"?g=m.length-2:g=m.length-4;for(var h=0;h<g;++h)y.putInt32(m[h][0]),(h!==g-1||t!=="SHA-512/224")&&y.putInt32(m[h][1]);return y},a};var uu=null,ad=!1,lu=null,xn=null;function ob(){uu=String.fromCharCode(128),uu+=Se.util.fillString(String.fromCharCode(0),128),lu=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],xn={},xn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],xn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],xn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],xn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],ad=!0}function sd(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x,b,C,_,S,P,D,Y,W,H,te,me,je,T,k,L,N,I,F,q,G=r.length();G>=128;){for(T=0;T<16;++T)e[T][0]=r.getInt32()>>>0,e[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=e[T-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,F=e[T-15],k=F[0],L=F[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,I=e[T-7],q=e[T-16],L=i+I[1]+o+q[1],e[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,e[T][1]=L>>>0;for(m=t[0][0],y=t[0][1],g=t[1][0],x=t[1][1],b=t[2][0],C=t[2][1],_=t[3][0],S=t[3][1],P=t[4][0],D=t[4][1],Y=t[5][0],W=t[5][1],H=t[6][0],te=t[6][1],me=t[7][0],je=t[7][1],T=0;T<80;++T)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=(H^P&(Y^H))>>>0,d=(te^D&(W^te))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,h=(y&x|C&(y^x))>>>0,L=je+l+d+lu[T][1]+e[T][1],n=me+u+f+lu[T][0]+e[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+h,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,me=H,je=te,H=Y,te=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=t[0][1]+y,t[0][0]=t[0][0]+m+(L/4294967296>>>0)>>>0,t[0][1]=L>>>0,L=t[1][1]+x,t[1][0]=t[1][0]+g+(L/4294967296>>>0)>>>0,t[1][1]=L>>>0,L=t[2][1]+C,t[2][0]=t[2][0]+b+(L/4294967296>>>0)>>>0,t[2][1]=L>>>0,L=t[3][1]+S,t[3][0]=t[3][0]+_+(L/4294967296>>>0)>>>0,t[3][1]=L>>>0,L=t[4][1]+D,t[4][0]=t[4][0]+P+(L/4294967296>>>0)>>>0,t[4][1]=L>>>0,L=t[5][1]+W,t[5][0]=t[5][0]+Y+(L/4294967296>>>0)>>>0,t[5][1]=L>>>0,L=t[6][1]+te,t[6][0]=t[6][0]+H+(L/4294967296>>>0)>>>0,t[6][1]=L>>>0,L=t[7][1]+je,t[7][0]=t[7][0]+me+(L/4294967296>>>0)>>>0,t[7][1]=L>>>0,G-=128}}});var Ru=V((X4,Ud)=>{var li=1e3,fi=li*60,hi=fi*60,vn=hi*24,Ob=vn*7,Mb=vn*365.25;Ud.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Ub(t);if(r==="number"&&isFinite(t))return e.long?Kb(t):Fb(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Ub(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*Mb;case"weeks":case"week":case"w":return r*Ob;case"days":case"day":case"d":return r*vn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*hi;case"minutes":case"minute":case"mins":case"min":case"m":return r*fi;case"seconds":case"second":case"secs":case"sec":case"s":return r*li;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Fb(t){var e=Math.abs(t);return e>=vn?Math.round(t/vn)+"d":e>=hi?Math.round(t/hi)+"h":e>=fi?Math.round(t/fi)+"m":e>=li?Math.round(t/li)+"s":t+"ms"}function Kb(t){var e=Math.abs(t);return e>=vn?Io(t,e,vn,"day"):e>=hi?Io(t,e,hi,"hour"):e>=fi?Io(t,e,fi,"minute"):e>=li?Io(t,e,li,"second"):t+" ms"}function Io(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Kd=V((Z4,Fd)=>{function Vb(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Ru(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,d=null,p,h;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(l)),h),set:y=>{d=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Fd.exports=Vb});var Cu=V((_t,Ro)=>{_t.formatArgs=$b;_t.save=Hb;_t.load=zb;_t.useColors=qb;_t.storage=Gb();_t.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();_t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function qb(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function $b(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Ro.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}_t.log=console.debug||console.log||(()=>{});function Hb(t){try{t?_t.storage.setItem("debug",t):_t.storage.removeItem("debug")}catch{}}function zb(){let t;try{t=_t.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function Gb(){try{return localStorage}catch{}}Ro.exports=Kd()(_t);var{formatters:Yb}=Ro.exports;Yb.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Gd=V((gC,zd)=>{"use strict";zd.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var jd=V((Xd,Zd)=>{"use strict";var Lo=Gd(),{hasOwnProperty:Wd}=Object.prototype,{propertyIsEnumerable:ew}=Object,mi=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),tw=Xd,Yd={concatArrays:!1,ignoreUndefined:!1},Po=t=>{let e=[];for(let r in t)Wd.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)ew.call(t,n)&&e.push(n)}return e};function yi(t){return Array.isArray(t)?rw(t):Lo(t)?nw(t):t}function rw(t){let e=t.slice(0,0);return Po(t).forEach(r=>{mi(e,r,yi(t[r]))}),e}function nw(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Po(t).forEach(r=>{mi(e,r,yi(t[r]))}),e}var Qd=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?mi(t,i,Pu(t[i],e[i],n)):mi(t,i,yi(e[i])))}),t),iw=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Wd.call(s,a)&&(o.push(String(a)),s===t?mi(n,i++,s[a]):mi(n,i++,yi(s[a])));n=Qd(n,s,Po(s).filter(a=>!o.includes(a)),r)}),n};function Pu(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?iw(t,e,r):!Lo(e)||!Lo(t)?yi(e):Qd(t,e,Po(e),r)}Zd.exports=function(...t){let e=Pu(yi(Yd),this!==tw&&this||{},Yd),r={_:{}};for(let n of t)if(n!==void 0){if(!Lo(n))throw new TypeError("`"+n+"` is not an Option Object");r=Pu(r,{_:n},e)}return r._}});var tp=V((EC,ep)=>{"use strict";function sw(t){return t>=55296&&t<=56319}function ow(t){return t>=56320&&t<=57343}ep.exports=function(e,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],sw(o)&&ow(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=e(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var np=V((bC,rp)=>{"use strict";function aw(t){return t>=55296&&t<=56319}function cw(t){return t>=56320&&t<=57343}rp.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var r=e.length,n=0,i=null,s=null,o=0;o<r;o++)i=e.charCodeAt(o),cw(i)?s!=null&&aw(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var sp=V((wC,ip)=>{"use strict";var uw=tp(),lw=np();ip.exports=uw.bind(null,lw)});var cp=V((vC,ap)=>{"use strict";var fw=sp(),hw=/[\/\?<>\\:\*\|"]/g,dw=/[\x00-\x1f\x80-\x9f]/g,pw=/^\.+$/,mw=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,yw=/[\. ]+$/;function op(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(hw,e).replace(dw,e).replace(pw,e).replace(mw,e).replace(yw,e);return fw(r,255)}ap.exports=function(t,e){var r=e&&e.replacement||"",n=op(t,r);return r===""?n:op(n,"")}});var Np=V((QT,Ju)=>{"use strict";var Ww=Object.prototype.hasOwnProperty,pt="~";function ps(){}Object.create&&(ps.prototype=Object.create(null),new ps().__proto__||(pt=!1));function Qw(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function Dp(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new Qw(r,n||t,i),o=pt?pt+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function Fo(t,e){--t._eventsCount===0?t._events=new ps:delete t._events[e]}function ft(){this._events=new ps,this._eventsCount=0}ft.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Ww.call(r,n)&&e.push(pt?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};ft.prototype.listeners=function(e){var r=pt?pt+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};ft.prototype.listenerCount=function(e){var r=pt?pt+e:e,n=this._events[r];return n?n.fn?1:n.length:0};ft.prototype.emit=function(e,r,n,i,s,o){var a=pt?pt+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,p;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};ft.prototype.on=function(e,r,n){return Dp(this,e,r,n,!1)};ft.prototype.once=function(e,r,n){return Dp(this,e,r,n,!0)};ft.prototype.removeListener=function(e,r,n,i){var s=pt?pt+e:e;if(!this._events[s])return this;if(!r)return Fo(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Fo(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:Fo(this,s)}return this};ft.prototype.removeAllListeners=function(e){var r;return e?(r=pt?pt+e:e,this._events[r]&&Fo(this,r)):(this._events=new ps,this._eventsCount=0),this};ft.prototype.off=ft.prototype.removeListener;ft.prototype.addListener=ft.prototype.on;ft.prefixed=pt;ft.EventEmitter=ft;typeof Ju<"u"&&(Ju.exports=ft)});var Sl=V((hB,em)=>{"use strict";function Jp(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function uv(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return Jp(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),Jp(new i,r)}}em.exports=uv});var om=V(ws=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,p,h;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=e(c),p=h[0],l=h[1],c=c.substring(l),u.push(p)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,d,p;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[d,f]},t=function(){function c(u,l){var f,d,p,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(h=u.split("/",2),u=h[0],l=h[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=p=32;p>=0;d=--p)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(o(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),ws.ip2long=o,ws.long2ip=a,ws.Netmask=t}).call(ws)});var lm=V((um,oa)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(b=h-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=function(){let C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:h,zoneId:g}}function u(p,h,m,y){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==h[g]>>x)return!1;y-=m,g+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,h){for(;p.length<h;)p=`0${p}`;return p}let d={};d.IPv4=function(){function p(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<h.length;m++)if(y=h[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[x],m&&b!==0)return null;b!==8&&(m=!0),h+=b}else return null;return 32-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),d.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(p){return this.parser(p)!==null},d.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(p){return!!(d.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},d.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let y=[this.parse(h[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(p){let h,m,y;if(h=p.match(r.fourOctet))return function(){let g=h.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(h=p.match(r.longValue)){if(y=l(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(h=p.match(r.twoOctet))?function(){let g=h.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=p.match(r.threeOctet))?function(){let g=h.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<4&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.IPv6=function(){function p(h,m){let y,g;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!0),h+=x}else return null;return 128-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],y=this.parts;for(let g=0;g<y.length;g++)h=y[g],m.push(h>>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),m=h[0],y=h[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=h.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),d.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},d.IPv6.isIPv6=function(p){return this.parser(p)!==null},d.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},d.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},d.IPv6.parseCIDR=function(p){let h,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return y=[this.parse(m[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(p){let h,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",h=c(y[1].slice(0,-1)+b,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<16&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.fromByteArray=function(p){let h=p.length;if(h===4)return new d.IPv4(p);if(h===16)return new d.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(p){return d.IPv6.isValid(p)||d.IPv4.isValid(p)},d.parse=function(p){if(d.IPv6.isValid(p))return d.IPv6.parse(p);if(d.IPv4.isValid(p))return d.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(p){try{return d.IPv6.parseCIDR(p)}catch{try{return d.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(p){let h=this.parse(p);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},d.subnetMatch=function(p,h,m){let y,g,x,b;m==null&&(m="unicast");for(g in h)if(Object.prototype.hasOwnProperty.call(h,g)){for(x=h[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof oa<"u"&&oa.exports?oa.exports=d:t.ipaddr=d})(um)});var Rm=V((lL,Im)=>{"use strict";Im.exports=Am;var Lv=Ru(),Zr=Am.prototype,Pv=new Date%1e9;function Dv(){return(Math.random()*1e9>>>0)+Pv++}function Am(t){t=t||{},this.id=t.id||Dv(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}Zr.has=function(t){return t in this._lookup};Zr.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};Zr.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Zr.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Zr.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};Zr.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=Lv(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Zr.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Zr.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var Ss=V((LL,km)=>{km.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var Mm=V((DL,Om)=>{Om.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var Fm=V((NL,Um)=>{var Mv=Mm();Um.exports=Mv});var Rt=V((OL,Km)=>{Km.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Ri=V((UL,qm)=>{var Fl=Ss(),Uv=Fm(),Vm=Rt();qm.exports=class extends Fl{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new Uv}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Fl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof Fl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new Vm(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new Vm(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var Hm=V((FL,$m)=>{var Fv=Ri(),Kv=Rt(),Kl="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",Vl=class extends Fv{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Kl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new Kv;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(e,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(e,r,"EX",s):o.set(e,r,{EX:s}):o.set(e,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(e).exec(!0):o.pTTL(e).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([e].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,s,u):this.client.eval(Kl,1,e,r,s,u)}):this.client.eval(Kl,{keys:[e],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(e,r).pttl(e).exec(!0):o.incrBy(e,r).pTTL(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(e).pttl(e).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(e).pTTL(e).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(e){return this.client.del(e).then(r=>r>0)}};$m.exports=Vl});var Ym=V((KL,Gm)=>{var Vv=Ri(),qv=Rt();function zm(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var ql=class t extends Vv{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=zm(this.client)}):(this._initCollection(),this._driverVersion=zm(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?t.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new qv,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),h={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,h,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Gm.exports=ql});var Qm=V((VL,Wm)=>{var $v=Ri(),Hv=Rt(),$l=class extends $v{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new Hv,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
2
+ "use strict";var Libp2P=(()=>{var My=Object.create;var Ps=Object.defineProperty;var Uy=Object.getOwnPropertyDescriptor;var Fy=Object.getOwnPropertyNames;var Ky=Object.getPrototypeOf,Vy=Object.prototype.hasOwnProperty;var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ht=(e,t)=>{for(var r in t)Ps(e,r,{get:t[r],enumerable:!0})},vf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Fy(t))!Vy.call(e,i)&&i!==r&&Ps(e,i,{get:()=>t[i],enumerable:!(n=Uy(t,i))||n.enumerable});return e};var mt=(e,t,r)=>(r=e!=null?My(Ky(e)):{},vf(t||!e||!e.__esModule?Ps(r,"default",{value:e,enumerable:!0}):r,e)),qy=e=>vf(Ps({},"__esModule",{value:!0}),e);var dt=V((A_,_f)=>{_f.exports={options:{usePureJavaScript:!1}}});var If=V((I_,Af)=>{var Ma={};Af.exports=Ma;var Sf={};Ma.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=$y(e,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
+ `)}return n};Ma.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=Sf[t];if(!r){r=Sf[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;e[l]===s&&l<e.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function $y(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var o=0,a=e.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Nt=V((R_,Bf)=>{var Rf=dt(),Cf=If(),E=Bf.exports=Rf.util=Rf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var o=a,e="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function Ni(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Ua;function Ua(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Ua||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Ua;var Hy=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Hy&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){Ni(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e};E.ByteStringBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function zy(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=E.isArrayBuffer(e),n=E.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=zy;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(E.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){Ni(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return Ni(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};E.xorBytes=function(e,t,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=e.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var Cr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Tf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.length;)i=e.charCodeAt(a++),s=e.charCodeAt(a++),o=e.charCodeAt(a++),r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
4
+ `,r=r.substr(t));return n+=r,n};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,s,o=0;o<e.length;)r=Tr[e.charCodeAt(o++)-43],n=Tr[e.charCodeAt(o++)-43],i=Tr[e.charCodeAt(o++)-43],s=Tr[e.charCodeAt(o++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};E.decodeUtf8=function(e){return decodeURIComponent(escape(e))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Cf.encode,decode:Cf.decode}};E.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};E.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,s=r;for(e.length&1&&(i=1,n[s++]=parseInt(e[0],16));i<e.length;i+=2)n[s++]=parseInt(e.substr(i,2),16);return t?s-r:n};E.binary.base64.encode=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.byteLength;)i=e[a++],s=e[a++],o=e[a++],r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
5
+ `,r=r.substr(t));return n+=r,n};E.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<e.length;)i=Tr[e.charCodeAt(c++)-43],s=Tr[e.charCodeAt(c++)-43],o=Tr[e.charCodeAt(c++)-43],a=Tr[e.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return t?u-r:n.subarray(0,u)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,Tf,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,Tf,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,r){e=E.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<e.length;++a)i[o++]=e.charCodeAt(a),s+=2;return t?s-r:n};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,r){if(t=E.decode64(e.deflate(E.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(e,t,r){var n=e.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var Fa=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=E.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Ka=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(E.decode64(r))),r},Gy=function(e,t,r,n){var i=Ka(e,t);i===null&&(i={}),i[r]=n,Fa(e,t,i)},Yy=function(e,t,r){var n=Ka(e,t);return n!==null&&(n=r in n?n[r]:null),n},Wy=function(e,t,r){var n=Ka(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Fa(e,t,n)}},Qy=function(e,t){Fa(e,t,null)},Ds=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(e,t,r,n,i){Ds(Gy,arguments,i)};E.getItem=function(e,t,r,n){return Ds(Yy,arguments,n)};E.removeItem=function(e,t,r,n){Ds(Wy,arguments,n)};E.clearItems=function(e,t,r){Ds(Qy,arguments,r)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,r,n,i=0,s=[],o=0;r=t.exec(e);){n=e.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(e.substring(o)),s.join("")};E.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(o){return o.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=E.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=t.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return E.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,E.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var p=a[d];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(d)}return c.reduce(function(h,m){return Math.max(h,m.length)},0)}}});var Ns=V((C_,Lf)=>{var ki=dt();ki.pki=ki.pki||{};var Va=Lf.exports=ki.pki.oids=ki.oids=ki.oids||{};function B(e,t){Va[e]=t,Va[t]=e}function ut(e,t){Va[e]=t}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var Mi=V((T_,Df)=>{var vt=dt();Nt();Ns();var O=Df.exports=vt.asn1=vt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(e,t,r,n,i){if(vt.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:e,type:t,constructed:r,composed:r||vt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(vt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(vt.util.isArray(e)){if(!vt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function Oi(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var Xy=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Oi(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.length(),n=ks(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function ks(e,t,r,n){var i;Oi(e,t,2);var s=e.getByte();t--;var o=s&192,a=s&31;i=e.length();var c=Xy(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(Oi(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(ks(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(ks(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=e.read,h=t,m=0;if(a===O.Type.BITSTRING&&(Oi(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=ks(e,t,r+1,y),x=i-e.length();t-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(e.read=p,t=h)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Oi(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,d,l,C)}O.toDer=function(e){var t=vt.util.createBuffer(),r=e.tagClass|e.type,n=vt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=vt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?t.setTime(+t-d):t.setTime(+t+d)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,d=e.charAt(f);if(d==="+"||d==="-"){var p=parseInt(e.substr(f+1,2),10),h=parseInt(e.substr(f+4,2),10);u=p*60+h,u*=6e4,d==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,o,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=vt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=vt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&vt.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[o],r,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var Pf=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
6
+ `);for(var i="",s=0;s<t*r;++s)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
7
+ `,n+=i+"Constructed: "+e.constructed+`
8
+ `,e.composed){for(var o=0,a="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,vt.pki&&vt.pki.oids&&c in vt.pki.oids&&(n+=" ("+vt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+vt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+vt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)Pf.test(e.value)||(n+="("+e.value+") "),n+="0x"+vt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=vt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+vt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:Pf.test(e.value)?n+="0x"+vt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var $a=V((B_,Nf)=>{var zt=dt();Nt();Nf.exports=zt.cipher=zt.cipher||{};zt.cipher.algorithms=zt.cipher.algorithms||{};zt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=zt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new zt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};zt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=zt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new zt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};zt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),zt.cipher.algorithms[e]=t};zt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in zt.cipher.algorithms?zt.cipher.algorithms[e]:null};var qa=zt.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};qa.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=zt.util.createBuffer(),this.output=e.output||zt.util.createBuffer(),this.mode.start(t)};qa.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};qa.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var za=V((L_,kf)=>{var Gt=dt();Nt();Gt.cipher=Gt.cipher||{};var tt=kf.exports=Gt.cipher.modes=Gt.cipher.modes||{};tt.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.ecb.prototype.start=function(e){};tt.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Os(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};tt.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Ms(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Gt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Gt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Gt.util.createBuffer(e.additionalData):r=Gt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Gt.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ha(n*8)))}this._inBlock=this._j0.slice(0),Ms(this._inBlock),this._partialBytes=0,r=Gt.util.createBuffer(r),this._aDataLength=Ha(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};tt.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ms(this._inBlock)};tt.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ms(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Gt.util.createBuffer();var n=this._aDataLength.concat(Ha(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};tt.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};tt.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};tt.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};tt.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};tt.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*t;a[c]=1<<t-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,e),t)}return s};tt.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function Os(e,t){if(typeof e=="string"&&(e=Gt.util.createBuffer(e)),Gt.util.isArray(e)&&e.length>4){var r=e;e=Gt.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Gt.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function Ms(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ha(e){return[e/4294967296|0,e&4294967295]}});var Fs=V((P_,Ff)=>{var bt=dt();$a();za();Nt();Ff.exports=bt.aes=bt.aes||{};bt.aes.startEncrypting=function(e,t,r,n){var i=Us({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};bt.aes.createEncryptionCipher=function(e,t){return Us({key:e,output:null,decrypt:!1,mode:t})};bt.aes.startDecrypting=function(e,t,r,n){var i=Us({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};bt.aes.createDecryptionCipher=function(e,t){return Us({key:e,output:null,decrypt:!0,mode:t})};bt.aes.Algorithm=function(e,t){Wa||Mf();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Ya(r._w,n,i,!1)},decrypt:function(n,i){return Ya(r._w,n,i,!0)}}}),r._init=!1};bt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=bt.util.createBuffer(t);else if(bt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=bt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!bt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!bt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Uf(t,e.decrypt&&!o),this._init=!0}};bt.aes._expandKey=function(e,t){return Wa||Mf(),Uf(e,t)};bt.aes._updateBlock=Ya;$n("AES-ECB",bt.cipher.modes.ecb);$n("AES-CBC",bt.cipher.modes.cbc);$n("AES-CFB",bt.cipher.modes.cfb);$n("AES-OFB",bt.cipher.modes.ofb);$n("AES-CTR",bt.cipher.modes.ctr);$n("AES-GCM",bt.cipher.modes.gcm);function $n(e,t){var r=function(){return new bt.aes.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Wa=!1,qn=4,fe,Ga,Of,rn,ke;function Mf(){Wa=!0,Of=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;fe=new Array(256),Ga=new Array(256),rn=new Array(4),ke=new Array(4);for(var t=0;t<4;++t)rn[t]=new Array(256),ke[t]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,fe[r]=a,Ga[a]=r,c=e[a],i=e[r],s=e[i],o=e[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)rn[f][r]=u,ke[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^o]]],n^=e[e[n]])}}function Uf(e,t){for(var r=e.slice(0),n,i=1,s=r.length,o=s+6+1,a=qn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=fe[n>>>16&255]<<24^fe[n>>>8&255]<<16^fe[n&255]<<8^fe[n>>>24]^Of[i]<<24,i++):s>6&&c%s===4&&(n=fe[n>>>24]<<24^fe[n>>>16&255]<<16^fe[n>>>8&255]<<8^fe[n&255]),r[c]=r[c-s]^n;if(t){var u,l=ke[0],f=ke[1],d=ke[2],p=ke[3],h=r.slice(0);a=r.length;for(var c=0,m=a-qn;c<a;c+=qn,m-=qn)if(c===0||c===a-qn)h[c]=r[m],h[c+1]=r[m+3],h[c+2]=r[m+2],h[c+3]=r[m+1];else for(var y=0;y<qn;++y)u=r[m+y],h[c+(3&-y)]=l[fe[u>>>24]]^f[fe[u>>>16&255]]^d[fe[u>>>8&255]]^p[fe[u&255]];r=h}return r}function Ya(e,t,r,n){var i=e.length/4-1,s,o,a,c,u;n?(s=ke[0],o=ke[1],a=ke[2],c=ke[3],u=Ga):(s=rn[0],o=rn[1],a=rn[2],c=rn[3],u=fe);var l,f,d,p,h,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],d=t[2]^e[2],p=t[n?1:3]^e[3];for(var g=3,x=1;x<i;++x)h=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[p&255]^e[++g],m=s[f>>>24]^o[d>>>16&255]^a[p>>>8&255]^c[l&255]^e[++g],y=s[d>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^e[++g],l=h,f=m,d=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[p&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[d>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^e[++g]}function Us(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof bt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var qf=V((D_,Vf)=>{var St=dt();$a();za();Nt();Vf.exports=St.des=St.des||{};St.des.startEncrypting=function(e,t,r,n){var i=Ks({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createEncryptionCipher=function(e,t){return Ks({key:e,output:null,decrypt:!1,mode:t})};St.des.startDecrypting=function(e,t,r,n){var i=Ks({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createDecryptionCipher=function(e,t){return Ks({key:e,output:null,decrypt:!0,mode:t})};St.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Kf(r._keys,n,i,!1)},decrypt:function(n,i){return Kf(r._keys,n,i,!0)}}}),r._init=!1};St.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=St.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=sg(t),this._init=!0}};Ge("DES-ECB",St.cipher.modes.ecb);Ge("DES-CBC",St.cipher.modes.cbc);Ge("DES-CFB",St.cipher.modes.cfb);Ge("DES-OFB",St.cipher.modes.ofb);Ge("DES-CTR",St.cipher.modes.ctr);Ge("3DES-ECB",St.cipher.modes.ecb);Ge("3DES-CBC",St.cipher.modes.cbc);Ge("3DES-CFB",St.cipher.modes.cfb);Ge("3DES-OFB",St.cipher.modes.ofb);Ge("3DES-CTR",St.cipher.modes.ctr);function Ge(e,t){var r=function(){return new St.des.Algorithm(e,t)};St.cipher.registerAlgorithm(e,r)}var Zy=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Jy=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],jy=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],tg=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],eg=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],rg=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],ng=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],ig=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function sg(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,C=0;C<m;C++){var _=e.getInt32(),S=e.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=t[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|d[S>>>12&15]|p[S>>>8&15]|h[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function Kf(e,t,r,n){var i=e.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=t[0],c=t[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var p=c^e[d],h=(c>>>4|c<<28)^e[d+1];o=a,a=c,c=o^(Jy[p>>>24&63]|tg[p>>>16&63]|rg[p>>>8&63]|ig[p&63]|Zy[h>>>24&63]|jy[h>>>16&63]|eg[h>>>8&63]|ng[h&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function Ks(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=St.cipher.createDecipher(r,e.key):n=St.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof St.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var nn=V((N_,$f)=>{var Vs=dt();$f.exports=Vs.md=Vs.md||{};Vs.md.algorithms=Vs.md.algorithms||{}});var zf=V((k_,Hf)=>{var cr=dt();nn();Nt();var og=Hf.exports=cr.hmac=cr.hmac||{};og.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in cr.md.algorithms)t=cr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=e;else{if(typeof o=="string")o=cr.util.createBuffer(o);else if(cr.util.isArray(o)){var a=o;o=cr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),r=cr.util.createBuffer(),n=cr.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=o,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var Ui=V(()=>{});var Qa=V((U_,Gf)=>{var he=dt();zf();nn();Nt();var ag=he.pkcs5=he.pkcs5||{},ur;he.util.isNodejs&&!he.options.usePureJavaScript&&(ur=Ui());Gf.exports=he.pbkdf2=ag.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),he.util.isNodejs&&!he.options.usePureJavaScript&&ur.pbkdf2&&(i===null||typeof i!="object")&&(ur.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?ur.pbkdf2Sync.length===4?ur.pbkdf2(e,t,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2(e,t,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2Sync.length===4?ur.pbkdf2Sync(e,t,r,n).toString("binary"):ur.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in he.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=he.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=he.hmac.create();l.start(i,e);var f="",d,p,h;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),d=h=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(h),p=l.digest().getBytes(),d=he.util.xorBytes(d,p,o),h=p;f+=m<c?d:d.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),d=h=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(h),p=l.digest().getBytes(),d=he.util.xorBytes(d,p,o),h=p,++y,he.util.setImmediate(x);f+=m<c?d:d.substr(0,u),++m,g()}g()}});var Qf=V((F_,Wf)=>{var $s=dt();Nt();var Yf=Wf.exports=$s.pem=$s.pem||{};Yf.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
9
+ `,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=qs(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=qs(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=qs(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=qs(e.headers[i]);return e.procType&&(r+=`\r
10
+ `),r+=$s.util.encode64(e.body,t.maxline||64)+`\r
11
+ `,r+="-----END "+e.type+`-----\r
12
+ `,r};Yf.decode=function(e){for(var t=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(e),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:$s.util.decode64(s[3])};if(t.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},h=s[2].split(","),m=0;m<h.length;++m)p.values.push(cg(h[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&p.name==="DEK-Info"){if(p.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(p);else{if(p.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(p.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function qs(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
13
+ `;for(var s=0,o=-1,i=0;i<t.length;++i,++s)if(s>65&&o!==-1){var a=t[o];a===","?(++o,t=t.substr(0,o)+`\r
14
+ `+t.substr(o)):t=t.substr(0,o)+`\r
15
+ `+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function cg(e){return e.replace(/^\s+/,"")}});var e0=V((K_,t0)=>{var Ye=dt();nn();Nt();var Zf=t0.exports=Ye.sha256=Ye.sha256||{};Ye.md.sha256=Ye.md.algorithms.sha256=Zf;Zf.create=function(){Jf||ug();var e=null,t=Ye.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=Ye.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ye.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),Xf(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ye.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Xa.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};Xf(f,r,i);var d=Ye.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var Xa=null,Jf=!1,jf=null;function ug(){Xa=String.fromCharCode(128),Xa+=Ye.util.fillString(String.fromCharCode(0),64),jf=[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],Jf=!0}function Xf(e,t,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,d=e.h2,p=e.h3,h=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)o=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=g+o+a+jf[u]+t[u],i=s+c,g=y,y=m,m=h,h=p+n>>>0,p=d,d=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+d|0,e.h3=e.h3+p|0,e.h4=e.h4+h|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,x-=64}}});var n0=V((V_,r0)=>{var We=dt();Nt();var Hs=null;We.util.isNodejs&&!We.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Hs=Ui());var lg=r0.exports=We.prng=We.prng||{};lg.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,d=t.plugin.increment,p=t.plugin.formatKey,h=t.plugin.formatSeed,m=We.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return We.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=p(f(t.key,d(t.seed))),t.seed=h(f(t.key,t.seed)),We.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,d=t.plugin.formatKey,p=t.plugin.formatSeed;t.key=null;for(var h=We.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=l(t.key,t.seed);t.generated+=m.length,h.putBytes(m),t.key=d(l(t.key,f(t.seed))),t.seed=p(l(t.key,t.seed))}return h.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,d){if(f)return u(f);t.collect(d),a(),u()})}function o(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var d=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(d),t.generated=0}function c(u){var l=null,f=We.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(_){return d.getRandomValues(_)});var p=We.util.createBuffer();if(l)for(;p.length()<u;){var h=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(h));try{l(m);for(var y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Hs?(t.seedFile=function(u,l){Hs.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},t.seedFileSync=function(u){return Hs.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.seedFile=function(f,d){function p(h){var m=h.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&t.seedFile(d.forge.prng.needed,function(p,h){u.postMessage({forge:{prng:{err:p,bytes:h}}})})};u.addEventListener("message",l)}},t}});var Fi=V((q_,Za)=>{var Yt=dt();Fs();e0();n0();Nt();(function(){if(Yt.random&&Yt.random.getBytes){Za.exports=Yt.random;return}(function(e){var t={},r=new Array(4),n=Yt.util.createBuffer();t.formatKey=function(f){var d=Yt.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),Yt.aes._expandKey(f,!1)},t.formatSeed=function(f){var d=Yt.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},t.cipher=function(f,d){return Yt.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=Yt.md.sha256;function i(){var f=Yt.prng.create(t);return f.getBytes=function(d,p){return f.generate(d,p)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=Yt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Yt.options.usePureJavaScript||!Yt.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}e&&(e().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),e().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Yt.random)Yt.random=s;else for(var l in s)Yt.random[l]=s[l];Yt.random.createInstance=i,Za.exports=Yt.random})(typeof jQuery<"u"?jQuery:null)})()});var a0=V(($_,o0)=>{var pe=dt();Nt();var Ja=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],i0=[1,2,3,5],fg=function(e,t){return e<<t&65535|(e&65535)>>16-t},hg=function(e,t){return(e&65535)>>t|e<<16-t&65535};o0.exports=pe.rc2=pe.rc2||{};pe.rc2.expandKey=function(e,t){typeof e=="string"&&(e=pe.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Ja[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Ja[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Ja[r.at(a+1)^r.at(a+s)]);return r};var s0=function(e,t,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(e=pe.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=fg(h[u],i0[u]),l++},c=function(h){for(u=0;u<4;u++)h[u]+=f[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=hg(h[u],i0[u]),h[u]-=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),l--},c=function(h){for(u=3;u>=0;u--)h[u]-=f[h[(u+3)%4]&63]});var d=function(h){var m=[];for(u=0;u<4;u++){var y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<h.length;g++)for(var x=0;x<h[g][0];x++)h[g][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(h,m){h&&typeof h=="string"&&(h=pe.util.createBuffer(h)),n=!1,i=pe.util.createBuffer(),s=m||new pe.util.createBuffer,o=h,p.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var m=!0;if(r)if(h)m=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(h)m=h(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};pe.rc2.startEncrypting=function(e,t,r){var n=pe.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createEncryptionCipher=function(e,t){return s0(e,t,!0)};pe.rc2.startDecrypting=function(e,t,r){var n=pe.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createDecryptionCipher=function(e,t){return s0(e,t,!1)}});var Ys=V((H_,m0)=>{var ja=dt();m0.exports=ja.jsbn=ja.jsbn||{};var lr,dg=0xdeadbeefcafe,c0=(dg&16777215)==15715070;function R(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}ja.jsbn.BigInteger=R;function at(){return new R(null)}function pg(e,t,r,n,i,s){for(;--s>=0;){var o=t*this.data[e++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function mg(e,t,r,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function u0(e,t,r,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(R.prototype.am=u0,lr=28):c0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=mg,lr=30):c0&&navigator.appName!="Netscape"?(R.prototype.am=pg,lr=26):(R.prototype.am=u0,lr=28);R.prototype.DB=lr;R.prototype.DM=(1<<lr)-1;R.prototype.DV=1<<lr;var tc=52;R.prototype.FV=Math.pow(2,tc);R.prototype.F1=tc-lr;R.prototype.F2=2*lr-tc;var yg="0123456789abcdefghijklmnopqrstuvwxyz",zs=new Array,Hn,Te;Hn="0".charCodeAt(0);for(Te=0;Te<=9;++Te)zs[Hn++]=Te;Hn="a".charCodeAt(0);for(Te=10;Te<36;++Te)zs[Hn++]=Te;Hn="A".charCodeAt(0);for(Te=10;Te<36;++Te)zs[Hn++]=Te;function l0(e){return yg.charAt(e)}function f0(e,t){var r=zs[e.charCodeAt(t)];return r??-1}function gg(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function xg(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Br(e){var t=at();return t.fromInt(e),t}function Eg(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var o=r==8?e[n]&255:f0(e,n);if(o<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&e[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&R.ZERO.subTo(this,this)}function bg(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function wg(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=l0(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=l0(n));return i?s:"0"}function vg(){var e=at();return R.ZERO.subTo(this,e),e}function _g(){return this.s<0?this.negate():this}function Sg(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function Gs(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Ag(){return this.t<=0?0:this.DB*(this.t-1)+Gs(this.data[this.t-1]^this.s&this.DM)}function Ig(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function Rg(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Cg(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function Tg(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)t.data[o-r-1]|=(this.data[o]&s)<<i,t.data[o-r]=this.data[o]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function Bg(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Lg(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&R.ZERO.subTo(t,t)}function Pg(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Dg(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=at());var s=at(),o=this.s,a=e.s,c=this.DB-Gs(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,p=(1<<this.F1)/f,h=1<<this.F2,m=r.t,y=m-u,g=t??at();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),R.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+h)*p);if((r.data[m]+=s.am(0,x,r,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}t!=null&&(r.drShiftTo(u,t),o!=a&&R.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Ng(e){var t=at();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(R.ZERO)>0&&e.subTo(t,t),t}function sn(e){this.m=e}function kg(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Og(e){return e}function Mg(e){e.divRemTo(this.m,null,e)}function Ug(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Fg(e,t){e.squareTo(t),this.reduce(t)}sn.prototype.convert=kg;sn.prototype.revert=Og;sn.prototype.reduce=Mg;sn.prototype.mulTo=Ug;sn.prototype.sqrTo=Fg;function Kg(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function on(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Vg(e){var t=at();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(R.ZERO)>0&&this.m.subTo(t,t),t}function qg(e){var t=at();return e.copyTo(t),this.reduce(t),t}function $g(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Hg(e,t){e.squareTo(t),this.reduce(t)}function zg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}on.prototype.convert=Vg;on.prototype.revert=qg;on.prototype.reduce=$g;on.prototype.mulTo=zg;on.prototype.sqrTo=Hg;function Gg(){return(this.t>0?this.data[0]&1:this.s)==0}function Yg(e,t){if(e>4294967295||e<1)return R.ONE;var r=at(),n=at(),i=t.convert(this),s=Gs(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var o=r;r=n,n=o}return t.revert(r)}function Wg(e,t){var r;return e<256||t.isEven()?r=new sn(t):r=new on(t),this.exp(e,r)}R.prototype.copyTo=gg;R.prototype.fromInt=xg;R.prototype.fromString=Eg;R.prototype.clamp=bg;R.prototype.dlShiftTo=Ig;R.prototype.drShiftTo=Rg;R.prototype.lShiftTo=Cg;R.prototype.rShiftTo=Tg;R.prototype.subTo=Bg;R.prototype.multiplyTo=Lg;R.prototype.squareTo=Pg;R.prototype.divRemTo=Dg;R.prototype.invDigit=Kg;R.prototype.isEven=Gg;R.prototype.exp=Yg;R.prototype.toString=wg;R.prototype.negate=vg;R.prototype.abs=_g;R.prototype.compareTo=Sg;R.prototype.bitLength=Ag;R.prototype.mod=Ng;R.prototype.modPowInt=Wg;R.ZERO=Br(0);R.ONE=Br(1);function Qg(){var e=at();return this.copyTo(e),e}function Xg(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function Zg(){return this.t==0?this.s:this.data[0]<<24>>24}function Jg(){return this.t==0?this.s:this.data[0]<<16>>16}function jg(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function tx(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function ex(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Br(r),i=at(),s=at(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(e)+o}function rx(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,o=0,a=0;a<e.length;++a){var c=f0(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function nx(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(R.ONE.shiftLeft(e-1),ec,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(R.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function ix(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function sx(e){return this.compareTo(e)==0}function ox(e){return this.compareTo(e)<0?this:e}function ax(e){return this.compareTo(e)>0?this:e}function cx(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function ux(e,t){return e&t}function lx(e){var t=at();return this.bitwiseTo(e,ux,t),t}function ec(e,t){return e|t}function fx(e){var t=at();return this.bitwiseTo(e,ec,t),t}function h0(e,t){return e^t}function hx(e){var t=at();return this.bitwiseTo(e,h0,t),t}function d0(e,t){return e&~t}function dx(e){var t=at();return this.bitwiseTo(e,d0,t),t}function px(){for(var e=at(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function mx(e){var t=at();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function yx(e){var t=at();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function gx(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function xx(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+gx(this.data[e]);return this.s<0?this.t*this.DB:-1}function Ex(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function bx(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Ex(this.data[r]^t);return e}function wx(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function vx(e,t){var r=R.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function _x(e){return this.changeBit(e,ec)}function Sx(e){return this.changeBit(e,d0)}function Ax(e){return this.changeBit(e,h0)}function Ix(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Rx(e){var t=at();return this.addTo(e,t),t}function Cx(e){var t=at();return this.subTo(e,t),t}function Tx(e){var t=at();return this.multiplyTo(e,t),t}function Bx(e){var t=at();return this.divRemTo(e,t,null),t}function Lx(e){var t=at();return this.divRemTo(e,null,t),t}function Px(e){var t=at(),r=at();return this.divRemTo(e,t,r),new Array(t,r)}function Dx(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Nx(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Ki(){}function p0(e){return e}function kx(e,t,r){e.multiplyTo(t,r)}function Ox(e,t){e.squareTo(t)}Ki.prototype.convert=p0;Ki.prototype.revert=p0;Ki.prototype.mulTo=kx;Ki.prototype.sqrTo=Ox;function Mx(e){return this.exp(e,new Ki)}function Ux(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Fx(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function zn(e){this.r2=at(),this.q3=at(),R.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Kx(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=at();return e.copyTo(t),this.reduce(t),t}function Vx(e){return e}function qx(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function $x(e,t){e.squareTo(t),this.reduce(t)}function Hx(e,t,r){e.multiplyTo(t,r),this.reduce(r)}zn.prototype.convert=Kx;zn.prototype.revert=Vx;zn.prototype.reduce=qx;zn.prototype.mulTo=Hx;zn.prototype.sqrTo=$x;function zx(e,t){var r=e.bitLength(),n,i=Br(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new sn(t):t.isEven()?s=new zn(t):s=new on(t);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=at();for(s.sqrTo(o[1],l);a<=u;)o[a]=at(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=e.t-1,d,p=!0,h=at(),m;for(r=Gs(e.data[f])-1;f>=0;){for(r>=c?d=e.data[f]>>r-c&u:(d=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=e.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[d].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,h),s.sqrTo(h,i),a-=2;a>0?s.sqrTo(i,h):(m=i,i=h,h=m),s.mulTo(h,o[d],i)}for(;f>=0&&!(e.data[f]&1<<r);)s.sqrTo(i,h),m=i,i=h,h=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Gx(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Yx(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Wx(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return R.ZERO;for(var r=e.clone(),n=this.clone(),i=Br(1),s=Br(0),o=Br(0),a=Br(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(e,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var Oe=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Qx=(1<<26)/Oe[Oe.length-1];function Xx(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Oe[Oe.length-1]){for(t=0;t<Oe.length;++t)if(r.data[0]==Oe[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Oe.length;){for(var n=Oe[t],i=t+1;i<Oe.length&&n<Qx;)n*=Oe[i++];for(n=r.modInt(n);t<i;)if(n%Oe[t++]==0)return!1}return r.millerRabin(e)}function Zx(e){var t=this.subtract(R.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Jx(),s,o=0;o<e;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Jx(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=jg;R.prototype.toRadix=ex;R.prototype.fromRadix=rx;R.prototype.fromNumber=nx;R.prototype.bitwiseTo=cx;R.prototype.changeBit=vx;R.prototype.addTo=Ix;R.prototype.dMultiply=Dx;R.prototype.dAddOffset=Nx;R.prototype.multiplyLowerTo=Ux;R.prototype.multiplyUpperTo=Fx;R.prototype.modInt=Yx;R.prototype.millerRabin=Zx;R.prototype.clone=Qg;R.prototype.intValue=Xg;R.prototype.byteValue=Zg;R.prototype.shortValue=Jg;R.prototype.signum=tx;R.prototype.toByteArray=ix;R.prototype.equals=sx;R.prototype.min=ox;R.prototype.max=ax;R.prototype.and=lx;R.prototype.or=fx;R.prototype.xor=hx;R.prototype.andNot=dx;R.prototype.not=px;R.prototype.shiftLeft=mx;R.prototype.shiftRight=yx;R.prototype.getLowestSetBit=xx;R.prototype.bitCount=bx;R.prototype.testBit=wx;R.prototype.setBit=_x;R.prototype.clearBit=Sx;R.prototype.flipBit=Ax;R.prototype.add=Rx;R.prototype.subtract=Cx;R.prototype.multiply=Tx;R.prototype.divide=Bx;R.prototype.remainder=Lx;R.prototype.divideAndRemainder=Px;R.prototype.modPow=zx;R.prototype.modInverse=Wx;R.prototype.pow=Mx;R.prototype.gcd=Gx;R.prototype.isProbablePrime=Xx});var b0=V((z_,E0)=>{var Qe=dt();nn();Nt();var g0=E0.exports=Qe.sha1=Qe.sha1||{};Qe.md.sha1=Qe.md.algorithms.sha1=g0;g0.create=function(){x0||jx();var e=null,t=Qe.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=Qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Qe.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return t.putBytes(i),y0(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Qe.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(rc.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};y0(f,r,i);var d=Qe.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var rc=null,x0=!1;function jx(){rc=String.fromCharCode(128),rc+=Qe.util.fillString(String.fromCharCode(0),64),x0=!0}function y0(e,t,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,s=e.h1,o=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+o|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var _0=V((G_,v0)=>{var Xe=dt();Nt();Fi();b0();var w0=v0.exports=Xe.pkcs1=Xe.pkcs1||{};w0.encode_rsa_oaep=function(e,t,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=Xe.md.sha1.create(),o||(o=s);var a=Math.ceil(e.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-t.length,p=0;p<d;p++)f+="\0";var h=l.getBytes()+f+""+t;if(!i)i=Xe.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=Ws(i,a-s.digestLength-1,o),y=Xe.util.xorBytes(h,m,h.length),g=Ws(y,s.digestLength,o),x=Xe.util.xorBytes(i,g,i.length);return"\0"+x+y};w0.decode_rsa_oaep=function(e,t,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(e.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=Xe.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=Ws(l,i.digestLength,s),d=Xe.util.xorBytes(u,f,u.length),p=Ws(d,o-i.digestLength-1,s),h=Xe.util.xorBytes(l,p,l.length),m=h.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,C=i.digestLength;C<h.length;C++){var _=h.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||h.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(b+1)};function Ws(e,t,r){r||(r=Xe.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(e+o),n+=r.digest().getBytes()}return n.substring(0,t)}});var S0=V((Y_,nc)=>{var Lr=dt();Nt();Ys();Fi();(function(){if(Lr.prime){nc.exports=Lr.prime;return}var e=nc.exports=Lr.prime=Lr.prime||{},t=Lr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,d){return f|d};e.generateProbablePrime=function(f,d,p){typeof d=="function"&&(p=d,d={}),d=d||{};var h=d.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var m=d.prng||Lr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(h.name==="PRIMEINC")return s(f,y,h.options,p);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(f,d,p,h){return"workers"in p?c(f,d,p,h):o(f,d,p,h)}function o(f,d,p,h){var m=u(f,d),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,d,y,g,x,h)}function a(f,d,p,h,m,y,g){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);Lr.util.setImmediate(function(){a(f,d,p,h,m,y,g)})}function c(f,d,p,h){if(typeof Worker>"u")return o(f,d,p,h);var m=u(f,d),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Lr.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var H=W.data;if(H.found){for(var et=0;et<_.length;++et)_[et].terminate();return D=!0,h(null,new t(H.prime,16))}m.bitLength()>f&&(m=u(f,d));var pt=m.toString(16);W.target.postMessage({hex:pt,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,d){var p=new t(f,d),h=f-1;return p.testBit(h)||p.bitwiseTo(t.ONE.shiftLeft(h),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var Xs=V((W_,L0)=>{var $=dt();Mi();Ys();Ns();_0();S0();Fi();Nt();typeof st>"u"&&(st=$.jsbn.BigInteger);var st,ic=$.util.isNodejs?Ui():null,v=$.asn1,Be=$.util;$.pki=$.pki||{};L0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,t1=[6,4,2,4,2,4,6,2],e1={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},r1={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},n1={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},i1=$.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},s1={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},o1=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=v.oidToDer(t).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},T0=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(st.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(st.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new st($.util.bytesToHex($.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(st.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=B0(e,t,r)):(i=$.util.createBuffer(),i.putBytes(e));for(var o=new st(i.toHex(),16),a=T0(o,t,n),c=a.toString(16),u=$.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var o=new st($.util.createBuffer(e).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=T0(o,t,r),c=a.toString(16),u=$.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),n!==!1?Qs(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||$.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:e,rng:i,eInt:t||65537,e:new st(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new st(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new st(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(st.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(c1(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(t1[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(st.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}o=+new Date,a+=o-s,s=o}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(A0("generateKeyPair"))return ic.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(I0("generateKey")&&I0("exportKey"))return Be.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Be.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(R0("generateKey")&&R0("exportKey")){var i=Be.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Be.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:d,publicKey:Q.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(A0("generateKeyPairSync")){var s=ic.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;a1(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return B0(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return $.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return Q.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=Qs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!v.validate(l,s1,f,d)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=d,p}var h=v.derToOid(f.algorithmIdentifier);if(!(h===$.oids.md2||h===$.oids.md5||h===$.oids.sha1||h===$.oids.sha224||h===$.oids.sha256||h===$.oids.sha384||h===$.oids.sha512||h===$.oids["sha512-224"]||h===$.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=h,p}if((h===$.oids.md2||h===$.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=Qs(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,o,a){var c={n:e,e:t,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Qs};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,h){return $.pkcs1.decode_rsa_oaep(h,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:o1},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(d,c,f)},c};Q.wrapRsaPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,e1,t,r)&&(e=v.fromDer($.util.createBuffer(t.privateKey))),t={},r=[],!v.validate(e,r1,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=$.util.createBuffer(t.privateKeyModulus).toHex(),s=$.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(t.privateKeyPrime1).toHex(),c=$.util.createBuffer(t.privateKeyPrime2).toHex(),u=$.util.createBuffer(t.privateKeyExponent1).toHex(),l=$.util.createBuffer(t.privateKeyExponent2).toHex(),f=$.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new st(i,16),new st(s,16),new st(o,16),new st(a,16),new st(c,16),new st(u,16),new st(l,16),new st(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,i1,t,r)){var n=v.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!v.validate(e,n1,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=$.util.createBuffer(t.publicKeyModulus).toHex(),o=$.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new st(s,16),new st(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e))])};function B0(e,t,r){var n=$.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=$.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(e),n}function Qs(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=$.util.createBuffer(e),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function a1(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return o(a,e.q);s(e.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.p=null,i();return}if(e.q.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.q=null,s(e.qBits,o);return}if(e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(st.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,o);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=$.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function c1(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function A0(e){return $.util.isNodejs&&typeof ic[e]=="function"}function I0(e){return typeof Be.globalScope<"u"&&typeof Be.globalScope.crypto=="object"&&typeof Be.globalScope.crypto.subtle=="object"&&typeof Be.globalScope.crypto.subtle[e]=="function"}function R0(e){return typeof Be.globalScope<"u"&&typeof Be.globalScope.msCrypto=="object"&&typeof Be.globalScope.msCrypto.subtle=="object"&&typeof Be.globalScope.msCrypto.subtle[e]=="function"}function C0(e){for(var t=$.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var M0=V((Q_,O0)=>{var M=dt();Fs();Mi();qf();nn();Ns();Qa();Qf();Fi();a0();Xs();Nt();typeof P0>"u"&&(P0=M.jsbn.BigInteger);var P0,A=M.asn1,Z=M.pki=M.pki||{};O0.exports=Z.pbe=M.pbe=M.pbe||{};var an=Z.oids,u1={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},l1={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},f1={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Z.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=A.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=an["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=an["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=an["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=an.desCBC,f=M.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),h=k0(p),m=M.pkcs5.pbkdf2(t,n,i,o,h),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes();var x=h1(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(t,b,1,i,o),y=Z.pbe.generatePkcs12Key(t,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!A.validate(e,u1,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=A.derToOid(n.encryptionOid),a=Z.pbe.getCipher(o,n.encryptionParams,t),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return M.pem.encode(r,{maxline:t})};Z.encryptedPrivateKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(t,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(e))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Z.decryptRsaPrivateKey=function(e,t){var r=null,n=M.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(t,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Z.decryptPrivateKeyInfo(A.fromDer(r),t):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(e,t,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var d=f.length(),p=t.length(),h=new M.util.ByteBuffer;h.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%p));var g=u*Math.ceil(d/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%d));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(d/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var H=new M.util.ByteBuffer(b.getBytes(u)),et=511;for(a=D.length()-1;a>=0;a--)et=et>>8,et+=D.at(a)+H.at(a),H.setAt(a,et&255);W.putBuffer(H)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!A.validate(t,l1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(e=A.derToOid(n.kdfOid),e!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(n.encOid),e!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Z.oids[e]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=N0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,p=u(f);return p.start(d),p};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!A.validate(t,f1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(e){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=e,s}var f=N0(n.prfOid),d=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,p)};Z.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}t===null&&(t="");for(var i=[D0(n,e+t)],s=16,o=1;s<r;++o,s+=16)i.push(D0(n,i[o-1]+e+t));return i.join("").substr(0,r)};function D0(e,t){return e.start().update(t).digest().getBytes()}function N0(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.oids[A.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return k0(t)}function k0(e){var t=M.md;switch(e){case"hmacWithSHA224":t=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function h1(e,t,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var zh=V((QI,Hh)=>{var _t=dt();nn();Nt();var Zi=Hh.exports=_t.sha512=_t.sha512||{};_t.md.sha512=_t.md.algorithms.sha512=Zi;var qh=_t.sha384=_t.sha512.sha384=_t.sha512.sha384||{};qh.create=function(){return Zi.create("SHA-384")};_t.md.sha384=_t.md.algorithms.sha384=qh;_t.sha512.sha256=_t.sha512.sha256||{create:function(){return Zi.create("SHA-512/256")}};_t.md["sha512/256"]=_t.md.algorithms["sha512/256"]=_t.sha512.sha256;_t.sha512.sha224=_t.sha512.sha224||{create:function(){return Zi.create("SHA-512/224")}};_t.md["sha512/224"]=_t.md.algorithms["sha512/224"]=_t.sha512.sha224;Zi.create=function(e){if($h||NE(),typeof e>"u"&&(e="SHA-512"),!(e in xn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=xn[e],r=null,n=_t.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(e){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=_t.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=_t.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),Vh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=_t.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(iu.substr(0,a.blockLength-l));for(var f,d,p=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)f=a.fullMessageLength[h+1]*8,d=f/4294967296>>>0,p+=d,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),h=0;h<r.length;++h)m[h]=r[h].slice(0);Vh(m,i,c);var y=_t.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var h=0;h<g;++h)y.putInt32(m[h][0]),(h!==g-1||e!=="SHA-512/224")&&y.putInt32(m[h][1]);return y},a};var iu=null,$h=!1,su=null,xn=null;function NE(){iu=String.fromCharCode(128),iu+=_t.util.fillString(String.fromCharCode(0),128),su=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],xn={},xn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],xn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],xn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],xn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],$h=!0}function Vh(e,t,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x,b,C,_,S,P,D,Y,W,H,et,pt,Zt,T,k,L,N,I,F,q,G=r.length();G>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=t[T-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,F=t[T-15],k=F[0],L=F[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,I=t[T-7],q=t[T-16],L=i+I[1]+o+q[1],t[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,t[T][1]=L>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],x=e[1][1],b=e[2][0],C=e[2][1],_=e[3][0],S=e[3][1],P=e[4][0],D=e[4][1],Y=e[5][0],W=e[5][1],H=e[6][0],et=e[6][1],pt=e[7][0],Zt=e[7][1],T=0;T<80;++T)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=(H^P&(Y^H))>>>0,d=(et^D&(W^et))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,h=(y&x|C&(y^x))>>>0,L=Zt+l+d+su[T][1]+t[T][1],n=pt+u+f+su[T][0]+t[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+h,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,pt=H,Zt=et,H=Y,et=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=e[0][1]+y,e[0][0]=e[0][0]+m+(L/4294967296>>>0)>>>0,e[0][1]=L>>>0,L=e[1][1]+x,e[1][0]=e[1][0]+g+(L/4294967296>>>0)>>>0,e[1][1]=L>>>0,L=e[2][1]+C,e[2][0]=e[2][0]+b+(L/4294967296>>>0)>>>0,e[2][1]=L>>>0,L=e[3][1]+S,e[3][0]=e[3][0]+_+(L/4294967296>>>0)>>>0,e[3][1]=L>>>0,L=e[4][1]+D,e[4][0]=e[4][0]+P+(L/4294967296>>>0)>>>0,e[4][1]=L>>>0,L=e[5][1]+W,e[5][0]=e[5][0]+Y+(L/4294967296>>>0)>>>0,e[5][1]=L>>>0,L=e[6][1]+et,e[6][0]=e[6][0]+H+(L/4294967296>>>0)>>>0,e[6][1]=L>>>0,L=e[7][1]+Zt,e[7][0]=e[7][0]+pt+(L/4294967296>>>0)>>>0,e[7][1]=L>>>0,G-=128}}});var vu=V((I4,bd)=>{var ci=1e3,ui=ci*60,li=ui*60,vn=li*24,lb=vn*7,fb=vn*365.25;bd.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return hb(e);if(r==="number"&&isFinite(e))return t.long?pb(e):db(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function hb(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*fb;case"weeks":case"week":case"w":return r*lb;case"days":case"day":case"d":return r*vn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*li;case"minutes":case"minute":case"mins":case"min":case"m":return r*ui;case"seconds":case"second":case"secs":case"sec":case"s":return r*ci;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function db(e){var t=Math.abs(e);return t>=vn?Math.round(e/vn)+"d":t>=li?Math.round(e/li)+"h":t>=ui?Math.round(e/ui)+"m":t>=ci?Math.round(e/ci)+"s":e+"ms"}function pb(e){var t=Math.abs(e);return t>=vn?vo(e,t,vn,"day"):t>=li?vo(e,t,li,"hour"):t>=ui?vo(e,t,ui,"minute"):t>=ci?vo(e,t,ci,"second"):e+" ms"}function vo(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var vd=V((R4,wd)=>{function mb(e){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=vu(),r.destroy=u,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=t;function r(l){let f,d=null,p,h;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(l)),h),set:y=>{d=y}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}wd.exports=mb});var _u=V((_e,_o)=>{_e.formatArgs=gb;_e.save=xb;_e.load=Eb;_e.useColors=yb;_e.storage=bb();_e.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();_e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function yb(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function gb(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+_o.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}_e.log=console.debug||console.log||(()=>{});function xb(e){try{e?_e.storage.setItem("debug",e):_e.storage.removeItem("debug")}catch{}}function Eb(){let e;try{e=_e.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function bb(){try{return localStorage}catch{}}_o.exports=vd()(_e);var{formatters:wb}=_o.exports;wb.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Cd=V((Y4,Rd)=>{"use strict";Rd.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Nd=V((Pd,Dd)=>{"use strict";var Ro=Cd(),{hasOwnProperty:Bd}=Object.prototype,{propertyIsEnumerable:Cb}=Object,di=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Tb=Pd,Td={concatArrays:!1,ignoreUndefined:!1},Co=e=>{let t=[];for(let r in e)Bd.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)Cb.call(e,n)&&t.push(n)}return t};function pi(e){return Array.isArray(e)?Bb(e):Ro(e)?Lb(e):e}function Bb(e){let t=e.slice(0,0);return Co(e).forEach(r=>{di(t,r,pi(e[r]))}),t}function Lb(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return Co(e).forEach(r=>{di(t,r,pi(e[r]))}),t}var Ld=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?di(e,i,Ru(e[i],t[i],n)):di(e,i,pi(t[i])))}),e),Pb=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Bd.call(s,a)&&(o.push(String(a)),s===e?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=Ld(n,s,Co(s).filter(a=>!o.includes(a)),r)}),n};function Ru(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?Pb(e,t,r):!Ro(t)||!Ro(e)?pi(t):Ld(e,t,Co(t),r)}Dd.exports=function(...e){let t=Ru(pi(Td),this!==Tb&&this||{},Td),r={_:{}};for(let n of e)if(n!==void 0){if(!Ro(n))throw new TypeError("`"+n+"` is not an Option Object");r=Ru(r,{_:n},t)}return r._}});var Md=V((Q4,Od)=>{"use strict";function Db(e){return e>=55296&&e<=56319}function Nb(e){return e>=56320&&e<=57343}Od.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],Db(o)&&Nb(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=t(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Fd=V((X4,Ud)=>{"use strict";function kb(e){return e>=55296&&e<=56319}function Ob(e){return e>=56320&&e<=57343}Ud.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,s=null,o=0;o<r;o++)i=t.charCodeAt(o),Ob(i)?s!=null&&kb(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var Vd=V((Z4,Kd)=>{"use strict";var Mb=Md(),Ub=Fd();Kd.exports=Mb.bind(null,Ub)});var Hd=V((J4,$d)=>{"use strict";var Fb=Vd(),Kb=/[\/\?<>\\:\*\|"]/g,Vb=/[\x00-\x1f\x80-\x9f]/g,qb=/^\.+$/,$b=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,Hb=/[\. ]+$/;function qd(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(Kb,t).replace(Vb,t).replace(qb,t).replace($b,t).replace(Hb,t);return Fb(r,255)}$d.exports=function(e,t){var r=t&&t.replacement||"",n=qd(e,r);return r===""?n:qd(n,"")}});var yp=V((AT,Wu)=>{"use strict";var vw=Object.prototype.hasOwnProperty,de="~";function hs(){}Object.create&&(hs.prototype=Object.create(null),new hs().__proto__||(de=!1));function _w(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function mp(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new _w(r,n||e,i),o=de?de+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],s]:e._events[o].push(s):(e._events[o]=s,e._eventsCount++),e}function ko(e,t){--e._eventsCount===0?e._events=new hs:delete e._events[t]}function le(){this._events=new hs,this._eventsCount=0}le.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)vw.call(r,n)&&t.push(de?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};le.prototype.listeners=function(t){var r=de?de+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};le.prototype.listenerCount=function(t){var r=de?de+t:t,n=this._events[r];return n?n.fn?1:n.length:0};le.prototype.emit=function(t,r,n,i,s,o){var a=de?de+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,p;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(t,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};le.prototype.on=function(t,r,n){return mp(this,t,r,n,!1)};le.prototype.once=function(t,r,n){return mp(this,t,r,n,!0)};le.prototype.removeListener=function(t,r,n,i){var s=de?de+t:t;if(!this._events[s])return this;if(!r)return ko(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&ko(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:ko(this,s)}return this};le.prototype.removeAllListeners=function(t){var r;return t?(r=de?de+t:t,this._events[r]&&ko(this,r)):(this._events=new hs,this._eventsCount=0),this};le.prototype.off=le.prototype.removeListener;le.prototype.addListener=le.prototype.on;le.prefixed=de;le.EventEmitter=le;typeof Wu<"u"&&(Wu.exports=le)});var El=V((q3,Op)=>{"use strict";function kp(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Mw(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return kp(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),kp(new i,r)}}Op.exports=Mw});var qp=V(Es=>{(function(){var e,t,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,p,h;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),p=h[0],l=h[1],c=c.substring(l),u.push(p)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),t=function(c){var u,l,f,d,p;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[d,f]},e=function(){function c(u,l){var f,d,p,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(h=u.split("/",2),u=h[0],l=h[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=p=32;p>=0;d=--p)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(o(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Es.ip2long=o,Es.long2ip=a,Es.Netmask=e}).call(Es)});var Gp=V((zp,ra)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(b=h-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=function(){let C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:h,zoneId:g}}function u(p,h,m,y){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==h[g]>>x)return!1;y-=m,g+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,h){for(;p.length<h;)p=`0${p}`;return p}let d={};d.IPv4=function(){function p(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,y;for(m=0;m<h.length;m++)if(y=h[m],!(0<=y&&y<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[x],m&&b!==0)return null;b!==8&&(m=!0),h+=b}else return null;return 32-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),d.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(p){return this.parser(p)!==null},d.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(p){return!!(d.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},d.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let y=[this.parse(h[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(p){let h,m,y;if(h=p.match(r.fourOctet))return function(){let g=h.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(h=p.match(r.longValue)){if(y=l(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(h=p.match(r.twoOctet))?function(){let g=h.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=p.match(r.threeOctet))?function(){let g=h.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<4&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.IPv6=function(){function p(h,m){let y,g;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(h,m){let y;if(m===void 0&&(y=h,h=y[0],m=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],m&&x!==0)return null;x!==16&&(m=!0),h+=x}else return null;return 128-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],y=this.parts;for(let g=0;g<y.length;g++)h=y[g],m.push(h>>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),m=h[0],y=h[1];return new d.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=h.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),d.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},d.IPv6.isIPv6=function(p){return this.parser(p)!==null},d.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(p){let h,m,y,g,x;try{for(h=this.parseCIDR(p),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},d.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},d.IPv6.parseCIDR=function(p){let h,m,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return y=[this.parse(m[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(p){let h,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",h=c(y[1].slice(0,-1)+b,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,y=Math.floor(p/8);for(;m<y;)h[m]=255,m++;return y<16&&(h[y]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.fromByteArray=function(p){let h=p.length;if(h===4)return new d.IPv4(p);if(h===16)return new d.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(p){return d.IPv6.isValid(p)||d.IPv4.isValid(p)},d.parse=function(p){if(d.IPv6.isValid(p))return d.IPv6.parse(p);if(d.IPv4.isValid(p))return d.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(p){try{return d.IPv6.parseCIDR(p)}catch{try{return d.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(p){let h=this.parse(p);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},d.subnetMatch=function(p,h,m){let y,g,x,b;m==null&&(m="unicast");for(g in h)if(Object.prototype.hasOwnProperty.call(h,g)){for(x=h[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof ra<"u"&&ra.exports?ra.exports=d:e.ipaddr=d})(zp)});var um=V((KB,cm)=>{"use strict";cm.exports=am;var sv=vu(),Zr=am.prototype,ov=new Date%1e9;function av(){return(Math.random()*1e9>>>0)+ov++}function am(e){e=e||{},this.id=e.id||av(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Zr.has=function(e){return e in this._lookup};Zr.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Zr.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Zr.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Zr.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Zr.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=sv(t)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Zr.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Zr.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var vs=V((a6,gm)=>{gm.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var Em=V((u6,xm)=>{xm.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var wm=V((l6,bm)=>{var fv=Em();bm.exports=fv});var Re=V((h6,vm)=>{vm.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Ai=V((p6,Sm)=>{var Nl=vs(),hv=wm(),_m=Re();Sm.exports=class extends Nl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new hv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):t(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(t,c,a)}else t(a)}_handleError(t,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Nl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(t){if(this._inMemoryBlockDuration=t?parseInt(t):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(t){if(typeof t<"u"&&!(t instanceof Nl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,s,i)}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new _m(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,t,r,n)})})}get(t,r={}){let n=this.getKey(t);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,t,r)})})}delete(t,r={}){let n=this.getKey(t);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((s,o)=>{this._upsert(t,r,n,!0,i).then(()=>{s(new _m(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var Im=V((m6,Am)=>{var dv=Ai(),pv=Re(),kl="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",Ol=class extends dv{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this.useRedisPackage=t.useRedisPackage,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:kl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new pv;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(t,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(t,r,"EX",s):o.set(t,r,{EX:s}):o.set(t,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(t).exec(!0):o.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(t,r,s,u):this.client.eval(kl,1,t,r,s,u)}):this.client.eval(kl,{keys:[t],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(t,r).pttl(t).exec(!0):o.incrBy(t,r).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(t).pTTL(t).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(t){return this.client.del(t).then(r=>r>0)}};Am.exports=Ol});var Tm=V((y6,Cm)=>{var mv=Ai(),yv=Re();function Rm(e){try{let t=e.client?e.client:e,{version:r}=t.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var Ml=class e extends mv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=Rm(this.client)}):(this._initCollection(),this._driverVersion=Rm(this.client))}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?e.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(t,r,n){let i=new yv,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(t,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:t},a=Object.assign(a,o),c={$set:{key:t,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:t},o),h={$set:Object.assign({key:t,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,h,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(d)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Cm.exports=Ml});var Lm=V((g6,Bm)=>{var gv=Ai(),xv=Re(),Ul=class extends gv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),t()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new xv,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(t,r,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
16
16
  ON DUPLICATE KEY UPDATE
17
17
  points = ?,
18
18
  expire = ?;`,d=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
19
19
  ON DUPLICATE KEY UPDATE
20
20
  points = IF(expire <= ?, ?, points + (?)),
21
- expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,d,p=>{if(p)return e.rollback(),a(p);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(h,m)=>{if(h)return e.rollback(),a(h);e.query("COMMIT",y=>{if(y)return e.rollback(),a(y);o(m)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Wm.exports=$l});var Zm=V((qL,Xm)=>{var zv=Ri(),Gv=Rt(),Hl=class extends zv{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.schemaName=e.schemaName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?typeof r=="function"&&r():this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(e){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[e]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((e,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{e()}).catch(n=>{n.code==="23505"?e():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
21
+ expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,d,p=>{if(p)return t.rollback(),a(p);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(h,m)=>{if(h)return t.rollback(),a(h);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,t,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Bm.exports=Ul});var Dm=V((x6,Pm)=>{var Ev=Ai(),bv=Re(),Fl=class extends Ev{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.schemaName=t.schemaName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(t){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[t]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
22
22
  key varchar(255) PRIMARY KEY,
23
23
  points integer NOT NULL DEFAULT 0,
24
24
  expire bigint
25
- );`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get schemaName(){return this._schemaName}set schemaName(e){this._schemaName=e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new Gv,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
25
+ );`}get clientType(){return this._clientType}set clientType(t){let r=this.client.constructor.name;if(typeof t>"u")if(r==="Client")t="client";else if(r==="Pool"||r==="BoundPool")t="pool";else if(r==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get schemaName(){return this._schemaName}set schemaName(t){this._schemaName=t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new bv,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(t){let n={name:`${this.tableName.toLowerCase()}:${t.name}`,text:t.text,values:t.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(t,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
26
26
  WHEN ${this._getTableIdentifier()}.expire <= $4 THEN $3
27
27
  ELSE ${this._getTableIdentifier()}.expire
28
28
  END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
@@ -33,20 +33,20 @@
33
33
  ELSE ${this._getTableIdentifier()}.points + ($2)
34
34
  END,
35
35
  expire = ${o}
36
- RETURNING points, expire;`,values:[e,r,s,Date.now()]})}_get(e){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
37
- SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Xm.exports=Hl});var jm=V(()=>{});var ey=V((GL,Jm)=>{Jm.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var ry=V((WL,ty)=>{var Yv=ey(),zl=Rt();ty.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[e].value=this._storage[e].value+r,new zl(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new Yv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new zl(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new zl(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var Yl=V((QL,iy)=>{var Wv=Ss(),Qv=ry(),ny=Rt(),Gl=class extends Wv{constructor(e={}){super(e),this._memoryStorage=new Qv}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new ny(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new ny(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};iy.exports=Gl});var fy=V((XL,ly)=>{var sy=jm(),Xv=Ki(),Zv=Ss(),ay=Yl(),jv=Rt(),Nt="rate_limiter_flexible",Bi=null,oy=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:Nt,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},cy=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&cy.call(this,t)},30)},Ci=function(t,e,r,n,i){let s={channel:Nt,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):cy.call(this,s)},uy=function(t,e){if(!e||e.channel!==Nt||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{oy(t,e,"resolve",n)}).catch(n=>{oy(t,e,"reject",n)})},Jv=function(t){if(!t||t.channel!==Nt||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new jv(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},e_=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ti=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=Xv.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Wl=class{constructor(){if(Bi)return Bi;this._rateLimiters={},sy.setMaxListeners(0),sy.on("message",(e,r)=>{r&&r.channel===Nt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new ay(r.opts)),e.send({channel:Nt,type:"init",keyPrefix:r.opts.keyPrefix})):uy.call(this,e,r)}),Bi=this}},Ql=class{constructor(e){if(Bi)return Bi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Nt&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new ay(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Nt,channel:Nt,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Nt,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};uy.call(this,o,s)}})}),Bi=this}},Xl=class extends Zv{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Nt&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Jv.call(this,r)}),process.send({channel:Nt,type:"init",opts:e_.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=Ti.call(this,i,s);Ci.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=Ti.call(this,i,s);Ci.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=Ti.call(this,i,s);Ci.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=Ti.call(this,i,s);Ci.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=Ti.call(this,n,i);Ci.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=Ti.call(this,n,i);Ci.call(this,"delete",s,e,r)})}};ly.exports={RateLimiterClusterMaster:Wl,RateLimiterClusterMasterPM2:Ql,RateLimiterCluster:Xl}});var dy=V((ZL,hy)=>{var t_=Ri(),r_=Rt(),Zl=class extends t_{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new r_;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(d,p)=>{if(d||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let h=Object.assign({},s);h.attemptNumber=h.attemptNumber?h.attemptNumber+1:1,this._upsert(e,r,n,i,h).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let h={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(h)})}):this.client.get(`${e}_expire`,(d,p)=>{if(d)a(d);else{let h=p===!1?0:p,m={consumedPoints:f,msBeforeNext:h>=0?Math.max(h-c,0):-1};o(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};hy.exports=Zl});var yy=V((JL,my)=>{var py=Rt();my.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new py(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new py(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var xy=V((t6,gy)=>{var n_=Ss();gy.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof n_))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var by=V((n6,Ey)=>{Ey.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var Sy=V((s6,_y)=>{var wy=by(),vy=4294967295,jl="limiter";_y.exports=class{constructor(e,r={maxQueueSize:vy}){this._queueLimiters={KEY_DEFAULT:new ma(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=jl){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=jl){return this._queueLimiters[r]||(this._queueLimiters[r]=new ma(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var ma=class{constructor(e,r={maxQueueSize:vy,key:jl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new wy(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new wy(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var Iy=V((a6,Ay)=>{var Jl=Rt();Ay.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return e?new Jl(e.remainingPoints,Math.min(e.msBeforeNext,r?r.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof Jl?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Jl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var Cy=V((c6,Ry)=>{var i_=Hm(),s_=Ym(),o_=Qm(),a_=Zm(),{RateLimiterClusterMaster:c_,RateLimiterClusterMasterPM2:u_,RateLimiterCluster:l_}=fy(),f_=Yl(),h_=dy(),d_=yy(),p_=xy(),m_=Sy(),y_=Iy(),g_=Rt();Ry.exports={RateLimiterRedis:i_,RateLimiterMongo:s_,RateLimiterMySQL:o_,RateLimiterPostgres:a_,RateLimiterMemory:f_,RateLimiterMemcache:h_,RateLimiterClusterMaster:c_,RateLimiterClusterMasterPM2:u_,RateLimiterCluster:l_,RLWrapperBlackAndWhite:d_,RateLimiterUnion:p_,RateLimiterQueue:m_,BurstyRateLimiter:y_,RateLimiterRes:g_}});var Q_={};ze(Q_,{createLibp2p:()=>W_});var Yy=ae($n(),1);var A4=ae(Fi(),1),I4=ae(th(),1);var Wn=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var So=ae(pe(),1);function cn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}var pc={};ze(pc,{base10:()=>H1});function F1(t,e){if(t.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<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=h[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=t.charAt(C[D]);return Y}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var C=r[h.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(h[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var K1=F1,V1=K1,rh=V1;var IS=new Uint8Array(0);var nh=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},fr=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var ih=t=>new TextEncoder().encode(t),sh=t=>new TextDecoder().decode(t);var lc=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},fc=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return ah(this,e)}},hc=class{constructor(e){this.decoders=e}or(e){return ah(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},ah=(t,e)=>new hc({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),dc=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new lc(e,r,n),this.decoder=new fc(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Qn=({name:t,prefix:e,encode:r,decode:n})=>new dc(t,e,r,n),Pr=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=rh(r,e);return Qn({prefix:t,name:e,encode:n,decode:s=>fr(i(s))})},q1=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},$1=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},De=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Qn({prefix:e,name:t,encode(i){return $1(i,n,r)},decode(i){return q1(i,n,r,t)}});var H1=Pr({prefix:"9",name:"base10",alphabet:"0123456789"});var mc={};ze(mc,{base16:()=>z1,base16upper:()=>G1});var z1=De({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),G1=De({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var yc={};ze(yc,{base2:()=>Y1});var Y1=De({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var gc={};ze(gc,{base256emoji:()=>j1});var ch=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}"),W1=ch.reduce((t,e,r)=>(t[r]=e,t),[]),Q1=ch.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function X1(t){return t.reduce((e,r)=>(e+=W1[r],e),"")}function Z1(t){let e=[];for(let r of t){let n=Q1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var j1=Qn({prefix:"\u{1F680}",name:"base256emoji",encode:X1,decode:Z1});var xc={};ze(xc,{base32:()=>bt,base32hex:()=>r2,base32hexpad:()=>i2,base32hexpadupper:()=>s2,base32hexupper:()=>n2,base32pad:()=>e2,base32padupper:()=>t2,base32upper:()=>J1,base32z:()=>o2});var bt=De({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),J1=De({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),e2=De({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),t2=De({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),r2=De({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),n2=De({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),i2=De({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),s2=De({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),o2=De({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ec={};ze(Ec,{base36:()=>a2,base36upper:()=>c2});var a2=Pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),c2=Pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var bc={};ze(bc,{base58btc:()=>Te,base58flickr:()=>u2});var Te=Pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),u2=Pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var vc={};ze(vc,{base64:()=>un,base64pad:()=>l2,base64url:()=>wc,base64urlpad:()=>f2});var un=De({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),l2=De({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),wc=De({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),f2=De({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var _c={};ze(_c,{base8:()=>h2});var h2=De({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Sc={};ze(Sc,{identity:()=>d2});var d2=Qn({prefix:"\0",name:"identity",encode:t=>sh(t),decode:t=>ih(t)});var VS=new TextEncoder,qS=new TextDecoder;var Ic={};ze(Ic,{identity:()=>Dr});var y2=fh,uh=128,g2=127,x2=~g2,E2=Math.pow(2,31);function fh(t,e,r){e=e||[],r=r||0;for(var n=r;t>=E2;)e[r++]=t&255|uh,t/=128;for(;t&x2;)e[r++]=t&255|uh,t>>>=7;return e[r]=t|0,fh.bytes=r-n+1,e}var b2=Ac,w2=128,lh=127;function Ac(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Ac.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&lh)<<i:(o&lh)*Math.pow(2,i),i+=7}while(o>=w2);return Ac.bytes=s-n,r}var v2=Math.pow(2,7),_2=Math.pow(2,14),S2=Math.pow(2,21),A2=Math.pow(2,28),I2=Math.pow(2,35),R2=Math.pow(2,42),C2=Math.pow(2,49),T2=Math.pow(2,56),B2=Math.pow(2,63),L2=function(t){return t<v2?1:t<_2?2:t<S2?3:t<A2?4:t<I2?5:t<R2?6:t<C2?7:t<T2?8:t<B2?9:10},P2={encode:y2,decode:b2,encodingLength:L2},D2=P2,$i=D2;var Hi=(t,e=0)=>[$i.decode(t,e),$i.decode.bytes],Xn=(t,e,r=0)=>($i.encode(t,e,r),e),Zn=t=>$i.encodingLength(t);var jt=(t,e)=>{let r=e.byteLength,n=Zn(t),i=n+Zn(r),s=new Uint8Array(i+r);return Xn(t,s,0),Xn(r,s,n),s.set(e,i),new jn(t,r,e,s)},ln=t=>{let e=fr(t),[r,n]=Hi(e),[i,s]=Hi(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new jn(r,i,o,e)},hh=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&nh(t.bytes,r.bytes)}},jn=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var dh=0,N2="identity",ph=fr,k2=t=>jt(dh,ph(t)),Dr={code:dh,name:N2,encode:ph,digest:k2};var Tc={};ze(Tc,{sha256:()=>tt,sha512:()=>O2});var Cc=({name:t,code:e,encode:r})=>new Rc(t,e,r),Rc=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?jt(this.code,r):r.then(n=>jt(this.code,n))}else throw Error("Unknown type, must be binary type")}};var yh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),tt=Cc({name:"sha2-256",code:18,encode:yh("SHA-256")}),O2=Cc({name:"sha2-512",code:19,encode:yh("SHA-512")});var gh=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return U2(r,Bc(t),e||Te.encoder);default:return F2(r,Bc(t),e||bt.encoder)}};var xh=new WeakMap,Bc=t=>{let e=xh.get(t);if(e==null){let r=new Map;return xh.set(t,r),r}return e},Mt=class t{constructor(e,r,n,i){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==zi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==K2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=jt(e,r);return t.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&hh(e.multihash,n.multihash)}toString(e){return gh(this,e)}toJSON(){return{"/":gh(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new t(n,i,s,o||Eh(n,i,s.bytes))}else if(r[V2]===!0){let{version:n,multihash:i,code:s}=r,o=ln(i);return t.create(n,s,o)}else return null}static create(e,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(e){case 0:{if(r!==zi)throw new Error(`Version 0 CID must use dag-pb (code: ${zi}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let i=Eh(e,r,n.bytes);return new t(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,zi,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,i=fr(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new jn(r.multihashCode,r.digestSize,s,i);return[r.version===0?t.createV0(o):t.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,d]=Hi(e.subarray(r));return r+=d,f},i=n(),s=zi;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=M2(e,r),s=t.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Bc(s).set(n,e),s}},M2=(t,e)=>{switch(t[0]){case"Q":{let r=e||Te;return[Te.prefix,r.decode(`${Te.prefix}${t}`)]}case Te.prefix:{let r=e||Te;return[Te.prefix,r.decode(t)]}case bt.prefix:{let r=e||bt;return[bt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},U2=(t,e,r)=>{let{prefix:n}=r;if(n!==Te.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i},F2=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i},zi=112,K2=18,Eh=(t,e,r)=>{let n=Zn(t),i=n+Zn(e),s=new Uint8Array(i+r.byteLength);return Xn(t,s,0),Xn(e,s,n),s.set(r,i),s},V2=Symbol.for("@ipld/js-cid/CID");var Nr={...Sc,...yc,..._c,...pc,...mc,...xc,...Ec,...bc,...vc,...gc},iA={...Tc,...Ic};function hr(t=0){return globalThis.Buffer?.alloc!=null?cn(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function ct(t=0){return globalThis.Buffer?.allocUnsafe!=null?cn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function wh(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var bh=wh("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Lc=wh("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=ct(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),q2={utf8:bh,"utf-8":bh,hex:Nr.base16,latin1:Lc,ascii:Lc,binary:Lc,...Nr},ro=q2;function z(t,e="utf8"){let r=ro[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?cn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var cu={};ze(cu,{Ed25519PrivateKey:()=>gn,Ed25519PublicKey:()=>ji,generateKeyPair:()=>nb,generateKeyPairFromSeed:()=>ed,unmarshalEd25519PrivateKey:()=>tb,unmarshalEd25519PublicKey:()=>rb});function Be(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function vh(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function Pc(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function _h(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");vh(t.outputLen),vh(t.blockLen)}function Jn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Sh(t,e){Pc(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var no=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Ah=t=>t instanceof Uint8Array;var io=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Ut=(t,e)=>t<<32-e|t>>>e,$2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!$2)throw new Error("Non little-endian hardware is not supported");function Dc(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Gi(t){if(typeof t=="string"&&(t=Dc(t)),!Ah(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}function so(...t){let e=new Uint8Array(t.reduce((n,i)=>n+i.length,0)),r=0;return t.forEach(n=>{if(!Ah(n))throw new Error("Uint8Array expected");e.set(n,r),r+=n.length}),e}var ei=class{clone(){return this._cloneInto()}},xA={}.toString;function oo(t){let e=n=>t().update(Gi(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function ti(t=32){if(no&&typeof no.getRandomValues=="function")return no.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function H2(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}var ri=class extends ei{constructor(e,r,n,i){super(),this.blockLen=e,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(e),this.view=io(this.buffer)}update(e){Jn(this);let{view:r,buffer:n,blockLen:i}=this;e=Gi(e);let s=e.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=io(e);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Jn(this),Sh(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;H2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=io(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%r&&e.buffer.set(n),e}};var ao=BigInt(4294967295),Nc=BigInt(32);function Ih(t,e=!1){return e?{h:Number(t&ao),l:Number(t>>Nc&ao)}:{h:Number(t>>Nc&ao)|0,l:Number(t&ao)|0}}function z2(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){let{h:s,l:o}=Ih(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}var G2=(t,e)=>BigInt(t>>>0)<<Nc|BigInt(e>>>0),Y2=(t,e,r)=>t>>>r,W2=(t,e,r)=>t<<32-r|e>>>r,Q2=(t,e,r)=>t>>>r|e<<32-r,X2=(t,e,r)=>t<<32-r|e>>>r,Z2=(t,e,r)=>t<<64-r|e>>>r-32,j2=(t,e,r)=>t>>>r-32|e<<64-r,J2=(t,e)=>e,eE=(t,e)=>t,tE=(t,e,r)=>t<<r|e>>>32-r,rE=(t,e,r)=>e<<r|t>>>32-r,nE=(t,e,r)=>e<<r-32|t>>>64-r,iE=(t,e,r)=>t<<r-32|e>>>64-r;function sE(t,e,r,n){let i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:i|0}}var oE=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),aE=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,cE=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),uE=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,lE=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0),fE=(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0;var hE={fromBig:Ih,split:z2,toBig:G2,shrSH:Y2,shrSL:W2,rotrSH:Q2,rotrSL:X2,rotrBH:Z2,rotrBL:j2,rotr32H:J2,rotr32L:eE,rotlSH:tE,rotlSL:rE,rotlBH:nE,rotlBL:iE,add:sE,add3L:oE,add3H:aE,add4L:cE,add4H:uE,add5H:fE,add5L:lE},j=hE;var[dE,pE]=(()=>j.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(t=>BigInt(t))))(),kr=new Uint32Array(80),Or=new Uint32Array(80),kc=class extends ri{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:p,Gl:h,Hh:m,Hl:y}=this;return[e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y]}set(e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=m|0,this.Hl=y|0}process(e,r){for(let b=0;b<16;b++,r+=4)kr[b]=e.getUint32(r),Or[b]=e.getUint32(r+=4);for(let b=16;b<80;b++){let C=kr[b-15]|0,_=Or[b-15]|0,S=j.rotrSH(C,_,1)^j.rotrSH(C,_,8)^j.shrSH(C,_,7),P=j.rotrSL(C,_,1)^j.rotrSL(C,_,8)^j.shrSL(C,_,7),D=kr[b-2]|0,Y=Or[b-2]|0,W=j.rotrSH(D,Y,19)^j.rotrBH(D,Y,61)^j.shrSH(D,Y,6),H=j.rotrSL(D,Y,19)^j.rotrBL(D,Y,61)^j.shrSL(D,Y,6),te=j.add4L(P,H,Or[b-7],Or[b-16]),me=j.add4H(te,S,W,kr[b-7],kr[b-16]);kr[b]=me|0,Or[b]=te|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:p,Fl:h,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=j.rotrSH(f,d,14)^j.rotrSH(f,d,18)^j.rotrBH(f,d,41),_=j.rotrSL(f,d,14)^j.rotrSL(f,d,18)^j.rotrBL(f,d,41),S=f&p^~f&m,P=d&h^~d&y,D=j.add5L(x,_,P,pE[b],Or[b]),Y=j.add5H(D,g,C,S,dE[b],kr[b]),W=D|0,H=j.rotrSH(n,i,28)^j.rotrBH(n,i,34)^j.rotrBH(n,i,39),te=j.rotrSL(n,i,28)^j.rotrBL(n,i,34)^j.rotrBL(n,i,39),me=n&s^n&a^s&a,je=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=h|0,p=f|0,h=d|0,{h:f,l:d}=j.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=j.add3L(W,te,je);n=j.add3H(T,Y,H,me),i=T|0}({h:n,l:i}=j.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=j.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=j.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=j.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=j.add(this.Eh|0,this.El|0,f|0,d|0),{h:p,l:h}=j.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:m,l:y}=j.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=j.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x)}roundClean(){kr.fill(0),Or.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 Oc=oo(()=>new kc);var lo={};ze(lo,{bitGet:()=>wE,bitLen:()=>bE,bitMask:()=>Yi,bitSet:()=>vE,bytesToHex:()=>dr,bytesToNumberBE:()=>pr,bytesToNumberLE:()=>Mr,concatBytes:()=>mr,createHmacDrbg:()=>Fc,ensureBytes:()=>Ne,equalBytes:()=>xE,hexToBytes:()=>hn,hexToNumber:()=>Uc,numberToBytesBE:()=>Ur,numberToBytesLE:()=>dn,numberToHexUnpadded:()=>Th,numberToVarBytesBE:()=>gE,utf8ToBytes:()=>EE,validateObject:()=>Jt});var Ch=BigInt(0),co=BigInt(1),mE=BigInt(2),uo=t=>t instanceof Uint8Array,yE=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function dr(t){if(!uo(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=yE[t[r]];return e}function Th(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Uc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return BigInt(t===""?"0":`0x${t}`)}function hn(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);let e=t.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(e/2);for(let n=0;n<r.length;n++){let i=n*2,s=t.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function pr(t){return Uc(dr(t))}function Mr(t){if(!uo(t))throw new Error("Uint8Array expected");return Uc(dr(Uint8Array.from(t).reverse()))}function Ur(t,e){return hn(t.toString(16).padStart(e*2,"0"))}function dn(t,e){return Ur(t,e).reverse()}function gE(t){return hn(Th(t))}function Ne(t,e,r){let n;if(typeof e=="string")try{n=hn(e)}catch(s){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${s}`)}else if(uo(e))n=Uint8Array.from(e);else throw new Error(`${t} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function mr(...t){let e=new Uint8Array(t.reduce((n,i)=>n+i.length,0)),r=0;return t.forEach(n=>{if(!uo(n))throw new Error("Uint8Array expected");e.set(n,r),r+=n.length}),e}function xE(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function EE(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function bE(t){let e;for(e=0;t>Ch;t>>=co,e+=1);return e}function wE(t,e){return t>>BigInt(e)&co}var vE=(t,e,r)=>t|(r?co:Ch)<<BigInt(e),Yi=t=>(mE<<BigInt(t-1))-co,Mc=t=>new Uint8Array(t),Rh=t=>Uint8Array.from(t);function Fc(t,e,r){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Mc(t),i=Mc(t),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Mc())=>{i=a(Rh([0]),f),n=a(),f.length!==0&&(i=a(Rh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,d=[];for(;f<e;){n=a();let p=n.slice();d.push(p),f+=n.length}return mr(...d)};return(f,d)=>{o(),c(f);let p;for(;!(p=d(u()));)c();return o(),p}}var _E={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function Jt(t,e,r={}){let n=(i,s,o)=>{let a=_E[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(e))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return t}var $e=BigInt(0),Ie=BigInt(1),pn=BigInt(2),SE=BigInt(3),Kc=BigInt(4),Bh=BigInt(5),Lh=BigInt(8),AE=BigInt(9),IE=BigInt(16);function ge(t,e){let r=t%e;return r>=$e?r:e+r}function RE(t,e,r){if(r<=$e||e<$e)throw new Error("Expected power/modulo > 0");if(r===Ie)return $e;let n=Ie;for(;e>$e;)e&Ie&&(n=n*t%r),t=t*t%r,e>>=Ie;return n}function Re(t,e,r){let n=t;for(;e-- >$e;)n*=n,n%=r;return n}function fo(t,e){if(t===$e||e<=$e)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=ge(t,e),n=e,i=$e,s=Ie,o=Ie,a=$e;for(;r!==$e;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==Ie)throw new Error("invert: does not exist");return ge(i,e)}function CE(t){let e=(t-Ie)/pn,r,n,i;for(r=t-Ie,n=0;r%pn===$e;r/=pn,n++);for(i=pn;i<t&&RE(i,e,t)!==t-Ie;i++);if(n===1){let o=(t+Ie)/Kc;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+Ie)/pn;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),d=a.pow(c,r);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(d);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let h=a.pow(l,Ie<<BigInt(u-p-1));l=a.sqr(h),f=a.mul(f,h),d=a.mul(d,l),u=p}return f}}function TE(t){if(t%Kc===SE){let e=(t+Ie)/Kc;return function(n,i){let s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(t%Lh===Bh){let e=(t-Bh)/Lh;return function(n,i){let s=n.mul(i,pn),o=n.pow(s,e),a=n.mul(i,o),c=n.mul(n.mul(a,pn),o),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 t%IE,CE(t)}var Ph=(t,e)=>(ge(t,e)&Ie)===Ie,BE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Vc(t){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=BE.reduce((n,i)=>(n[i]="function",n),e);return Jt(t,r)}function LE(t,e,r){if(r<$e)throw new Error("Expected power > 0");if(r===$e)return t.ONE;if(r===Ie)return e;let n=t.ONE,i=e;for(;r>$e;)r&Ie&&(n=t.mul(n,i)),i=t.sqr(i),r>>=Ie;return n}function PE(t,e){let r=new Array(e.length),n=e.reduce((s,o,a)=>t.is0(o)?s:(r[a]=s,t.mul(s,o)),t.ONE),i=t.inv(n);return e.reduceRight((s,o,a)=>t.is0(o)?s:(r[a]=t.mul(s,r[a]),t.mul(s,o)),i),r}function qc(t,e){let r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function ho(t,e,r=!1,n={}){if(t<=$e)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:i,nByteLength:s}=qc(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=TE(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:Yi(i),ZERO:$e,ONE:Ie,create:c=>ge(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return $e<=c&&c<t},is0:c=>c===$e,isOdd:c=>(c&Ie)===Ie,neg:c=>ge(-c,t),eql:(c,u)=>c===u,sqr:c=>ge(c*c,t),add:(c,u)=>ge(c+u,t),sub:(c,u)=>ge(c-u,t),mul:(c,u)=>ge(c*u,t),pow:(c,u)=>LE(a,c,u),div:(c,u)=>ge(c*fo(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>fo(c,t),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>PE(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?dn(c,s):Ur(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Mr(c):pr(c)}});return Object.freeze(a)}function Dh(t,e){if(!t.isOdd)throw new Error("Field doesn't have isOdd");let r=t.sqrt(e);return t.isOdd(r)?t.neg(r):r}function Nh(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function $c(t){let e=Nh(t);return e+Math.ceil(e/2)}function kh(t,e,r=!1){let n=t.length,i=Nh(e),s=$c(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?pr(t):Mr(t),a=ge(o,e-Ie)+Ie;return r?dn(a,i):Ur(a,i)}var NE=BigInt(0),Hc=BigInt(1);function po(t,e){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=t.ZERO,a=i;for(;s>NE;)s&Hc&&(o=o.add(a)),a=a.double(),s>>=Hc;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let d=1;d<a;d++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=t.ZERO,l=t.BASE,f=BigInt(2**i-1),d=2**i,p=BigInt(i);for(let h=0;h<a;h++){let m=h*c,y=Number(o&f);o>>=p,y>c&&(y-=d,o+=Hc);let g=m,x=m+Math.abs(y)-1,b=h%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function Wi(t){return Vc(t.Fp),Jt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...qc(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var Ft=BigInt(0),wt=BigInt(1),mo=BigInt(2),kE=BigInt(8),OE={zip215:!0};function ME(t){let e=Wi(t);return Jt(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function yo(t){let e=ME(t),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=mo<<BigInt(a*8)-wt,l=r.create,f=e.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:Ft}}}),d=e.adjustScalarBytes||(N=>N),p=e.domain||((N,I,F)=>{if(I.length||F)throw new Error("Contexts/pre-hash are not supported");return N}),h=N=>typeof N=="bigint"&&Ft<N,m=(N,I)=>h(N)&&h(I)&&N<I,y=N=>N===Ft||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===Ft?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,F,q,G){if(this.ex=I,this.ey=F,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(F))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:F,y:q}=I||{};if(!y(F)||!y(q))throw new Error("invalid affine point");return new _(F,q,wt,l(F*q))}static normalizeZ(I){let F=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(F[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:F}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:J,et:ne}=this,de=l(q*q),ie=l(G*G),ue=l(J*J),Ke=l(ue*ue),Pe=l(de*I),Je=l(ue*l(Pe+ie)),et=l(Ke+l(F*l(de*ie)));if(Je!==et)throw new Error("bad point: equation left != right (1)");let qe=l(q*G),at=l(J*ne);if(qe!==at)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:F,ey:q,ez:G}=this,{ex:J,ey:ne,ez:de}=I,ie=l(F*de),ue=l(J*G),Ke=l(q*de),Pe=l(ne*G);return ie===ue&&Ke===Pe}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=e,{ex:F,ey:q,ez:G}=this,J=l(F*F),ne=l(q*q),de=l(mo*l(G*G)),ie=l(I*J),ue=F+q,Ke=l(l(ue*ue)-J-ne),Pe=ie+ne,Je=Pe-de,et=ie-ne,qe=l(Ke*Je),at=l(Pe*et),ar=l(Ke*et),tn=l(Je*Pe);return new _(qe,at,tn,ar)}add(I){C(I);let{a:F,d:q}=e,{ex:G,ey:J,ez:ne,et:de}=this,{ex:ie,ey:ue,ez:Ke,et:Pe}=I;if(F===BigInt(-1)){let _f=l((J-G)*(ue+ie)),Sf=l((J+G)*(ue-ie)),Ka=l(Sf-_f);if(Ka===Ft)return this.double();let Af=l(ne*mo*Pe),If=l(de*mo*Ke),Rf=If+Af,Cf=Sf+_f,Tf=If-Af,Jy=l(Rf*Ka),eg=l(Cf*Tf),tg=l(Rf*Tf),rg=l(Ka*Cf);return new _(Jy,eg,rg,tg)}let Je=l(G*ie),et=l(J*ue),qe=l(de*q*Pe),at=l(ne*Ke),ar=l((G+J)*(ie+ue)-Je-et),tn=at-qe,ki=at+qe,vf=l(et-F*Je),Qy=l(ar*tn),Xy=l(ki*vf),Zy=l(ar*vf),jy=l(tn*ki);return new _(Qy,Xy,jy,Zy)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:F,f:q}=this.wNAF(g(I,n));return _.normalizeZ([F,q])[0]}multiplyUnsafe(I){let F=x(I);return F===Ft?P:this.equals(P)||F===wt?this:this.equals(S)?this.wNAF(F).p:D.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:F,ey:q,ez:G}=this,J=this.is0();I==null&&(I=J?kE:r.inv(G));let ne=l(F*I),de=l(q*I),ie=l(G*I);if(J)return{x:Ft,y:wt};if(ie!==wt)throw new Error("invZ was invalid");return{x:ne,y:de}}clearCofactor(){let{h:I}=e;return I===wt?this:this.multiplyUnsafe(I)}static fromHex(I,F=!1){let{d:q,a:G}=e,J=r.BYTES;I=Ne("pointHex",I,J);let ne=I.slice(),de=I[J-1];ne[J-1]=de&-129;let ie=Mr(ne);ie===Ft||(F?g(ie,u):g(ie,r.ORDER));let ue=l(ie*ie),Ke=l(ue-wt),Pe=l(q*ue-G),{isValid:Je,value:et}=f(Ke,Pe);if(!Je)throw new Error("Point.fromHex: invalid y coordinate");let qe=(et&wt)===wt,at=(de&128)!==0;if(!F&&et===Ft&&at)throw new Error("Point.fromHex: x=0 and x_0=1");return at!==qe&&(et=l(-et)),_.fromAffine({x:et,y:ie})}static fromPrivateKey(I){return H(I).point}toRawBytes(){let{x:I,y:F}=this.toAffine(),q=dn(F,r.BYTES);return q[q.length-1]|=I&wt?128:0,q}toHex(){return dr(this.toRawBytes())}}_.BASE=new _(e.Gx,e.Gy,wt,l(e.Gx*e.Gy)),_.ZERO=new _(Ft,wt,wt,Ft);let{BASE:S,ZERO:P}=_,D=po(_,a*8);function Y(N){return ge(N,n)}function W(N){return Y(Mr(N))}function H(N){let I=a;N=Ne("private key",N,I);let F=Ne("hashed private key",s(N),2*I),q=d(F.slice(0,I)),G=F.slice(I,2*I),J=W(q),ne=S.multiply(J),de=ne.toRawBytes();return{head:q,prefix:G,scalar:J,point:ne,pointBytes:de}}function te(N){return H(N).pointBytes}function me(N=new Uint8Array,...I){let F=mr(...I);return W(s(p(F,Ne("context",N),!!i)))}function je(N,I,F={}){N=Ne("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:J}=H(I),ne=me(F.context,q,N),de=S.multiply(ne).toRawBytes(),ie=me(F.context,de,J,N),ue=Y(ne+ie*G);x(ue);let Ke=mr(de,dn(ue,r.BYTES));return Ne("result",Ke,a*2)}let T=OE;function k(N,I,F,q=T){let{context:G,zip215:J}=q,ne=r.BYTES;N=Ne("signature",N,2*ne),I=Ne("message",I),i&&(I=i(I));let de=Mr(N.slice(ne,2*ne)),ie,ue,Ke;try{ie=_.fromHex(F,J),ue=_.fromHex(N.slice(0,ne),J),Ke=S.multiplyUnsafe(de)}catch{return!1}if(!J&&ie.isSmallOrder())return!1;let Pe=me(G,ue.toRawBytes(),ie.toRawBytes(),I);return ue.add(ie.multiplyUnsafe(Pe)).subtract(Ke).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:e,getPublicKey:te,sign:je,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:H,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var Gc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Oh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),KA=BigInt(0),UE=BigInt(1),zc=BigInt(2),FE=BigInt(5),Mh=BigInt(10),KE=BigInt(20),VE=BigInt(40),Uh=BigInt(80);function qE(t){let e=Gc,n=t*t%e*t%e,i=Re(n,zc,e)*n%e,s=Re(i,UE,e)*t%e,o=Re(s,FE,e)*s%e,a=Re(o,Mh,e)*o%e,c=Re(a,KE,e)*a%e,u=Re(c,VE,e)*c%e,l=Re(u,Uh,e)*u%e,f=Re(l,Uh,e)*u%e,d=Re(f,Mh,e)*o%e;return{pow_p_5_8:Re(d,zc,e)*t%e,b2:n}}function $E(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function HE(t,e){let r=Gc,n=ge(e*e*e,r),i=ge(n*n*e,r),s=qE(t*i).pow_p_5_8,o=ge(t*n*s,r),a=ge(e*o*o,r),c=o,u=ge(o*Oh,r),l=a===t,f=a===ge(-t,r),d=a===ge(-t*Oh,r);return l&&(o=c),(f||d)&&(o=u),Ph(o,r)&&(o=ge(-o,r)),{isValid:l||f,value:o}}var yr=ho(Gc,void 0,!0),Yc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Oc,randomBytes:ti,adjustScalarBytes:$E,uvRatio:HE},ni=yo(Yc);function Fh(t,e,r){if(e.length>255)throw new Error("Context is too big");return so(Dc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,e.length]),e,t)}var VA=yo({...Yc,domain:Fh}),qA=yo({...Yc,domain:Fh,prehash:Oc});var zE=(yr.ORDER+BigInt(3))/BigInt(8),$A=yr.pow(zc,zE),HA=yr.sqrt(yr.neg(yr.ONE)),zA=(yr.ORDER-BigInt(5))/BigInt(8),GA=BigInt(486662);var YA=Dh(yr,yr.neg(BigInt(486664)));var WA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),QA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),XA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),ZA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var jA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ii=32,gr=64,go=32;async function Kh(){let t=ni.utils.randomPrivateKey(),e=ni.getPublicKey(t);return{privateKey:Hh(t,e),publicKey:e}}async function Vh(t){if(t.length!==go)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=ni.getPublicKey(e);return{privateKey:Hh(e,r),publicKey:r}}async function qh(t,e){let r=t.subarray(0,go);return ni.sign(e,r)}async function $h(t,e,r){return ni.verify(e,r,t)}function Hh(t,e){let r=new Uint8Array(gr);for(let n=0;n<go;n++)r[n]=t[n],r[go+n]=e[n];return r}function Oe(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=ct(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return cn(r)}var yt={get(t=globalThis){let e=t.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var Wc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function xo(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=yt.get();r*=8;async function c(f,d){let p=a.getRandomValues(new Uint8Array(s)),h=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:h};typeof d=="string"&&(d=z(d));let y;if(d.length===0){y=await a.subtle.importKey("jwk",Wc,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",Wc,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return Oe([p,m.iv,new Uint8Array(g)])}async function u(f,d){let p=f.subarray(0,s),h=f.subarray(s,s+n),m=f.subarray(s+n),y={name:e,iv:h};typeof d=="string"&&(d=z(d));let g;if(d.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:e,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",Wc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function si(t,e){let n=await xo().encrypt(t,e);return un.encode(n)}var Qc=new Float32Array([-0]),Fr=new Uint8Array(Qc.buffer);function Gh(t,e,r){Qc[0]=t,e[r]=Fr[0],e[r+1]=Fr[1],e[r+2]=Fr[2],e[r+3]=Fr[3]}function Yh(t,e){return Fr[0]=t[e],Fr[1]=t[e+1],Fr[2]=t[e+2],Fr[3]=t[e+3],Qc[0]}var Xc=new Float64Array([-0]),ut=new Uint8Array(Xc.buffer);function Wh(t,e,r){Xc[0]=t,e[r]=ut[0],e[r+1]=ut[1],e[r+2]=ut[2],e[r+3]=ut[3],e[r+4]=ut[4],e[r+5]=ut[5],e[r+6]=ut[6],e[r+7]=ut[7]}function Qh(t,e){return ut[0]=t[e],ut[1]=t[e+1],ut[2]=t[e+2],ut[3]=t[e+3],ut[4]=t[e+4],ut[5]=t[e+5],ut[6]=t[e+6],ut[7]=t[e+7],Xc[0]}var YE=BigInt(Number.MAX_SAFE_INTEGER),WE=BigInt(Number.MIN_SAFE_INTEGER),gt=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return mn;if(e<YE&&e>WE)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,i=e-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Xh&&(i=0n,++n>Xh&&(n=0n))),new t(Number(i),Number(n))}static fromNumber(e){if(e===0)return mn;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new t(n,i)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):mn}},mn=new gt(0,0);mn.toBigInt=function(){return 0n};mn.zzEncode=mn.zzDecode=function(){return this};mn.length=function(){return 1};var Xh=4294967296n;function Zh(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function jh(t,e,r){if(r-e<1)return"";let i,s=[],o=0,a;for(;e<r;)a=t[e++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function Zc(t,e,r){let n=r,i,s;for(let o=0;o<t.length;++o)i=t.charCodeAt(o),i<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=i&63|128):(i&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=i&63|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=i&63|128);return r-n}function Kt(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Eo(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var jc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Kt(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Kt(this,4);return Eo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Kt(this,4);return Eo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Kt(this,4);let e=Yh(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Kt(this,4);let e=Qh(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Kt(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return jh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Kt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Kt(this);while(this.buf[this.pos++]&128);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new gt(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Kt(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Kt(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Kt(this,8);let e=Eo(this.buf,this.pos+=4),r=Eo(this.buf,this.pos+=4);return new gt(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Jc(t){return new jc(t instanceof Uint8Array?t:t.subarray())}function rt(t,e){let r=Jc(t);return e.decode(r)}function eu(t){let e=t??8192,r=e>>>1,n,i=e;return function(o){if(o<1||o>r)return ct(o);i+o>e&&(n=ct(e),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var yn=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function tu(){}var nu=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},QE=eu();function XE(t){return globalThis.Buffer!=null?ct(t):QE(t)}var Zi=class{len;head;tail;states;constructor(){this.len=0,this.head=new yn(tu,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new yn(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new iu((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Qi,10,gt.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=gt.fromBigInt(e);return this._push(Qi,r.length(),r)}uint64Number(e){let r=gt.fromNumber(e);return this._push(Qi,r.length(),r)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=gt.fromBigInt(e).zzEncode();return this._push(Qi,r.length(),r)}sint64Number(e){let r=gt.fromNumber(e).zzEncode();return this._push(Qi,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(ru,1,e?1:0)}fixed32(e){return this._push(Xi,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=gt.fromBigInt(e);return this._push(Xi,4,r.lo)._push(Xi,4,r.hi)}fixed64Number(e){let r=gt.fromNumber(e);return this._push(Xi,4,r.lo)._push(Xi,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Gh,4,e)}double(e){return this._push(Wh,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(ru,1,0):this.uint32(r)._push(jE,r,e)}string(e){let r=Zh(e);return r!==0?this.uint32(r)._push(Zc,r,e):this._push(ru,1,0)}fork(){return this.states=new nu(this),this.head=this.tail=new yn(tu,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new yn(tu,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=XE(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function ru(t,e,r){e[r]=t&255}function ZE(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var iu=class extends yn{next;constructor(e,r){super(ZE,e,r),this.next=void 0}};function Qi(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function Xi(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function jE(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(Zi.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(JE,e,t),this},Zi.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(eb,e,t),this});function JE(t,e,r){e.set(t,r)}function eb(t,e,r){t.length<40?Zc(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(z(t),r)}function su(){return new Zi}function nt(t,e){let r=su();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var oi;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(oi||(oi={}));function bo(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function ou(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return bo("enum",oi.VARINT,r,n)}function it(t,e){return bo("message",oi.LENGTH_DELIMITED,t,e)}var Ce;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Ce||(Ce={}));var au;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(au||(au={}));(function(t){t.codec=()=>ou(au)})(Ce||(Ce={}));var er;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Ce.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Ce.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(er||(er={}));var tr;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Ce.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Ce.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(tr||(tr={}));var ji=class{_key;constructor(e){this._key=ai(e,ii)}async verify(e,r){return $h(this._key,r,e)}marshal(){return this._key}get bytes(){return er.encode({Type:Ce.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}},gn=class{_key;_publicKey;constructor(e,r){this._key=ai(e,gr),this._publicKey=ai(r,ii)}async sign(e){return qh(this._key,e)}get public(){return new ji(this._publicKey)}marshal(){return this._key}get bytes(){return tr.encode({Type:Ce.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}async id(){let e=Dr.digest(this.public.bytes);return Te.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return si(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function tb(t){if(t.length>gr){t=ai(t,gr+ii);let n=t.subarray(0,gr),i=t.subarray(gr,t.length);return new gn(n,i)}t=ai(t,gr);let e=t.subarray(0,gr),r=t.subarray(ii);return new gn(e,r)}function rb(t){return t=ai(t,ii),new ji(t)}async function nb(){let{privateKey:t,publicKey:e}=await Kh();return new gn(t,e)}async function ed(t){let{privateKey:e,publicKey:r}=await Vh(t);return new gn(e,r)}function ai(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new w(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}function X(t,e="utf8"){let r=ro[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var WI=ae(ke(),1),QI=ae(Zs(),1),td=ae(pe(),1);function Vt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Oe([new Uint8Array(e-r.length),r])}return X(r,"base64url")}function vt(t){let e=rd(t);return new td.default.jsbn.BigInteger(X(e,"base16"),16)}function rd(t,e){let r=z(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Oe([new Uint8Array(e-r.length),r])}return r}var ib={"P-256":256,"P-384":384,"P-521":521},sb=Object.keys(ib),oR=sb.join(" / ");async function nd(t,e){let r=un.decode(t);return xo().decrypt(r,e)}var du={};ze(du,{MAX_KEY_SIZE:()=>rs,RsaPrivateKey:()=>ci,RsaPublicKey:()=>ts,fromJwk:()=>mb,generateKeyPair:()=>yb,unmarshalRsaPrivateKey:()=>db,unmarshalRsaPublicKey:()=>pb});var es=ae(pe(),1);var HR=ae(ud(),1);function En(t){if(isNaN(t)||t<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return ti(t)}var IR=ae(eo(),1),fu=ae(pe(),1);function ld(t,e){return e.map(r=>vt(t[r]))}function fd(t){return fu.default.pki.setRsaPrivateKey(...ld(t,["n","e","d","p","q","dp","dq","qi"]))}function hd(t){return fu.default.pki.setRsaPublicKey(...ld(t,["n","e"]))}var bn={};ze(bn,{jwkToPkcs1:()=>cb,jwkToPkix:()=>lb,pkcs1ToJwk:()=>ab,pkixToJwk:()=>ub});var TR=ae(Fi(),1),BR=ae(eo(),1);var xr=ae(pe(),1);function ab(t){let e=xr.default.asn1.fromDer(X(t,"ascii")),r=xr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Vt(r.n),e:Vt(r.e),d:Vt(r.d),p:Vt(r.p),q:Vt(r.q),dp:Vt(r.dP),dq:Vt(r.dQ),qi:Vt(r.qInv),alg:"RS256"}}function cb(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let e=xr.default.pki.privateKeyToAsn1({n:vt(t.n),e:vt(t.e),d:vt(t.d),p:vt(t.p),q:vt(t.q),dP:vt(t.dp),dQ:vt(t.dq),qInv:vt(t.qi)});return z(xr.default.asn1.toDer(e).getBytes(),"ascii")}function ub(t){let e=xr.default.asn1.fromDer(X(t,"ascii")),r=xr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Vt(r.n),e:Vt(r.e)}}function lb(t){if(t.n==null||t.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let e=xr.default.pki.publicKeyToAsn1({n:vt(t.n),e:vt(t.e)});return z(xr.default.asn1.toDer(e).getBytes(),"ascii")}async function dd(t){let e=await yt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await yd(e);return{privateKey:r[0],publicKey:r[1]}}async function hu(t){let r=[await yt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await fb(t)],n=await yd({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function pd(t,e){let r=await yt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await yt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(e));return new Uint8Array(n,0,n.byteLength)}async function md(t,e,r){let n=await yt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return yt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r)}async function yd(t){if(t.privateKey==null||t.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([yt.get().subtle.exportKey("jwk",t.privateKey),yt.get().subtle.exportKey("jwk",t.publicKey)])}async function fb(t){return yt.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function gd(t,e,r,n){let i=e?hd(t):fd(t),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return z(o,"ascii")}function xd(t,e){return gd(t,!0,e,(r,n)=>n.encrypt(r))}function Ed(t,e){return gd(t,!1,e,(r,n)=>n.decrypt(r))}function vo(t){if(t.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(t.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return z(t.n,"base64url").length*8}var rs=8192,ts=class{_key;constructor(e){this._key=e}async verify(e,r){return md(this._key,r,e)}marshal(){return bn.jwkToPkix(this._key)}get bytes(){return er.encode({Type:Ce.RSA,Data:this.marshal()}).subarray()}encrypt(e){return xd(this._key,e)}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}},ci=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return En(16)}async sign(e){return pd(this._key,e)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ts(this._publicKey)}decrypt(e){return Ed(this._key,e)}marshal(){return bn.jwkToPkcs1(this._key)}get bytes(){return tr.encode({Type:Ce.RSA,Data:this.marshal()}).subarray()}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}async id(){let e=await this.public.hash();return X(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new es.default.util.ByteBuffer(this.marshal()),i=es.default.asn1.fromDer(n),s=es.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return es.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return si(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function db(t){let e=bn.pkcs1ToJwk(t);if(vo(e)>rs)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await hu(e);return new ci(r.privateKey,r.publicKey)}function pb(t){let e=bn.pkixToJwk(t);if(vo(e)>rs)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new ts(e)}async function mb(t){if(vo(t)>rs)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await hu(t);return new ci(e.privateKey,e.publicKey)}async function yb(t){if(t>rs)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await dd(t);return new ci(e.privateKey,e.publicKey)}var Eu={};ze(Eu,{Secp256k1PrivateKey:()=>is,Secp256k1PublicKey:()=>ns,generateKeyPair:()=>Lb,unmarshalSecp256k1PrivateKey:()=>Tb,unmarshalSecp256k1PublicKey:()=>Bb});var gb=(t,e,r)=>t&e^~t&r,xb=(t,e,r)=>t&e^t&r^e&r,Eb=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]),Kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),pu=class extends ri{constructor(){super(64,32,8,!1),this.A=Kr[0]|0,this.B=Kr[1]|0,this.C=Kr[2]|0,this.D=Kr[3]|0,this.E=Kr[4]|0,this.F=Kr[5]|0,this.G=Kr[6]|0,this.H=Kr[7]|0}get(){let{A:e,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[e,r,n,i,s,o,a,c]}set(e,r,n,i,s,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let f=0;f<16;f++,r+=4)Vr[f]=e.getUint32(r,!1);for(let f=16;f<64;f++){let d=Vr[f-15],p=Vr[f-2],h=Ut(d,7)^Ut(d,18)^d>>>3,m=Ut(p,17)^Ut(p,19)^p>>>10;Vr[f]=m+Vr[f-7]+h+Vr[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let d=Ut(a,6)^Ut(a,11)^Ut(a,25),p=l+d+gb(a,c,u)+Eb[f]+Vr[f]|0,m=(Ut(n,2)^Ut(n,13)^Ut(n,22))+xb(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var bd=oo(()=>new pu);function bb(t){let e=Wi(t);Jt(e,{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}=e;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({...e})}var{bytesToNumberBE:wb,hexToBytes:vb}=lo,wn={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(t){let{Err:e}=wn;if(t.length<2||t[0]!==2)throw new e("Invalid signature integer tag");let r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:wb(n),l:t.subarray(r+2)}},toSig(t){let{Err:e}=wn,r=typeof t=="string"?vb(t):t;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:i,l:s}=wn._parseInt(r.subarray(2)),{d:o,l:a}=wn._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},Er=BigInt(0),Lt=BigInt(1),JR=BigInt(2),wd=BigInt(3),e4=BigInt(4);function _b(t){let e=bb(t),{Fp:r}=e,n=e.toBytes||((h,m,y)=>{let g=m.toAffine();return mr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=e.fromBytes||(h=>{let m=h.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(h){let{a:m,b:y}=e,g=r.sqr(h),x=r.mul(g,h);return r.add(r.add(x,r.mul(h,m)),y)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(h){return typeof h=="bigint"&&Er<h&&h<e.n}function a(h){if(!o(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=e;if(m&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=dr(h)),typeof h!="string"||!m.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let b;try{b=typeof h=="bigint"?h:pr(Ne("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return g&&(b=ge(b,x)),a(b),b}let u=new Map;function l(h){if(!(h instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(Ne("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=e,g=r.mul(y,wd),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),H=r.mul(x,b);return H=r.add(H,H),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(H,_),P=r.mul(g,P),W=r.mul(m,W),H=r.sub(D,W),H=r.mul(m,H),H=r.add(H,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,H),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,H),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=e.a,W=r.mul(e.b,wd),H=r.mul(y,b),te=r.mul(g,C),me=r.mul(x,_),je=r.add(y,g),T=r.add(b,C);je=r.mul(je,T),T=r.add(H,te),je=r.sub(je,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(H,me),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(te,me),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,me),D=r.add(S,D),S=r.sub(te,D),D=r.add(te,D),P=r.mul(S,D),te=r.add(H,H),te=r.add(te,H),me=r.mul(Y,me),T=r.mul(W,T),te=r.add(te,me),me=r.sub(H,me),me=r.mul(Y,me),T=r.add(T,me),H=r.mul(te,T),P=r.add(P,H),H=r.mul(k,T),S=r.mul(je,S),S=r.sub(S,H),H=r.mul(je,te),D=r.mul(k,D),D=r.add(D,H),new f(S,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===Er)return y;if(a(m),m===Lt)return this;let{endo:g}=e;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>Er||_>Er;)b&Lt&&(S=S.add(D)),_&Lt&&(P=P.add(D)),D=D.double(),b>>=Lt,_>>=Lt;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=e;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:H}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(H)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===Er||S===Lt||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=e;if(m===Lt)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=e;return m===Lt?this:y?y(f,this):this.multiplyUnsafe(e.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return dr(this.toRawBytes(m))}}f.BASE=new f(e.Gx,e.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let d=e.nBitLength,p=po(f,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function Sb(t){let e=Wi(t);return Jt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function vd(t){let e=Sb(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return Er<T&&T<r.ORDER}function a(T){return ge(T,n)}function c(T){return fo(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:d}=_b({...e,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),F=mr;return L?F(Uint8Array.from([k.hasEvenY()?2:3]),I):F(Uint8Array.from([4]),I,r.toBytes(N.y))},fromBytes(T){let k=T.length,L=T[0],N=T.subarray(1);if(k===i&&(L===2||L===3)){let I=pr(N);if(!o(I))throw new Error("Point is not on curve");let F=f(I),q=r.sqrt(F),G=(q&Lt)===Lt;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),F=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>dr(Ur(T,e.nByteLength));function h(T){let k=n>>Lt;return T>k}function m(T){return h(T)?a(-T):T}let y=(T,k,L)=>pr(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=e.nByteLength;return k=Ne("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=wn.toSig(Ne("DER",k));return new g(L,N)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,F=P(Ne("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+e.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",J=u.fromHex(G+p(q)),ne=c(q),de=a(-F*ne),ie=a(N*ne),ue=u.BASE.multiplyAndAddUnsafe(J,de,ie);if(!ue)throw new Error("point at infinify");return ue.assertValidity(),ue}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return hn(this.toDERHex())}toDERHex(){return wn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return hn(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(T){try{return l(T),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let T=$c(e.n);return kh(e.randomBytes(T),e.n)},precompute(T=8,k=u.BASE){return k._setWindowSize(T),k.multiply(BigInt(3)),k}};function b(T,k=!0){return u.fromPrivateKey(T).toRawBytes(k)}function C(T){let k=T instanceof Uint8Array,L=typeof T=="string",N=(k||L)&&T.length;return k?N===i||N===s:L?N===2*i||N===2*s:T instanceof u}function _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=e.bits2int||function(T){let k=pr(T),L=T.length*8-e.nBitLength;return L>0?k>>BigInt(L):k},P=e.bits2int_modN||function(T){return a(S(T))},D=Yi(e.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(Er<=T&&T<D))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Ur(T,e.nByteLength)}function W(T,k,L=H){if(["recovered","canonical"].some(Pe=>Pe in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=e,{lowS:F,prehash:q,extraEntropy:G}=L;F==null&&(F=!0),T=Ne("msgHash",T),q&&(T=Ne("prehashed msgHash",N(T)));let J=P(T),ne=l(k),de=[Y(ne),Y(J)];if(G!=null){let Pe=G===!0?I(r.BYTES):G;de.push(Ne("extraEntropy",Pe))}let ie=mr(...de),ue=J;function Ke(Pe){let Je=S(Pe);if(!d(Je))return;let et=c(Je),qe=u.BASE.multiply(Je).toAffine(),at=a(qe.x);if(at===Er)return;let ar=a(et*a(ue+at*ne));if(ar===Er)return;let tn=(qe.x===at?0:2)|Number(qe.y&Lt),ki=ar;return F&&h(ar)&&(ki=m(ar),tn^=1),new g(at,ki,tn)}return{seed:ie,k2sig:Ke}}let H={lowS:e.lowS,prehash:!1},te={lowS:e.lowS,prehash:!1};function me(T,k,L=H){let{seed:N,k2sig:I}=W(T,k,L),F=e;return Fc(F.hash.outputLen,F.nByteLength,F.hmac)(N,I)}u.BASE._setWindowSize(8);function je(T,k,L,N=te){let I=T;if(k=Ne("msgHash",k),L=Ne("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:q}=N,G,J;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(qe){if(!(qe instanceof wn.Err))throw qe;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:qe,s:at}=I;G=new g(qe,at)}else throw new Error("PARSE");J=u.fromHex(L)}catch(qe){if(qe.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&G.hasHighS())return!1;q&&(k=e.hash(k));let{r:ne,s:de}=G,ie=P(k),ue=c(de),Ke=a(ie*ue),Pe=a(ne*ue),Je=u.BASE.multiplyAndAddUnsafe(J,Ke,Pe)?.toAffine();return Je?a(Je.x)===ne:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:_,sign:me,verify:je,ProjectivePoint:u,Signature:g,utils:x}}var _o=class extends ei{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,_h(e);let n=Gi(r);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return Jn(this),this.iHash.update(e),this}digestInto(e){Jn(this),Pc(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},mu=(t,e,r)=>new _o(t,e).update(r).digest();mu.create=(t,e)=>new _o(t,e);function Ab(t){return{hash:t,hmac:(e,...r)=>mu(t,e,so(...r)),randomBytes:ti}}function _d(t,e){let r=n=>vd({...t,...Ab(n)});return Object.freeze({...r(e),create:r})}var Id=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Sd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ib=BigInt(1),yu=BigInt(2),Ad=(t,e)=>(t+e/yu)/e;function Rb(t){let e=Id,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,f=Re(l,r,e)*l%e,d=Re(f,r,e)*l%e,p=Re(d,yu,e)*u%e,h=Re(p,i,e)*p%e,m=Re(h,s,e)*h%e,y=Re(m,a,e)*m%e,g=Re(y,c,e)*y%e,x=Re(g,a,e)*m%e,b=Re(x,r,e)*l%e,C=Re(b,o,e)*h%e,_=Re(C,n,e)*u%e,S=Re(_,yu,e);if(!gu.eql(gu.sqr(S),t))throw new Error("Cannot find square root");return S}var gu=ho(Id,void 0,void 0,{sqrt:Rb}),br=_d({a:BigInt(0),b:BigInt(7),Fp:gu,n:Sd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{let e=Sd,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ib*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=Ad(s*t,e),c=Ad(-n*t,e),u=ge(t-a*r-c*i,e),l=ge(-a*n-c*s,e),f=u>o,d=l>o;if(f&&(u=e-u),d&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},bd),h4=BigInt(0);var d4=br.ProjectivePoint;function Rd(){return br.utils.randomPrivateKey()}async function Cd(t,e){let{digest:r}=await tt.digest(e);try{return br.sign(r,t).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function Td(t,e,r){try{let{digest:n}=await tt.digest(r);return br.verify(e,n,t)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function Bd(t){return br.ProjectivePoint.fromHex(t).toRawBytes(!0)}function Ld(t){try{br.getPublicKey(t,!0)}catch(e){throw new w(String(e),"ERR_INVALID_PRIVATE_KEY")}}function xu(t){try{br.ProjectivePoint.fromHex(t)}catch(e){throw new w(String(e),"ERR_INVALID_PUBLIC_KEY")}}function Pd(t){try{return br.getPublicKey(t,!0)}catch(e){throw new w(String(e),"ERR_INVALID_PRIVATE_KEY")}}var ns=class{_key;constructor(e){xu(e),this._key=e}async verify(e,r){return Td(this._key,r,e)}marshal(){return Bd(this._key)}get bytes(){return er.encode({Type:Ce.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}},is=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??Pd(e),Ld(this._key),xu(this._publicKey)}async sign(e){return Cd(this._key,e)}get public(){return new ns(this._publicKey)}marshal(){return this._key}get bytes(){return tr.encode({Type:Ce.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Be(this.bytes,e.bytes)}async hash(){let{bytes:e}=await tt.digest(this.bytes);return e}async id(){let e=await this.public.hash();return X(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return si(this.bytes,e);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Tb(t){return new is(t)}function Bb(t){return new ns(t)}async function Lb(){let t=Rd();return new is(t)}var wr={rsa:du,ed25519:cu,secp256k1:Eu};function bu(t){let e=Object.keys(wr).join(" / ");return new w(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function wu(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return wr[t];throw bu(t)}async function Ao(t,e){return wu(t).generateKeyPair(e??2048)}function ss(t){let e=er.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Ce.RSA:return wr.rsa.unmarshalRsaPublicKey(r);case Ce.Ed25519:return wr.ed25519.unmarshalEd25519PublicKey(r);case Ce.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw bu(e.Type??"unknown")}}function Dd(t,e){return e=(e??"rsa").toLowerCase(),wu(e),t.bytes}async function ui(t){let e=tr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Ce.RSA:return wr.rsa.unmarshalRsaPrivateKey(r);case Ce.Ed25519:return wr.ed25519.unmarshalEd25519PrivateKey(r);case Ce.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw bu(e.Type??"RSA")}}function Nd(t,e){return e=(e??"rsa").toLowerCase(),wu(e),t.bytes}async function os(t,e){try{let i=await nd(t,e);return await ui(i)}catch{}let r=So.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=So.default.asn1.toDer(So.default.pki.privateKeyToAsn1(r));return n=z(n.getBytes(),"ascii"),wr.rsa.unmarshalRsaPrivateKey(n)}var vu=Symbol.for("@libp2p/content-routing");var as=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new Su(e,r))}},_u=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},Su=globalThis.CustomEvent??_u;var Au=Symbol.for("@libp2p/peer-discovery");var Iu=Symbol.for("@libp2p/peer-routing");var U4=ae($s(),1),Db=ae(pe(),1);var Od=ae(ec(),1),Md=ae(ke(),1),kd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function cs(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(kd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=kd[i],o=(0,Od.default)(t,e,r,n,s);return Md.default.encode64(o,null)}var St=ae(Cu(),1);St.default.formatters.b=t=>t==null?"undefined":Te.baseEncode(t);St.default.formatters.t=t=>t==null?"undefined":bt.baseEncode(t);St.default.formatters.m=t=>t==null?"undefined":un.baseEncode(t);St.default.formatters.p=t=>t==null?"undefined":t.toString();St.default.formatters.c=t=>t==null?"undefined":t.toString();St.default.formatters.k=t=>t==null?"undefined":t.toString();St.default.formatters.a=t=>t==null?"undefined":t.toString();function Wb(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function re(t){let e=Wb(`${t}:trace`);return St.default.enabled(`${t}:trace`)&&St.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,St.default)(`${t}:trace`)),Object.assign((0,St.default)(t),{error:(0,St.default)(`${t}:error`),trace:e})}var Tu=Symbol.for("@libp2p/peer-id");function Co(t){return t!=null&&!!t[Tu]}var Qb=Symbol.for("nodejs.util.inspect.custom"),Vd=Object.values(Nr).map(t=>t.decoder).reduce((t,e)=>t.or(e),Nr.identity.decoder),qd=114,Bu=36,Lu=37,us=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Tu]=!0;toString(){return this.string==null&&(this.string=Te.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Mt.createV1(qd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return Be(this.multihash.bytes,e);if(typeof e=="string")return fe(e).equals(this);if(e?.multihash?.bytes!=null)return Be(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[Qb](){return`PeerId(${this.toString()})`}},_n=class extends us{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Sn=class extends us{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},An=class extends us{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function $d(t){if(t.type==="RSA")return new _n(t);if(t.type==="Ed25519")return new Sn(t);if(t.type==="secp256k1")return new An(t);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function fe(t,e){if(e=e??Vd,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=ln(Te.decode(`z${t}`));return t.startsWith("12D")?new Sn({multihash:r}):t.startsWith("16U")?new An({multihash:r}):new _n({multihash:r})}return di(Vd.decode(t))}function di(t){try{let e=ln(t);if(e.code===Dr.code){if(e.digest.length===Bu)return new Sn({multihash:e});if(e.digest.length===Lu)return new An({multihash:e})}if(e.code===tt.code)return new _n({multihash:e})}catch{return Xb(Mt.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function Xb(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==qd)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===tt.code)return new _n({multihash:t.multihash});if(e.code===Dr.code){if(e.digest.length===Bu)return new Sn({multihash:t.multihash});if(e.digest.length===Lu)return new An({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function pi(t,e){return t.length===Bu?new Sn({multihash:jt(Dr.code,t),privateKey:e}):t.length===Lu?new An({multihash:jt(Dr.code,t),privateKey:e}):new _n({multihash:await tt.digest(t),publicKey:t,privateKey:e})}var To=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((e,r)=>(r&=63,r<36?e+=r.toString(36):r<62?e+=(r-26).toString(36).toUpperCase():r>62?e+="-":e+="_",e),"");var vr="/",Hd=new TextEncoder().encode(vr),Bo=Hd[0],rr=class t{_buf;constructor(e,r){if(typeof e=="string")this._buf=z(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Bo)throw new Error("Invalid key")}toString(e="utf8"){return X(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new t(e.join(vr))}static random(){return new t(To().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new t(e):typeof e.uint8Array=="function"?new t(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Hd),this._buf[0]!==Bo){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Bo,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Bo;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return t.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(vr).slice(1)}type(){return Zb(this.baseNamespace())}name(){return jb(this.baseNamespace())}instance(e){return new t(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(vr)||(e+=vr),e+=this.type(),new t(e)}parent(){let e=this.list();return e.length===1?new t(vr):new t(e.slice(0,-1).join(vr))}child(e){return this.toString()===vr?e:e.toString()===vr?this:new t(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return t.withNamespaces([...this.namespaces(),...Jb(e.map(r=>r.namespaces()))])}};function Zb(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function jb(t){let e=t.split(":");return e[e.length-1]}function Jb(t){return[].concat(...t)}var Jd=ae(jd(),1),qr=Jd.default;var up=ae(cp(),1);var oe;(function(t){t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(oe||(oe={}));var Do=re("libp2p:keychain"),gw="/pkcs8/",lp="/info/",In=new WeakMap,Rn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Du={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function _r(t){return t==null||typeof t!="string"?!1:t===(0,up.default)(t.trim())&&t.length>0}async function xe(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function nr(t){return new rr(gw+t)}function $r(t){return new rr(lp+t)}var Cn=class{components;init;constructor(e,r){if(this.components=e,this.init=qr(Du,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Rn.minKeyLength)throw new Error(`dek.keyLength must be least ${Rn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Rn.minSaltLength)throw new Error(`dek.saltLength must be least ${Rn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Rn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Rn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?cs(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:n})}static generateOptions(){let e=Object.assign({},Du),r=Math.ceil(Rn.minSaltLength/3)*3;return e.dek.salt=X(En(r),"base64"),e}static get options(){return Du}async createKey(e,r,n=2048){if(!_r(e)||e==="self")throw await xe(),new w("Invalid key name",oe.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await xe(),new w("Invalid key type",oe.ERR_INVALID_KEY_TYPE);let i=nr(e);if(await this.components.datastore.has(i))throw await xe(),new w("Key name already exists",oe.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await xe(),new w("Invalid RSA key size",oe.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await Ao(r,n),c=await a.id(),u=In.get(this);if(u==null)throw new w("dek missing",oe.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:e,id:c};let d=this.components.datastore.batch();d.put(i,z(f)),d.put($r(e),z(JSON.stringify(o))),await d.commit()}catch(a){throw await xe(),a}return o}async listKeys(){let e={prefix:lp},r=[];for await(let n of this.components.datastore.query(e))r.push(JSON.parse(X(n.value)));return r}async findKeyById(e){try{let n=(await this.listKeys()).find(i=>i.id===e);if(n==null)throw new w(`Key with id '${e}' does not exist.`,oe.ERR_KEY_NOT_FOUND);return n}catch(r){throw await xe(),r}}async findKeyByName(e){if(!_r(e))throw await xe(),new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);let r=$r(e);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await xe(),Do.error(n),new w(`Key '${e}' does not exist.`,oe.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!_r(e)||e==="self")throw await xe(),new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);let r=nr(e),n=await this.findKeyByName(e),i=this.components.datastore.batch();return i.delete(r),i.delete($r(e)),await i.commit(),n}async renameKey(e,r){if(!_r(e)||e==="self")throw await xe(),new w(`Invalid old key name '${e}'`,oe.ERR_OLD_KEY_NAME_INVALID);if(!_r(r)||r==="self")throw await xe(),new w(`Invalid new key name '${r}'`,oe.ERR_NEW_KEY_NAME_INVALID);let n=nr(e),i=nr(r),s=$r(e),o=$r(r);if(await this.components.datastore.has(i))throw await xe(),new w(`Key '${r}' already exists`,oe.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,z(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await xe(),c}}async exportKey(e,r){if(!_r(e))throw await xe(),new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);if(r==null)throw await xe(),new w("Password is required",oe.ERR_PASSWORD_REQUIRED);let n=nr(e);try{let i=await this.components.datastore.get(n),s=X(i),o=In.get(this);if(o==null)throw new w("dek missing",oe.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await os(s,a)).export(r)}catch(i){throw await xe(),i}}async exportPeerId(e){let r="temporary-password",n=await this.exportKey(e,r),i=await os(n,r);return pi(i.public.bytes,i.bytes)}async importKey(e,r,n){if(!_r(e)||e==="self")throw await xe(),new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);if(r==null)throw await xe(),new w("PEM encoded key is required",oe.ERR_PEM_REQUIRED);let i=nr(e);if(await this.components.datastore.has(i))throw await xe(),new w(`Key '${e}' already exists`,oe.ERR_KEY_ALREADY_EXISTS);let o;try{o=await os(r,n)}catch{throw await xe(),new w("Cannot read the key, most likely the password is wrong",oe.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=In.get(this);if(l==null)throw new w("dek missing",oe.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await xe(),l}let c={name:e,id:a},u=this.components.datastore.batch();return u.put(i,z(r)),u.put($r(e),z(JSON.stringify(c))),await u.commit(),c}async importPeer(e,r){try{if(!_r(e))throw new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",oe.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",oe.ERR_MISSING_PRIVATE_KEY);let n=await ui(r.privateKey),i=nr(e);if(await this.components.datastore.has(i))throw await xe(),new w(`Key '${e}' already exists`,oe.ERR_KEY_ALREADY_EXISTS);let o=In.get(this);if(o==null)throw new w("dek missing",oe.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:e,id:r.toString()},l=this.components.datastore.batch();return l.put(i,z(c)),l.put($r(e),z(JSON.stringify(u))),await l.commit(),u}catch(n){throw await xe(),n}}async getPrivateKey(e){if(!_r(e))throw await xe(),new w(`Invalid key name '${e}'`,oe.ERR_INVALID_KEY_NAME);try{let r=nr(e),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await xe(),Do.error(r),new w(`Key '${e}' does not exist.`,oe.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(e,r){if(typeof e!="string")throw await xe(),new w(`Invalid old pass type '${typeof e}'`,oe.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await xe(),new w(`Invalid new pass type '${typeof r}'`,oe.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await xe(),new w(`Invalid pass length ${r.length}`,oe.ERR_INVALID_PASS_LENGTH);Do("recreating keychain");let n=In.get(this);if(n==null)throw new w("dek missing",oe.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?cs(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(nr(a.name)),u=X(c),l=await os(u,i),f=s.toString(),d=await l.export(f),p=this.components.datastore.batch(),h={name:a.name,id:a.id};p.put(nr(a.name),z(d)),p.put($r(a.name),z(JSON.stringify(h))),await p.commit()}Do("keychain reconstructed")}};function Sr(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var qt=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){this.map.delete(e.toString())}entries(){return Sr(this.map.entries(),e=>[fe(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,fe(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return Sr(this.map.keys(),e=>fe(e))}values(){return this.map.values()}get size(){return this.map.size}};var Tn=class t{set;constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return Sr(this.set.entries(),e=>{let r=fe(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=fe(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return Sr(this.set.values(),e=>fe(e))}intersection(e){let r=new t;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new t;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new t;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var Nu=class t{list;constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return Sr(this.list.entries(),e=>fe(e[1]))}concat(e){let r=new t(this);for(let n of e)r.push(n);return r}entries(){return Sr(this.list.entries(),e=>[e[0],fe(e[1])])}every(e){return this.list.every((r,n)=>e(fe(r),n,this))}filter(e){let r=new t;return this.list.forEach((n,i)=>{let s=fe(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(fe(n),i,this));if(r!=null)return fe(r)}findIndex(e){return this.list.findIndex((r,n)=>e(fe(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(fe(r),n,this)})}includes(e){return this.list.includes(e.toString())}indexOf(e){return this.list.indexOf(e.toString())}pop(){let e=this.list.pop();if(e!=null)return fe(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return fe(e)}unshift(...e){let r=this.list.length;for(let n=e.length-1;n>-1;n--)r=this.list.unshift(e[n].toString());return r}get length(){return this.list.length}};var ku;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(ku||(ku={}));var fp=async()=>{let t=await Ao("Ed25519"),e=await xw(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function xw(t){return pi(Dd(t.public),Nd(t))}var Ew=Math.pow(2,7),bw=Math.pow(2,14),ww=Math.pow(2,21),Ou=Math.pow(2,28),Mu=Math.pow(2,35),Uu=Math.pow(2,42),Fu=Math.pow(2,49),he=128,lt=127;function xt(t){if(t<Ew)return 1;if(t<bw)return 2;if(t<ww)return 3;if(t<Ou)return 4;if(t<Mu)return 5;if(t<Uu)return 6;if(t<Fu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function vw(t,e,r=0){switch(xt(t)){case 8:e[r++]=t&255|he,t/=128;case 7:e[r++]=t&255|he,t/=128;case 6:e[r++]=t&255|he,t/=128;case 5:e[r++]=t&255|he,t/=128;case 4:e[r++]=t&255|he,t>>>=7;case 3:e[r++]=t&255|he,t>>>=7;case 2:e[r++]=t&255|he,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function _w(t,e,r=0){switch(xt(t)){case 8:e.set(r++,t&255|he),t/=128;case 7:e.set(r++,t&255|he),t/=128;case 6:e.set(r++,t&255|he),t/=128;case 5:e.set(r++,t&255|he),t/=128;case 4:e.set(r++,t&255|he),t>>>=7;case 3:e.set(r++,t&255|he),t>>>=7;case 2:e.set(r++,t&255|he),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function Sw(t,e){let r=t[e],n=0;if(n+=r&lt,r<he||(r=t[e+1],n+=(r&lt)<<7,r<he)||(r=t[e+2],n+=(r&lt)<<14,r<he)||(r=t[e+3],n+=(r&lt)<<21,r<he)||(r=t[e+4],n+=(r&lt)*Ou,r<he)||(r=t[e+5],n+=(r&lt)*Mu,r<he)||(r=t[e+6],n+=(r&lt)*Uu,r<he)||(r=t[e+7],n+=(r&lt)*Fu,r<he))return n;throw new RangeError("Could not decode varint")}function Aw(t,e){let r=t.get(e),n=0;if(n+=r&lt,r<he||(r=t.get(e+1),n+=(r&lt)<<7,r<he)||(r=t.get(e+2),n+=(r&lt)<<14,r<he)||(r=t.get(e+3),n+=(r&lt)<<21,r<he)||(r=t.get(e+4),n+=(r&lt)*Ou,r<he)||(r=t.get(e+5),n+=(r&lt)*Mu,r<he)||(r=t.get(e+6),n+=(r&lt)*Uu,r<he)||(r=t.get(e+7),n+=(r&lt)*Fu,r<he))return n;throw new RangeError("Could not decode varint")}function Pt(t,e,r=0){return e==null&&(e=ct(xt(t))),e instanceof Uint8Array?vw(t,e,r):_w(t,e,r)}function Ar(t,e=0){return t instanceof Uint8Array?Sw(t,e):Aw(t,e)}var dp=Symbol.for("@achingbrain/uint8arraylist");function hp(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function No(t){return!!t?.[dp]}var Qe=class t{constructor(...e){Object.defineProperty(this,dp,{value:!0}),this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(No(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(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(No(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(e){let r=hp(this.bufs,e);return r.buf[r.index]}set(e,r){let n=hp(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(No(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:i}=this._subList(e,r);return Oe(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Oe(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new t;return s.length=i,s.bufs=n,s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!No(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.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 s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){l=Math.max(1,d-a[p]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Be(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var pp={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var fs;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(fs||(fs={}));var gi=class t{static createFromProtobuf=async e=>{let r=fs.decode(e),n=await pi(r.publicKey);return new t({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(e,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=e.domain,i=e.codec,s=e.marshal(),o=mp(n,i,s),c=await(await ui(r.privateKey)).sign(o.subarray());return new t({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(e,r)=>{let n=await t.createFromProtobuf(e);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",pp.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=fs.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Be(this.marshal(),e.marshal())}async validate(e){let r=mp(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ss(this.peerId.publicKey).verify(r.subarray(),this.signature)}},mp=(t,e,r)=>{let n=z(t),i=Pt(n.byteLength),s=Pt(e.length),o=Pt(r.length);return new Qe(i,n,s,e,o,r)};function yp(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}var ko=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();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(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var gp=45,Iw=15,xi=new ko;function Ku(t){if(!(t.length>Iw))return xi.new(t).parseWith(()=>xi.readIPv4Addr())}function Vu(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>gp))return xi.new(t).parseWith(()=>xi.readIPv6Addr())}function Oo(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>gp))return xi.new(t).parseWith(()=>xi.readIPAddr())}var T8=parseInt("0xFFFF",16),B8=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Mo(t){return!!Ku(t)}function Uo(t){return!!Vu(t)}function Ei(t){return!!Oo(t)}var bp=Mo,Lw=Uo,qu=function(t){let e=0;if(t=t.toString().trim(),bp(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Lw(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=bp(r[n]),o;s&&(o=qu(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(o.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 s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},wp=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var bi={},$u={},Dw=[[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"]];Dw.forEach(t=>{let e=Nw(...t);$u[e.code]=e,bi[e.name]=e});function Nw(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function Ee(t){if(typeof t=="number"){if($u[t]!=null)return $u[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(bi[t]!=null)return bi[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var dT=Ee("ip4"),pT=Ee("ip6"),mT=Ee("ipcidr");function zu(t,e){switch(Ee(t).code){case 4:case 41:return Ow(e);case 42:return Sp(e);case 6:case 273:case 33:case 132:return Ip(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Sp(e);case 421:return Kw(e);case 444:return Ap(e);case 445:return Ap(e);case 466:return Fw(e);default:return X(e,"base16")}}function Gu(t,e){switch(Ee(t).code){case 4:return vp(e);case 41:return vp(e);case 42:return _p(e);case 6:case 273:case 33:case 132:return Yu(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return _p(e);case 421:return Mw(e);case 444:return Vw(e);case 445:return qw(e);case 466:return Uw(e);default:return z(e,"base16")}}var Hu=Object.values(Nr).map(t=>t.decoder),kw=function(){let t=Hu[0].or(Hu[1]);return Hu.slice(2).forEach(e=>t=t.or(e)),t}();function vp(t){if(!Ei(t))throw new Error("invalid ip address");return qu(t)}function Ow(t){let e=wp(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Ei(e))throw new Error("invalid ip address");return e}function Yu(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Ip(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function _p(t){let e=z(t),r=Uint8Array.from(Pt(e.length));return Oe([r,e],r.length+e.length)}function Sp(t){let e=Ar(t);if(t=t.slice(xt(e)),t.length!==e)throw new Error("inconsistent lengths");return X(t)}function Mw(t){let e;t[0]==="Q"||t[0]==="1"?e=ln(Te.decode(`z${t}`)).bytes:e=Mt.parse(t).multihash.bytes;let r=Uint8Array.from(Pt(e.length));return Oe([r,e],r.length+e.length)}function Uw(t){let e=kw.decode(t),r=Uint8Array.from(Pt(e.length));return Oe([r,e],r.length+e.length)}function Fw(t){let e=Ar(t),r=t.slice(xt(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function Kw(t){let e=Ar(t),r=t.slice(xt(e));if(r.length!==e)throw new Error("inconsistent lengths");return X(r,"base58btc")}function Vw(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=bt.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Yu(n);return Oe([r,i],r.length+i.length)}function qw(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=bt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Yu(n);return Oe([r,i],r.length+i.length)}function Ap(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=X(e,"base32"),i=Ip(r);return`${n}:${i}`}function Rp(t){t=Wu(t);let e=[],r=[],n=null,i=t.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<i.length;s++){let o=i[s],a=Ee(o);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw Tp("invalid address: "+t);if(a.path===!0){n=Wu(i.slice(s).join("/")),e.push([a.code,Gu(a.code,n)]),r.push([a.code,n]);break}let c=Gu(a.code,i[s]);e.push([a.code,c]),r.push([a.code,zu(a.code,c)])}return{string:Cp(r),bytes:Xu(e),tuples:e,stringTuples:r,path:n}}function Qu(t){let e=[],r=[],n=null,i=0;for(;i<t.length;){let s=Ar(t,i),o=xt(s),a=Ee(s),c=$w(a,t.slice(i+o));if(c===0){e.push([s]),r.push([s]),i+=o;continue}let u=t.slice(i+o,i+o+c);if(i+=c+o,i>t.length)throw Tp("Invalid address Uint8Array: "+X(t,"base16"));e.push([s,u]);let l=zu(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:Cp(r),tuples:e,stringTuples:r,path:n}}function Cp(t){let e=[];return t.map(r=>{let n=Ee(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Wu(e.join("/"))}function Xu(t){return Oe(t.map(e=>{let r=Ee(e[0]),n=Uint8Array.from(Pt(r.code));return e.length>1&&e[1]!=null&&(n=Oe([n,e[1]])),n}))}function $w(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=Ar(e instanceof Uint8Array?e:Uint8Array.from(e));return r+xt(r)}}function Wu(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Tp(t){return new Error("Error parsing address: "+t)}var Hw=Symbol.for("nodejs.util.inspect.custom"),zw=[Ee("dns").code,Ee("dns4").code,Ee("dns6").code,Ee("dnsaddr").code],ju=new Map,Bp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Bn(t){return!!t?.[Bp]}var Zu=class t{bytes;#e;#t;#r;#n;[Bp]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=Qu(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=Rp(e)}else if(Bn(e))r=Qu(e.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 e,r,n,i,s="",o=Ee("tcp"),a=Ee("udp"),c=Ee("ip4"),u=Ee("ip6"),l=Ee("dns6"),f=Ee("ip6zone");for(let[p,h]of this.stringTuples())p===f.code&&(s=`%${h??""}`),zw.includes(p)&&(r=o.name,i=443,n=`${h??""}${s}`,e=p===l.code?6:4),(p===o.code||p===a.code)&&(r=Ee(p).name,i=parseInt(h??"")),(p===c.code||p===u.code)&&(r=Ee(p).name,n=`${h??""}${s}`,e=p===u.code?6:4);if(e==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:e,host:n,transport:r,port:i}}protos(){return this.#t.map(([e])=>Object.assign({},Ee(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>Ee(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(Xu(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,i])=>{n===bi.p2p.code&&e.push([n,i]),n===bi["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(Te.decode(`z${n}`),"base58btc"):X(Mt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return Be(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=ju.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[Hw](){return`Multiaddr(${this.#e})`}};function He(t){return new Zu(t)}var Lp="libp2p-peer-record",Pp=Uint8Array.from([3,1]);var hs;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=it((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>nt(s,n.codec()),n.decode=s=>rt(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=it((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>nt(n,t.codec()),t.decode=n=>rt(n,t.codec())})(hs||(hs={}));var Ln=class t{static createFromProtobuf=e=>{let r=hs.decode(e),n=di(r.peerId),i=(r.addresses??[]).map(o=>He(o.multiaddr)),s=r.seq;return new t({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=Lp;static CODEC=Pp;peerId;multiaddrs;seqNumber;domain=t.DOMAIN;codec=t.CODEC;marshaled;constructor(e){let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=hs.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof t)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!yp(this.multiaddrs,e.multiaddrs))}};function Gw(t){return t[Symbol.asyncIterator]!=null}function Yw(t){if(Gw(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var ds=Yw;var el=ae(Np(),1);var ms=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},tl=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},kp=t=>globalThis.DOMException===void 0?new tl(t):new DOMException(t),Op=t=>{let e=t.reason===void 0?kp("This operation was aborted."):t.reason;return e instanceof Error?e:kp(e)};function rl(t,e,r,n){let i,s=new Promise((o,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){o(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(Op(c)),c.addEventListener("abort",()=>{a(Op(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new ms(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{o(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function nl(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Pn=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Ir,il=class{constructor(){Ir.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&Pn(this,Ir,"f")[this.size-1].priority>=r.priority){Pn(this,Ir,"f").push(n);return}let i=nl(Pn(this,Ir,"f"),n,(s,o)=>o.priority-s.priority);Pn(this,Ir,"f").splice(i,0,n)}dequeue(){let e=Pn(this,Ir,"f").shift();return e?.run}filter(e){return Pn(this,Ir,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return Pn(this,Ir,"f").length}};Ir=new WeakMap;var Mp=il;var Le=function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},K=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Me,gs,xs,zr,zo,Es,Ko,$t,ys,At,Vo,It,bs,Hr,qo,Up,Fp,qp,Kp,Vp,$o,sl,ol,Go,$p,Ho,Yo=class extends Error{},al=class extends el.default{constructor(e){var r,n,i,s;if(super(),Me.add(this),gs.set(this,void 0),xs.set(this,void 0),zr.set(this,0),zo.set(this,void 0),Es.set(this,void 0),Ko.set(this,0),$t.set(this,void 0),ys.set(this,void 0),At.set(this,void 0),Vo.set(this,void 0),It.set(this,0),bs.set(this,void 0),Hr.set(this,void 0),qo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Mp,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);Le(this,gs,e.carryoverConcurrencyCount,"f"),Le(this,xs,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),Le(this,zo,e.intervalCap,"f"),Le(this,Es,e.interval,"f"),Le(this,At,new e.queueClass,"f"),Le(this,Vo,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,Le(this,qo,e.throwOnTimeout===!0,"f"),Le(this,Hr,e.autoStart===!1,"f")}get concurrency(){return K(this,bs,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);Le(this,bs,e,"f"),K(this,Me,"m",Go).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,qo,"f"),...r},new Promise((n,i)=>{K(this,At,"f").enqueue(async()=>{var s,o,a;Le(this,It,(o=K(this,It,"f"),o++,o),"f"),Le(this,zr,(a=K(this,zr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new Yo("The task was aborted.");let c=e({signal:r.signal});r.timeout&&(c=rl(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Me,"m",$p).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof ms&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Me,"m",qp).call(this)}},r),this.emit("add"),K(this,Me,"m",$o).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return K(this,Hr,"f")?(Le(this,Hr,!1,"f"),K(this,Me,"m",Go).call(this),this):this}pause(){Le(this,Hr,!0,"f")}clear(){Le(this,At,new(K(this,Vo,"f")),"f")}async onEmpty(){K(this,At,"f").size!==0&&await K(this,Me,"m",Ho).call(this,"empty")}async onSizeLessThan(e){K(this,At,"f").size<e||await K(this,Me,"m",Ho).call(this,"next",()=>K(this,At,"f").size<e)}async onIdle(){K(this,It,"f")===0&&K(this,At,"f").size===0||await K(this,Me,"m",Ho).call(this,"idle")}get size(){return K(this,At,"f").size}sizeBy(e){return K(this,At,"f").filter(e).length}get pending(){return K(this,It,"f")}get isPaused(){return K(this,Hr,"f")}};gs=new WeakMap,xs=new WeakMap,zr=new WeakMap,zo=new WeakMap,Es=new WeakMap,Ko=new WeakMap,$t=new WeakMap,ys=new WeakMap,At=new WeakMap,Vo=new WeakMap,It=new WeakMap,bs=new WeakMap,Hr=new WeakMap,qo=new WeakMap,Me=new WeakSet,Up=function(){return K(this,xs,"f")||K(this,zr,"f")<K(this,zo,"f")},Fp=function(){return K(this,It,"f")<K(this,bs,"f")},qp=function(){var e;Le(this,It,(e=K(this,It,"f"),e--,e),"f"),K(this,Me,"m",$o).call(this),this.emit("next")},Kp=function(){K(this,Me,"m",ol).call(this),K(this,Me,"m",sl).call(this),Le(this,ys,void 0,"f")},Vp=function(){let e=Date.now();if(K(this,$t,"f")===void 0){let r=K(this,Ko,"f")-e;if(r<0)Le(this,zr,K(this,gs,"f")?K(this,It,"f"):0,"f");else return K(this,ys,"f")===void 0&&Le(this,ys,setTimeout(()=>{K(this,Me,"m",Kp).call(this)},r),"f"),!0}return!1},$o=function(){if(K(this,At,"f").size===0)return K(this,$t,"f")&&clearInterval(K(this,$t,"f")),Le(this,$t,void 0,"f"),this.emit("empty"),K(this,It,"f")===0&&this.emit("idle"),!1;if(!K(this,Hr,"f")){let e=!K(this,Me,"a",Vp);if(K(this,Me,"a",Up)&&K(this,Me,"a",Fp)){let r=K(this,At,"f").dequeue();return r?(this.emit("active"),r(),e&&K(this,Me,"m",sl).call(this),!0):!1}}return!1},sl=function(){K(this,xs,"f")||K(this,$t,"f")!==void 0||(Le(this,$t,setInterval(()=>{K(this,Me,"m",ol).call(this)},K(this,Es,"f")),"f"),Le(this,Ko,Date.now()+K(this,Es,"f"),"f"))},ol=function(){K(this,zr,"f")===0&&K(this,It,"f")===0&&K(this,$t,"f")&&(clearInterval(K(this,$t,"f")),Le(this,$t,void 0,"f")),Le(this,zr,K(this,gs,"f")?K(this,It,"f"):0,"f"),K(this,Me,"m",Go).call(this)},Go=function(){for(;K(this,Me,"m",$o).call(this););},$p=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new Yo("The task was aborted."))},{once:!0})})},Ho=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Gr=al;var cl=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},ul=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Hp=t=>globalThis.DOMException===void 0?new ul(t):new DOMException(t),zp=t=>{let e=t.reason===void 0?Hp("This operation was aborted."):t.reason;return e instanceof Error?e:Hp(e)};function ll(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,c=new Promise((u,l)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(zp(d)),d.addEventListener("abort",()=>{l(zp(d))})}if(r===Number.POSITIVE_INFINITY){t.then(u,l);return}let f=new cl;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await t)}catch(d){l(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var fl="lock:worker:request-read",hl="lock:worker:release-read",dl="lock:master:grant-read",pl="lock:worker:request-write",ml="lock:worker:release-write",yl="lock:master:grant-write";var Yr={},wi=t=>{t.addEventListener("message",e=>{wi.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{wi.dispatchEvent("message",t,e)})};wi.addEventListener=(t,e)=>{Yr[t]==null&&(Yr[t]=[]),Yr[t].push(e)};wi.removeEventListener=(t,e)=>{Yr[t]!=null&&(Yr[t]=Yr[t].filter(r=>r===e))};wi.dispatchEvent=function(t,e,r){Yr[t]!=null&&Yr[t].forEach(n=>n(e,r))};var gl=wi;var Gp=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)}))}}))},Yp=(t,e,r,n)=>async()=>{let i=To();return globalThis.postMessage({type:e,identifier:i,name:t}),await new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},Xw={singleProcess:!1},Wp=t=>{if(t=Object.assign({},Xw,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return gl.addEventListener("message",Gp(r,"requestReadLock",fl,hl,dl)),gl.addEventListener("message",Gp(r,"requestWriteLock",pl,ml,yl)),r}return{isWorker:!0,readLock:r=>Yp(r,fl,dl,hl),writeLock:r=>Yp(r,pl,yl,ml)}};var Dn={},Wr;async function xl(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await ll((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var Zw=(t,e)=>{if(Wr.isWorker===!0)return{readLock:Wr.readLock(t,e),writeLock:Wr.writeLock(t,e)};let r=new Gr({concurrency:1}),n;return{async readLock(){if(n!=null)return await xl(n,e);n=new Gr({concurrency:e.concurrency,autoStart:!1});let i=n,s=xl(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await xl(r,e)}}},jw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function El(t){let e=Object.assign({},jw,t);return Wr==null&&(Wr=Wp(e),Wr.isWorker!==!0&&(Wr.addEventListener("requestReadLock",r=>{Dn[r.data.name]!=null&&Dn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Wr.addEventListener("requestWriteLock",async r=>{Dn[r.data.name]!=null&&Dn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Dn[e.name]==null&&(Dn[e.name]=Zw(e.name,e)),Dn[e.name]}var st={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var vi;(function(t){let e;(function(i){let s;i.codec=()=>(s==null&&(s=it((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>nt(o,i.codec()),i.decode=o=>rt(o,i.codec())})(e=t.Peer$metadataEntry||(t.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=it((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Qo.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=Qo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>nt(o,i.codec()),i.decode=o=>rt(o,i.codec())})(r=t.Peer$tagsEntry||(t.Peer$tagsEntry={}));let n;t.codec=()=>(n==null&&(n=it((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Wo.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),t.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),t.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(Wo.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=t.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=t.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),t.encode=i=>nt(i,t.codec()),t.decode=i=>rt(i,t.codec())})(vi||(vi={}));var Wo;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(Wo||(Wo={}));var Qo;(function(t){let e;t.codec=()=>(e==null&&(e=it((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>nt(r,t.codec()),t.decode=r=>rt(r,t.codec())})(Qo||(Qo={}));function _i(t,e){let r=vi.decode(e);r.publicKey!=null&&t.publicKey==null&&(t=$d({...t,publicKey:t.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:t,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:He(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var bl="/peers/";function Si(t){if(!Co(t)||t.type==null)throw new w("Invalid PeerId",st.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new rr(`${bl}${e}`)}async function Qp(t,e,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=He(i.multiaddr)),!Bn(i.multiaddr))throw new w("Multiaddr was invalid",st.ERR_INVALID_PARAMETERS);if(!await e(t,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function Zo(t,e,r,n){if(e==null)throw new w("Invalid PeerData",st.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&t.publicKey!=null&&!Be(e.publicKey,t.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",st.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!t.equals(i.id))throw new w("peer id did not match existing peer id",st.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(o=new Set(e.protocols)),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Xo(f,{validate:Xp})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Xo(f,{validate:Zp,map:jp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(r==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(o=new Set([...o,...e.protocols])),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[d,p]of f)p==null?a.delete(d):a.set(d,p);a=Xo([...a.entries()],{validate:Xp})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),d=new Map(c);for(let[p,h]of f)h==null?d.delete(p):d.set(p,h);c=Xo([...d.entries()],{validate:Zp,map:jp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let l={addresses:await Qp(t,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,d)=>f.localeCompare(d)),metadata:a,tags:c,publicKey:i?.id.publicKey??e.publicKey??t.publicKey,peerRecordEnvelope:u};return t.type!=="RSA"&&delete l.publicKey,l}function Xo(t,e){let r=new Map;for(let[n,i]of t)i!=null&&e.validate(n,i);for(let[n,i]of t.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,e.map?.(n,i)??i);return r}function Xp(t,e){if(typeof t!="string")throw new w("Metadata key must be a string",st.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",st.ERR_INVALID_PARAMETERS)}function Zp(t,e){if(typeof t!="string")throw new w("Tag name must be a string",st.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new w("Tag value must be an integer",st.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new w("Tag value must be between 0-100",st.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new w("Tag ttl must be an integer",st.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new w("Tag ttl must be between greater than 0",st.ERR_INVALID_PARAMETERS)}}function jp(t,e){let r;return e.expiry!=null&&(r=e.expiry),e.ttl!=null&&(r=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:r}}function jo(t,e,r){let n=t.toString().split("/")[2],i=bt.decode(n),s=di(i),o=r.get(s);if(o!=null)return o;let a=_i(s,e);return r.set(s,a),a}function Jw(t,e){return t==null?{}:{prefix:bl,filters:(t.filters??[]).map(r=>({key:n,value:i})=>r(jo(n,i,e))),orders:(t.orders??[]).map(r=>(n,i)=>r(jo(n.key,n.value,e),jo(i.key,i.value,e)))}}var Jo=class{peerId;datastore;lock;addressFilter;constructor(e,r={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=r.addressFilter,this.lock=El({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(Si(e))}async delete(e){if(this.peerId.equals(e))throw new w("Cannot delete self peer",st.ERR_INVALID_PARAMETERS);await this.datastore.delete(Si(e))}async load(e){let r=await this.datastore.get(Si(e));return _i(e,r)}async save(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Zo(e,r,"patch",{addressFilter:this.addressFilter});return this.#t(e,s,n,i)}async patch(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Zo(e,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async merge(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Zo(e,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async*all(e){let r=new qt;for await(let{key:n,value:i}of this.datastore.query(Jw(e??{},r))){let s=jo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let r=await this.datastore.get(Si(e)),n=_i(e,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#t(e,r,n,i){let s=vi.encode(r);return n!=null&&Be(s,n)?{peer:_i(e,s),previous:i,updated:!1}:(await this.datastore.put(Si(e),s),{peer:_i(e,s),previous:i,updated:!0})}};var ve=re("libp2p:peer-store"),ea=class{store;events;peerId;constructor(e,r={}){this.events=e.events,this.peerId=e.peerId,this.store=new Jo(e,r)}async forEach(e,r){ve.trace("forEach await read lock");let n=await this.store.lock.readLock();ve.trace("forEach got read lock");try{for await(let i of this.store.all(r))e(i)}finally{ve.trace("forEach release read lock"),n()}}async all(e){ve.trace("all await read lock");let r=await this.store.lock.readLock();ve.trace("all got read lock");try{return await ds(this.store.all(e))}finally{ve.trace("all release read lock"),r()}}async delete(e){ve.trace("delete await write lock");let r=await this.store.lock.writeLock();ve.trace("delete got write lock");try{await this.store.delete(e)}finally{ve.trace("delete release write lock"),r()}}async has(e){ve.trace("has await read lock");let r=await this.store.lock.readLock();ve.trace("has got read lock");try{return await this.store.has(e)}finally{ve.trace("has release read lock"),r()}}async get(e){ve.trace("get await read lock");let r=await this.store.lock.readLock();ve.trace("get got read lock");try{return await this.store.load(e)}finally{ve.trace("get release read lock"),r()}}async save(e,r){ve.trace("save await write lock");let n=await this.store.lock.writeLock();ve.trace("save got write lock");try{let i=await this.store.save(e,r);return this.#e(e,i),i.peer}finally{ve.trace("save release write lock"),n()}}async patch(e,r){ve.trace("patch await write lock");let n=await this.store.lock.writeLock();ve.trace("patch got write lock");try{let i=await this.store.patch(e,r);return this.#e(e,i),i.peer}finally{ve.trace("patch release write lock"),n()}}async merge(e,r){ve.trace("merge await write lock");let n=await this.store.lock.writeLock();ve.trace("merge got write lock");try{let i=await this.store.merge(e,r);return this.#e(e,i),i.peer}finally{ve.trace("merge release write lock"),n()}}async consumePeerRecord(e,r){let n=await gi.openAndCertify(e,Ln.DOMAIN);if(r?.equals(n.peerId)===!1)return ve("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=Ln.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await gi.createFromProtobuf(s.peerRecordEnvelope),a=Ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return ve("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#e(e,r){r.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function ev(t){return t[Symbol.asyncIterator]!=null}function tv(t){if(ev(t))return(async()=>{for await(let e of t);})();for(let e of t);}var wl=tv;function rv(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var ta=rv;function nv(t){return t[Symbol.asyncIterator]!=null}function iv(t,e){if(nv(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=ta(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let o=e;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var Ht=iv;function sv(t){return t[Symbol.asyncIterator]!=null}function ov(t,e){return sv(t)?async function*(){yield*(await ds(t)).sort(e)}():function*(){yield*ds(t).sort(e)}()}var vl=ov;function av(t){return t[Symbol.asyncIterator]!=null}function cv(t,e){return av(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var _l=cv;var ra=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await wl(this.putMany(e,n)),e=[],await wl(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=Ht(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>Ht(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>vl(i,s),n)),e.offset!=null){let i=0,s=e.offset;n=Ht(n,()=>i++>=s)}return e.limit!=null&&(n=_l(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=Ht(n,s=>s.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>Ht(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>vl(i,s),n)),e.offset!=null){let i=e.offset,s=0;n=Ht(n,()=>s++>=i)}return e.limit!=null&&(n=_l(n,e.limit)),n}};var tm=ae(Sl(),1);function rm(t){return t=t??new Error("Not Found"),(0,tm.default)(t,"ERR_NOT_FOUND")}var na=class extends ra{data;constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw rm();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new rr(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new rr(e)}};function nm(t,e){let r;return function(){let n=function(){r=void 0,t()};clearTimeout(r),r=setTimeout(n,e)}}var fv=re("libp2p:address-manager"),hv=t=>t;function Al(t,e){let r=t.getPeerId();return r!=null&&fe(r).equals(e)&&(t=t.decapsulate(He(`/p2p/${e.toString()}`))),t}var ia=class{components;listen;announce;observed;announceFilter;constructor(e,r={}){let{listen:n=[],announce:i=[]}=r;this.components=e,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??hv,this._updatePeerStoreAddresses=nm(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>He(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(r=>{fv.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(e=>He(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>He(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>He(e))}addObservedAddr(e){e=Al(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=Al(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=Al(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>He(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function im(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var Il=class{components={};_started=!1;constructor(e={}){this.components={};for(let[r,n]of Object.entries(e))this.components[r]=n}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(r=>im(r)).map(async r=>{await r[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},dv=["metrics","connectionProtector"],pv=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function sm(t={}){let e=new Il(t);return new Proxy(e,{get(n,i,s){if(typeof i=="string"&&!pv.includes(i)){let o=e.components[i];if(o==null&&!dv.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?e.components[i]=s:Reflect.set(n,i,s),!0}})}var hm=ae(om(),1);var am="[a-fA-F\\d:]",Qr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${am})|(?<=${am})(?=\\s|$))`:"",zt="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Ve="[a-fA-F\\d]{1,4}",sa=`
36
+ RETURNING points, expire;`,values:[t,r,s,Date.now()]})}_get(t){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
37
+ SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Pm.exports=Fl});var Nm=V(()=>{});var Om=V((v6,km)=>{km.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var Um=V((S6,Mm)=>{var wv=Om(),Kl=Re();Mm.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new Kl(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new wv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Kl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Kl(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var ql=V((A6,Km)=>{var vv=vs(),_v=Um(),Fm=Re(),Vl=class extends vv{constructor(t={}){super(t),this._memoryStorage=new _v}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(t,r=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(t,r=1,n={}){let i=this.getKey(t);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new Fm(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new Fm(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Km.exports=Vl});var Ym=V((I6,Gm)=>{var Vm=Nm(),Sv=Ui(),Av=vs(),$m=ql(),Iv=Re(),Ne="rate_limiter_flexible",Ci=null,qm=function(e,t,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},e.send({channel:Ne,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},Hm=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&Hm.call(this,e)},30)},Ii=function(e,t,r,n,i){let s={channel:Ne,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):Hm.call(this,s)},zm=function(e,t){if(!t||t.channel!==Ne||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{qm(e,t,"resolve",n)}).catch(n=>{qm(e,t,"reject",n)})},Rv=function(e){if(!e||e.channel!==Ne||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new Iv(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},Cv=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ri=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=Sv.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},$l=class{constructor(){if(Ci)return Ci;this._rateLimiters={},Vm.setMaxListeners(0),Vm.on("message",(t,r)=>{r&&r.channel===Ne&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new $m(r.opts)),t.send({channel:Ne,type:"init",keyPrefix:r.opts.keyPrefix})):zm.call(this,t,r)}),Ci=this}},Hl=class{constructor(t){if(Ci)return Ci;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Ne&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new $m(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Ne,channel:Ne,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Ne,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};zm.call(this,o,s)}})}),Ci=this}},zl=class extends Av{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Ne&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Rv.call(this,r)}),process.send({channel:Ne,type:"init",opts:Cv.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"consume",o,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"penalty",o,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"reward",o,t,r,n)})}block(t,r,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"block",o,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"get",s,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"delete",s,t,r)})}};Gm.exports={RateLimiterClusterMaster:$l,RateLimiterClusterMasterPM2:Hl,RateLimiterCluster:zl}});var Qm=V((R6,Wm)=>{var Tv=Ai(),Bv=Re(),Gl=class extends Tv{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new Bv;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(t,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,r,u,(d,p)=>{if(d||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let h=Object.assign({},s);h.attemptNumber=h.attemptNumber?h.attemptNumber+1:1,this._upsert(t,r,n,i,h).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let h={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(h)})}):this.client.get(`${t}_expire`,(d,p)=>{if(d)a(d);else{let h=p===!1?0:p,m={consumedPoints:f,msBeforeNext:h>=0?Math.max(h-c,0):-1};o(m)}})})})}_get(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(t){return new Promise((r,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${t}_expire`,o=>{o?n(o):r(s)})})})}};Wm.exports=Gl});var Jm=V((T6,Zm)=>{var Xm=Re();Zm.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Xm(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Xm(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var ty=V((L6,jm)=>{var Lv=vs();jm.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof Lv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var ry=V((D6,ey)=>{ey.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var oy=V((k6,sy)=>{var ny=ry(),iy=4294967295,Yl="limiter";sy.exports=class{constructor(t,r={maxQueueSize:iy}){this._queueLimiters={KEY_DEFAULT:new fa(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=Yl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=Yl){return this._queueLimiters[r]||(this._queueLimiters[r]=new fa(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var fa=class{constructor(t,r={maxQueueSize:iy,key:Yl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new ny(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new ny(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var cy=V((M6,ay)=>{var Wl=Re();ay.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return t?new Wl(t.remainingPoints,Math.min(t.msBeforeNext,r?r.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof Wl?this._burstLimiter.consume(t,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Wl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var ly=V((U6,uy)=>{var Pv=Im(),Dv=Tm(),Nv=Lm(),kv=Dm(),{RateLimiterClusterMaster:Ov,RateLimiterClusterMasterPM2:Mv,RateLimiterCluster:Uv}=Ym(),Fv=ql(),Kv=Qm(),Vv=Jm(),qv=ty(),$v=oy(),Hv=cy(),zv=Re();uy.exports={RateLimiterRedis:Pv,RateLimiterMongo:Dv,RateLimiterMySQL:Nv,RateLimiterPostgres:kv,RateLimiterMemory:Fv,RateLimiterMemcache:Kv,RateLimiterClusterMaster:Ov,RateLimiterClusterMasterPM2:Mv,RateLimiterCluster:Uv,RLWrapperBlackAndWhite:Vv,RateLimiterUnion:qv,RateLimiterQueue:$v,BurstyRateLimiter:Hv,RateLimiterRes:zv}});var __={};Ht(__,{createLibp2p:()=>v_});var JR=mt(Mi(),1),jR=mt(M0(),1);var Gn=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var bo=mt(dt(),1);function cn(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var uc={};Ht(uc,{base10:()=>x1});function d1(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 s=e.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,y=0,g=0,x=h.length;g!==x&&h[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=h[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=e.charAt(C[D]);return Y}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var y=0,g=0;h[m]===c;)y++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var C=r[h.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(h[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var p1=d1,m1=p1,U0=m1;var j_=new Uint8Array(0);var F0=(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},fr=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 K0=e=>new TextEncoder().encode(e),V0=e=>new TextDecoder().decode(e);var sc=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")}},oc=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 $0(this,t)}},ac=class{constructor(t){this.decoders=t}or(t){return $0(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`)}},$0=(e,t)=>new ac({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),cc=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new sc(t,r,n),this.decoder=new oc(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Yn=({name:e,prefix:t,encode:r,decode:n})=>new cc(e,t,r,n),Pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=U0(r,t);return Yn({prefix:e,name:t,encode:n,decode:s=>fr(i(s))})},y1=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let s=e.length;for(;e[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[e[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},g1=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],o+=8;o>r;)o-=r,s+=t[i&a>>o];if(o&&(s+=t[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Pt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Yn({prefix:t,name:e,encode(i){return g1(i,n,r)},decode(i){return y1(i,n,r,e)}});var x1=Pr({prefix:"9",name:"base10",alphabet:"0123456789"});var lc={};Ht(lc,{base16:()=>E1,base16upper:()=>b1});var E1=Pt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),b1=Pt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var fc={};Ht(fc,{base2:()=>w1});var w1=Pt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var hc={};Ht(hc,{base256emoji:()=>I1});var H0=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}"),v1=H0.reduce((e,t,r)=>(e[r]=t,e),[]),_1=H0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function S1(e){return e.reduce((t,r)=>(t+=v1[r],t),"")}function A1(e){let t=[];for(let r of e){let n=_1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var I1=Yn({prefix:"\u{1F680}",name:"base256emoji",encode:S1,decode:A1});var dc={};Ht(dc,{base32:()=>Ee,base32hex:()=>B1,base32hexpad:()=>P1,base32hexpadupper:()=>D1,base32hexupper:()=>L1,base32pad:()=>C1,base32padupper:()=>T1,base32upper:()=>R1,base32z:()=>N1});var Ee=Pt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),R1=Pt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),C1=Pt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),T1=Pt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),B1=Pt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),L1=Pt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),P1=Pt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),D1=Pt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),N1=Pt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var pc={};Ht(pc,{base36:()=>k1,base36upper:()=>O1});var k1=Pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),O1=Pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var mc={};Ht(mc,{base58btc:()=>Ct,base58flickr:()=>M1});var Ct=Pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),M1=Pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var gc={};Ht(gc,{base64:()=>un,base64pad:()=>U1,base64url:()=>yc,base64urlpad:()=>F1});var un=Pt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),U1=Pt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yc=Pt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),F1=Pt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xc={};Ht(xc,{base8:()=>K1});var K1=Pt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ec={};Ht(Ec,{identity:()=>V1});var V1=Yn({prefix:"\0",name:"identity",encode:e=>V0(e),decode:e=>K0(e)});var pS=new TextEncoder,mS=new TextDecoder;var wc={};Ht(wc,{identity:()=>Dr});var H1=Y0,z0=128,z1=127,G1=~z1,Y1=Math.pow(2,31);function Y0(e,t,r){t=t||[],r=r||0;for(var n=r;e>=Y1;)t[r++]=e&255|z0,e/=128;for(;e&G1;)t[r++]=e&255|z0,e>>>=7;return t[r]=e|0,Y0.bytes=r-n+1,t}var W1=bc,Q1=128,G0=127;function bc(e,n){var r=0,n=n||0,i=0,s=n,o,a=e.length;do{if(s>=a)throw bc.bytes=0,new RangeError("Could not decode varint");o=e[s++],r+=i<28?(o&G0)<<i:(o&G0)*Math.pow(2,i),i+=7}while(o>=Q1);return bc.bytes=s-n,r}var X1=Math.pow(2,7),Z1=Math.pow(2,14),J1=Math.pow(2,21),j1=Math.pow(2,28),t2=Math.pow(2,35),e2=Math.pow(2,42),r2=Math.pow(2,49),n2=Math.pow(2,56),i2=Math.pow(2,63),s2=function(e){return e<X1?1:e<Z1?2:e<J1?3:e<j1?4:e<t2?5:e<e2?6:e<r2?7:e<n2?8:e<i2?9:10},o2={encode:H1,decode:W1,encodingLength:s2},a2=o2,Vi=a2;var qi=(e,t=0)=>[Vi.decode(e,t),Vi.decode.bytes],Wn=(e,t,r=0)=>(Vi.encode(e,t,r),t),Qn=e=>Vi.encodingLength(e);var Je=(e,t)=>{let r=t.byteLength,n=Qn(e),i=n+Qn(r),s=new Uint8Array(i+r);return Wn(e,s,0),Wn(r,s,n),s.set(t,i),new Xn(e,r,t,s)},ln=e=>{let t=fr(e),[r,n]=qi(t),[i,s]=qi(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Xn(r,i,o,t)},W0=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&F0(e.bytes,r.bytes)}},Xn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Q0=0,c2="identity",X0=fr,u2=e=>Je(Q0,X0(e)),Dr={code:Q0,name:c2,encode:X0,digest:u2};var Sc={};Ht(Sc,{sha256:()=>te,sha512:()=>l2});var _c=({name:e,code:t,encode:r})=>new vc(e,t,r),vc=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?Je(this.code,r):r.then(n=>Je(this.code,n))}else throw Error("Unknown type, must be binary type")}};var J0=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),te=_c({name:"sha2-256",code:18,encode:J0("SHA-256")}),l2=_c({name:"sha2-512",code:19,encode:J0("SHA-512")});var j0=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return h2(r,Ac(e),t||Ct.encoder);default:return d2(r,Ac(e),t||Ee.encoder)}};var th=new WeakMap,Ac=e=>{let t=th.get(e);if(t==null){let r=new Map;return th.set(e,r),r}return t},Me=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!==$i)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==p2)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=Je(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&&W0(t.multihash,n.multihash)}toString(t){return j0(this,t)}toJSON(){return{"/":j0(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:s,bytes:o}=r;return new e(n,i,s,o||eh(n,i,s.bytes))}else if(r[m2]===!0){let{version:n,multihash:i,code:s}=r,o=ln(i);return e.create(n,s,o)}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!==$i)throw new Error(`Version 0 CID must use dag-pb (code: ${$i}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=eh(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$i,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=fr(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new Xn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(o):e.createV1(r.codec,o),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,d]=qi(t.subarray(r));return r+=d,f},i=n(),s=$i;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(t,r){let[n,i]=f2(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ac(s).set(n,t),s}},f2=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ct;return[Ct.prefix,r.decode(`${Ct.prefix}${e}`)]}case Ct.prefix:{let r=t||Ct;return[Ct.prefix,r.decode(e)]}case Ee.prefix:{let r=t||Ee;return[Ee.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)]}}},h2=(e,t,r)=>{let{prefix:n}=r;if(n!==Ct.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},d2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},$i=112,p2=18,eh=(e,t,r)=>{let n=Qn(e),i=n+Qn(t),s=new Uint8Array(i+r.byteLength);return Wn(e,s,0),Wn(t,s,n),s.set(r,i),s},m2=Symbol.for("@ipld/js-cid/CID");var Nr={...Ec,...fc,...xc,...uc,...lc,...dc,...pc,...mc,...gc,...hc},LS={...Sc,...wc};function hr(e=0){return globalThis.Buffer?.alloc!=null?cn(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ae(e=0){return globalThis.Buffer?.allocUnsafe!=null?cn(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function nh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var rh=nh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Ic=nh("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=ae(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),y2={utf8:rh,"utf-8":rh,hex:Nr.base16,latin1:Ic,ascii:Ic,binary:Ic,...Nr},Js=y2;function z(e,t="utf8"){let r=Js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?cn(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var nu={};Ht(nu,{Ed25519PrivateKey:()=>gn,Ed25519PublicKey:()=>Xi,generateKeyPair:()=>LE,generateKeyPairFromSeed:()=>Oh,unmarshalEd25519PrivateKey:()=>TE,unmarshalEd25519PublicKey:()=>BE});function Tt(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}function ih(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Rc(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 sh(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ih(e.outputLen),ih(e.blockLen)}function Zn(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 oh(e,t){Rc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var js=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var ah=e=>e instanceof Uint8Array;var to=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ue=(e,t)=>e<<32-t|e>>>t,g2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!g2)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 Hi(e){if(typeof e=="string"&&(e=Cc(e)),!ah(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function eo(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!ah(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Jn=class{clone(){return this._cloneInto()}},zS={}.toString;function ro(e){let t=n=>e().update(Hi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function jn(e=32){if(js&&typeof js.getRandomValues=="function")return js.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function x2(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,o,n),e.setUint32(t+u,a,n)}var ti=class extends Jn{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=to(this.buffer)}update(t){Zn(this);let{view:r,buffer:n,blockLen:i}=this;t=Hi(t);let s=t.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=to(t);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Zn(this),oh(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;x2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=to(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}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:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};var no=BigInt(4294967295),Tc=BigInt(32);function ch(e,t=!1){return t?{h:Number(e&no),l:Number(e>>Tc&no)}:{h:Number(e>>Tc&no)|0,l:Number(e&no)|0}}function E2(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:o}=ch(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}var b2=(e,t)=>BigInt(e>>>0)<<Tc|BigInt(t>>>0),w2=(e,t,r)=>e>>>r,v2=(e,t,r)=>e<<32-r|t>>>r,_2=(e,t,r)=>e>>>r|t<<32-r,S2=(e,t,r)=>e<<32-r|t>>>r,A2=(e,t,r)=>e<<64-r|t>>>r-32,I2=(e,t,r)=>e>>>r-32|t<<64-r,R2=(e,t)=>t,C2=(e,t)=>e,T2=(e,t,r)=>e<<r|t>>>32-r,B2=(e,t,r)=>t<<r|e>>>32-r,L2=(e,t,r)=>t<<r-32|e>>>64-r,P2=(e,t,r)=>e<<r-32|t>>>64-r;function D2(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var N2=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),k2=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,O2=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),M2=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,U2=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),F2=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var K2={fromBig:ch,split:E2,toBig:b2,shrSH:w2,shrSL:v2,rotrSH:_2,rotrSL:S2,rotrBH:A2,rotrBL:I2,rotr32H:R2,rotr32L:C2,rotlSH:T2,rotlSL:B2,rotlBH:L2,rotlBL:P2,add:D2,add3L:N2,add3H:k2,add4L:O2,add4H:M2,add5H:F2,add5L:U2},J=K2;var[V2,q2]=(()=>J.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))))(),kr=new Uint32Array(80),Or=new Uint32Array(80),Bc=class extends ti{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:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:p,Gl:h,Hh:m,Hl:y}=this;return[t,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y]}set(t,r,n,i,s,o,a,c,u,l,f,d,p,h,m,y){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=m|0,this.Hl=y|0}process(t,r){for(let b=0;b<16;b++,r+=4)kr[b]=t.getUint32(r),Or[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let C=kr[b-15]|0,_=Or[b-15]|0,S=J.rotrSH(C,_,1)^J.rotrSH(C,_,8)^J.shrSH(C,_,7),P=J.rotrSL(C,_,1)^J.rotrSL(C,_,8)^J.shrSL(C,_,7),D=kr[b-2]|0,Y=Or[b-2]|0,W=J.rotrSH(D,Y,19)^J.rotrBH(D,Y,61)^J.shrSH(D,Y,6),H=J.rotrSL(D,Y,19)^J.rotrBL(D,Y,61)^J.shrSL(D,Y,6),et=J.add4L(P,H,Or[b-7],Or[b-16]),pt=J.add4H(et,S,W,kr[b-7],kr[b-16]);kr[b]=pt|0,Or[b]=et|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:p,Fl:h,Gh:m,Gl:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=J.rotrSH(f,d,14)^J.rotrSH(f,d,18)^J.rotrBH(f,d,41),_=J.rotrSL(f,d,14)^J.rotrSL(f,d,18)^J.rotrBL(f,d,41),S=f&p^~f&m,P=d&h^~d&y,D=J.add5L(x,_,P,q2[b],Or[b]),Y=J.add5H(D,g,C,S,V2[b],kr[b]),W=D|0,H=J.rotrSH(n,i,28)^J.rotrBH(n,i,34)^J.rotrBH(n,i,39),et=J.rotrSL(n,i,28)^J.rotrBL(n,i,34)^J.rotrBL(n,i,39),pt=n&s^n&a^s&a,Zt=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=h|0,p=f|0,h=d|0,{h:f,l:d}=J.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=J.add3L(W,et,Zt);n=J.add3H(T,Y,H,pt),i=T|0}({h:n,l:i}=J.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=J.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=J.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=J.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=J.add(this.Eh|0,this.El|0,f|0,d|0),{h:p,l:h}=J.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:m,l:y}=J.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=J.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,d,p,h,m,y,g,x)}roundClean(){kr.fill(0),Or.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 Lc=ro(()=>new Bc);var oo={};Ht(oo,{bitGet:()=>Q2,bitLen:()=>W2,bitMask:()=>zi,bitSet:()=>X2,bytesToHex:()=>dr,bytesToNumberBE:()=>pr,bytesToNumberLE:()=>Mr,concatBytes:()=>mr,createHmacDrbg:()=>Nc,ensureBytes:()=>Dt,equalBytes:()=>G2,hexToBytes:()=>hn,hexToNumber:()=>Dc,numberToBytesBE:()=>Ur,numberToBytesLE:()=>dn,numberToHexUnpadded:()=>fh,numberToVarBytesBE:()=>z2,utf8ToBytes:()=>Y2,validateObject:()=>je});var lh=BigInt(0),io=BigInt(1),$2=BigInt(2),so=e=>e instanceof Uint8Array,H2=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function dr(e){if(!so(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=H2[e[r]];return t}function fh(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Dc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function hn(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,s=e.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function pr(e){return Dc(dr(e))}function Mr(e){if(!so(e))throw new Error("Uint8Array expected");return Dc(dr(Uint8Array.from(e).reverse()))}function Ur(e,t){return hn(e.toString(16).padStart(t*2,"0"))}function dn(e,t){return Ur(e,t).reverse()}function z2(e){return hn(fh(e))}function Dt(e,t,r){let n;if(typeof t=="string")try{n=hn(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(so(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 mr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!so(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function G2(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 Y2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function W2(e){let t;for(t=0;e>lh;e>>=io,t+=1);return t}function Q2(e,t){return e>>BigInt(t)&io}var X2=(e,t,r)=>e|(r?io:lh)<<BigInt(t),zi=e=>($2<<BigInt(e-1))-io,Pc=e=>new Uint8Array(e),uh=e=>Uint8Array.from(e);function Nc(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=Pc(e),i=Pc(e),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Pc())=>{i=a(uh([0]),f),n=a(),f.length!==0&&(i=a(uh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,d=[];for(;f<t;){n=a();let p=n.slice();d.push(p),f+=n.length}return mr(...d)};return(f,d)=>{o(),c(f);let p;for(;!(p=d(u()));)c();return o(),p}}var Z2={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 je(e,t,r={}){let n=(i,s,o)=>{let a=Z2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(o&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var qt=BigInt(0),At=BigInt(1),pn=BigInt(2),J2=BigInt(3),kc=BigInt(4),hh=BigInt(5),dh=BigInt(8),j2=BigInt(9),tE=BigInt(16);function yt(e,t){let r=e%t;return r>=qt?r:t+r}function eE(e,t,r){if(r<=qt||t<qt)throw new Error("Expected power/modulo > 0");if(r===At)return qt;let n=At;for(;t>qt;)t&At&&(n=n*e%r),e=e*e%r,t>>=At;return n}function It(e,t,r){let n=e;for(;t-- >qt;)n*=n,n%=r;return n}function ao(e,t){if(e===qt||t<=qt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=yt(e,t),n=t,i=qt,s=At,o=At,a=qt;for(;r!==qt;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==At)throw new Error("invert: does not exist");return yt(i,t)}function rE(e){let t=(e-At)/pn,r,n,i;for(r=e-At,n=0;r%pn===qt;r/=pn,n++);for(i=pn;i<e&&eE(i,t,e)!==e-At;i++);if(n===1){let o=(e+At)/kc;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+At)/pn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),d=a.pow(c,r);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(d);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let h=a.pow(l,At<<BigInt(u-p-1));l=a.sqr(h),f=a.mul(f,h),d=a.mul(d,l),u=p}return f}}function nE(e){if(e%kc===J2){let t=(e+At)/kc;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%dh===hh){let t=(e-hh)/dh;return function(n,i){let s=n.mul(i,pn),o=n.pow(s,t),a=n.mul(i,o),c=n.mul(n.mul(a,pn),o),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%tE,rE(e)}var ph=(e,t)=>(yt(e,t)&At)===At,iE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Oc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=iE.reduce((n,i)=>(n[i]="function",n),t);return je(e,r)}function sE(e,t,r){if(r<qt)throw new Error("Expected power > 0");if(r===qt)return e.ONE;if(r===At)return t;let n=e.ONE,i=t;for(;r>qt;)r&At&&(n=e.mul(n,i)),i=e.sqr(i),r>>=At;return n}function oE(e,t){let r=new Array(t.length),n=t.reduce((s,o,a)=>e.is0(o)?s:(r[a]=s,e.mul(s,o)),e.ONE),i=e.inv(n);return t.reduceRight((s,o,a)=>e.is0(o)?s:(r[a]=e.mul(s,r[a]),e.mul(s,o)),i),r}function Mc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function co(e,t,r=!1,n={}){if(e<=qt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=Mc(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=nE(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:zi(i),ZERO:qt,ONE:At,create:c=>yt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return qt<=c&&c<e},is0:c=>c===qt,isOdd:c=>(c&At)===At,neg:c=>yt(-c,e),eql:(c,u)=>c===u,sqr:c=>yt(c*c,e),add:(c,u)=>yt(c+u,e),sub:(c,u)=>yt(c-u,e),mul:(c,u)=>yt(c*u,e),pow:(c,u)=>sE(a,c,u),div:(c,u)=>yt(c*ao(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>ao(c,e),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>oE(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?dn(c,s):Ur(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Mr(c):pr(c)}});return Object.freeze(a)}function mh(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 yh(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 Uc(e){let t=yh(e);return t+Math.ceil(t/2)}function gh(e,t,r=!1){let n=e.length,i=yh(t),s=Uc(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?pr(e):Mr(e),a=yt(o,t-At)+At;return r?dn(a,i):Ur(a,i)}var cE=BigInt(0),Fc=BigInt(1);function uo(e,t){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=e.ZERO,a=i;for(;s>cE;)s&Fc&&(o=o.add(a)),a=a.double(),s>>=Fc;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let d=1;d<a;d++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=e.ZERO,l=e.BASE,f=BigInt(2**i-1),d=2**i,p=BigInt(i);for(let h=0;h<a;h++){let m=h*c,y=Number(o&f);o>>=p,y>c&&(y-=d,o+=Fc);let g=m,x=m+Math.abs(y)-1,b=h%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function Gi(e){return Oc(e.Fp),je(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Mc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Fe=BigInt(0),be=BigInt(1),lo=BigInt(2),uE=BigInt(8),lE={zip215:!0};function fE(e){let t=Gi(e);return je(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function fo(e){let t=fE(e),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=t,u=lo<<BigInt(a*8)-be,l=r.create,f=t.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:Fe}}}),d=t.adjustScalarBytes||(N=>N),p=t.domain||((N,I,F)=>{if(I.length||F)throw new Error("Contexts/pre-hash are not supported");return N}),h=N=>typeof N=="bigint"&&Fe<N,m=(N,I)=>h(N)&&h(I)&&N<I,y=N=>N===Fe||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===Fe?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,F,q,G){if(this.ex=I,this.ey=F,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(F))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:F,y:q}=I||{};if(!y(F)||!y(q))throw new Error("invalid affine point");return new _(F,q,be,l(F*q))}static normalizeZ(I){let F=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(F[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:j,et:nt}=this,ht=l(q*q),it=l(G*G),ct=l(j*j),Ft=l(ct*ct),Lt=l(ht*I),Jt=l(ct*l(Lt+it)),jt=l(Ft+l(F*l(ht*it)));if(Jt!==jt)throw new Error("bad point: equation left != right (1)");let Vt=l(q*G),oe=l(j*nt);if(Vt!==oe)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:F,ey:q,ez:G}=this,{ex:j,ey:nt,ez:ht}=I,it=l(F*ht),ct=l(j*G),Ft=l(q*ht),Lt=l(nt*G);return it===ct&&Ft===Lt}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=t,{ex:F,ey:q,ez:G}=this,j=l(F*F),nt=l(q*q),ht=l(lo*l(G*G)),it=l(I*j),ct=F+q,Ft=l(l(ct*ct)-j-nt),Lt=it+nt,Jt=Lt-ht,jt=it-nt,Vt=l(Ft*Jt),oe=l(Lt*jt),ar=l(Ft*jt),en=l(Jt*Lt);return new _(Vt,oe,en,ar)}add(I){C(I);let{a:F,d:q}=t,{ex:G,ey:j,ez:nt,et:ht}=this,{ex:it,ey:ct,ez:Ft,et:Lt}=I;if(F===BigInt(-1)){let mf=l((j-G)*(ct+it)),yf=l((j+G)*(ct-it)),Oa=l(yf-mf);if(Oa===Fe)return this.double();let gf=l(nt*lo*Lt),xf=l(ht*lo*Ft),Ef=xf+gf,bf=yf+mf,wf=xf-gf,Dy=l(Ef*Oa),Ny=l(bf*wf),ky=l(Ef*wf),Oy=l(Oa*bf);return new _(Dy,Ny,Oy,ky)}let Jt=l(G*it),jt=l(j*ct),Vt=l(ht*q*Lt),oe=l(nt*Ft),ar=l((G+j)*(it+ct)-Jt-jt),en=oe-Vt,Di=oe+Vt,pf=l(jt-F*Jt),Ty=l(ar*en),By=l(Di*pf),Ly=l(ar*pf),Py=l(en*Di);return new _(Ty,By,Py,Ly)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:F,f:q}=this.wNAF(g(I,n));return _.normalizeZ([F,q])[0]}multiplyUnsafe(I){let F=x(I);return F===Fe?P:this.equals(P)||F===be?this:this.equals(S)?this.wNAF(F).p:D.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:F,ey:q,ez:G}=this,j=this.is0();I==null&&(I=j?uE:r.inv(G));let nt=l(F*I),ht=l(q*I),it=l(G*I);if(j)return{x:Fe,y:be};if(it!==be)throw new Error("invZ was invalid");return{x:nt,y:ht}}clearCofactor(){let{h:I}=t;return I===be?this:this.multiplyUnsafe(I)}static fromHex(I,F=!1){let{d:q,a:G}=t,j=r.BYTES;I=Dt("pointHex",I,j);let nt=I.slice(),ht=I[j-1];nt[j-1]=ht&-129;let it=Mr(nt);it===Fe||(F?g(it,u):g(it,r.ORDER));let ct=l(it*it),Ft=l(ct-be),Lt=l(q*ct-G),{isValid:Jt,value:jt}=f(Ft,Lt);if(!Jt)throw new Error("Point.fromHex: invalid y coordinate");let Vt=(jt&be)===be,oe=(ht&128)!==0;if(!F&&jt===Fe&&oe)throw new Error("Point.fromHex: x=0 and x_0=1");return oe!==Vt&&(jt=l(-jt)),_.fromAffine({x:jt,y:it})}static fromPrivateKey(I){return H(I).point}toRawBytes(){let{x:I,y:F}=this.toAffine(),q=dn(F,r.BYTES);return q[q.length-1]|=I&be?128:0,q}toHex(){return dr(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,be,l(t.Gx*t.Gy)),_.ZERO=new _(Fe,be,be,Fe);let{BASE:S,ZERO:P}=_,D=uo(_,a*8);function Y(N){return yt(N,n)}function W(N){return Y(Mr(N))}function H(N){let I=a;N=Dt("private key",N,I);let F=Dt("hashed private key",s(N),2*I),q=d(F.slice(0,I)),G=F.slice(I,2*I),j=W(q),nt=S.multiply(j),ht=nt.toRawBytes();return{head:q,prefix:G,scalar:j,point:nt,pointBytes:ht}}function et(N){return H(N).pointBytes}function pt(N=new Uint8Array,...I){let F=mr(...I);return W(s(p(F,Dt("context",N),!!i)))}function Zt(N,I,F={}){N=Dt("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:j}=H(I),nt=pt(F.context,q,N),ht=S.multiply(nt).toRawBytes(),it=pt(F.context,ht,j,N),ct=Y(nt+it*G);x(ct);let Ft=mr(ht,dn(ct,r.BYTES));return Dt("result",Ft,a*2)}let T=lE;function k(N,I,F,q=T){let{context:G,zip215:j}=q,nt=r.BYTES;N=Dt("signature",N,2*nt),I=Dt("message",I),i&&(I=i(I));let ht=Mr(N.slice(nt,2*nt)),it,ct,Ft;try{it=_.fromHex(F,j),ct=_.fromHex(N.slice(0,nt),j),Ft=S.multiplyUnsafe(ht)}catch{return!1}if(!j&&it.isSmallOrder())return!1;let Lt=pt(G,ct.toRawBytes(),it.toRawBytes(),I);return ct.add(it.multiplyUnsafe(Lt)).subtract(Ft).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Zt,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:H,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var Vc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),xh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),dA=BigInt(0),hE=BigInt(1),Kc=BigInt(2),dE=BigInt(5),Eh=BigInt(10),pE=BigInt(20),mE=BigInt(40),bh=BigInt(80);function yE(e){let t=Vc,n=e*e%t*e%t,i=It(n,Kc,t)*n%t,s=It(i,hE,t)*e%t,o=It(s,dE,t)*s%t,a=It(o,Eh,t)*o%t,c=It(a,pE,t)*a%t,u=It(c,mE,t)*c%t,l=It(u,bh,t)*u%t,f=It(l,bh,t)*u%t,d=It(f,Eh,t)*o%t;return{pow_p_5_8:It(d,Kc,t)*e%t,b2:n}}function gE(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function xE(e,t){let r=Vc,n=yt(t*t*t,r),i=yt(n*n*t,r),s=yE(e*i).pow_p_5_8,o=yt(e*n*s,r),a=yt(t*o*o,r),c=o,u=yt(o*xh,r),l=a===e,f=a===yt(-e,r),d=a===yt(-e*xh,r);return l&&(o=c),(f||d)&&(o=u),ph(o,r)&&(o=yt(-o,r)),{isValid:l||f,value:o}}var yr=co(Vc,void 0,!0),qc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Lc,randomBytes:jn,adjustScalarBytes:gE,uvRatio:xE},ei=fo(qc);function wh(e,t,r){if(t.length>255)throw new Error("Context is too big");return eo(Cc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var pA=fo({...qc,domain:wh}),mA=fo({...qc,domain:wh,prehash:Lc});var EE=(yr.ORDER+BigInt(3))/BigInt(8),yA=yr.pow(Kc,EE),gA=yr.sqrt(yr.neg(yr.ONE)),xA=(yr.ORDER-BigInt(5))/BigInt(8),EA=BigInt(486662);var bA=mh(yr,yr.neg(BigInt(486664)));var wA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),vA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),_A=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),SA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var AA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ri=32,gr=64,ho=32;async function vh(){let e=ei.utils.randomPrivateKey(),t=ei.getPublicKey(e);return{privateKey:Ih(e,t),publicKey:t}}async function _h(e){if(e.length!==ho)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=ei.getPublicKey(t);return{privateKey:Ih(t,r),publicKey:r}}async function Sh(e,t){let r=e.subarray(0,ho);return ei.sign(t,r)}async function Ah(e,t,r){return ei.verify(t,r,e)}function Ih(e,t){let r=new Uint8Array(gr);for(let n=0;n<ho;n++)r[n]=e[n],r[ho+n]=t[n];return r}function kt(e,t){t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=ae(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return cn(r)}var me={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 $c={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function po(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,o=e?.iterations??32767,a=me.get();r*=8;async function c(f,d){let p=a.getRandomValues(new Uint8Array(s)),h=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:h};typeof d=="string"&&(d=z(d));let y;if(d.length===0){y=await a.subtle.importKey("jwk",$c,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",$c,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return kt([p,m.iv,new Uint8Array(g)])}async function u(f,d){let p=f.subarray(0,s),h=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:h};typeof d=="string"&&(d=z(d));let g;if(d.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",$c,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function ni(e,t){let n=await po().encrypt(e,t);return un.encode(n)}var Hc=new Float32Array([-0]),Fr=new Uint8Array(Hc.buffer);function Ch(e,t,r){Hc[0]=e,t[r]=Fr[0],t[r+1]=Fr[1],t[r+2]=Fr[2],t[r+3]=Fr[3]}function Th(e,t){return Fr[0]=e[t],Fr[1]=e[t+1],Fr[2]=e[t+2],Fr[3]=e[t+3],Hc[0]}var zc=new Float64Array([-0]),ce=new Uint8Array(zc.buffer);function Bh(e,t,r){zc[0]=e,t[r]=ce[0],t[r+1]=ce[1],t[r+2]=ce[2],t[r+3]=ce[3],t[r+4]=ce[4],t[r+5]=ce[5],t[r+6]=ce[6],t[r+7]=ce[7]}function Lh(e,t){return ce[0]=e[t],ce[1]=e[t+1],ce[2]=e[t+2],ce[3]=e[t+3],ce[4]=e[t+4],ce[5]=e[t+5],ce[6]=e[t+6],ce[7]=e[t+7],zc[0]}var wE=BigInt(Number.MAX_SAFE_INTEGER),vE=BigInt(Number.MIN_SAFE_INTEGER),ye=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return mn;if(t<wE&&t>vE)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ph&&(i=0n,++n>Ph&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return mn;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):mn}},mn=new ye(0,0);mn.toBigInt=function(){return 0n};mn.zzEncode=mn.zzDecode=function(){return this};mn.length=function(){return 1};var Ph=4294967296n;function Dh(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Nh(e,t,r){if(r-t<1)return"";let i,s=[],o=0,a;for(;t<r;)a=e[t++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function Gc(e,t,r){let n=r,i,s;for(let o=0;o<e.length;++o)i=e.charCodeAt(o),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ke(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function mo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Yc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ke(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ke(this,4);return mo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ke(this,4);return mo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ke(this,4);let t=Th(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ke(this,4);let t=Lh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ke(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Nh(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ke(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ke(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ye(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ke(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ke(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ke(this,8);let t=mo(this.buf,this.pos+=4),r=mo(this.buf,this.pos+=4);return new ye(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Wc(e){return new Yc(e instanceof Uint8Array?e:e.subarray())}function ee(e,t){let r=Wc(e);return t.decode(r)}function Qc(e){let t=e??8192,r=t>>>1,n,i=t;return function(o){if(o<1||o>r)return ae(o);i+o>t&&(n=ae(t),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var yn=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Xc(){}var Jc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},_E=Qc();function SE(e){return globalThis.Buffer!=null?ae(e):_E(e)}var Qi=class{len;head;tail;states;constructor(){this.len=0,this.head=new yn(Xc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new yn(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new jc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Yi,10,ye.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ye.fromBigInt(t);return this._push(Yi,r.length(),r)}uint64Number(t){let r=ye.fromNumber(t);return this._push(Yi,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ye.fromBigInt(t).zzEncode();return this._push(Yi,r.length(),r)}sint64Number(t){let r=ye.fromNumber(t).zzEncode();return this._push(Yi,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Zc,1,t?1:0)}fixed32(t){return this._push(Wi,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ye.fromBigInt(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64Number(t){let r=ye.fromNumber(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ch,4,t)}double(t){return this._push(Bh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Zc,1,0):this.uint32(r)._push(IE,r,t)}string(t){let r=Dh(t);return r!==0?this.uint32(r)._push(Gc,r,t):this._push(Zc,1,0)}fork(){return this.states=new Jc(this),this.head=this.tail=new yn(Xc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new yn(Xc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=SE(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Zc(e,t,r){t[r]=e&255}function AE(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var jc=class extends yn{next;constructor(t,r){super(AE,t,r),this.next=void 0}};function Yi(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Wi(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function IE(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Qi.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(RE,t,e),this},Qi.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(CE,t,e),this});function RE(e,t,r){t.set(e,r)}function CE(e,t,r){e.length<40?Gc(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(z(e),r)}function tu(){return new Qi}function re(e,t){let r=tu();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ii;(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"})(ii||(ii={}));function yo(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function eu(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return yo("enum",ii.VARINT,r,n)}function ne(e,t){return yo("message",ii.LENGTH_DELIMITED,e,t)}var Rt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Rt||(Rt={}));var ru;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(ru||(ru={}));(function(e){e.codec=()=>eu(ru)})(Rt||(Rt={}));var tr;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(tr||(tr={}));var er;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(er||(er={}));var Xi=class{_key;constructor(t){this._key=si(t,ri)}async verify(t,r){return Ah(this._key,r,t)}marshal(){return this._key}get bytes(){return tr.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},gn=class{_key;_publicKey;constructor(t,r){this._key=si(t,gr),this._publicKey=si(r,ri)}async sign(t){return Sh(this._key,t)}get public(){return new Xi(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=Dr.digest(this.public.bytes);return Ct.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function TE(e){if(e.length>gr){e=si(e,gr+ri);let n=e.subarray(0,gr),i=e.subarray(gr,e.length);return new gn(n,i)}e=si(e,gr);let t=e.subarray(0,gr),r=e.subarray(ri);return new gn(t,r)}function BE(e){return e=si(e,ri),new Xi(e)}async function LE(){let{privateKey:e,publicKey:t}=await vh();return new gn(e,t)}async function Oh(e){let{privateKey:t,publicKey:r}=await _h(e);return new gn(t,r)}function si(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}function X(e,t="utf8"){let r=Js[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 wI=mt(Nt(),1),vI=mt(Ys(),1),Mh=mt(dt(),1);function Ve(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=kt([new Uint8Array(t-r.length),r])}return X(r,"base64url")}function we(e){let t=Uh(e);return new Mh.default.jsbn.BigInteger(X(t,"base16"),16)}function Uh(e,t){let r=z(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return r}var PE={"P-256":256,"P-384":384,"P-521":521},DE=Object.keys(PE),DI=DE.join(" / ");async function Fh(e,t){let r=un.decode(e);return po().decrypt(r,t)}var cu={};Ht(cu,{MAX_KEY_SIZE:()=>ts,RsaPrivateKey:()=>oi,RsaPublicKey:()=>ji,fromJwk:()=>$E,generateKeyPair:()=>HE,unmarshalRsaPrivateKey:()=>VE,unmarshalRsaPublicKey:()=>qE});var Ji=mt(dt(),1);var gR=mt(zh(),1);function En(e){if(isNaN(e)||e<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return jn(e)}var jI=mt(Xs(),1),ou=mt(dt(),1);function Gh(e,t){return t.map(r=>we(e[r]))}function Yh(e){return ou.default.pki.setRsaPrivateKey(...Gh(e,["n","e","d","p","q","dp","dq","qi"]))}function Wh(e){return ou.default.pki.setRsaPublicKey(...Gh(e,["n","e"]))}var bn={};Ht(bn,{jwkToPkcs1:()=>OE,jwkToPkix:()=>UE,pkcs1ToJwk:()=>kE,pkixToJwk:()=>ME});var rR=mt(Mi(),1),nR=mt(Xs(),1);var xr=mt(dt(),1);function kE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ve(r.n),e:Ve(r.e),d:Ve(r.d),p:Ve(r.p),q:Ve(r.q),dp:Ve(r.dP),dq:Ve(r.dQ),qi:Ve(r.qInv),alg:"RS256"}}function OE(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 w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.privateKeyToAsn1({n:we(e.n),e:we(e.e),d:we(e.d),p:we(e.p),q:we(e.q),dP:we(e.dp),dQ:we(e.dq),qInv:we(e.qi)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}function ME(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ve(r.n),e:Ve(r.e)}}function UE(e){if(e.n==null||e.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.publicKeyToAsn1({n:we(e.n),e:we(e.e)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}async function Qh(e){let t=await me.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 Jh(t);return{privateKey:r[0],publicKey:r[1]}}async function au(e){let r=[await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await FE(e)],n=await Jh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Xh(e,t){let r=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Zh(e,t,r){let n=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Jh(e){if(e.privateKey==null||e.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([me.get().subtle.exportKey("jwk",e.privateKey),me.get().subtle.exportKey("jwk",e.publicKey)])}async function FE(e){return me.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 jh(e,t,r,n){let i=t?Wh(e):Yh(e),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return z(o,"ascii")}function td(e,t){return jh(e,!0,t,(r,n)=>n.encrypt(r))}function ed(e,t){return jh(e,!1,t,(r,n)=>n.decrypt(r))}function xo(e){if(e.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return z(e.n,"base64url").length*8}var ts=8192,ji=class{_key;constructor(t){this._key=t}async verify(t,r){return Zh(this._key,r,t)}marshal(){return bn.jwkToPkix(this._key)}get bytes(){return tr.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return td(this._key,t)}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},oi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return En(16)}async sign(t){return Xh(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ji(this._publicKey)}decrypt(t){return ed(this._key,t)}marshal(){return bn.jwkToPkcs1(this._key)}get bytes(){return er.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ji.default.util.ByteBuffer(this.marshal()),i=Ji.default.asn1.fromDer(n),s=Ji.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ji.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function VE(e){let t=bn.pkcs1ToJwk(e);if(xo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await au(t);return new oi(r.privateKey,r.publicKey)}function qE(e){let t=bn.pkixToJwk(e);if(xo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new ji(t)}async function $E(e){if(xo(e)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await au(e);return new oi(t.privateKey,t.publicKey)}async function HE(e){if(e>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Qh(e);return new oi(t.privateKey,t.publicKey)}var pu={};Ht(pu,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>sb,unmarshalSecp256k1PrivateKey:()=>nb,unmarshalSecp256k1PublicKey:()=>ib});var zE=(e,t,r)=>e&t^~e&r,GE=(e,t,r)=>e&t^e&r^t&r,YE=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]),Kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),uu=class extends ti{constructor(){super(64,32,8,!1),this.A=Kr[0]|0,this.B=Kr[1]|0,this.C=Kr[2]|0,this.D=Kr[3]|0,this.E=Kr[4]|0,this.F=Kr[5]|0,this.G=Kr[6]|0,this.H=Kr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[t,r,n,i,s,o,a,c]}set(t,r,n,i,s,o,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(t,r){for(let f=0;f<16;f++,r+=4)Vr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let d=Vr[f-15],p=Vr[f-2],h=Ue(d,7)^Ue(d,18)^d>>>3,m=Ue(p,17)^Ue(p,19)^p>>>10;Vr[f]=m+Vr[f-7]+h+Vr[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let d=Ue(a,6)^Ue(a,11)^Ue(a,25),p=l+d+zE(a,c,u)+YE[f]+Vr[f]|0,m=(Ue(n,2)^Ue(n,13)^Ue(n,22))+GE(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var rd=ro(()=>new uu);function WE(e){let t=Gi(e);je(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:QE,hexToBytes:XE}=oo,wn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=wn;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:QE(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=wn,r=typeof e=="string"?XE(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:s}=wn._parseInt(r.subarray(2)),{d:o,l:a}=wn._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=t(r(e.s)),i=t(r(e.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},Er=BigInt(0),Le=BigInt(1),IR=BigInt(2),nd=BigInt(3),RR=BigInt(4);function ZE(e){let t=WE(e),{Fp:r}=t,n=t.toBytes||((h,m,y)=>{let g=m.toAffine();return mr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=t.fromBytes||(h=>{let m=h.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(h){let{a:m,b:y}=t,g=r.sqr(h),x=r.mul(g,h);return r.add(r.add(x,r.mul(h,m)),y)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(h){return typeof h=="bigint"&&Er<h&&h<t.n}function a(h){if(!o(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=t;if(m&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=dr(h)),typeof h!="string"||!m.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let b;try{b=typeof h=="bigint"?h:pr(Dt("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return g&&(b=yt(b,x)),a(b),b}let u=new Map;function l(h){if(!(h instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(Dt("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=t,g=r.mul(y,nd),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),H=r.mul(x,b);return H=r.add(H,H),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(H,_),P=r.mul(g,P),W=r.mul(m,W),H=r.sub(D,W),H=r.mul(m,H),H=r.add(H,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,H),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,H),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=t.a,W=r.mul(t.b,nd),H=r.mul(y,b),et=r.mul(g,C),pt=r.mul(x,_),Zt=r.add(y,g),T=r.add(b,C);Zt=r.mul(Zt,T),T=r.add(H,et),Zt=r.sub(Zt,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(H,pt),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(et,pt),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,pt),D=r.add(S,D),S=r.sub(et,D),D=r.add(et,D),P=r.mul(S,D),et=r.add(H,H),et=r.add(et,H),pt=r.mul(Y,pt),T=r.mul(W,T),et=r.add(et,pt),pt=r.sub(H,pt),pt=r.mul(Y,pt),T=r.add(T,pt),H=r.mul(et,T),P=r.add(P,H),H=r.mul(k,T),S=r.mul(Zt,S),S=r.sub(S,H),H=r.mul(Zt,et),D=r.mul(k,D),D=r.add(D,H),new f(S,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===Er)return y;if(a(m),m===Le)return this;let{endo:g}=t;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>Er||_>Er;)b&Le&&(S=S.add(D)),_&Le&&(P=P.add(D)),D=D.double(),b>>=Le,_>>=Le;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=t;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:H}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(H)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===Er||S===Le||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=t;if(m===Le)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=t;return m===Le?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return dr(this.toRawBytes(m))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let d=t.nBitLength,p=uo(f,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function JE(e){let t=Gi(e);return je(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function id(e){let t=JE(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return Er<T&&T<r.ORDER}function a(T){return yt(T,n)}function c(T){return ao(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:d}=ZE({...t,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),F=mr;return L?F(Uint8Array.from([k.hasEvenY()?2:3]),I):F(Uint8Array.from([4]),I,r.toBytes(N.y))},fromBytes(T){let k=T.length,L=T[0],N=T.subarray(1);if(k===i&&(L===2||L===3)){let I=pr(N);if(!o(I))throw new Error("Point is not on curve");let F=f(I),q=r.sqrt(F),G=(q&Le)===Le;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),F=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>dr(Ur(T,t.nByteLength));function h(T){let k=n>>Le;return T>k}function m(T){return h(T)?a(-T):T}let y=(T,k,L)=>pr(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=t.nByteLength;return k=Dt("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=wn.toSig(Dt("DER",k));return new g(L,N)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,F=P(Dt("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+t.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",j=u.fromHex(G+p(q)),nt=c(q),ht=a(-F*nt),it=a(N*nt),ct=u.BASE.multiplyAndAddUnsafe(j,ht,it);if(!ct)throw new Error("point at infinify");return ct.assertValidity(),ct}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return hn(this.toDERHex())}toDERHex(){return wn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return hn(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(T){try{return l(T),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let T=Uc(t.n);return gh(t.randomBytes(T),t.n)},precompute(T=8,k=u.BASE){return k._setWindowSize(T),k.multiply(BigInt(3)),k}};function b(T,k=!0){return u.fromPrivateKey(T).toRawBytes(k)}function C(T){let k=T instanceof Uint8Array,L=typeof T=="string",N=(k||L)&&T.length;return k?N===i||N===s:L?N===2*i||N===2*s:T instanceof u}function _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=t.bits2int||function(T){let k=pr(T),L=T.length*8-t.nBitLength;return L>0?k>>BigInt(L):k},P=t.bits2int_modN||function(T){return a(S(T))},D=zi(t.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(Er<=T&&T<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Ur(T,t.nByteLength)}function W(T,k,L=H){if(["recovered","canonical"].some(Lt=>Lt in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=t,{lowS:F,prehash:q,extraEntropy:G}=L;F==null&&(F=!0),T=Dt("msgHash",T),q&&(T=Dt("prehashed msgHash",N(T)));let j=P(T),nt=l(k),ht=[Y(nt),Y(j)];if(G!=null){let Lt=G===!0?I(r.BYTES):G;ht.push(Dt("extraEntropy",Lt))}let it=mr(...ht),ct=j;function Ft(Lt){let Jt=S(Lt);if(!d(Jt))return;let jt=c(Jt),Vt=u.BASE.multiply(Jt).toAffine(),oe=a(Vt.x);if(oe===Er)return;let ar=a(jt*a(ct+oe*nt));if(ar===Er)return;let en=(Vt.x===oe?0:2)|Number(Vt.y&Le),Di=ar;return F&&h(ar)&&(Di=m(ar),en^=1),new g(oe,Di,en)}return{seed:it,k2sig:Ft}}let H={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function pt(T,k,L=H){let{seed:N,k2sig:I}=W(T,k,L),F=t;return Nc(F.hash.outputLen,F.nByteLength,F.hmac)(N,I)}u.BASE._setWindowSize(8);function Zt(T,k,L,N=et){let I=T;if(k=Dt("msgHash",k),L=Dt("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:q}=N,G,j;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(Vt){if(!(Vt instanceof wn.Err))throw Vt;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:Vt,s:oe}=I;G=new g(Vt,oe)}else throw new Error("PARSE");j=u.fromHex(L)}catch(Vt){if(Vt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&G.hasHighS())return!1;q&&(k=t.hash(k));let{r:nt,s:ht}=G,it=P(k),ct=c(ht),Ft=a(it*ct),Lt=a(nt*ct),Jt=u.BASE.multiplyAndAddUnsafe(j,Ft,Lt)?.toAffine();return Jt?a(Jt.x)===nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:_,sign:pt,verify:Zt,ProjectivePoint:u,Signature:g,utils:x}}var Eo=class extends Jn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,sh(t);let n=Hi(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,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Zn(this),this.iHash.update(t),this}digestInto(t){Zn(this),Rc(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:s,blockLen:o,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,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()}},lu=(e,t,r)=>new Eo(e,t).update(r).digest();lu.create=(e,t)=>new Eo(e,t);function jE(e){return{hash:e,hmac:(t,...r)=>lu(e,t,eo(...r)),randomBytes:jn}}function sd(e,t){let r=n=>id({...e,...jE(n)});return Object.freeze({...r(t),create:r})}var cd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),od=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),tb=BigInt(1),fu=BigInt(2),ad=(e,t)=>(e+t/fu)/t;function eb(e){let t=cd,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=It(l,r,t)*l%t,d=It(f,r,t)*l%t,p=It(d,fu,t)*u%t,h=It(p,i,t)*p%t,m=It(h,s,t)*h%t,y=It(m,a,t)*m%t,g=It(y,c,t)*y%t,x=It(g,a,t)*m%t,b=It(x,r,t)*l%t,C=It(b,o,t)*h%t,_=It(C,n,t)*u%t,S=It(_,fu,t);if(!hu.eql(hu.sqr(S),e))throw new Error("Cannot find square root");return S}var hu=co(cd,void 0,void 0,{sqrt:eb}),br=sd({a:BigInt(0),b:BigInt(7),Fp:hu,n:od,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=od,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-tb*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=ad(s*e,t),c=ad(-n*e,t),u=yt(e-a*r-c*i,t),l=yt(-a*n-c*s,t),f=u>o,d=l>o;if(f&&(u=t-u),d&&(l=t-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},rd),FR=BigInt(0);var KR=br.ProjectivePoint;function ud(){return br.utils.randomPrivateKey()}async function ld(e,t){let{digest:r}=await te.digest(t);try{return br.sign(r,e).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function fd(e,t,r){try{let{digest:n}=await te.digest(r);return br.verify(t,n,e)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function hd(e){return br.ProjectivePoint.fromHex(e).toRawBytes(!0)}function dd(e){try{br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function du(e){try{br.ProjectivePoint.fromHex(e)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function pd(e){try{return br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{_key;constructor(t){du(t),this._key=t}async verify(t,r){return fd(this._key,r,t)}marshal(){return hd(this._key)}get bytes(){return tr.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}},rs=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??pd(t),dd(this._key),du(this._publicKey)}async sign(t){return ld(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await te.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function nb(e){return new rs(e)}function ib(e){return new es(e)}async function sb(){let e=ud();return new rs(e)}var wr={rsa:cu,ed25519:nu,secp256k1:pu};function mu(e){let t=Object.keys(wr).join(" / ");return new w(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function yu(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return wr[e];throw mu(e)}async function wo(e,t){return yu(e).generateKeyPair(t??2048)}function ns(e){let t=tr.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPublicKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PublicKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw mu(t.Type??"unknown")}}function md(e,t){return t=(t??"rsa").toLowerCase(),yu(t),e.bytes}async function ai(e){let t=er.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPrivateKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PrivateKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw mu(t.Type??"RSA")}}function yd(e,t){return t=(t??"rsa").toLowerCase(),yu(t),e.bytes}async function is(e,t){try{let i=await Fh(e,t);return await ai(i)}catch{}let r=bo.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=bo.default.asn1.toDer(bo.default.pki.privateKeyToAsn1(r));return n=z(n.getBytes(),"ascii"),wr.rsa.unmarshalRsaPrivateKey(n)}var gu=Symbol.for("@libp2p/content-routing");var ss=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.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.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Eu(t,r))}},xu=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Eu=globalThis.CustomEvent??xu;var ve=(e,...t)=>{try{[...t]}catch{}};var bu=Symbol.for("@libp2p/peer-discovery");var wu=Symbol.for("@libp2p/peer-routing");var p4=mt(Fs(),1),ab=mt(dt(),1);var xd=mt(Qa(),1),Ed=mt(Nt(),1),gd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(gd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=gd[i],o=(0,xd.default)(e,t,r,n,s);return Ed.default.encode64(o,null)}var Se=mt(_u(),1);Se.default.formatters.b=e=>e==null?"undefined":Ct.baseEncode(e);Se.default.formatters.t=e=>e==null?"undefined":Ee.baseEncode(e);Se.default.formatters.m=e=>e==null?"undefined":un.baseEncode(e);Se.default.formatters.p=e=>e==null?"undefined":e.toString();Se.default.formatters.c=e=>e==null?"undefined":e.toString();Se.default.formatters.k=e=>e==null?"undefined":e.toString();Se.default.formatters.a=e=>e==null?"undefined":e.toString();function vb(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 rt(e){let t=vb(`${e}:trace`);return Se.default.enabled(`${e}:trace`)&&Se.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,Se.default)(`${e}:trace`)),Object.assign((0,Se.default)(e),{error:(0,Se.default)(`${e}:error`),trace:t})}var Su=Symbol.for("@libp2p/peer-id");function So(e){return e!=null&&!!e[Su]}var _b=Symbol.for("nodejs.util.inspect.custom"),_d=Object.values(Nr).map(e=>e.decoder).reduce((e,t)=>e.or(t),Nr.identity.decoder),Sd=114,Au=36,Iu=37,as=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()})`}[Su]=!0;toString(){return this.string==null&&(this.string=Ct.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Me.createV1(Sd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Tt(this.multihash.bytes,t);if(typeof t=="string")return lt(t).equals(this);if(t?.multihash?.bytes!=null)return Tt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[_b](){return`PeerId(${this.toString()})`}},_n=class extends as{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Sn=class extends as{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},An=class extends as{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Ad(e){if(e.type==="RSA")return new _n(e);if(e.type==="Ed25519")return new Sn(e);if(e.type==="secp256k1")return new An(e);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function lt(e,t){if(t=t??_d,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=ln(Ct.decode(`z${e}`));return e.startsWith("12D")?new Sn({multihash:r}):e.startsWith("16U")?new An({multihash:r}):new _n({multihash:r})}return fi(_d.decode(e))}function fi(e){try{let t=ln(e);if(t.code===Dr.code){if(t.digest.length===Au)return new Sn({multihash:t});if(t.digest.length===Iu)return new An({multihash:t})}if(t.code===te.code)return new _n({multihash:t})}catch{return Sb(Me.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function Sb(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Sd)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===te.code)return new _n({multihash:e.multihash});if(t.code===Dr.code){if(t.digest.length===Au)return new Sn({multihash:e.multihash});if(t.digest.length===Iu)return new An({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function hi(e,t){return e.length===Au?new Sn({multihash:Je(Dr.code,e),privateKey:t}):e.length===Iu?new An({multihash:Je(Dr.code,e),privateKey:t}):new _n({multihash:await te.digest(e),publicKey:e,privateKey:t})}var Ao=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var vr="/",Id=new TextEncoder().encode(vr),Io=Id[0],rr=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=z(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Io)throw new Error("Invalid key")}toString(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(vr))}static random(){return new e(Ao().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Id),this._buf[0]!==Io){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Io,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Io;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(vr).slice(1)}type(){return Ab(this.baseNamespace())}name(){return Ib(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(vr)||(t+=vr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(vr):new e(t.slice(0,-1).join(vr))}child(t){return this.toString()===vr?t:t.toString()===vr?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Rb(t.map(r=>r.namespaces()))])}};function Ab(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Ib(e){let t=e.split(":");return t[t.length-1]}function Rb(e){return[].concat(...e)}var kd=mt(Nd(),1),qr=kd.default;var zd=mt(Hd(),1);var ot;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(ot||(ot={}));var To=rt("libp2p:keychain"),zb="/pkcs8/",Gd="/info/",In=new WeakMap,Rn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Cu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function _r(e){return e==null||typeof e!="string"?!1:e===(0,zd.default)(e.trim())&&e.length>0}async function gt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function nr(e){return new rr(zb+e)}function $r(e){return new rr(Gd+e)}var Cn=class{components;init;constructor(t,r){if(this.components=t,this.init=qr(Cu,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Rn.minKeyLength)throw new Error(`dek.keyLength must be least ${Rn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Rn.minSaltLength)throw new Error(`dek.saltLength must be least ${Rn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Rn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Rn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Cu),r=Math.ceil(Rn.minSaltLength/3)*3;return t.dek.salt=X(En(r),"base64"),t}static get options(){return Cu}async createKey(t,r,n=2048){if(!_r(t)||t==="self")throw await gt(),new w("Invalid key name",ot.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await gt(),new w("Invalid key type",ot.ERR_INVALID_KEY_TYPE);let i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w("Key name already exists",ot.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await gt(),new w("Invalid RSA key size",ot.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await wo(r,n),c=await a.id(),u=In.get(this);if(u==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:t,id:c};let d=this.components.datastore.batch();d.put(i,z(f)),d.put($r(t),z(JSON.stringify(o))),await d.commit()}catch(a){throw await gt(),a}return o}async listKeys(){let t={prefix:Gd},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(X(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND);return n}catch(r){throw await gt(),r}}async findKeyByName(t){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=$r(t);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await gt(),To.error(n),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=nr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete($r(t)),await i.commit(),n}async renameKey(t,r){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid old key name '${t}'`,ot.ERR_OLD_KEY_NAME_INVALID);if(!_r(r)||r==="self")throw await gt(),new w(`Invalid new key name '${r}'`,ot.ERR_NEW_KEY_NAME_INVALID);let n=nr(t),i=nr(r),s=$r(t),o=$r(r);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${r}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,z(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await gt(),c}}async exportKey(t,r){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("Password is required",ot.ERR_PASSWORD_REQUIRED);let n=nr(t);try{let i=await this.components.datastore.get(n),s=X(i),o=In.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await is(s,a)).export(r)}catch(i){throw await gt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await is(n,r);return hi(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("PEM encoded key is required",ot.ERR_PEM_REQUIRED);let i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o;try{o=await is(r,n)}catch{throw await gt(),new w("Cannot read the key, most likely the password is wrong",ot.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=In.get(this);if(l==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await gt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,z(r)),u.put($r(t),z(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!_r(t))throw new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",ot.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",ot.ERR_MISSING_PRIVATE_KEY);let n=await ai(r.privateKey),i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o=In.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,z(c)),l.put($r(t),z(JSON.stringify(u))),await l.commit(),u}catch(n){throw await gt(),n}}async getPrivateKey(t){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);try{let r=nr(t),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await gt(),To.error(r),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await gt(),new w(`Invalid old pass type '${typeof t}'`,ot.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await gt(),new w(`Invalid new pass type '${typeof r}'`,ot.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await gt(),new w(`Invalid pass length ${r.length}`,ot.ERR_INVALID_PASS_LENGTH);To("recreating keychain");let n=In.get(this);if(n==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?os(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(nr(a.name)),u=X(c),l=await is(u,i),f=s.toString(),d=await l.export(f),p=this.components.datastore.batch(),h={name:a.name,id:a.id};p.put(nr(a.name),z(d)),p.put($r(a.name),z(JSON.stringify(h))),await p.commit()}To("keychain reconstructed")}};function Sr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var qe=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Sr(this.map.entries(),t=>[lt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,lt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Sr(this.map.keys(),t=>lt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Tn=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Sr(this.set.entries(),t=>{let r=lt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=lt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Sr(this.set.values(),t=>lt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Tu=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Sr(this.list.entries(),t=>lt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Sr(this.list.entries(),t=>[t[0],lt(t[1])])}every(t){return this.list.every((r,n)=>t(lt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=lt(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(lt(n),i,this));if(r!=null)return lt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(lt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(lt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return lt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return lt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var Bu;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(Bu||(Bu={}));var Yd=async()=>{let e=await wo("Ed25519"),t=await Gb(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function Gb(e){return hi(md(e.public),yd(e))}var Yb=Math.pow(2,7),Wb=Math.pow(2,14),Qb=Math.pow(2,21),Lu=Math.pow(2,28),Pu=Math.pow(2,35),Du=Math.pow(2,42),Nu=Math.pow(2,49),ft=128,ue=127;function ge(e){if(e<Yb)return 1;if(e<Wb)return 2;if(e<Qb)return 3;if(e<Lu)return 4;if(e<Pu)return 5;if(e<Du)return 6;if(e<Nu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Xb(e,t,r=0){switch(ge(e)){case 8:t[r++]=e&255|ft,e/=128;case 7:t[r++]=e&255|ft,e/=128;case 6:t[r++]=e&255|ft,e/=128;case 5:t[r++]=e&255|ft,e/=128;case 4:t[r++]=e&255|ft,e>>>=7;case 3:t[r++]=e&255|ft,e>>>=7;case 2:t[r++]=e&255|ft,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Zb(e,t,r=0){switch(ge(e)){case 8:t.set(r++,e&255|ft),e/=128;case 7:t.set(r++,e&255|ft),e/=128;case 6:t.set(r++,e&255|ft),e/=128;case 5:t.set(r++,e&255|ft),e/=128;case 4:t.set(r++,e&255|ft),e>>>=7;case 3:t.set(r++,e&255|ft),e>>>=7;case 2:t.set(r++,e&255|ft),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Jb(e,t){let r=e[t],n=0;if(n+=r&ue,r<ft||(r=e[t+1],n+=(r&ue)<<7,r<ft)||(r=e[t+2],n+=(r&ue)<<14,r<ft)||(r=e[t+3],n+=(r&ue)<<21,r<ft)||(r=e[t+4],n+=(r&ue)*Lu,r<ft)||(r=e[t+5],n+=(r&ue)*Pu,r<ft)||(r=e[t+6],n+=(r&ue)*Du,r<ft)||(r=e[t+7],n+=(r&ue)*Nu,r<ft))return n;throw new RangeError("Could not decode varint")}function jb(e,t){let r=e.get(t),n=0;if(n+=r&ue,r<ft||(r=e.get(t+1),n+=(r&ue)<<7,r<ft)||(r=e.get(t+2),n+=(r&ue)<<14,r<ft)||(r=e.get(t+3),n+=(r&ue)<<21,r<ft)||(r=e.get(t+4),n+=(r&ue)*Lu,r<ft)||(r=e.get(t+5),n+=(r&ue)*Pu,r<ft)||(r=e.get(t+6),n+=(r&ue)*Du,r<ft)||(r=e.get(t+7),n+=(r&ue)*Nu,r<ft))return n;throw new RangeError("Could not decode varint")}function Pe(e,t,r=0){return t==null&&(t=ae(ge(e))),t instanceof Uint8Array?Xb(e,t,r):Zb(e,t,r)}function Ar(e,t=0){return e instanceof Uint8Array?Jb(e,t):jb(e,t)}var Qd=Symbol.for("@achingbrain/uint8arraylist");function Wd(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 Bo(e){return!!e?.[Qd]}var Wt=class e{constructor(...t){Object.defineProperty(this,Qd,{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(Bo(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(Bo(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=Wd(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Wd(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(Bo(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 kt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:kt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=n,s}_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 s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(o);continue}n.push(o.subarray(t-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!Bo(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 s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){l=Math.max(1,d-a[p]);break}}if(l===0)return f}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=ae(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=hr(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=hr(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=hr(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=ae(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=hr(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=hr(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=hr(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=hr(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=hr(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(!Tt(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,s)=>i+s.byteLength,0)),n.length=r,n}};var Xd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var us;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(us||(us={}));var mi=class e{static createFromProtobuf=async t=>{let r=us.decode(t),n=await hi(r.publicKey);return new e({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(t,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=t.domain,i=t.codec,s=t.marshal(),o=Zd(n,i,s),c=await(await ai(r.privateKey)).sign(o.subarray());return new e({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(t,r)=>{let n=await e.createFromProtobuf(t);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",Xd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(t){let{peerId:r,payloadType:n,payload:i,signature:s}=t;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=us.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return Tt(this.marshal(),t.marshal())}async validate(t){let r=Zd(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ns(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Zd=(e,t,r)=>{let n=z(e),i=Pe(n.byteLength),s=Pe(t.length),o=Pe(r.length);return new Wt(i,n,s,t,o,r)};function Jd(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var Lo=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 s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,t);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=t,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}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 o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&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 s=new Uint8Array(14),o=16-(n+2),[a]=t(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var jd=45,tw=15,yi=new Lo;function ku(e){if(!(e.length>tw))return yi.new(e).parseWith(()=>yi.readIPv4Addr())}function Ou(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPv6Addr())}function Po(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPAddr())}var sC=parseInt("0xFFFF",16),oC=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Do(e){return!!ku(e)}function No(e){return!!Ou(e)}function gi(e){return!!Po(e)}var rp=Do,sw=No,Mu=function(e){let t=0;if(e=e.toString().trim(),rp(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(sw(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=rp(r[n]),o;s&&(o=Mu(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(o.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 s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},np=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 s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xi={},Uu={},aw=[[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"]];aw.forEach(e=>{let t=cw(...e);Uu[t.code]=t,xi[t.name]=t});function cw(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function xt(e){if(typeof e=="number"){if(Uu[e]!=null)return Uu[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(xi[e]!=null)return xi[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var $C=xt("ip4"),HC=xt("ip6"),zC=xt("ipcidr");function Ku(e,t){switch(xt(e).code){case 4:case 41:return lw(t);case 42:return op(t);case 6:case 273:case 33:case 132:return cp(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return op(t);case 421:return pw(t);case 444:return ap(t);case 445:return ap(t);case 466:return dw(t);default:return X(t,"base16")}}function Vu(e,t){switch(xt(e).code){case 4:return ip(t);case 41:return ip(t);case 42:return sp(t);case 6:case 273:case 33:case 132:return qu(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sp(t);case 421:return fw(t);case 444:return mw(t);case 445:return yw(t);case 466:return hw(t);default:return z(t,"base16")}}var Fu=Object.values(Nr).map(e=>e.decoder),uw=function(){let e=Fu[0].or(Fu[1]);return Fu.slice(2).forEach(t=>e=e.or(t)),e}();function ip(e){if(!gi(e))throw new Error("invalid ip address");return Mu(e)}function lw(e){let t=np(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!gi(t))throw new Error("invalid ip address");return t}function qu(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function cp(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function sp(e){let t=z(e),r=Uint8Array.from(Pe(t.length));return kt([r,t],r.length+t.length)}function op(e){let t=Ar(e);if(e=e.slice(ge(t)),e.length!==t)throw new Error("inconsistent lengths");return X(e)}function fw(e){let t;e[0]==="Q"||e[0]==="1"?t=ln(Ct.decode(`z${e}`)).bytes:t=Me.parse(e).multihash.bytes;let r=Uint8Array.from(Pe(t.length));return kt([r,t],r.length+t.length)}function hw(e){let t=uw.decode(e),r=Uint8Array.from(Pe(t.length));return kt([r,t],r.length+t.length)}function dw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function pw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return X(r,"base58btc")}function mw(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=Ee.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=qu(n);return kt([r,i],r.length+i.length)}function yw(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=Ee.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=qu(n);return kt([r,i],r.length+i.length)}function ap(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=X(t,"base32"),i=cp(r);return`${n}:${i}`}function up(e){e=$u(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 s=0;s<i.length;s++){let o=i[s],a=xt(o);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw fp("invalid address: "+e);if(a.path===!0){n=$u(i.slice(s).join("/")),t.push([a.code,Vu(a.code,n)]),r.push([a.code,n]);break}let c=Vu(a.code,i[s]);t.push([a.code,c]),r.push([a.code,Ku(a.code,c)])}return{string:lp(r),bytes:zu(t),tuples:t,stringTuples:r,path:n}}function Hu(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=Ar(e,i),o=ge(s),a=xt(s),c=gw(a,e.slice(i+o));if(c===0){t.push([s]),r.push([s]),i+=o;continue}let u=e.slice(i+o,i+o+c);if(i+=c+o,i>e.length)throw fp("Invalid address Uint8Array: "+X(e,"base16"));t.push([s,u]);let l=Ku(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(e),string:lp(r),tuples:t,stringTuples:r,path:n}}function lp(e){let t=[];return e.map(r=>{let n=xt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),$u(t.join("/"))}function zu(e){return kt(e.map(t=>{let r=xt(t[0]),n=Uint8Array.from(Pe(r.code));return t.length>1&&t[1]!=null&&(n=kt([n,t[1]])),n}))}function gw(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Ar(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ge(r)}}function $u(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function fp(e){return new Error("Error parsing address: "+e)}var xw=Symbol.for("nodejs.util.inspect.custom"),Ew=[xt("dns").code,xt("dns4").code,xt("dns6").code,xt("dnsaddr").code],Yu=new Map,hp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Bn(e){return!!e?.[hp]}var Gu=class e{bytes;#t;#e;#r;#n;[hp]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Hu(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=up(t)}else if(Bn(t))r=Hu(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",o=xt("tcp"),a=xt("udp"),c=xt("ip4"),u=xt("ip6"),l=xt("dns6"),f=xt("ip6zone");for(let[p,h]of this.stringTuples())p===f.code&&(s=`%${h??""}`),Ew.includes(p)&&(r=o.name,i=443,n=`${h??""}${s}`,t=p===l.code?6:4),(p===o.code||p===a.code)&&(r=xt(p).name,i=parseInt(h??"")),(p===c.code||p===u.code)&&(r=xt(p).name,n=`${h??""}${s}`,t=p===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.#e.map(([t])=>Object.assign({},xt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>xt(t).name)}tuples(){return this.#e}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(zu(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===xi.p2p.code&&t.push([n,i]),n===xi["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(Ct.decode(`z${n}`),"base58btc"):X(Me.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Tt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Yu.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}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)}[xw](){return`Multiaddr(${this.#t})`}};function $t(e){return new Gu(e)}var dp="libp2p-peer-record",pp=Uint8Array.from([3,1]);var ls;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=ne((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>re(s,n.codec()),n.decode=s=>ee(s,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=ne((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),e.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),e.encode=n=>re(n,e.codec()),e.decode=n=>ee(n,e.codec())})(ls||(ls={}));var Ln=class e{static createFromProtobuf=t=>{let r=ls.decode(t),n=fi(r.peerId),i=(r.addresses??[]).map(o=>$t(o.multiaddr)),s=r.seq;return new e({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=dp;static CODEC=pp;peerId;multiaddrs;seqNumber;domain=e.DOMAIN;codec=e.CODEC;marshaled;constructor(t){let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ls.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof e)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Jd(this.multiaddrs,t.multiaddrs))}};function bw(e){return e[Symbol.asyncIterator]!=null}function ww(e){if(bw(e))return(async()=>{let r=[];for await(let n of e)r.push(n);return r})();let t=[];for(let r of e)t.push(r);return t}var fs=ww;var Qu=mt(yp(),1);var ds=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Xu=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},gp=e=>globalThis.DOMException===void 0?new Xu(e):new DOMException(e),xp=e=>{let t=e.reason===void 0?gp("This operation was aborted."):e.reason;return t instanceof Error?t:gp(t)};function Zu(e,t,r,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(xp(c)),c.addEventListener("abort",()=>{a(xp(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new ds(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{o(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function Ju(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Pn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ir,ju=class{constructor(){Ir.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Pn(this,Ir,"f")[this.size-1].priority>=r.priority){Pn(this,Ir,"f").push(n);return}let i=Ju(Pn(this,Ir,"f"),n,(s,o)=>o.priority-s.priority);Pn(this,Ir,"f").splice(i,0,n)}dequeue(){let t=Pn(this,Ir,"f").shift();return t?.run}filter(t){return Pn(this,Ir,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Pn(this,Ir,"f").length}};Ir=new WeakMap;var Ep=ju;var Bt=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,ms,ys,zr,Vo,gs,Oo,$e,ps,Ae,Mo,Ie,xs,Hr,Uo,bp,wp,Sp,vp,_p,Fo,tl,el,qo,Ap,Ko,$o=class extends Error{},rl=class extends Qu.default{constructor(t){var r,n,i,s;if(super(),Ot.add(this),ms.set(this,void 0),ys.set(this,void 0),zr.set(this,0),Vo.set(this,void 0),gs.set(this,void 0),Oo.set(this,0),$e.set(this,void 0),ps.set(this,void 0),Ae.set(this,void 0),Mo.set(this,void 0),Ie.set(this,0),xs.set(this,void 0),Hr.set(this,void 0),Uo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Ep,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Bt(this,ms,t.carryoverConcurrencyCount,"f"),Bt(this,ys,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Bt(this,Vo,t.intervalCap,"f"),Bt(this,gs,t.interval,"f"),Bt(this,Ae,new t.queueClass,"f"),Bt(this,Mo,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Bt(this,Uo,t.throwOnTimeout===!0,"f"),Bt(this,Hr,t.autoStart===!1,"f")}get concurrency(){return K(this,xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Bt(this,xs,t,"f"),K(this,Ot,"m",qo).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,Uo,"f"),...r},new Promise((n,i)=>{K(this,Ae,"f").enqueue(async()=>{var s,o,a;Bt(this,Ie,(o=K(this,Ie,"f"),o++,o),"f"),Bt(this,zr,(a=K(this,zr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new $o("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Zu(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",Ap).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof ds&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",Sp).call(this)}},r),this.emit("add"),K(this,Ot,"m",Fo).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Hr,"f")?(Bt(this,Hr,!1,"f"),K(this,Ot,"m",qo).call(this),this):this}pause(){Bt(this,Hr,!0,"f")}clear(){Bt(this,Ae,new(K(this,Mo,"f")),"f")}async onEmpty(){K(this,Ae,"f").size!==0&&await K(this,Ot,"m",Ko).call(this,"empty")}async onSizeLessThan(t){K(this,Ae,"f").size<t||await K(this,Ot,"m",Ko).call(this,"next",()=>K(this,Ae,"f").size<t)}async onIdle(){K(this,Ie,"f")===0&&K(this,Ae,"f").size===0||await K(this,Ot,"m",Ko).call(this,"idle")}get size(){return K(this,Ae,"f").size}sizeBy(t){return K(this,Ae,"f").filter(t).length}get pending(){return K(this,Ie,"f")}get isPaused(){return K(this,Hr,"f")}};ms=new WeakMap,ys=new WeakMap,zr=new WeakMap,Vo=new WeakMap,gs=new WeakMap,Oo=new WeakMap,$e=new WeakMap,ps=new WeakMap,Ae=new WeakMap,Mo=new WeakMap,Ie=new WeakMap,xs=new WeakMap,Hr=new WeakMap,Uo=new WeakMap,Ot=new WeakSet,bp=function(){return K(this,ys,"f")||K(this,zr,"f")<K(this,Vo,"f")},wp=function(){return K(this,Ie,"f")<K(this,xs,"f")},Sp=function(){var t;Bt(this,Ie,(t=K(this,Ie,"f"),t--,t),"f"),K(this,Ot,"m",Fo).call(this),this.emit("next")},vp=function(){K(this,Ot,"m",el).call(this),K(this,Ot,"m",tl).call(this),Bt(this,ps,void 0,"f")},_p=function(){let t=Date.now();if(K(this,$e,"f")===void 0){let r=K(this,Oo,"f")-t;if(r<0)Bt(this,zr,K(this,ms,"f")?K(this,Ie,"f"):0,"f");else return K(this,ps,"f")===void 0&&Bt(this,ps,setTimeout(()=>{K(this,Ot,"m",vp).call(this)},r),"f"),!0}return!1},Fo=function(){if(K(this,Ae,"f").size===0)return K(this,$e,"f")&&clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f"),this.emit("empty"),K(this,Ie,"f")===0&&this.emit("idle"),!1;if(!K(this,Hr,"f")){let t=!K(this,Ot,"a",_p);if(K(this,Ot,"a",bp)&&K(this,Ot,"a",wp)){let r=K(this,Ae,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",tl).call(this),!0):!1}}return!1},tl=function(){K(this,ys,"f")||K(this,$e,"f")!==void 0||(Bt(this,$e,setInterval(()=>{K(this,Ot,"m",el).call(this)},K(this,gs,"f")),"f"),Bt(this,Oo,Date.now()+K(this,gs,"f"),"f"))},el=function(){K(this,zr,"f")===0&&K(this,Ie,"f")===0&&K(this,$e,"f")&&(clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f")),Bt(this,zr,K(this,ms,"f")?K(this,Ie,"f"):0,"f"),K(this,Ot,"m",qo).call(this)},qo=function(){for(;K(this,Ot,"m",Fo).call(this););},Ap=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new $o("The task was aborted."))},{once:!0})})},Ko=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Gr=rl;var nl=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},il=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Ip=e=>globalThis.DOMException===void 0?new il(e):new DOMException(e),Rp=e=>{let t=e.reason===void 0?Ip("This operation was aborted."):e.reason;return t instanceof Error?t:Ip(t)};function sl(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,o,c=new Promise((u,l)=>{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:d}=t;d.aborted&&l(Rp(d)),d.addEventListener("abort",()=>{l(Rp(d))})}if(r===Number.POSITIVE_INFINITY){e.then(u,l);return}let f=new nl;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await e)}catch(d){l(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var ol="lock:worker:request-read",al="lock:worker:release-read",cl="lock:master:grant-read",ul="lock:worker:request-write",ll="lock:worker:release-write",fl="lock:master:grant-write";var Yr={},Ei=e=>{e.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)})};Ei.addEventListener=(e,t)=>{Yr[e]==null&&(Yr[e]=[]),Yr[e].push(t)};Ei.removeEventListener=(e,t)=>{Yr[e]!=null&&(Yr[e]=Yr[e].filter(r=>r===t))};Ei.dispatchEvent=function(e,t,r){Yr[e]!=null&&Yr[e].forEach(n=>n(t,r))};var hl=Ei;var Cp=(e,t,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};e.dispatchEvent(new MessageEvent(t,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)}))}}))},Tp=(e,t,r,n)=>async()=>{let i=Ao();return globalThis.postMessage({type:t,identifier:i,name:e}),await new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:e})}))};globalThis.addEventListener("message",o)})},Sw={singleProcess:!1},Bp=e=>{if(e=Object.assign({},Sw,e),!!globalThis.document||e.singleProcess){let r=new EventTarget;return hl.addEventListener("message",Cp(r,"requestReadLock",ol,al,cl)),hl.addEventListener("message",Cp(r,"requestWriteLock",ul,ll,fl)),r}return{isWorker:!0,readLock:r=>Tp(r,ol,cl,al),writeLock:r=>Tp(r,ul,fl,ll)}};var Dn={},Wr;async function dl(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await sl((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var Aw=(e,t)=>{if(Wr.isWorker===!0)return{readLock:Wr.readLock(e,t),writeLock:Wr.writeLock(e,t)};let r=new Gr({concurrency:1}),n;return{async readLock(){if(n!=null)return await dl(n,t);n=new Gr({concurrency:t.concurrency,autoStart:!1});let i=n,s=dl(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await dl(r,t)}}},Iw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function pl(e){let t=Object.assign({},Iw,e);return Wr==null&&(Wr=Bp(t),Wr.isWorker!==!0&&(Wr.addEventListener("requestReadLock",r=>{Dn[r.data.name]!=null&&Dn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Wr.addEventListener("requestWriteLock",async r=>{Dn[r.data.name]!=null&&Dn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Dn[t.name]==null&&(Dn[t.name]=Aw(t.name,t)),Dn[t.name]}var ie={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var bi;(function(e){let t;(function(i){let s;i.codec=()=>(s==null&&(s=ne((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>re(o,i.codec()),i.decode=o=>ee(o,i.codec())})(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=ne((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),zo.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=zo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>re(o,i.codec()),i.decode=o=>ee(o,i.codec())})(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={}));let n;e.codec=()=>(n==null&&(n=ne((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Ho.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),e.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),e.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(Ho.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=e.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=e.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),e.encode=i=>re(i,e.codec()),e.decode=i=>ee(i,e.codec())})(bi||(bi={}));var Ho;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(Ho||(Ho={}));var zo;(function(e){let t;e.codec=()=>(t==null&&(t=ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>re(r,e.codec()),e.decode=r=>ee(r,e.codec())})(zo||(zo={}));function wi(e,t){let r=bi.decode(t);r.publicKey!=null&&e.publicKey==null&&(e=Ad({...e,publicKey:e.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:e,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:$t(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var ml="/peers/";function vi(e){if(!So(e)||e.type==null)throw new w("Invalid PeerId",ie.ERR_INVALID_PARAMETERS);let t=e.toCID().toString();return new rr(`${ml}${t}`)}async function Lp(e,t,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=$t(i.multiaddr)),!Bn(i.multiaddr))throw new w("Multiaddr was invalid",ie.ERR_INVALID_PARAMETERS);if(!await t(e,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function Yo(e,t,r,n){if(t==null)throw new w("Invalid PeerData",ie.ERR_INVALID_PARAMETERS);if(t.publicKey!=null&&e.publicKey!=null&&!Tt(t.publicKey,e.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",ie.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!e.equals(i.id))throw new w("peer id did not match existing peer id",ie.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Go(f,{validate:Pp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Go(f,{validate:Dp,map:Np})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(r==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[d,p]of f)p==null?a.delete(d):a.set(d,p);a=Go([...a.entries()],{validate:Pp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),d=new Map(c);for(let[p,h]of f)h==null?d.delete(p):d.set(p,h);c=Go([...d.entries()],{validate:Dp,map:Np})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let l={addresses:await Lp(e,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,d)=>f.localeCompare(d)),metadata:a,tags:c,publicKey:i?.id.publicKey??t.publicKey??e.publicKey,peerRecordEnvelope:u};return e.type!=="RSA"&&delete l.publicKey,l}function Go(e,t){let r=new Map;for(let[n,i]of e)i!=null&&t.validate(n,i);for(let[n,i]of e.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,t.map?.(n,i)??i);return r}function Pp(e,t){if(typeof e!="string")throw new w("Metadata key must be a string",ie.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",ie.ERR_INVALID_PARAMETERS)}function Dp(e,t){if(typeof e!="string")throw new w("Tag name must be a string",ie.ERR_INVALID_PARAMETERS);if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new w("Tag value must be an integer",ie.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new w("Tag value must be between 0-100",ie.ERR_INVALID_PARAMETERS)}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new w("Tag ttl must be an integer",ie.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new w("Tag ttl must be between greater than 0",ie.ERR_INVALID_PARAMETERS)}}function Np(e,t){let r;return t.expiry!=null&&(r=t.expiry),t.ttl!=null&&(r=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:r}}function Wo(e,t,r){let n=e.toString().split("/")[2],i=Ee.decode(n),s=fi(i),o=r.get(s);if(o!=null)return o;let a=wi(s,t);return r.set(s,a),a}function Rw(e,t){return e==null?{}:{prefix:ml,filters:(e.filters??[]).map(r=>({key:n,value:i})=>r(Wo(n,i,t))),orders:(e.orders??[]).map(r=>(n,i)=>r(Wo(n.key,n.value,t),Wo(i.key,i.value,t)))}}var Qo=class{peerId;datastore;lock;addressFilter;constructor(t,r={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=r.addressFilter,this.lock=pl({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(vi(t))}async delete(t){if(this.peerId.equals(t))throw new w("Cannot delete self peer",ie.ERR_INVALID_PARAMETERS);await this.datastore.delete(vi(t))}async load(t){let r=await this.datastore.get(vi(t));return wi(t,r)}async save(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,i)}async patch(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async merge(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async*all(t){let r=new qe;for await(let{key:n,value:i}of this.datastore.query(Rw(t??{},r))){let s=Wo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let r=await this.datastore.get(vi(t)),n=wi(t,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#e(t,r,n,i){let s=bi.encode(r);return n!=null&&Tt(s,n)?{peer:wi(t,s),previous:i,updated:!1}:(await this.datastore.put(vi(t),s),{peer:wi(t,s),previous:i,updated:!0})}};var wt=rt("libp2p:peer-store"),Xo=class{store;events;peerId;constructor(t,r={}){this.events=t.events,this.peerId=t.peerId,this.store=new Qo(t,r)}async forEach(t,r){wt.trace("forEach await read lock");let n=await this.store.lock.readLock();wt.trace("forEach got read lock");try{for await(let i of this.store.all(r))t(i)}finally{wt.trace("forEach release read lock"),n()}}async all(t){wt.trace("all await read lock");let r=await this.store.lock.readLock();wt.trace("all got read lock");try{return await fs(this.store.all(t))}finally{wt.trace("all release read lock"),r()}}async delete(t){wt.trace("delete await write lock");let r=await this.store.lock.writeLock();wt.trace("delete got write lock");try{await this.store.delete(t)}finally{wt.trace("delete release write lock"),r()}}async has(t){wt.trace("has await read lock");let r=await this.store.lock.readLock();wt.trace("has got read lock");try{return await this.store.has(t)}finally{wt.trace("has release read lock"),r()}}async get(t){wt.trace("get await read lock");let r=await this.store.lock.readLock();wt.trace("get got read lock");try{return await this.store.load(t)}finally{wt.trace("get release read lock"),r()}}async save(t,r){wt.trace("save await write lock");let n=await this.store.lock.writeLock();wt.trace("save got write lock");try{let i=await this.store.save(t,r);return this.#t(t,i),i.peer}finally{wt.trace("save release write lock"),n()}}async patch(t,r){wt.trace("patch await write lock");let n=await this.store.lock.writeLock();wt.trace("patch got write lock");try{let i=await this.store.patch(t,r);return this.#t(t,i),i.peer}finally{wt.trace("patch release write lock"),n()}}async merge(t,r){wt.trace("merge await write lock");let n=await this.store.lock.writeLock();wt.trace("merge got write lock");try{let i=await this.store.merge(t,r);return this.#t(t,i),i.peer}finally{wt.trace("merge release write lock"),n()}}async consumePeerRecord(t,r){let n=await mi.openAndCertify(t,Ln.DOMAIN);if(r?.equals(n.peerId)===!1)return wt("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=Ln.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await mi.createFromProtobuf(s.peerRecordEnvelope),a=Ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return wt("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:t,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#t(t,r){r.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function Cw(e){return e[Symbol.asyncIterator]!=null}function Tw(e){if(Cw(e))return(async()=>{for await(let t of e);})();for(let t of e);}var yl=Tw;function Bw(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var Zo=Bw;function Lw(e){return e[Symbol.asyncIterator]!=null}function Pw(e,t){if(Lw(e))return async function*(){for await(let a of e)await t(a)&&(yield a)}();let r=Zo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await t(a)&&(yield a)}();let o=t;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var He=Pw;function Dw(e){return e[Symbol.asyncIterator]!=null}function Nw(e,t){return Dw(e)?async function*(){yield*(await fs(e)).sort(t)}():function*(){yield*fs(e).sort(t)}()}var gl=Nw;function kw(e){return e[Symbol.asyncIterator]!=null}function Ow(e,t){return kw(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var xl=Ow;var Jo=class{put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield n}async*getMany(t,r={}){for await(let n of t)yield{key:n,value:await this.get(n,r)}}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await yl(this.putMany(t,n)),t=[],await yl(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>gl(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=He(n,()=>i++>=s)}return t.limit!=null&&(n=xl(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>gl(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=He(n,()=>s++>=i)}return t.limit!=null&&(n=xl(n,t.limit)),n}};var Mp=mt(El(),1);function Up(e){return e=e??new Error("Not Found"),(0,Mp.default)(e,"ERR_NOT_FOUND")}var jo=class extends Jo{data;constructor(){super(),this.data=new Map}put(t,r){return this.data.set(t.toString(),r),t}get(t){let r=this.data.get(t.toString());if(r==null)throw Up();return r}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,r]of this.data.entries())yield{key:new rr(t),value:r}}*_allKeys(){for(let t of this.data.keys())yield new rr(t)}};function Fp(e,t){let r;return function(){let n=function(){r=void 0,e()};clearTimeout(r),r=setTimeout(n,t)}}var Fw=rt("libp2p:address-manager"),Kw=e=>e;function bl(e,t){let r=e.getPeerId();return r!=null&&lt(r).equals(t)&&(e=e.decapsulate($t(`/p2p/${t.toString()}`))),e}var ta=class{components;listen;announce;observed;announceFilter;constructor(t,r={}){let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Kw,this._updatePeerStoreAddresses=Fp(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let t=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>$t(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:t}).catch(r=>{Fw.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(t=>$t(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>$t(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>$t(t))}addObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString();this.observed.delete(r)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>$t(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function Kp(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var wl=class{components={};_started=!1;constructor(t={}){this.components={};for(let[r,n]of Object.entries(t))this.components[r]=n}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(r=>Kp(r)).map(async r=>{await r[t]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},Vw=["metrics","connectionProtector"],qw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Vp(e={}){let t=new wl(e);return new Proxy(t,{get(n,i,s){if(typeof i=="string"&&!qw.includes(i)){let o=t.components[i];if(o==null&&!Vw.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?t.components[i]=s:Reflect.set(n,i,s),!0}})}var Wp=mt(qp(),1);var $p="[a-fA-F\\d:]",Qr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${$p})|(?<=${$p})(?=\\s|$))`:"",ze="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Kt="[a-fA-F\\d]{1,4}",ea=`
38
38
  (?:
39
- (?:${Ve}:){7}(?:${Ve}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
- (?:${Ve}:){6}(?:${zt}|:${Ve}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
41
- (?:${Ve}:){5}(?::${zt}|(?::${Ve}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
42
- (?:${Ve}:){4}(?:(?::${Ve}){0,1}:${zt}|(?::${Ve}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
43
- (?:${Ve}:){3}(?:(?::${Ve}){0,2}:${zt}|(?::${Ve}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
44
- (?:${Ve}:){2}(?:(?::${Ve}){0,3}:${zt}|(?::${Ve}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
45
- (?:${Ve}:){1}(?:(?::${Ve}){0,4}:${zt}|(?::${Ve}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
- (?::(?:(?::${Ve}){0,5}:${zt}|(?::${Ve}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
39
+ (?:${Kt}:){7}(?:${Kt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
+ (?:${Kt}:){6}(?:${ze}|:${Kt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
41
+ (?:${Kt}:){5}(?::${ze}|(?::${Kt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
42
+ (?:${Kt}:){4}(?:(?::${Kt}){0,1}:${ze}|(?::${Kt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
43
+ (?:${Kt}:){3}(?:(?::${Kt}){0,2}:${ze}|(?::${Kt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
44
+ (?:${Kt}:){2}(?:(?::${Kt}){0,3}:${ze}|(?::${Kt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
45
+ (?:${Kt}:){1}(?:(?::${Kt}){0,4}:${ze}|(?::${Kt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
+ (?::(?:(?::${Kt}){0,5}:${ze}|(?::${Kt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
47
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),mv=new RegExp(`(?:^${zt}$)|(?:^${sa}$)`),yv=new RegExp(`^${zt}$`),gv=new RegExp(`^${sa}$`),Rl=t=>t&&t.exact?mv:new RegExp(`(?:${Qr(t)}${zt}${Qr(t)})|(?:${Qr(t)}${sa}${Qr(t)})`,"g");Rl.v4=t=>t&&t.exact?yv:new RegExp(`${Qr(t)}${zt}${Qr(t)}`,"g");Rl.v6=t=>t&&t.exact?gv:new RegExp(`${Qr(t)}${sa}${Qr(t)}`,"g");var cm=Rl;var dm=ae(lm(),1),{isValid:xv,parse:Ev}=dm.default,bv=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],wv=bv.map(t=>new hm.Netmask(t));function vv(t){for(let e of wv)if(e.contains(t))return!0;return!1}function fm(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var pm=t=>{if(xv(t)){let e=Ev(t);if(e.kind()==="ipv4")return vv(e.toNormalizedString());if(e.kind()==="ipv6")return fm(t)}else if(Ei(t)&&cm.v6().test(t))return fm(t)};var aa=pm;function mm(t={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let r=e.stringTuples();return r[0][0]===4||r[0][0]===41?!!aa(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...t}}var kB=Symbol.for("@libp2p/transport");var Xr;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(Xr||(Xr={}));var _v=t=>t.toString().split("/").slice(1),vs=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),Ue=t=>({match:e=>vs(r=>r===t).match(e),pattern:t}),la=()=>({match:t=>vs(e=>typeof e=="string").match(t),pattern:"{string}"}),ym=()=>({match:t=>vs(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),Dt=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{Te.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),ca=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{wc.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),ir=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),sr=(...t)=>({match:e=>{let r;for(let n of t){let i=n.match(e);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),Fe=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function Xe(...t){function e(i){let s=_v(i);for(let o of t){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return e(i)!==!1}function n(i){let s=e(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Tl=Fe(Ue("dns4"),la()),Bl=Fe(Ue("dns6"),la()),Ll=Fe(Ue("dnsaddr"),la()),gm=Fe(Ue("dns"),la()),VB=Xe(Tl),qB=Xe(Bl),$B=Xe(Ll),HB=Xe(sr(gm,Ll,Tl,Bl)),xm=Fe(Ue("ip4"),vs(Mo)),Em=Fe(Ue("ip6"),vs(Uo)),bm=sr(xm,Em),fa=sr(bm,gm,Tl,Bl,Ll),zB=Xe(xm),GB=Xe(Em),YB=Xe(bm),ha=Fe(fa,Ue("tcp"),ym()),_s=Fe(fa,Ue("udp"),ym()),Sv=sr(ha,_s),WB=Xe(ha),QB=Xe(_s),Pl=Fe(_s,Ue("quic")),da=Fe(_s,Ue("quic-v1")),Av=sr(Pl,da),XB=Xe(Pl),ZB=Xe(da),Cl=sr(fa,ha,_s,Pl,da),wm=sr(Fe(Cl,Ue("ws"),ir(Dt()))),jB=Xe(wm),vm=sr(Fe(Cl,Ue("wss"),ir(Dt())),Fe(Cl,Ue("tls"),Ue("ws"),ir(Dt()))),JB=Xe(vm),_m=Fe(Sv,Ue("webrtc-direct"),ca(),ir(ca()),ir(Dt())),eL=Xe(_m),Sm=Fe(da,Ue("webtransport"),ca(),ca(),ir(Dt())),tL=Xe(Sm),ua=sr(wm,vm,Fe(ha,ir(Dt())),Fe(Av,ir(Dt())),Fe(fa,ir(Dt())),_m,Sm,Dt()),rL=Xe(ua),Iv=Fe(ua,Ue("p2p-circuit"),Dt()),Dl=Xe(Iv),Rv=sr(Fe(ua,Ue("p2p-circuit"),Ue("webrtc"),Dt()),Fe(ua,Ue("webrtc"),ir(Dt())),Ue("webrtc")),nL=Xe(Rv);function Nl(t){try{let{address:e}=t.nodeAddress();return!!aa(e)}catch{return!0}}function Cv(t,e){let r=Nl(t.multiaddr),n=Nl(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Tv(t,e){return t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}function Bv(t,e){let r=Dl.exactMatch(t.multiaddr),n=Dl.exactMatch(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function Ai(t,e){let r=Cv(t,e);if(r!==0)return r;let n=Bv(t,e);return n!==0?n:Tv(t,e)}var Ol=ae(Cu(),1),Ml=ae(Rm(),1);var Cm=globalThis.fetch,Tm=globalThis.Headers,fL=globalThis.Request,hL=globalThis.Response;function pa(t,e,r){return`${t}?name=${e}&type=${r}`}async function Bm(t,e){return await(await Cm(t,{headers:new Tm({accept:"application/dns-json"}),signal:e})).json()}function Nn(t,e){return`${e}_${t}`}var kl=Object.assign((0,Ol.default)("dns-over-http-resolver"),{error:(0,Ol.default)("dns-over-http-resolver:error")}),Ul=class{constructor(e={}){this._cache=new Ml.default({max:e?.maxCache??100}),this._TXTcache=new Ml.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??Bm,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>e.abort())}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return await this.resolve4(e);case"AAAA":return await this.resolve6(e);case"TXT":return await this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(Nn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(pa(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),kl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(Nn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(pa(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),kl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(Nn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(pa(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Nn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),kl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Lm=Ul;var Pm=Lm;var{code:kv}=Ee("dnsaddr");async function Ii(t,e={}){let r=new Pm;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===kv)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var or;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.DHT_DISABLED="DHT is not available",t.PUBSUB_DISABLED="PubSub is not available",t.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",t.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(or||(or={}));var U;(function(t){t.DHT_DISABLED="ERR_DHT_DISABLED",t.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",t.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",t.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",t.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",t.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TIMEOUT="ERR_TIMEOUT",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(U||(U={}));var Ov={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:Ii},addressSorter:Ai},transportManager:{faultTolerance:Xr.FATAL_ALL}};function Dm(t){let e=qr(Ov,t);if(e.transports==null||e.transports.length<1)throw new w(or.ERR_TRANSPORTS_REQUIRED,U.ERR_TRANSPORTS_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(or.ERR_PROTECTOR_REQUIRED,U.ERR_PROTECTOR_REQUIRED);return e}var Nm="keep-alive";var Dy=ae(Cy(),1);var x_=re("libp2p:get-peer");function ya(t){if(Co(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:fe(r),t.forEach(n=>{if(!Bn(n))throw x_.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",U.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",U.ERR_INVALID_PARAMETERS)}else{let s=fe(i);if(e==null||!e.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",U.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function E_(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var ef=class{#e=[];enqueue(e,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",U.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:e};if(this.size>0&&this.#e[this.size-1].priority>=i){this.#e.push(s);return}let o=E_(this.#e,s,(a,c)=>c.priority-a.priority);this.#e.splice(o,0,s)}dequeue(){return this.#e.shift()?.run}filter(e){if(e.peerId!=null){let r=e.peerId;return this.#e.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}},ga=class extends Gr{constructor(e={}){super({...e,queueClass:ef})}hasJob(e){return this.sizeBy({peerId:e})>0}};var xa="last-dial-failure";var Ea=5,ba=100,wa=50,Ty=1e3*60*7;var Ze=re("libp2p:connection-manager:auto-dial"),kn={minConnections:Ea,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:Ty,autoDialDiscoveredPeersDebounce:10},va=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??kn.minConnections,this.autoDialPriority=r.autoDialPriority??kn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??kn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??kn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??kn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??kn.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new ga({concurrency:r.autoDialConcurrency??kn.autoDialConcurrency}),this.queue.addListener("error",i=>{Ze.error("error during auto-dial",i)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{Ze.error(i)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{Ze.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{Ze.error("error while autodialing",e)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(e=>{Ze.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let e=this.connectionManager.getConnectionsMap(),r=e.size;if(r>=this.minConnections){this.minConnections>0&&Ze.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){Ze("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){Ze("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,Ze("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Tn(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(Ze.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(Ze.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(Ze.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(Ze.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new qt;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,d=o.get(l.id)??0;return f>d?-1:f<d?1:0}).filter(u=>{let l=u.metadata.get(xa);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});Ze("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){Ze("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}Ze("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{Ze.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{Ze.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var Li=re("libp2p:connection-manager:connection-pruner"),By={maxConnections:ba,allow:[]},_a=class{maxConnections;connectionManager;peerStore;allow;events;constructor(e,r={}){this.maxConnections=r.maxConnections??By.maxConnections,this.allow=r.allow??By.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{Li.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(Li("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Li("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new qt;for(let a of e){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&Li.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,d=c.timeline.open;return f<d?1:f>d?-1:0}),o=[];for(let a of s)if(Li("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){Li.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};var af=ae($n(),1);function Sa(t){let e=new globalThis.AbortController;function r(){e.abort();for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of t){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}function jr(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var sf=ae($n(),1);var Ly=re("libp2p:connection-manager:utils");async function of(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await v_(t,e),o=(await Promise.all(n.map(async a=>of(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return Ly("resolved %s to",t,o.map(a=>a.toString())),o}async function v_(t,e){try{return t=He(t.toString()),await t.resolve(e)}catch(r){return Ly.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}function Py(...t){let e=[];for(let n of t)if(n!=null){try{(0,sf.setMaxListeners)?.(1/0,n)}catch{}e.push(n)}let r=Sa(e);try{(0,sf.setMaxListeners)?.(1/0,r)}catch{}return r}var ot=re("libp2p:connection-manager:dial-queue"),As={addressSorter:Ai,maxParallelDials:wa,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:Ii}},Aa=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;constructor(e,r={}){this.addressSorter=r.addressSorter??As.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??As.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??As.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??As.dialTimeout,this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController;try{(0,af.setMaxListeners)?.(1/0,this.shutDownController.signal)}catch{}this.pendingDialCount=e.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=e.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))ju.set(n,i);this.queue=new Gr({concurrency:r.maxParallelDials??As.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{ot.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}stop(){this.shutDownController.abort()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=ya(e),s=i.map(l=>({multiaddr:l,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(l){throw o.clear(),l}let c=this.pendingDials.find(l=>!!(l.peerId!=null&&n!=null&&l.peerId.equals(n)||a.map(({multiaddr:f})=>f.toString()).join()===l.multiaddrs.map(f=>f.toString()).join()));if(c!=null)return ot("joining existing dial target for %p",n),o.clear(),c.promise;ot("creating dial target for",a.map(({multiaddr:l})=>l.toString()));let u={id:__(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:l})=>l)};return u.promise=this.performDial(u,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(l=>l.id!==u.id),o.clear()}).catch(async l=>{if(ot.error("dial failed to %s",u.multiaddrs.map(f=>f.toString()).join(", "),l),n!=null)try{await this.peerStore.patch(n,{metadata:{[xa]:z(Date.now().toString())}})}catch(f){ot.error("could not update last dial failure key for %p",n,f)}throw o.aborted?new w(l.message,U.ERR_TIMEOUT):l}),this.pendingDials.push(u),u.promise}createDialAbortControllers(e){let r=Sa([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);try{(0,af.setMaxListeners)?.(1/0,r)}catch{}return r}async calculateMultiaddrs(e,r=[],n={}){if(e!=null){if(this.peerId.equals(e))throw new w("Tried to dial self",U.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(e)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",U.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){ot("loading multiaddrs for %p",e);try{let l=await this.peerStore.get(e);r.push(...l.addresses),ot("loaded multiaddrs for %p",e,r.map(({multiaddr:f})=>f.toString()))}catch(l){if(l.code!==U.ERR_NOT_FOUND)throw l}}}let i=(await Promise.all(r.map(async l=>{let f=await of(l.multiaddr,n);return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(d=>({multiaddr:d,isCertified:!1}))}))).flat(),s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return e!=null&&f!=null?e.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),d=o.get(f);if(d!=null){d.isCertified=d.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(ot("addresses for %p before filtering",e??"unknown peer",i.map(({multiaddr:l})=>l.toString())),ot("addresses for %p after filtering",e??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",U.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("dial with more addresses than allowed",U.ERR_TOO_MANY_ADDRESSES);if(e!=null){let l=`/p2p/${e.toString()}`;a=a.map(f=>{let d=f.multiaddr.getPeerId();return f.multiaddr.protos().pop()?.path===!0?f:d!==e.toString()?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f})}let c=[];for(let l of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(l.multiaddr)||c.push(l);let u=c.sort(this.addressSorter);if(u.length===0)throw new w("The connection gater denied all addresses in the dial request",U.ERR_NO_VALID_ADDRESSES);return u}async performDial(e,r={}){let n=e.multiaddrs.map(()=>new AbortController);try{let i=new Gr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{ot.error("error dialling",o)});let s=await Promise.any(e.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",U.ERR_INVALID_PARAMETERS);let u=Py(c.signal,r.signal);u.addEventListener("abort",()=>{ot("dial to %a aborted",o)});let l=jr();return await i.add(async()=>{if(u.aborted){ot("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Wn);return}await this.queue.add(async()=>{try{if(u.aborted){ot("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Wn);return}e.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){ot("multiple dials succeeded, closing superfluous connection"),f.close().catch(d=>{ot.error("error closing superfluous connection",d)}),l.reject(new Wn);return}n[a]=void 0,n.forEach(d=>{d!==void 0&&d.abort()}),ot("dial to %a succeeded",o),l.resolve(f)}catch(f){ot.error("error during dial of %a",o,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),l.promise}));if(s==null)throw new w("successful dial led to empty object returned from peer dial queue",U.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",s}catch(i){throw e.status="error",e.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function __(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ct=re("libp2p:connection-manager"),I_=50,On={minConnections:Ea,maxConnections:ba,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Ia=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;constructor(e,r={}){this.maxConnections=r.maxConnections??On.maxConnections;let n=r.minConnections??On.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",U.ERR_INVALID_PARAMETERS);this.connections=new qt,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>He(i)),this.deny=(r.deny??[]).map(i=>He(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??On.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new Dy.RateLimiterMemory({points:r.inboundConnectionThreshold??On.inboundConnectionThreshold,duration:1}),this.autoDial=new va({connectionManager:this,peerStore:e.peerStore,events:e.events},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??On.autoDialConcurrency,autoDialPriority:r.autoDialPriority??On.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??On.autoDialMaxQueueLength}),this.connectionPruner=new _a({connectionManager:this,peerStore:e.peerStore,events:e.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Aa({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater},{addressSorter:r.addressSorter??Ai,maxParallelDials:r.maxParallelDials??wa,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Ii}})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,Ct("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[r=>r.tags.has(Nm)]});await Promise.all(e.map(async r=>{await this.openConnection(r.id).catch(n=>{Ct.error(n)})}))}).catch(e=>{Ct.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){Ct.error(i)}})());Ct("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),Ct("stopped")}onConnect(e){this._onConnect(e).catch(r=>{Ct.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){if(!this.isStarted())throw new w("Not started",U.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=ya(e);if(n!=null&&r.force!==!0){Ct("dial %p",n);let a=this.getConnections(n);if(a.length>0)return Ct("had an existing connection to %p",n),a[0]}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??I_}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(e,r={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return Ct("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return Ct("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Ct("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(Ct("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var Ra=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Pi=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Ra(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new Ra(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var ff=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mn(t={}){return R_(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}},t)}function R_(t,e){e=e??{};let r=e.onEnd,n=new Pi,i,s,o,a=jr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(t(n))}catch(b){g(b)}return i}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=jr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new Pi,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},d=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new Pi,d(),{done:!0}),h=y=>(d(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:h,push:f,end:d,get readableLength(){return n.size},onEmpty:async y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((C,_)=>{b=()=>{_(new ff)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength}},i}function C_(t){return t[Symbol.asyncIterator]!=null}function T_(...t){let e=[];for(let r of t)C_(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=Mn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Jr=T_;function Un(t,...e){if(t==null)throw new Error("Empty pipeline");if(hf(t)){let n=t;t=()=>n.source}else if(ky(t)||Ny(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&hf(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++)hf(r[n])&&(r[n]=L_(r[n]));return B_(...r)}var B_=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Ny=t=>t?.[Symbol.asyncIterator]!=null,ky=t=>t?.[Symbol.iterator]!=null,hf=t=>t==null?!1:t.sink!=null&&t.source!=null,L_=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=Mn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=t.source;if(Ny(s))i=async function*(){yield*s,n.end()};else if(ky(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Jr(n,i())}return t.source};function P_(t){return t[Symbol.asyncIterator]!=null}function D_(t,e){if(P_(t))return async function*(){for await(let a of t)yield e(a)}();let r=ta(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield e(a)}();let o=e;return function*(){yield s;for(let a of r)yield o(a)}()}var Oy=D_;async function*Is(t,e){yield*Oy(t,async r=>(await e.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function Ca(t){let e=new Set;return Ht(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*Ta(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw new w(`more peers required, seen: ${r} min: ${e}`,"NOT_FOUND")}var Ba=class{routers;started;components;constructor(e,r){this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw new w("No content routers available",U.ERR_NO_ROUTERS_AVAILABLE);yield*Un(Jr(...this.routers.map(n=>n.findProviders(e,r))),n=>Is(n,this.components.peerStore),n=>Ca(n),n=>Ta(n))}async provide(e,r={}){if(this.routers.length===0)throw new w("No content routers available",U.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,U.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(e,r,n)}))}async get(e,r){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,U.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,r)))}};function N_(t){return t[Symbol.asyncIterator]!=null}function k_(t){if(N_(t))return(async()=>{for await(let e of t)return e})();for(let e of t)return e}var La=k_;var O_=re("libp2p:peer-routing"),Pa=class{components;routers;constructor(e,r){this.components=e,this.routers=r.routers??[]}async findPeer(e,r){if(this.routers.length===0)throw new w("No peer routers available",U.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw new w("Should not try to find self",U.ERR_FIND_SELF);let n=await Un(Jr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(s){O_.error(s)}}())),i=>Ht(i,Boolean),i=>Is(i,this.components.peerStore),async i=>La(i));if(n!=null)return n;throw new w(or.NOT_FOUND,U.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw new w("No peer routers available",U.ERR_NO_ROUTERS_AVAILABLE);yield*Un(Jr(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>Is(n,this.components.peerStore),n=>Ca(n),n=>Ta(n))}};var df=re("libp2p:registrar"),pf=32,mf=64,Da=class{topologies;handlers;components;constructor(e){this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onConnect=this._onConnect.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:connect",this._onConnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw new w(`No handler registered for protocol ${e}`,U.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new w(`Handler already registered for protocol ${e}`,U.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=qr.bind({ignoreUndefined:!0})({maxInboundStreams:pf,maxOutboundStreams:mf},n);this.handlers.set(e,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,r){if(r==null)throw new w("invalid topology",U.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==U.ERR_NOT_FOUND&&df.error("could not inform topologies of disconnecting peer %p",r,n)})}_onConnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{let i=this.components.connectionManager.getConnections(n.id)[0];if(i==null){df("peer %p connected but the connection manager did not have a connection",n);return}for(let s of n.protocols){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onConnect?.(r,i)}}).catch(n=>{n.code!==U.ERR_NOT_FOUND&&df.error("could not inform topologies of connecting peer %p",r,n)})}_onPeerUpdate(e){let{peer:r,previous:n}=e.detail,i=(n?.protocols??[]).filter(o=>!r.protocols.includes(o)),s=r.protocols.filter(o=>!(n?.protocols??[]).includes(o));for(let o of i){let a=this.topologies.get(o);if(a!=null)for(let c of a.values())c.onDisconnect?.(r.id)}for(let o of s){let a=this.topologies.get(o);if(a!=null)for(let c of a.values()){let u=this.components.connectionManager.getConnections(r.id)[0];u!=null&&c.onConnect?.(r.id,u)}}}};var yf=class extends Map{metric;constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function My(t){let{name:e,metrics:r}=t,n;return r!=null?n=new yf({name:e,metrics:r}):n=new Map,n}var en=re("libp2p:transports"),Na=class{components;transports;listeners;faultTolerance;started;constructor(e,r={}){this.components=e,this.started=!1,this.transports=new Map,this.listeners=My({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Xr.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",U.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,U.ERR_DUPLICATE_TRANSPORT);en("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[r,n]of this.listeners)for(en("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),en("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new w(`No transport available for address ${String(e)}`,U.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=U.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(!this.isStarted())throw new w("Not started",U.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){en("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){en("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let d=f.findIndex(p=>p===l);f.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==Xr.NO_FATAL)throw new w(`Transport (${n}) could not listen on any available address`,U.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===Xr.FATAL_ALL)throw new w(n,U.ERR_NO_VALID_ADDRESSES);en(`libp2p in dial mode only: ${n}`)}}async remove(e){let r=this.listeners.get(e)??[];en.trace("removing transport %s",e);let n=[];for(en.trace("closing listeners for %s",e);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var bf=ae($n(),1);var Rr="/multistream/1.0.0";function gf(t){let e=async function*(){let r=yield,n=new Qe;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new Qe;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Qe);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return e.next(),e}function ka(t){let e=Mn(),r=gf(t.source),n=jr(),i,s=t.sink(async function*(){yield*e,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:e,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>e.end(),write:e.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var Rs=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Uy(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function Fy(t,e,r){let n=r??{},i=Uy(t);async function*s(){let o,a=()=>{o?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:l,abortCode:f}=n;throw new Rs(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:d,abortCode:p}=n;f(new Rs(d,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){e.removeEventListener("abort",a);let l=u.type==="aborted"&&e.aborted;if(l&&n.onAbort!=null&&n.onAbort(t),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}e.removeEventListener("abort",a)}return s()}function Oa(t){return t[Symbol.asyncIterator]!=null}var Ma=t=>{let e=xt(t),r=ct(e);return Pt(t,r),Ma.bytes=e,r};Ma.bytes=0;function Ua(t,e){e=e??{};let r=e.lengthEncoder??Ma;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Oa(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}Ua.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Ma;return new Qe(r(t.byteLength),t)};var Di=ae(Sl(),1);var M_=8,U_=1024*1024*4,Fn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(Fn||(Fn={}));var xf=t=>{let e=Ar(t);return xf.bytes=xt(e),e};xf.bytes=0;function Cs(t,e){let r=new Qe,n=Fn.LENGTH,i=-1,s=e?.lengthDecoder??xf,o=e?.maxLengthLength??M_,a=e?.maxDataLength??U_;function*c(){for(;r.byteLength>0;){if(n===Fn.LENGTH)try{if(i=s(r),i<0)throw(0,Di.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Di.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=Fn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,Di.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=Fn.LENGTH}}}return Oa(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,Di.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,Di.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Cs.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return Cs(n,{...e??{},onLength:s=>{r=s}})};var V_=re("libp2p:mss"),Ky=z(`
49
- `);function Ts(t){let e=new Qe(t,Ky);return Ua.single(e)}function Kn(t,e,r={}){let n=Ts(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function Vy(t,e,r={}){let n=new Qe;for(let i of e)n.append(Ts(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function q_(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>t.next(r)},i=n;e?.signal!=null&&(i=Fy(n,e.signal));let s=a=>{r=a},o=await Un(i,a=>Cs(a,{onLength:s,maxDataLength:1024}),async a=>La(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Ky[0])throw V_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ni(t,e){let r=await q_(t,e);return X(r.subarray())}var Bs=re("libp2p:mss:select");async function Ls(t,e,r={}){e=Array.isArray(e)?[...e]:[e];let{reader:n,writer:i,rest:s,stream:o}=ka(t),a=e.shift();if(a==null)throw new Error("At least one protocol must be specified");Bs.trace('select: write ["%s", "%s"]',Rr,a);let c=z(Rr),u=z(a);Vy(i,[c,u],r);let l=await Ni(n,r);if(Bs.trace('select: read "%s"',l),l===Rr&&(l=await Ni(n,r),Bs.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of e){Bs.trace('select: write "%s"',f),Kn(i,z(f),r);let d=await Ni(n,r);if(Bs.trace('select: read "%s" for "%s"',d,f),d===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Ps=re("libp2p:mss:handle");async function Ds(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:s,stream:o}=ka(t);for(;;){let a=await Ni(i,r);if(Ps.trace('read "%s"',a),a===Rr){Ps.trace('respond with "%s" for "%s"',Rr,a),Kn(n,z(Rr),r);continue}if(e.includes(a))return Kn(n,z(a),r),Ps.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Kn(n,new Qe(...e.map(c=>Ts(z(c)))),r),Ps.trace('respond with "%s" for %s',e,a);continue}Kn(n,z("na"),r),Ps('respond with "na" for "%s"',a)}}var Hy=ae($n(),1);var $y=Symbol.for("@libp2p/connection");var Vn=re("libp2p:connection"),H_=500,Ef=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[$y]=!0;get streams(){return this._getStreams()}async newStream(e,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,r);return n.direction="outbound",n}async close(e={}){if(!(this.status==="closed"||this.status==="closing")){Vn("closing connection to %a",this.remoteAddr),this.status="closing",e.signal=e?.signal??AbortSignal.timeout(H_);try{(0,Hy.setMaxListeners)?.(1/0,e.signal)}catch{}try{Vn.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(e))),Vn.trace("closing underlying transport"),await this._close(e),Vn.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){Vn.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){Vn.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(r=>{r.abort(e)}),Vn.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function zy(t){return new Ef(t)}var be=re("libp2p:upgrader");function G_(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==U.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return pf}function Y_(t,e,r={}){try{let{options:n}=e.getHandler(t);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==U.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??mf}function Gy(t,e,r){let n=0;return r.streams.forEach(i=>{i.direction===e&&i.protocol===t&&n++}),n}var Fa=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,r){this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=e.events}async shouldBlockConnection(e,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(e,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,U.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new w("connection denied",U.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{e.abort(new w("inbound upgrade timeout",U.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0});try{(0,bf.setMaxListeners)?.(1/0,u)}catch{}try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",U.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),be("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(be("protecting the inbound connection"),f=await d.protect(e))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let d={...f,...i};await this.shouldBlockConnection(s,d,"denyInboundEncryptedConnection")}else{let d=e.remoteAddr.getPeerId();if(d==null)throw new w("inbound connection that skipped encryption must have a peer id",U.ERR_INVALID_MULTIADDR);let p=fe(d);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw be.error("Failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),be("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;n!=null&&(i=fe(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),be("Starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new w("Encryption was skipped but no peer id was passed",U.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw be.error("Failed to upgrade outbound connection",f),await e.close(f),f}return await this.shouldBlockConnection(o,e,"denyOutboundUpgradedConnection"),be("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=e,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:h=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Ds(h,m);if(be("%s: incoming stream opened on %s",n,g),f==null)return;let x=G_(g,this.components.registrar);if(Gy(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,U.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw h.abort(C),C}h.source=y.source,h.sink=y.sink,h.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(h,f),this._onStream({connection:f,stream:h,protocol:g})}).catch(async m=>{be.error(m),h.timeline.close==null&&await h.close()})}}),l=async(h,m={})=>{if(u==null)throw new w("Stream is not multiplexed",U.ERR_MUXER_UNAVAILABLE);be("%s: starting new stream on %s",n,h);let y=await u.newStream();try{if(m.signal==null){be("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),m.signal=AbortSignal.timeout(3e4);try{(0,bf.setMaxListeners)?.(1/0,m.signal)}catch{}}let{stream:g,protocol:x}=await Ls(y,h,m),b=Y_(x,this.components.registrar,m);if(Gy(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,U.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw be.error("could not create new stream for protocols %s on connection with address %a",h,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),U.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(h=>{be.error(h)}));let d=i.timeline;i.timeline=new Proxy(d,{set:(...h)=>(f!=null&&h[1]==="close"&&h[2]!=null&&d.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){be.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{be.error(m)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",U.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=zy({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async h=>{u!=null&&(be.trace("close muxer"),await u.close(h)),be.trace("close maconn"),await i.close(h),be.trace("closed maconn")},abort:h=>{i.abort(h),u?.abort(h)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());be("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Ds(e,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return be("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),U.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());be("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Ls(e,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return be("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),U.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());be("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Ls(e,n,{writeBytes:!0});be("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw be.error("error multiplexing outbound stream",i),new w(String(i),U.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());be("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ds(e,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw be.error("error multiplexing inbound stream",i),new w(String(i),U.ERR_MUXER_UNAVAILABLE)}}};var Et=re("libp2p"),wf=class extends as{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;components;#e;constructor(e){super();let r=new as,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new Su(c.type,{detail:c.detail}));return u||l};try{(0,Yy.setMaxListeners)?.(1/0,r)}catch{}this.#e=!1,this.peerId=e.peerId,this.services={};let i=this.components=sm({peerId:e.peerId,events:r,datastore:e.datastore??new na,connectionGater:mm(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new ea(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Fa(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(e.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Na(this.components,e.transportManager)),this.configureComponent("connectionManager",new Ia(this.components,e.connectionManager)),this.configureComponent("registrar",new Da(this.components)),this.configureComponent("addressManager",new ia(this.components,e.addresses));let s=Cn.generateOptions();this.keychain=this.configureComponent("keyChain",new Cn(this.components,{...s,...e.keychain}));let o=(e.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Pa(this.components,{routers:o}));let a=(e.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ba(this.components,{routers:a})),(e.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#t(f)})}),e.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),e.services!=null)for(let c of Object.keys(e.services)){let u=e.services[c],l=u(this.components);if(l==null){Et.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[vu]!=null&&(Et("registering service %s for content routing",c),a.push(l[vu])),l[Iu]!=null&&(Et("registering service %s for peer routing",c),o.push(l[Iu])),l[Au]!=null&&(Et("registering service %s for peer discovery",c),l[Au].addEventListener("peer",f=>{this.#t(f)}))}}configureComponent(e,r){return r==null&&Et.error("component %s was null or undefined",e),this.components[e]=r,r}async start(){if(this.#e)return;this.#e=!0,Et("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(Et("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),Et("libp2p has started")}catch(r){throw Et.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#e&&(Et("libp2p is stopping"),this.#e=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),Et("libp2p has stopped"))}isStarted(){return this.#e}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new Tn;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return this.components.connectionManager.openConnection(e,r)}async dialProtocol(e,r,n={}){if(r==null)throw new w("no protocols were provided to open a stream",U.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new w("no protocols were provided to open a stream",U.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,r={}){Bn(e)&&(e=fe(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,r)}async getPublicKey(e,r={}){if(Et("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.id.publicKey!=null)return n.id.publicKey;let i=Oe([z("/pk/"),e.multihash.digest]),s=await this.contentRouting.get(i,r);return ss(s),await this.peerStore.patch(e,{publicKey:s}),s}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return this.components.registrar.register(e,r)}unregister(e){this.components.registrar.unregister(e)}#t(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){Et.error(new Error(U.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{Et.error(n)})}};async function Wy(t){if(t.peerId==null){let e=t.datastore;if(e!=null)try{let r=new Cn({datastore:e},qr(Cn.generateOptions(),t.keychain));t.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return t.peerId==null&&(t.peerId=await fp()),new wf(Dm(t))}async function W_(t){let e=await Wy(t);return t.start!==!1&&await e.start(),e}return cg(Q_);})();
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),$w=new RegExp(`(?:^${ze}$)|(?:^${ea}$)`),Hw=new RegExp(`^${ze}$`),zw=new RegExp(`^${ea}$`),vl=e=>e&&e.exact?$w:new RegExp(`(?:${Qr(e)}${ze}${Qr(e)})|(?:${Qr(e)}${ea}${Qr(e)})`,"g");vl.v4=e=>e&&e.exact?Hw:new RegExp(`${Qr(e)}${ze}${Qr(e)}`,"g");vl.v6=e=>e&&e.exact?zw:new RegExp(`${Qr(e)}${ea}${Qr(e)}`,"g");var Hp=vl;var Qp=mt(Gp(),1),{isValid:Gw,parse:Yw}=Qp.default,Ww=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],Qw=Ww.map(e=>new Wp.Netmask(e));function Xw(e){for(let t of Qw)if(t.contains(e))return!0;return!1}function Yp(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var Xp=e=>{if(Gw(e)){let t=Yw(e);if(t.kind()==="ipv4")return Xw(t.toNormalizedString());if(t.kind()==="ipv6")return Yp(e)}else if(gi(e)&&Hp.v6().test(e))return Yp(e)};var na=Xp;function Zp(e={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{let r=t.stringTuples();return r[0][0]===4||r[0][0]===41?!!na(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...e}}var fB=Symbol.for("@libp2p/transport");var Xr;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(Xr||(Xr={}));var Zw=e=>e.toString().split("/").slice(1),bs=e=>({match:t=>t.length<1?!1:e(t[0])?t.slice(1):!1,pattern:"fn"}),Mt=e=>({match:t=>bs(r=>r===e).match(t),pattern:e}),oa=()=>({match:e=>bs(t=>typeof t=="string").match(e),pattern:"{string}"}),Jp=()=>({match:e=>bs(t=>!isNaN(parseInt(t))).match(e),pattern:"{number}"}),De=()=>({match:e=>{if(e.length<2||e[0]!=="p2p"&&e[0]!=="ipfs")return!1;if(e[1].startsWith("Q")||e[1].startsWith("1"))try{Ct.decode(`z${e[1]}`)}catch{return!1}else return!1;return e.slice(2)},pattern:"/p2p/{peerid}"}),ia=()=>({match:e=>{if(e.length<2||e[0]!=="certhash")return!1;try{yc.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),ir=e=>({match:t=>{let r=e.match(t);return r===!1?t:r},pattern:`optional(${e.pattern})`}),sr=(...e)=>({match:t=>{let r;for(let n of e){let i=n.match(t);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${e.map(t=>t.pattern).join(", ")})`}),Ut=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${e.map(t=>t.pattern).join(", ")})`});function Qt(...e){function t(i){let s=Zw(i);for(let o of e){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return t(i)!==!1}function n(i){let s=t(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Sl=Ut(Mt("dns4"),oa()),Al=Ut(Mt("dns6"),oa()),Il=Ut(Mt("dnsaddr"),oa()),jp=Ut(Mt("dns"),oa()),gB=Qt(Sl),xB=Qt(Al),EB=Qt(Il),bB=Qt(sr(jp,Il,Sl,Al)),tm=Ut(Mt("ip4"),bs(Do)),em=Ut(Mt("ip6"),bs(No)),rm=sr(tm,em),aa=sr(rm,jp,Sl,Al,Il),wB=Qt(tm),vB=Qt(em),_B=Qt(rm),ca=Ut(aa,Mt("tcp"),Jp()),ws=Ut(aa,Mt("udp"),Jp()),Jw=sr(ca,ws),SB=Qt(ca),AB=Qt(ws),Rl=Ut(ws,Mt("quic")),ua=Ut(ws,Mt("quic-v1")),jw=sr(Rl,ua),IB=Qt(Rl),RB=Qt(ua),_l=sr(aa,ca,ws,Rl,ua),nm=sr(Ut(_l,Mt("ws"),ir(De()))),CB=Qt(nm),im=sr(Ut(_l,Mt("wss"),ir(De())),Ut(_l,Mt("tls"),Mt("ws"),ir(De()))),TB=Qt(im),sm=Ut(Jw,Mt("webrtc-direct"),ia(),ir(ia()),ir(De())),BB=Qt(sm),om=Ut(ua,Mt("webtransport"),ia(),ia(),ir(De())),LB=Qt(om),sa=sr(nm,im,Ut(ca,ir(De())),Ut(jw,ir(De())),Ut(aa,ir(De())),sm,om,De()),PB=Qt(sa),tv=Ut(sa,Mt("p2p-circuit"),De()),Cl=Qt(tv),ev=sr(Ut(sa,Mt("p2p-circuit"),Mt("webrtc"),De()),Ut(sa,Mt("webrtc"),ir(De())),Mt("webrtc")),DB=Qt(ev);function Tl(e){try{let{address:t}=e.nodeAddress();return!!na(t)}catch{return!0}}function rv(e,t){let r=Tl(e.multiaddr),n=Tl(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function nv(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}function iv(e,t){let r=Cl.exactMatch(e.multiaddr),n=Cl.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function _i(e,t){let r=rv(e,t);if(r!==0)return r;let n=iv(e,t);return n!==0?n:nv(e,t)}var Ll=mt(_u(),1),Pl=mt(um(),1);var lm=globalThis.fetch,fm=globalThis.Headers,VB=globalThis.Request,qB=globalThis.Response;function la(e,t,r){return`${e}?name=${t}&type=${r}`}async function hm(e,t){return await(await lm(e,{headers:new fm({accept:"application/dns-json"}),signal:t})).json()}function Nn(e,t){return`${t}_${e}`}var Bl=Object.assign((0,Ll.default)("dns-over-http-resolver"),{error:(0,Ll.default)("dns-over-http-resolver:error")}),Dl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(t={}){this._cache=new Pl.default({max:t?.maxCache??100}),this._TXTcache=new Pl.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??hm,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>{t.abort()})}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return this.resolve4(t);case"AAAA":return this.resolve6(t);case"TXT":return this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Nn(t,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(la(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Nn(t,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(la(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Nn(t,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(la(s,t,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},dm=Dl;var pm=dm;var{code:uv}=xt("dnsaddr");async function Si(e,t={}){let r=new pm;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.stringTuples().find(([a])=>a===uv)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var or;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(or||(or={}));var U;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(U||(U={}));var lv={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:Si},addressSorter:_i},transportManager:{faultTolerance:Xr.FATAL_ALL}};function mm(e){let t=qr(lv,e);if(t.transports==null||t.transports.length<1)throw new w(or.ERR_TRANSPORTS_REQUIRED,U.ERR_TRANSPORTS_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(or.ERR_PROTECTOR_REQUIRED,U.ERR_PROTECTOR_REQUIRED);return t}var ym="keep-alive";var my=mt(ly(),1);var Gv=rt("libp2p:get-peer");function ha(e){if(So(e))return{peerId:e,multiaddrs:[]};Array.isArray(e)||(e=[e]);let t;if(e.length>0){let r=e[0].getPeerId();t=r==null?void 0:lt(r),e.forEach(n=>{if(!Bn(n))throw Gv.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",U.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(t!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",U.ERR_INVALID_PARAMETERS)}else{let s=lt(i);if(t==null||!t.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",U.ERR_INVALID_PARAMETERS)}})}return{peerId:t,multiaddrs:e}}function Yv(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Ql=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",U.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(s);return}let o=Yv(this.#t,s,(a,c)=>c.priority-a.priority);this.#t.splice(o,0,s)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},da=class extends Gr{constructor(t={}){super({...t,queueClass:Ql})}hasJob(t){return this.sizeBy({peerId:t})>0}};var pa="last-dial-failure";var ma=5,ya=100,ga=50,fy=1e3*60*7;var Xt=rt("libp2p:connection-manager:auto-dial"),kn={minConnections:ma,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:fy,autoDialDiscoveredPeersDebounce:10},xa=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;constructor(t,r){this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.minConnections=r.minConnections??kn.minConnections,this.autoDialPriority=r.autoDialPriority??kn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??kn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??kn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??kn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??kn.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new da({concurrency:r.autoDialConcurrency??kn.autoDialConcurrency}),this.queue.addListener("error",i=>{Xt.error("error during auto-dial",i)}),t.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{Xt.error(i)})});let n;t.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{Xt.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(t=>{Xt.error("error while autodialing",t)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(t=>{Xt.error("error while autodialing",t)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let t=this.connectionManager.getConnectionsMap(),r=t.size;if(r>=this.minConnections){this.minConnections>0&&Xt.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){Xt("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){Xt("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,Xt("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Tn(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(Xt.trace("not autodialing %p because they have no addresses",u.id),!1):t.has(u.id)?(Xt.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(Xt.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(Xt.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new qe;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,d=o.get(l.id)??0;return f>d?-1:f<d?1:0}).filter(u=>{let l=u.metadata.get(pa);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});Xt("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){Xt("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}Xt("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{Xt.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{Xt.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var Ti=rt("libp2p:connection-manager:connection-pruner"),hy={maxConnections:ya,allow:[]},Ea=class{maxConnections;connectionManager;peerStore;allow;events;constructor(t,r={}){this.maxConnections=r.maxConnections??hy.maxConnections,this.allow=r.allow??hy.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,t.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{Ti.error(n)})})}async maybePruneConnections(){let t=this.connectionManager.getConnections(),r=t.length,n=Math.max(r-this.maxConnections,0);if(Ti("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Ti("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new qe;for(let a of t){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&Ti.error("error loading peer tags",u)}}}let s=t.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,d=c.timeline.open;return f<d?1:f>d?-1:0}),o=[];for(let a of s)if(Ti("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){Ti.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function ba(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}function Jr(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var dy=rt("libp2p:connection-manager:utils");async function jl(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];let n=await Xv(e,t),o=(await Promise.all(n.map(async a=>jl(a,t)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return dy("resolved %s to",e,o.map(a=>a.toString())),o}async function Xv(e,t){try{return e=$t(e.toString()),await e.resolve(t)}catch(r){return dy.error(`multiaddr ${e.toString()} could not be resolved`,r),[]}}function py(...e){let t=[];for(let n of e)n!=null&&(ve(1/0,n),t.push(n));let r=ba(t);return ve(1/0,r),r}var se=rt("libp2p:connection-manager:dial-queue"),_s={addressSorter:_i,maxParallelDials:ga,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:Si}},wa=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;constructor(t,r={}){this.addressSorter=r.addressSorter??_s.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??_s.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??_s.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??_s.dialTimeout,this.peerId=t.peerId,this.peerStore=t.peerStore,this.connectionGater=t.connectionGater,this.transportManager=t.transportManager,this.shutDownController=new AbortController,ve(1/0,this.shutDownController.signal),this.pendingDialCount=t.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=t.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))Yu.set(n,i);this.queue=new Gr({concurrency:r.maxParallelDials??_s.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{se.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}stop(){this.shutDownController.abort()}async dial(t,r={}){let{peerId:n,multiaddrs:i}=ha(t),s=i.map(l=>({multiaddr:l,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(l){throw o.clear(),l}let c=this.pendingDials.find(l=>!!(l.peerId!=null&&n!=null&&l.peerId.equals(n)||a.map(({multiaddr:f})=>f.toString()).join()===l.multiaddrs.map(f=>f.toString()).join()));if(c!=null)return se("joining existing dial target for %p",n),o.clear(),c.promise;se("creating dial target for",a.map(({multiaddr:l})=>l.toString()));let u={id:Zv(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:l})=>l)};return u.promise=this.performDial(u,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(l=>l.id!==u.id),o.clear()}).catch(async l=>{if(se.error("dial failed to %s",u.multiaddrs.map(f=>f.toString()).join(", "),l),n!=null)try{await this.peerStore.patch(n,{metadata:{[pa]:z(Date.now().toString())}})}catch(f){se.error("could not update last dial failure key for %p",n,f)}throw o.aborted?new w(l.message,U.ERR_TIMEOUT):l}),this.pendingDials.push(u),u.promise}createDialAbortControllers(t){let r=ba([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,t]);try{ve?.(1/0,r)}catch{}return r}async calculateMultiaddrs(t,r=[],n={}){if(t!=null){if(this.peerId.equals(t))throw new w("Tried to dial self",U.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(t)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",U.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){se("loading multiaddrs for %p",t);try{let l=await this.peerStore.get(t);r.push(...l.addresses),se("loaded multiaddrs for %p",t,r.map(({multiaddr:f})=>f.toString()))}catch(l){if(l.code!==U.ERR_NOT_FOUND)throw l}}}let i=(await Promise.all(r.map(async l=>{let f=await jl(l.multiaddr,n);return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(d=>({multiaddr:d,isCertified:!1}))}))).flat(),s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return t!=null&&f!=null?t.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),d=o.get(f);if(d!=null){d.isCertified=d.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(se("addresses for %p before filtering",t??"unknown peer",i.map(({multiaddr:l})=>l.toString())),se("addresses for %p after filtering",t??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",U.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("dial with more addresses than allowed",U.ERR_TOO_MANY_ADDRESSES);if(t!=null){let l=`/p2p/${t.toString()}`;a=a.map(f=>{let d=f.multiaddr.getPeerId();return f.multiaddr.protos().pop()?.path===!0?f:d!==t.toString()?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f})}let c=[];for(let l of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(l.multiaddr)||c.push(l);let u=c.sort(this.addressSorter);if(u.length===0)throw new w("The connection gater denied all addresses in the dial request",U.ERR_NO_VALID_ADDRESSES);return u}async performDial(t,r={}){let n=t.multiaddrs.map(()=>new AbortController);try{let i=new Gr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{se.error("error dialling",o)});let s=await Promise.any(t.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",U.ERR_INVALID_PARAMETERS);let u=py(c.signal,r.signal);u.addEventListener("abort",()=>{se("dial to %a aborted",o)});let l=Jr();return await i.add(async()=>{if(u.aborted){se("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Gn);return}await this.queue.add(async()=>{try{if(u.aborted){se("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Gn);return}t.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){se("multiple dials succeeded, closing superfluous connection"),f.close().catch(d=>{se.error("error closing superfluous connection",d)}),l.reject(new Gn);return}n[a]=void 0,n.forEach(d=>{d!==void 0&&d.abort()}),se("dial to %a succeeded",o),l.resolve(f)}catch(f){se.error("error during dial of %a",o,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),l.promise}));if(s==null)throw new w("successful dial led to empty object returned from peer dial queue",U.ERR_TRANSPORT_DIAL_FAILED);return t.status="success",s}catch(i){throw t.status="error",t.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Zv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Ce=rt("libp2p:connection-manager"),t_=50,On={minConnections:ma,maxConnections:ya,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},va=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;constructor(t,r={}){this.maxConnections=r.maxConnections??On.maxConnections;let n=r.minConnections??On.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",U.ERR_INVALID_PARAMETERS);this.connections=new qe,this.started=!1,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>$t(i)),this.deny=(r.deny??[]).map(i=>$t(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??On.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new my.RateLimiterMemory({points:r.inboundConnectionThreshold??On.inboundConnectionThreshold,duration:1}),this.autoDial=new xa({connectionManager:this,peerStore:t.peerStore,events:t.events},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??On.autoDialConcurrency,autoDialPriority:r.autoDialPriority??On.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??On.autoDialMaxQueueLength}),this.connectionPruner=new Ea({connectionManager:this,peerStore:t.peerStore,events:t.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new wa({peerId:t.peerId,metrics:t.metrics,peerStore:t.peerStore,transportManager:t.transportManager,connectionGater:t.connectionGater},{addressSorter:r.addressSorter??_i,maxParallelDials:r.maxParallelDials??ga,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Si}})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))t[o]=t[o]??[],t[o].push(a)}let r={};for(let[n,i]of Object.entries(t)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,Ce("started")}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[r=>r.tags.has(ym)]});await Promise.all(t.map(async r=>{await this.openConnection(r.id).catch(n=>{Ce.error(n)})}))}).catch(t=>{Ce.error(t)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){Ce.error(i)}})());Ce("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),Ce("stopped")}onConnect(t){this._onConnect(t).catch(r=>{Ce.error(r)})}async _onConnect(t){let{detail:r}=t;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(t){let{detail:r}=t;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(t){if(t!=null)return this.connections.get(t)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){if(!this.isStarted())throw new w("Not started",U.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=ha(t);if(n!=null&&r.force!==!0){Ce("dial %p",n);let a=this.getConnections(n);if(a.length>0)return Ce("had an existing connection to %p",n),a[0]}let i=await this.dialQueue.dial(t,{...r,priority:r.priority??t_}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(t,r={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Ce("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return Ce("connection from %a refused - incomingPendingConnections exceeded by host",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Ce("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(Ce("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var _a=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}},Bi=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new _a(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 _a(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 nf=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mn(e={}){return e_(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 e_(e,t){t=t??{};let r=t.onEnd,n=new Bi,i,s,o,a=Jr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(e(n))}catch(b){g(b)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Jr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new Bi,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},d=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new Bi,d(),{done:!0}),h=y=>(d(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:h,push:f,end:d,get readableLength(){return n.size},onEmpty:async y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((C,_)=>{b=()=>{_(new nf)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength}},i}function r_(e){return e[Symbol.asyncIterator]!=null}function n_(...e){let t=[];for(let r of e)r_(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mn({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 jr=n_;function Un(e,...t){if(e==null)throw new Error("Empty pipeline");if(sf(e)){let n=e;e=()=>n.source}else if(gy(e)||yy(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&sf(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++)sf(r[n])&&(r[n]=s_(r[n]));return i_(...r)}var i_=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},yy=e=>e?.[Symbol.asyncIterator]!=null,gy=e=>e?.[Symbol.iterator]!=null,sf=e=>e==null?!1:e.sink!=null&&e.source!=null,s_=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=e.source;if(yy(s))i=async function*(){yield*s,n.end()};else if(gy(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return jr(n,i())}return e.source};function o_(e){return e[Symbol.asyncIterator]!=null}function a_(e,t){if(o_(e))return async function*(){for await(let a of e)yield t(a)}();let r=Zo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield t(a)}();let o=t;return function*(){yield s;for(let a of r)yield o(a)}()}var xy=a_;async function*Ss(e,t){yield*xy(e,async r=>(await t.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function Sa(e){let t=new Set;return He(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*Aa(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw new w(`more peers required, seen: ${r} min: ${t}`,"NOT_FOUND")}var Ia=class{routers;started;components;constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw new w("No content routers available",U.ERR_NO_ROUTERS_AVAILABLE);yield*Un(jr(...this.routers.map(n=>n.findProviders(t,r))),n=>Ss(n,this.components.peerStore),n=>Sa(n),n=>Aa(n))}async provide(t,r={}){if(this.routers.length===0)throw new w("No content routers available",U.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,r)}))}async put(t,r,n){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,U.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(t,r,n)}))}async get(t,r){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,U.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(t,r)))}};function c_(e){return e[Symbol.asyncIterator]!=null}function u_(e){if(c_(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var Ra=u_;var l_=rt("libp2p:peer-routing"),Ca=class{components;routers;constructor(t,r){this.components=t,this.routers=r.routers??[]}async findPeer(t,r){if(this.routers.length===0)throw new w("No peer routers available",U.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",U.ERR_FIND_SELF);let n=await Un(jr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(s){l_.error(s)}}())),i=>He(i,Boolean),i=>Ss(i,this.components.peerStore),async i=>Ra(i));if(n!=null)return n;throw new w(or.NOT_FOUND,U.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw new w("No peer routers available",U.ERR_NO_ROUTERS_AVAILABLE);yield*Un(jr(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>Ss(n,this.components.peerStore),n=>Sa(n),n=>Aa(n))}};var of=rt("libp2p:registrar"),af=32,cf=64,Ta=class{topologies;handlers;components;constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onConnect=this._onConnect.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:connect",this._onConnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(t){let r=this.handlers.get(t);if(r==null)throw new w(`No handler registered for protocol ${t}`,U.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,U.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=qr.bind({ignoreUndefined:!0})({maxInboundStreams:af,maxOutboundStreams:cf},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,r){if(r==null)throw new w("invalid topology",U.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==U.ERR_NOT_FOUND&&of.error("could not inform topologies of disconnecting peer %p",r,n)})}_onConnect(t){let r=t.detail;this.components.peerStore.get(r).then(n=>{let i=this.components.connectionManager.getConnections(n.id)[0];if(i==null){of("peer %p connected but the connection manager did not have a connection",n);return}for(let s of n.protocols){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onConnect?.(r,i)}}).catch(n=>{n.code!==U.ERR_NOT_FOUND&&of.error("could not inform topologies of connecting peer %p",r,n)})}_onPeerUpdate(t){let{peer:r,previous:n}=t.detail,i=(n?.protocols??[]).filter(o=>!r.protocols.includes(o)),s=r.protocols.filter(o=>!(n?.protocols??[]).includes(o));for(let o of i){let a=this.topologies.get(o);if(a!=null)for(let c of a.values())c.onDisconnect?.(r.id)}for(let o of s){let a=this.topologies.get(o);if(a!=null)for(let c of a.values()){let u=this.components.connectionManager.getConnections(r.id)[0];u!=null&&c.onConnect?.(r.id,u)}}}};var uf=class extends Map{metric;constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Ey(e){let{name:t,metrics:r}=e,n;return r!=null?n=new uf({name:t,metrics:r}):n=new Map,n}var tn=rt("libp2p:transports"),Ba=class{components;transports;listeners;faultTolerance;started;constructor(t,r={}){this.components=t,this.started=!1,this.transports=new Map,this.listeners=Ey({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Xr.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",U.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,U.ERR_DUPLICATE_TRANSPORT);tn("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[r,n]of this.listeners)for(tn("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),tn("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,U.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=U.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(!this.isStarted())throw new w("Not started",U.ERR_NODE_NOT_STARTED);if(t==null||t.length===0){tn("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(t),o=[];for(let u of s){tn("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let d=f.findIndex(p=>p===l);f.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==Xr.NO_FATAL)throw new w(`Transport (${n}) could not listen on any available address`,U.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===Xr.FATAL_ALL)throw new w(n,U.ERR_NO_VALID_ADDRESSES);tn(`libp2p in dial mode only: ${n}`)}}async remove(t){let r=this.listeners.get(t)??[];tn.trace("removing transport %s",t);let n=[];for(tn.trace("closing listeners for %s",t);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var Rr="/multistream/1.0.0";function lf(e){let t=async function*(){let r=yield,n=new Wt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Wt;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Wt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function La(e){let t=Mn(),r=lf(e.source),n=Jr(),i,s=e.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var As=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function by(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 wy(e,t,r){let n=r??{},i=by(e);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new As(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:d,abortCode:p}=n;f(new As(d,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function Pa(e){return e[Symbol.asyncIterator]!=null}var Da=e=>{let t=ge(e),r=ae(t);return Pe(e,r),Da.bytes=t,r};Da.bytes=0;function Na(e,t){t=t??{};let r=t.lengthEncoder??Da;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Pa(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Na.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Da;return new Wt(r(e.byteLength),e)};var Li=mt(El(),1);var f_=8,h_=1024*1024*4,Fn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Fn||(Fn={}));var ff=e=>{let t=Ar(e);return ff.bytes=ge(t),t};ff.bytes=0;function Is(e,t){let r=new Wt,n=Fn.LENGTH,i=-1,s=t?.lengthDecoder??ff,o=t?.maxLengthLength??f_,a=t?.maxDataLength??h_;function*c(){for(;r.byteLength>0;){if(n===Fn.LENGTH)try{if(i=s(r),i<0)throw(0,Li.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Li.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Fn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,Li.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Fn.LENGTH}}}return Pa(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.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,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Is.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await e.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return Is(n,{...t??{},onLength:s=>{r=s}})};var m_=rt("libp2p:mss"),vy=z(`
49
+ `);function Rs(e){let t=new Wt(e,vy);return Na.single(t)}function Kn(e,t,r={}){let n=Rs(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function _y(e,t,r={}){let n=new Wt;for(let i of t)n.append(Rs(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function y_(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)},i=n;t?.signal!=null&&(i=wy(n,t.signal));let s=a=>{r=a},o=await Un(i,a=>Is(a,{onLength:s,maxDataLength:1024}),async a=>Ra(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==vy[0])throw m_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Pi(e,t){let r=await y_(e,t);return X(r.subarray())}var Cs=rt("libp2p:mss:select");async function Ts(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=La(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Cs.trace('select: write ["%s", "%s"]',Rr,a);let c=z(Rr),u=z(a);_y(i,[c,u],r);let l=await Pi(n,r);if(Cs.trace('select: read "%s"',l),l===Rr&&(l=await Pi(n,r),Cs.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of t){Cs.trace('select: write "%s"',f),Kn(i,z(f),r);let d=await Pi(n,r);if(Cs.trace('select: read "%s" for "%s"',d,f),d===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Bs=rt("libp2p:mss:handle");async function Ls(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=La(e);for(;;){let a=await Pi(i,r);if(Bs.trace('read "%s"',a),a===Rr){Bs.trace('respond with "%s" for "%s"',Rr,a),Kn(n,z(Rr),r);continue}if(t.includes(a))return Kn(n,z(a),r),Bs.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Kn(n,new Wt(...t.map(c=>Rs(z(c)))),r),Bs.trace('respond with "%s" for %s',t,a);continue}Kn(n,z("na"),r),Bs('respond with "na" for "%s"',a)}}var Ay=Symbol.for("@libp2p/connection");var Vn=rt("libp2p:connection"),x_=500,hf=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.transient=t.transient??!1,this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[Ay]=!0;get streams(){return this._getStreams()}async newStream(t,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(t)||(t=[t]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(t,r);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){Vn("closing connection to %a",this.remoteAddr),this.status="closing",t.signal=t?.signal??AbortSignal.timeout(x_),ve(1/0,t.signal);try{Vn.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(t))),Vn.trace("closing underlying transport"),await this._close(t),Vn.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){Vn.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(t){Vn.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this.streams.forEach(r=>{r.abort(t)}),Vn.error("all streams aborted",this.streams.length),this._abort(t),this.timeline.close=Date.now(),this.status="closed"}};function Iy(e){return new hf(e)}var Et=rt("libp2p:upgrader");function b_(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==U.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return af}function w_(e,t,r={}){try{let{options:n}=t.getHandler(e);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==U.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??cf}function Ry(e,t,r){let n=0;return r.streams.forEach(i=>{i.direction===t&&i.protocol===e&&n++}),n}var ka=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(t,r){this.components=t,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=t.events}async shouldBlockConnection(t,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(t,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,U.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",U.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{t.abort(new w("inbound upgrade timeout",U.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0}),ve(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",U.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Et("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(Et("protecting the inbound connection"),f=await d.protect(t))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let d={...f,...i};await this.shouldBlockConnection(s,d,"denyInboundEncryptedConnection")}else{let d=t.remoteAddr.getPeerId();if(d==null)throw new w("inbound connection that skipped encryption must have a peer id",U.ERR_INVALID_MULTIADDR);let p=lt(d);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw Et.error("Failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(s,t,"denyInboundUpgradedConnection"),Et("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;n!=null&&(i=lt(n),await this.shouldBlockConnection(i,t,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),Et("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new w("Encryption was skipped but no peer id was passed",U.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw Et.error("Failed to upgrade outbound connection",f),await t.close(f),f}return await this.shouldBlockConnection(o,t,"denyOutboundUpgradedConnection"),Et("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=t,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:h=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Ls(h,m);if(Et("%s: incoming stream opened on %s",n,g),f==null)return;let x=b_(g,this.components.registrar);if(Ry(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,U.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw h.abort(C),C}h.source=y.source,h.sink=y.sink,h.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(h,f),this._onStream({connection:f,stream:h,protocol:g})}).catch(async m=>{Et.error(m),h.timeline.close==null&&await h.close()})}}),l=async(h,m={})=>{if(u==null)throw new w("Stream is not multiplexed",U.ERR_MUXER_UNAVAILABLE);Et("%s: starting new stream on %s",n,h);let y=await u.newStream();try{m.signal==null&&(Et("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),m.signal=AbortSignal.timeout(3e4),ve(1/0,m.signal));let{stream:g,protocol:x}=await Ts(y,h,m),b=w_(x,this.components.registrar,m);if(Ry(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,U.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw Et.error("could not create new stream for protocols %s on connection with address %a",h,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),U.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(h=>{Et.error(h)}));let d=i.timeline;i.timeline=new Proxy(d,{set:(...h)=>(f!=null&&h[1]==="close"&&h[2]!=null&&d.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){Et.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{Et.error(m)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",U.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=Iy({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async h=>{u!=null&&(Et.trace("close muxer"),await u.close(h)),Et.trace("close maconn"),await i.close(h),Et.trace("closed maconn")},abort:h=>{i.abort(h),u?.abort(h)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());Et("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Ls(t,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Et("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),U.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());Et("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Ts(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Et("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),U.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());Et("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Ts(t,n,{writeBytes:!0});Et("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing outbound stream",i),new w(String(i),U.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());Et("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing inbound stream",i),new w(String(i),U.ERR_MUXER_UNAVAILABLE)}}};var xe=rt("libp2p"),df=class extends ss{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;components;#t;constructor(t){super();let r=new ss,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new Eu(c.type,{detail:c.detail}));return u||l},ve(1/0,r),this.#t=!1,this.peerId=t.peerId,this.services={};let i=this.components=Vp({peerId:t.peerId,events:r,datastore:t.datastore??new jo,connectionGater:Zp(t.connectionGater)});this.peerStore=this.configureComponent("peerStore",new Xo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(i)),this.components.upgrader=new ka(this.components,{connectionEncryption:(t.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(t.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Ba(this.components,t.transportManager)),this.configureComponent("connectionManager",new va(this.components,t.connectionManager)),this.configureComponent("registrar",new Ta(this.components)),this.configureComponent("addressManager",new ta(this.components,t.addresses));let s=Cn.generateOptions();this.keychain=this.configureComponent("keyChain",new Cn(this.components,{...s,...t.keychain}));let o=(t.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ca(this.components,{routers:o}));let a=(t.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ia(this.components,{routers:a})),(t.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#e(f)})}),t.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),t.services!=null)for(let c of Object.keys(t.services)){let u=t.services[c],l=u(this.components);if(l==null){xe.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[gu]!=null&&(xe("registering service %s for content routing",c),a.push(l[gu])),l[wu]!=null&&(xe("registering service %s for peer routing",c),o.push(l[wu])),l[bu]!=null&&(xe("registering service %s for peer discovery",c),l[bu].addEventListener("peer",f=>{this.#e(f)}))}}configureComponent(t,r){return r==null&&xe.error("component %s was null or undefined",t),this.components[t]=r,r}async start(){if(this.#t)return;this.#t=!0,xe("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(xe("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),xe("libp2p has started")}catch(r){throw xe.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#t&&(xe("libp2p is stopping"),this.#t=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),xe("libp2p has stopped"))}isStarted(){return this.#t}getConnections(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new Tn;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw new w("no protocols were provided to open a stream",U.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new w("no protocols were provided to open a stream",U.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,r={}){Bn(t)&&(t=lt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,r)}async getPublicKey(t,r={}){if(xe("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.id.publicKey!=null)return n.id.publicKey;let i=kt([z("/pk/"),t.multihash.digest]),s=await this.contentRouting.get(i,r);return ns(s),await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return this.components.registrar.register(t,r)}unregister(t){this.components.registrar.unregister(t)}#e(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){xe.error(new Error(U.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{xe.error(n)})}};async function Cy(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Cn({datastore:t},qr(Cn.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await Yd()),new df(mm(e))}async function v_(e){let t=await Cy(e);return e.start!==!1&&await t.start(),t}return qy(__);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/hashes/esm/utils.js: